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
This commit is contained in:
Коммит
f1f6ea3522
|
@ -322,6 +322,7 @@ static int smc91c92_probe(struct pcmcia_device *link)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
smc = netdev_priv(dev);
|
smc = netdev_priv(dev);
|
||||||
smc->p_dev = link;
|
smc->p_dev = link;
|
||||||
|
link->priv = dev;
|
||||||
|
|
||||||
spin_lock_init(&smc->lock);
|
spin_lock_init(&smc->lock);
|
||||||
link->io.NumPorts1 = 16;
|
link->io.NumPorts1 = 16;
|
||||||
|
|
|
@ -671,6 +671,7 @@ static void pcmcia_requery(struct pcmcia_socket *s)
|
||||||
if (old_funcs != new_funcs) {
|
if (old_funcs != new_funcs) {
|
||||||
/* we need to re-start */
|
/* we need to re-start */
|
||||||
pcmcia_card_remove(s, NULL);
|
pcmcia_card_remove(s, NULL);
|
||||||
|
s->functions = 0;
|
||||||
pcmcia_card_add(s);
|
pcmcia_card_add(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -880,6 +880,12 @@ static struct cardbus_type cardbus_type[] = {
|
||||||
.restore_state = ti_restore_state,
|
.restore_state = ti_restore_state,
|
||||||
.sock_init = ti_init,
|
.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
|
#endif
|
||||||
#ifdef CONFIG_YENTA_RICOH
|
#ifdef CONFIG_YENTA_RICOH
|
||||||
[CARDBUS_TYPE_RICOH] = {
|
[CARDBUS_TYPE_RICOH] = {
|
||||||
|
@ -902,14 +908,6 @@ static struct cardbus_type cardbus_type[] = {
|
||||||
.restore_state = o2micro_restore_state,
|
.restore_state = o2micro_restore_state,
|
||||||
},
|
},
|
||||||
#endif
|
#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 */
|
/* probes the PCI interrupt, use only on override functions */
|
||||||
static int yenta_probe_cb_irq(struct yenta_socket *socket)
|
static int yenta_probe_cb_irq(struct yenta_socket *socket)
|
||||||
{
|
{
|
||||||
u8 reg;
|
u8 reg = 0;
|
||||||
|
|
||||||
if (!socket->cb_irq)
|
if (!socket->cb_irq)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -989,7 +987,8 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* generate interrupt, wait */
|
/* 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);
|
exca_writeb(socket, I365_CSCINT, reg | I365_CSC_STSCHG);
|
||||||
cb_writel(socket, CB_SOCKET_EVENT, -1);
|
cb_writel(socket, CB_SOCKET_EVENT, -1);
|
||||||
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
|
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче