Skip to contentSkip to conversation

Fix PCMCIA card detection

PATCH In review Russell King 3 participants 3 messages Oct 28, 2003 – Oct 30, 2003 Pcmcia

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix PCMCIA card detection

I'm intending sending Linus the following patch to fix PCMCIA card detection about 24 hours (on 21:26 GMT on Oct 29th.) A couple of people have tested it and reported that it fixes their card detection problems. I'd like people _without_ this problem to try the patch and report if they see any breakages.

Idea from David Hinds.

Some PCMCIA/Cardbus controllers seem to get upset when we ask them to re-do card interrogation - they miss the next insertion event.

We therefore avoid forcing needless card interrogations if a card has already been succesfully detected and interrogated.

drivers/pcmcia/yenta_socket.c +5 -1
diff -Nru a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
@@ -461,6 +461,7 @@
 static int yenta_sock_init(struct pcmcia_socket *sock)
 {
 	struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
+	u32 state;
 	u16 bridge;
 
 	bridge = config_readw(socket, CB_BRIDGE_CONTROL) & ~CB_BRIDGE_INTR;
@@ -472,7 +473,10 @@
 	exca_writeb(socket, I365_GENCTL, 0x00);
 
 	/* Redo card voltage interrogation */
-	cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);
+	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);
 
 	yenta_clear_maps(socket);
 
Signature · 4 lines
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core
#1 lore raw
Quoted 5 lines · Russell King

I'm intending sending Linus the following patch to fix PCMCIA card detection about 24 hours (on 21:26 GMT on Oct 29th.) A couple of people have tested it and reported that it fixes their card detection problems. I'd like people _without_ this problem to try the patch and report if they see any breakages.

There seems to be no problems while using this patch.

00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:09.0 Multimedia audio controller: Yamaha Corporation YMF-754 [DS-1E Audio Controller]
00:0c.0 CardBus bridge: Texas Instruments PCI4450 PC card Cardbus Controller
00:0c.1 CardBus bridge: Texas Instruments PCI4450 PC card Cardbus Controller
00:0c.2 FireWire (IEEE 1394): Texas Instruments: Unknown device 8011 00:0f.0 Communication controller: Lucent Microelectronics LT WinModem 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)
02:00.0 Ethernet controller: 3Com Corporation 3CCFE575CT Cyclone CardBus (rev 10)

#2 lore raw
In reply to Russell King
Quoted 5 lines · Russell King

I'm intending sending Linus the following patch to fix PCMCIA card detection about 24 hours (on 21:26 GMT on Oct 29th.) A couple of people have tested it and reported that it fixes their card detection problems. I'd like people _without_ this problem to try the patch and report if they see any breakages.

No problems for me. 2.6.0-test9-bk3 with the patch for IRQ routing on TI bridges.

01:00.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 01)

Signature · 2 lines
Regards,
Pavel Roskin