Workaround? for hard lock caused by O2 Micro OZ601/6912/711E0

Sascha Sommer saschasommer at freenet.de
Thu Apr 28 14:07:42 EDT 2005


Hi,

after my laptops mainboard got replaced I was a bit shocked because all
linux kernels (also tested 2.4 with knoppix) that used to work before now
locked the machine hard.
The bios version is the same as before and these lockups only occured when 
cold booting with inserted wlan card. Booting without card, rebooting with 
card, booting windows, all worked fine. The card worked without problems when 
it was inserted after a reboot, but almost always locked up the machine when 
booting for the first time. 

After a bit of debugging. I found out that in the cases where the system would 
lock CB_SOCKET_STATE initially is always 0x30000b38 and CB_SOCKET_CONTROL 
0x27.

In
static int yenta_sock_init(struct pcmcia_socket *sock)
around line 491 in yenta_socket.c of 2.6.11.7 the following code can be found:

	/* Redo card voltage interrogation */
	state = cb_readl(socket, CB_SOCKET_STATE);
	if (!(state & (CB_CDETECT1 | CB_CDETECT2 | CB_5VCARD |
	               CB_3VCARD | CB_XVCARD | CB_YVCARD)))
		cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);

I applied the attached patch and the lock ups disappeared. I'm not sure
if this the correct fix, but maybe it is a start...

Here is the lspci output for the card bus controler.
0000:02:03.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 
CardBus/SmartCardBus Controller
        Subsystem: Uniwill Computer Corp: Unknown device 3000
        Flags: bus master, stepping, slow devsel, latency 168, IRQ 3
        Memory at 20001000 (32-bit, non-prefetchable)
        Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
        Memory window 0: 20400000-207ff000 (prefetchable)
        Memory window 1: 20800000-20bff000
        I/O window 0: 00004000-000040ff
        I/O window 1: 00004400-000044ff
        16-bit legacy interface ports at 0001
-------------- next part --------------
A non-text attachment was scrubbed...
Name: yenta_lock_up.patch
Type: text/x-diff
Size: 558 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-pcmcia/attachments/20050428/0f06d7de/yenta_lock_up.bin


More information about the linux-pcmcia mailing list