diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-11 12:55:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-11 12:55:21 -0400 |
commit | f1f6ea352257e0df33cf0184ba777c293cb6f1d6 (patch) | |
tree | bff9547a1f45db619848c5de62033cb48e61c73b | |
parent | 63c70a0d7b59bac08bd14cd24c36f76aafc25de6 (diff) | |
parent | b83156b52dd77979cc93bafc2283929532f6f7d0 (diff) |
Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
* '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
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 1 | ||||
-rw-r--r-- | drivers/pcmcia/ds.c | 1 | ||||
-rw-r--r-- | drivers/pcmcia/yenta_socket.c | 19 |
3 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index 7b6fe89f9db0..64e6a84bbbbe 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c | |||
@@ -322,6 +322,7 @@ static int smc91c92_probe(struct pcmcia_device *link) | |||
322 | return -ENOMEM; | 322 | return -ENOMEM; |
323 | smc = netdev_priv(dev); | 323 | smc = netdev_priv(dev); |
324 | smc->p_dev = link; | 324 | smc->p_dev = link; |
325 | link->priv = dev; | ||
325 | 326 | ||
326 | spin_lock_init(&smc->lock); | 327 | spin_lock_init(&smc->lock); |
327 | link->io.NumPorts1 = 16; | 328 | link->io.NumPorts1 = 16; |
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 7ef7adee5e4f..9fc339845538 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -671,6 +671,7 @@ static void pcmcia_requery(struct pcmcia_socket *s) | |||
671 | if (old_funcs != new_funcs) { | 671 | if (old_funcs != new_funcs) { |
672 | /* we need to re-start */ | 672 | /* we need to re-start */ |
673 | pcmcia_card_remove(s, NULL); | 673 | pcmcia_card_remove(s, NULL); |
674 | s->functions = 0; | ||
674 | pcmcia_card_add(s); | 675 | pcmcia_card_add(s); |
675 | } | 676 | } |
676 | } | 677 | } |
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index 424e576f3acb..f1d41374eea7 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c | |||
@@ -880,6 +880,12 @@ static struct cardbus_type cardbus_type[] = { | |||
880 | .restore_state = ti_restore_state, | 880 | .restore_state = ti_restore_state, |
881 | .sock_init = ti_init, | 881 | .sock_init = ti_init, |
882 | }, | 882 | }, |
883 | [CARDBUS_TYPE_ENE] = { | ||
884 | .override = ene_override, | ||
885 | .save_state = ti_save_state, | ||
886 | .restore_state = ti_restore_state, | ||
887 | .sock_init = ti_init, | ||
888 | }, | ||
883 | #endif | 889 | #endif |
884 | #ifdef CONFIG_YENTA_RICOH | 890 | #ifdef CONFIG_YENTA_RICOH |
885 | [CARDBUS_TYPE_RICOH] = { | 891 | [CARDBUS_TYPE_RICOH] = { |
@@ -902,14 +908,6 @@ static struct cardbus_type cardbus_type[] = { | |||
902 | .restore_state = o2micro_restore_state, | 908 | .restore_state = o2micro_restore_state, |
903 | }, | 909 | }, |
904 | #endif | 910 | #endif |
905 | #ifdef CONFIG_YENTA_TI | ||
906 | [CARDBUS_TYPE_ENE] = { | ||
907 | .override = ene_override, | ||
908 | .save_state = ti_save_state, | ||
909 | .restore_state = ti_restore_state, | ||
910 | .sock_init = ti_init, | ||
911 | }, | ||
912 | #endif | ||
913 | }; | 911 | }; |
914 | 912 | ||
915 | 913 | ||
@@ -975,7 +973,7 @@ static irqreturn_t yenta_probe_handler(int irq, void *dev_id) | |||
975 | /* probes the PCI interrupt, use only on override functions */ | 973 | /* probes the PCI interrupt, use only on override functions */ |
976 | static int yenta_probe_cb_irq(struct yenta_socket *socket) | 974 | static int yenta_probe_cb_irq(struct yenta_socket *socket) |
977 | { | 975 | { |
978 | u8 reg; | 976 | u8 reg = 0; |
979 | 977 | ||
980 | if (!socket->cb_irq) | 978 | if (!socket->cb_irq) |
981 | return -1; | 979 | return -1; |
@@ -989,7 +987,8 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket) | |||
989 | } | 987 | } |
990 | 988 | ||
991 | /* generate interrupt, wait */ | 989 | /* generate interrupt, wait */ |
992 | reg = exca_readb(socket, I365_CSCINT); | 990 | if (!socket->dev->irq) |
991 | reg = exca_readb(socket, I365_CSCINT); | ||
993 | exca_writeb(socket, I365_CSCINT, reg | I365_CSC_STSCHG); | 992 | exca_writeb(socket, I365_CSCINT, reg | I365_CSC_STSCHG); |
994 | cb_writel(socket, CB_SOCKET_EVENT, -1); | 993 | cb_writel(socket, CB_SOCKET_EVENT, -1); |
995 | cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK); | 994 | cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK); |