>> Hi,Thank vincent very much,with his long help,my 3com575 now work 
>> fine.but I found this problem. in /etc/system:
>> when set cardbus_debug=1,prtconf has no "ethernet",no "elxl" driver.
>> when set cardbus_debug=9,prtconf has "ethernet" with "elxl" driver.
>>    now,how to fix it, need I keep the cardbus_debug=9 in system file ?
>
Fixed.
After resetting the subordinate bus(enable_cardbus_bridge()), we should 
wait for at least a few milli-seconds for things to stablize. After 
adding a delay() in enale_cardbus_bridge() for 20ms, it worked. So far 
this only happens on some 3Com CardBus cards.

@@ -3890,6 +3890,8 @@
            stat, comm, bctrl);
 }
 
+static int     cardbus_reset_wait = 20;
+
 static void
 enable_cardbus_bridge(dev_info_t *dip, ddi_acc_handle_t config_handle)
 {
@@ -3946,6 +3948,8 @@
        cardbus_err(dip, 8,
                    "enable_cardbus_bridge() stat 0x%04x comm 0x%04x "
                    "bctrl 0x%04x\n", stat, comm, bctrl);
+
+       delay(drv_usectohz(cardbus_reset_wait * 1000));
 }


Vincent.

Reply via email to