|
@@ -198,6 +198,13 @@ static int lan78xx_open ( struct net_device *netdev ) {
|
198
|
198
|
LAN78XX_BULK_IN_DLY_SET ( 0 ) ) ) != 0 )
|
199
|
199
|
goto err_bulk_in_dly;
|
200
|
200
|
|
|
201
|
+ /* Enable automatic speed and duplex detection */
|
|
202
|
+ if ( ( rc = smscusb_writel ( smscusb, LAN78XX_MAC_CR,
|
|
203
|
+ ( LAN78XX_MAC_CR_ADP |
|
|
204
|
+ LAN78XX_MAC_CR_ADD |
|
|
205
|
+ LAN78XX_MAC_CR_ASD ) ) ) != 0 )
|
|
206
|
+ goto err_mac_cr;
|
|
207
|
+
|
201
|
208
|
/* Configure receive filters */
|
202
|
209
|
if ( ( rc = smscusb_writel ( smscusb, LAN78XX_RFE_CTL,
|
203
|
210
|
( LAN78XX_RFE_CTL_AB |
|
|
@@ -256,6 +263,7 @@ static int lan78xx_open ( struct net_device *netdev ) {
|
256
|
263
|
err_fct_tx_ctl:
|
257
|
264
|
err_fct_rx_ctl:
|
258
|
265
|
err_rfe_ctl:
|
|
266
|
+ err_mac_cr:
|
259
|
267
|
err_bulk_in_dly:
|
260
|
268
|
err_int_ep_ctl:
|
261
|
269
|
usbnet_close ( &smscusb->usbnet );
|