projects
/
openwrt
/
svn-archive
/
archive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
38005ba
)
generic: rtl8366: add is_vlan_valid function to smi_ops
author
Gabor Juhos
<juhosg@openwrt.org>
Thu, 15 Jul 2010 13:05:39 +0000
(13:05 +0000)
committer
Gabor Juhos
<juhosg@openwrt.org>
Thu, 15 Jul 2010 13:05:39 +0000
(13:05 +0000)
SVN-Revision: 22201
target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
patch
|
blob
|
history
target/linux/generic/files/drivers/net/phy/rtl8366rb.c
patch
|
blob
|
history
target/linux/generic/files/drivers/net/phy/rtl8366s.c
patch
|
blob
|
history
diff --git
a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
index 2e8f9298dca9ae998aba44cd83b5f4434ea42501..b53c5010cea8ff891489d9ebbbcef5cc78f80152 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
+++ b/
target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
@@
-86,6
+86,7
@@
struct rtl8366_smi_ops {
int (*set_mc_index)(struct rtl8366_smi *smi, int port, int index);
int (*get_mib_counter)(struct rtl8366_smi *smi, int counter,
int port, unsigned long long *val);
int (*set_mc_index)(struct rtl8366_smi *smi, int port, int index);
int (*get_mib_counter)(struct rtl8366_smi *smi, int counter,
int port, unsigned long long *val);
+ int (*is_vlan_valid)(struct rtl8366_smi *smi, unsigned vlan);
};
struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent);
};
struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent);
diff --git
a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
index b6d3f9805f0bf8ff7a87c2b1415f6db31529f057..2efde1df3f88e4ef320f63f070c92aa425024c8f 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/rtl8366rb.c
+++ b/
target/linux/generic/files/drivers/net/phy/rtl8366rb.c
@@
-552,6
+552,14
@@
static int rtl8366rb_set_mc_index(struct rtl8366_smi *smi, int port, int index)
RTL8366RB_PORT_VLAN_CTRL_SHIFT(port));
}
RTL8366RB_PORT_VLAN_CTRL_SHIFT(port));
}
+static int rtl8366rb_is_vlan_valid(struct rtl8366_smi *smi, unsigned vlan)
+{
+ if (vlan == 0 || vlan >= RTL8366RB_NUM_VLANS)
+ return 0;
+
+ return 1;
+}
+
static int rtl8366rb_vlan_set_vlan(struct rtl8366_smi *smi, int enable)
{
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR, RTL8366RB_SGCR_EN_VLAN,
static int rtl8366rb_vlan_set_vlan(struct rtl8366_smi *smi, int enable)
{
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR, RTL8366RB_SGCR_EN_VLAN,
@@
-708,7
+716,7
@@
static int rtl8366rb_sw_get_vlan_info(struct switch_dev *dev,
char *buf = smi->buf;
int err;
char *buf = smi->buf;
int err;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366RB_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
memset(buf, '\0', sizeof(smi->buf));
return -EINVAL;
memset(buf, '\0', sizeof(smi->buf));
@@
-800,7
+808,7
@@
static int rtl8366rb_sw_get_vlan_ports(struct switch_dev *dev,
struct rtl8366_vlan_4k vlan4k;
int i;
struct rtl8366_vlan_4k vlan4k;
int i;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366RB_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
rtl8366rb_get_vlan_4k(smi, val->port_vlan, &vlan4k);
return -EINVAL;
rtl8366rb_get_vlan_4k(smi, val->port_vlan, &vlan4k);
@@
-829,7
+837,7
@@
static int rtl8366rb_sw_set_vlan_ports(struct switch_dev *dev,
u32 untag = 0;
int i;
u32 untag = 0;
int i;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366RB_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
port = &val->value.ports[0];
return -EINVAL;
port = &val->value.ports[0];
@@
-1071,6
+1079,7
@@
static struct rtl8366_smi_ops rtl8366rb_smi_ops = {
.get_mc_index = rtl8366rb_get_mc_index,
.set_mc_index = rtl8366rb_set_mc_index,
.get_mib_counter = rtl8366rb_get_mib_counter,
.get_mc_index = rtl8366rb_get_mc_index,
.set_mc_index = rtl8366rb_set_mc_index,
.get_mib_counter = rtl8366rb_get_mib_counter,
+ .is_vlan_valid = rtl8366rb_is_vlan_valid,
};
static int __init rtl8366rb_probe(struct platform_device *pdev)
};
static int __init rtl8366rb_probe(struct platform_device *pdev)
diff --git
a/target/linux/generic/files/drivers/net/phy/rtl8366s.c
b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
index 9936b45380b5127dda03ac42db34d6d41f9171d6..4f4a5f3897456625e03dfa0eca37fa9790bc2197 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/rtl8366s.c
+++ b/
target/linux/generic/files/drivers/net/phy/rtl8366s.c
@@
-591,6
+591,14
@@
static int rtl8366s_vlan_set_4ktable(struct rtl8366_smi *smi, int enable)
1, (enable) ? 1 : 0);
}
1, (enable) ? 1 : 0);
}
+static int rtl8366s_is_vlan_valid(struct rtl8366_smi *smi, unsigned vlan)
+{
+ if (vlan == 0 || vlan >= RTL8366S_NUM_VLANS)
+ return 0;
+
+ return 1;
+}
+
static int rtl8366s_sw_reset_mibs(struct switch_dev *dev,
const struct switch_attr *attr,
struct switch_val *val)
static int rtl8366s_sw_reset_mibs(struct switch_dev *dev,
const struct switch_attr *attr,
struct switch_val *val)
@@
-733,7
+741,7
@@
static int rtl8366s_sw_get_vlan_info(struct switch_dev *dev,
char *buf = smi->buf;
int err;
char *buf = smi->buf;
int err;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366S_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
memset(buf, '\0', sizeof(smi->buf));
return -EINVAL;
memset(buf, '\0', sizeof(smi->buf));
@@
-827,7
+835,7
@@
static int rtl8366s_sw_get_vlan_ports(struct switch_dev *dev,
struct rtl8366_vlan_4k vlan4k;
int i;
struct rtl8366_vlan_4k vlan4k;
int i;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366S_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
rtl8366s_get_vlan_4k(smi, val->port_vlan, &vlan4k);
return -EINVAL;
rtl8366s_get_vlan_4k(smi, val->port_vlan, &vlan4k);
@@
-856,7
+864,7
@@
static int rtl8366s_sw_set_vlan_ports(struct switch_dev *dev,
u32 untag = 0;
int i;
u32 untag = 0;
int i;
- if (
val->port_vlan == 0 || val->port_vlan >= RTL8366S_NUM_VLANS
)
+ if (
!smi->ops->is_vlan_valid(smi, val->port_vlan)
)
return -EINVAL;
port = &val->value.ports[0];
return -EINVAL;
port = &val->value.ports[0];
@@
-1098,6
+1106,7
@@
static struct rtl8366_smi_ops rtl8366s_smi_ops = {
.get_mc_index = rtl8366s_get_mc_index,
.set_mc_index = rtl8366s_set_mc_index,
.get_mib_counter = rtl8366_get_mib_counter,
.get_mc_index = rtl8366s_get_mc_index,
.set_mc_index = rtl8366s_set_mc_index,
.get_mib_counter = rtl8366_get_mib_counter,
+ .is_vlan_valid = rtl8366s_is_vlan_valid,
};
static int __init rtl8366s_probe(struct platform_device *pdev)
};
static int __init rtl8366s_probe(struct platform_device *pdev)