This adds support for kernel 4.1 and removes kernel 4.0. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 46166
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/drivers/pcmcia/yenta_socket.c
 | 
						|
+++ b/drivers/pcmcia/yenta_socket.c
 | 
						|
@@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru
 | 
						|
 	 * Probe for usable interrupts using the force
 | 
						|
 	 * register to generate bogus card status events.
 | 
						|
 	 */
 | 
						|
+#ifndef CONFIG_BCM47XX
 | 
						|
+	/* WRT54G3G does not like this */
 | 
						|
 	cb_writel(socket, CB_SOCKET_EVENT, -1);
 | 
						|
 	cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
 | 
						|
 	reg = exca_readb(socket, I365_CSCINT);
 | 
						|
@@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru
 | 
						|
 	}
 | 
						|
 	cb_writel(socket, CB_SOCKET_MASK, 0);
 | 
						|
 	exca_writeb(socket, I365_CSCINT, reg);
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 	mask = probe_irq_mask(val) & 0xffff;
 | 
						|
 
 | 
						|
@@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie
 | 
						|
 	else
 | 
						|
 		socket->socket.irq_mask = 0;
 | 
						|
 
 | 
						|
+	/* irq mask probing is broken for the WRT54G3G */
 | 
						|
+	if (socket->socket.irq_mask == 0)
 | 
						|
+		socket->socket.irq_mask = 0x6f8;
 | 
						|
+
 | 
						|
 	dev_printk(KERN_INFO, &socket->dev->dev,
 | 
						|
 		   "ISA IRQ mask 0x%04x, PCI irq %d\n",
 | 
						|
 		   socket->socket.irq_mask, socket->cb_irq);
 | 
						|
@@ -1255,6 +1262,15 @@ static int yenta_probe(struct pci_dev *d
 | 
						|
 	dev_printk(KERN_INFO, &dev->dev,
 | 
						|
 		   "Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));
 | 
						|
 
 | 
						|
+	/* Generate an interrupt on card insert/remove */
 | 
						|
+	config_writew(socket, CB_SOCKET_MASK, CB_CSTSMASK | CB_CDMASK);
 | 
						|
+
 | 
						|
+	/* Set up Multifunction Routing Status Register */
 | 
						|
+	config_writew(socket, 0x8C, 0x1000 /* MFUNC3 to GPIO3 */ | 0x2 /* MFUNC0 to INTA */);
 | 
						|
+
 | 
						|
+	/* Switch interrupts to parallelized */
 | 
						|
+	config_writeb(socket, 0x92, 0x64);
 | 
						|
+
 | 
						|
 	yenta_fixup_parent_bridge(dev->subordinate);
 | 
						|
 
 | 
						|
 	/* Register it with the pcmcia layer.. */
 |