diff options
-rw-r--r-- | drivers/net/gianfar.c | 3 | ||||
-rw-r--r-- | drivers/net/phy/lxt.c | 51 | ||||
-rw-r--r-- | net/caif/cfrfml.c | 2 | ||||
-rw-r--r-- | net/caif/cfveil.c | 2 |
4 files changed, 53 insertions, 5 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 1830f3199cb5..46c69cd06553 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -747,8 +747,7 @@ static int gfar_of_init(struct of_device *ofdev, struct net_device **pdev) | |||
747 | FSL_GIANFAR_DEV_HAS_CSUM | | 747 | FSL_GIANFAR_DEV_HAS_CSUM | |
748 | FSL_GIANFAR_DEV_HAS_VLAN | | 748 | FSL_GIANFAR_DEV_HAS_VLAN | |
749 | FSL_GIANFAR_DEV_HAS_MAGIC_PACKET | | 749 | FSL_GIANFAR_DEV_HAS_MAGIC_PACKET | |
750 | FSL_GIANFAR_DEV_HAS_EXTENDED_HASH | | 750 | FSL_GIANFAR_DEV_HAS_EXTENDED_HASH; |
751 | FSL_GIANFAR_DEV_HAS_TIMER; | ||
752 | 751 | ||
753 | ctype = of_get_property(np, "phy-connection-type", NULL); | 752 | ctype = of_get_property(np, "phy-connection-type", NULL); |
754 | 753 | ||
diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/lxt.c index 8ee929b796d8..dbd003453737 100644 --- a/drivers/net/phy/lxt.c +++ b/drivers/net/phy/lxt.c | |||
@@ -53,6 +53,9 @@ | |||
53 | 53 | ||
54 | #define MII_LXT971_ISR 19 /* Interrupt Status Register */ | 54 | #define MII_LXT971_ISR 19 /* Interrupt Status Register */ |
55 | 55 | ||
56 | /* register definitions for the 973 */ | ||
57 | #define MII_LXT973_PCR 16 /* Port Configuration Register */ | ||
58 | #define PCR_FIBER_SELECT 1 | ||
56 | 59 | ||
57 | MODULE_DESCRIPTION("Intel LXT PHY driver"); | 60 | MODULE_DESCRIPTION("Intel LXT PHY driver"); |
58 | MODULE_AUTHOR("Andy Fleming"); | 61 | MODULE_AUTHOR("Andy Fleming"); |
@@ -119,6 +122,33 @@ static int lxt971_config_intr(struct phy_device *phydev) | |||
119 | return err; | 122 | return err; |
120 | } | 123 | } |
121 | 124 | ||
125 | static int lxt973_probe(struct phy_device *phydev) | ||
126 | { | ||
127 | int val = phy_read(phydev, MII_LXT973_PCR); | ||
128 | |||
129 | if (val & PCR_FIBER_SELECT) { | ||
130 | /* | ||
131 | * If fiber is selected, then the only correct setting | ||
132 | * is 100Mbps, full duplex, and auto negotiation off. | ||
133 | */ | ||
134 | val = phy_read(phydev, MII_BMCR); | ||
135 | val |= (BMCR_SPEED100 | BMCR_FULLDPLX); | ||
136 | val &= ~BMCR_ANENABLE; | ||
137 | phy_write(phydev, MII_BMCR, val); | ||
138 | /* Remember that the port is in fiber mode. */ | ||
139 | phydev->priv = lxt973_probe; | ||
140 | } else { | ||
141 | phydev->priv = NULL; | ||
142 | } | ||
143 | return 0; | ||
144 | } | ||
145 | |||
146 | static int lxt973_config_aneg(struct phy_device *phydev) | ||
147 | { | ||
148 | /* Do nothing if port is in fiber mode. */ | ||
149 | return phydev->priv ? 0 : genphy_config_aneg(phydev); | ||
150 | } | ||
151 | |||
122 | static struct phy_driver lxt970_driver = { | 152 | static struct phy_driver lxt970_driver = { |
123 | .phy_id = 0x78100000, | 153 | .phy_id = 0x78100000, |
124 | .name = "LXT970", | 154 | .name = "LXT970", |
@@ -146,6 +176,18 @@ static struct phy_driver lxt971_driver = { | |||
146 | .driver = { .owner = THIS_MODULE,}, | 176 | .driver = { .owner = THIS_MODULE,}, |
147 | }; | 177 | }; |
148 | 178 | ||
179 | static struct phy_driver lxt973_driver = { | ||
180 | .phy_id = 0x00137a10, | ||
181 | .name = "LXT973", | ||
182 | .phy_id_mask = 0xfffffff0, | ||
183 | .features = PHY_BASIC_FEATURES, | ||
184 | .flags = 0, | ||
185 | .probe = lxt973_probe, | ||
186 | .config_aneg = lxt973_config_aneg, | ||
187 | .read_status = genphy_read_status, | ||
188 | .driver = { .owner = THIS_MODULE,}, | ||
189 | }; | ||
190 | |||
149 | static int __init lxt_init(void) | 191 | static int __init lxt_init(void) |
150 | { | 192 | { |
151 | int ret; | 193 | int ret; |
@@ -157,9 +199,15 @@ static int __init lxt_init(void) | |||
157 | ret = phy_driver_register(&lxt971_driver); | 199 | ret = phy_driver_register(&lxt971_driver); |
158 | if (ret) | 200 | if (ret) |
159 | goto err2; | 201 | goto err2; |
202 | |||
203 | ret = phy_driver_register(&lxt973_driver); | ||
204 | if (ret) | ||
205 | goto err3; | ||
160 | return 0; | 206 | return 0; |
161 | 207 | ||
162 | err2: | 208 | err3: |
209 | phy_driver_unregister(&lxt971_driver); | ||
210 | err2: | ||
163 | phy_driver_unregister(&lxt970_driver); | 211 | phy_driver_unregister(&lxt970_driver); |
164 | err1: | 212 | err1: |
165 | return ret; | 213 | return ret; |
@@ -169,6 +217,7 @@ static void __exit lxt_exit(void) | |||
169 | { | 217 | { |
170 | phy_driver_unregister(&lxt970_driver); | 218 | phy_driver_unregister(&lxt970_driver); |
171 | phy_driver_unregister(&lxt971_driver); | 219 | phy_driver_unregister(&lxt971_driver); |
220 | phy_driver_unregister(&lxt973_driver); | ||
172 | } | 221 | } |
173 | 222 | ||
174 | module_init(lxt_init); | 223 | module_init(lxt_init); |
diff --git a/net/caif/cfrfml.c b/net/caif/cfrfml.c index cd2830fec935..fd27b172fb5d 100644 --- a/net/caif/cfrfml.c +++ b/net/caif/cfrfml.c | |||
@@ -83,7 +83,7 @@ static int cfrfml_transmit(struct cflayer *layr, struct cfpkt *pkt) | |||
83 | if (!cfsrvl_ready(service, &ret)) | 83 | if (!cfsrvl_ready(service, &ret)) |
84 | return ret; | 84 | return ret; |
85 | 85 | ||
86 | if (!cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) { | 86 | if (cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) { |
87 | pr_err("CAIF: %s():Packet too large - size=%d\n", | 87 | pr_err("CAIF: %s():Packet too large - size=%d\n", |
88 | __func__, cfpkt_getlen(pkt)); | 88 | __func__, cfpkt_getlen(pkt)); |
89 | return -EOVERFLOW; | 89 | return -EOVERFLOW; |
diff --git a/net/caif/cfveil.c b/net/caif/cfveil.c index 0fd827f49491..e04f7d964e83 100644 --- a/net/caif/cfveil.c +++ b/net/caif/cfveil.c | |||
@@ -84,7 +84,7 @@ static int cfvei_transmit(struct cflayer *layr, struct cfpkt *pkt) | |||
84 | return ret; | 84 | return ret; |
85 | caif_assert(layr->dn != NULL); | 85 | caif_assert(layr->dn != NULL); |
86 | caif_assert(layr->dn->transmit != NULL); | 86 | caif_assert(layr->dn->transmit != NULL); |
87 | if (!cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) { | 87 | if (cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) { |
88 | pr_warning("CAIF: %s(): Packet too large - size=%d\n", | 88 | pr_warning("CAIF: %s(): Packet too large - size=%d\n", |
89 | __func__, cfpkt_getlen(pkt)); | 89 | __func__, cfpkt_getlen(pkt)); |
90 | return -EOVERFLOW; | 90 | return -EOVERFLOW; |