pcmcia: only keep saved I365_CSCINT flag if there is no PCI irq
Keeping the saved I365_CSCINT flag around breaks PCMCIA on some system, and is only needed on a few systems to get PCMCIA to work. This patch allows PCMCIA to work on both types, and it fixes https://bugzilla.kernel.org/show_bug.cgi?id=16015 Reported-by: Justin P. Mattock <justinmattock@gmail.com> CC: <stable@kernel.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
Родитель
e44a21b726
Коммит
02caa56e4b
|
@ -975,7 +975,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 +989,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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче