]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Jun 2010 16:55:21 +0000 (09:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Jun 2010 16:55:21 +0000 (09:55 -0700)
* 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
  pcmcia: avoid validate_cis failure on CIS override
  pcmcia: dev_node removal bugfix
  pcmcia: yenta_socket.c Remove extra #ifdef CONFIG_YENTA_TI
  pcmcia: only keep saved I365_CSCINT flag if there is no PCI irq

drivers/net/pcmcia/smc91c92_cs.c
drivers/pcmcia/ds.c
drivers/pcmcia/yenta_socket.c

index 7b6fe89f9db0aa4c3f5373a25465efaf8d658ad3..64e6a84bbbbee840c0258a5d29736a033f34ab81 100644 (file)
@@ -322,6 +322,7 @@ static int smc91c92_probe(struct pcmcia_device *link)
        return -ENOMEM;
     smc = netdev_priv(dev);
     smc->p_dev = link;
+    link->priv = dev;
 
     spin_lock_init(&smc->lock);
     link->io.NumPorts1 = 16;
index 7ef7adee5e4f1c2f22b6ff27658950d3139dd0d0..9fc3398455388d04159ca1f43ac2524d3c143c01 100644 (file)
@@ -671,6 +671,7 @@ static void pcmcia_requery(struct pcmcia_socket *s)
                if (old_funcs != new_funcs) {
                        /* we need to re-start */
                        pcmcia_card_remove(s, NULL);
+                       s->functions = 0;
                        pcmcia_card_add(s);
                }
        }
index 424e576f3acba7a2b7c626f52e48e7454125fc00..f1d41374eea7a32426e8acfeadc903b1901bee22 100644 (file)
@@ -880,6 +880,12 @@ static struct cardbus_type cardbus_type[] = {
                .restore_state  = ti_restore_state,
                .sock_init      = ti_init,
        },
+       [CARDBUS_TYPE_ENE]      = {
+               .override       = ene_override,
+               .save_state     = ti_save_state,
+               .restore_state  = ti_restore_state,
+               .sock_init      = ti_init,
+       },
 #endif
 #ifdef CONFIG_YENTA_RICOH
        [CARDBUS_TYPE_RICOH]    = {
@@ -902,14 +908,6 @@ static struct cardbus_type cardbus_type[] = {
                .restore_state  = o2micro_restore_state,
        },
 #endif
-#ifdef CONFIG_YENTA_TI
-       [CARDBUS_TYPE_ENE]      = {
-               .override       = ene_override,
-               .save_state     = ti_save_state,
-               .restore_state  = ti_restore_state,
-               .sock_init      = ti_init,
-       },
-#endif
 };
 
 
@@ -975,7 +973,7 @@ static irqreturn_t yenta_probe_handler(int irq, void *dev_id)
 /* probes the PCI interrupt, use only on override functions */
 static int yenta_probe_cb_irq(struct yenta_socket *socket)
 {
-       u8 reg;
+       u8 reg = 0;
 
        if (!socket->cb_irq)
                return -1;
@@ -989,7 +987,8 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket)
        }
 
        /* generate interrupt, wait */
-       reg = exca_readb(socket, I365_CSCINT);
+       if (!socket->dev->irq)
+               reg = exca_readb(socket, I365_CSCINT);
        exca_writeb(socket, I365_CSCINT, reg | I365_CSC_STSCHG);
        cb_writel(socket, CB_SOCKET_EVENT, -1);
        cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);