3111
3112 outw(TLAN_NET_SIO, dev->base_addr + TLAN_DIO_ADR);
3113 sio = dev->base_addr + TLAN_DIO_DATA + TLAN_NET_SIO;
3114
3115 if (!in_irq())
3116 spin_lock_irqsave(&priv->lock, flags);
3117
3118 TLan_MiiSync( dev->base_addr );
3119
3120 minten = TLan_GetBit( TLAN_NET_SIO_MINTEN, sio );
3121 if ( minten )
3122 TLan_ClearBit( TLAN_NET_SIO_MINTEN, sio );
3123
3124 TLan_MiiSendData( dev->base_addr, 0x1, 2 );
3125 TLan_MiiSendData( dev->base_addr, 0x1, 2 );
3126 TLan_MiiSendData( dev->base_addr, phy, 5 );
3127 TLan_MiiSendData( dev->base_addr, reg, 5 );
3128
3129 TLan_MiiSendData( dev->base_addr, 0x2, 2 );
3130 TLan_MiiSendData( dev->base_addr, val, 16 );
3131
3132 TLan_ClearBit( TLAN_NET_SIO_MCLK, sio );
3133 TLan_SetBit( TLAN_NET_SIO_MCLK, sio );
3134
3135 if ( minten )
3136 TLan_SetBit( TLAN_NET_SIO_MINTEN, sio );
3137
3138 if (!in_irq())
3139 spin_unlock_irqrestore(&priv->lock, flags);
3140
3141}
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151