Skip to content

Commit

Permalink
[media] cx23885, cimax2.c: Fix case of two CAM insertion irq
Browse files Browse the repository at this point in the history
For example  boot up with two CAM inserted.

Signed-off-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Igor M. Liplianin authored and Mauro Carvalho Chehab committed Dec 31, 2010
1 parent 21d3301 commit ebce9a3
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions drivers/media/video/cx23885/cimax2.c
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ static void netup_read_ci_status(struct work_struct *work)
DVB_CA_EN50221_POLL_CAM_READY;
else
state->status = 0;
};
}
}

/* CI irq handler */
Expand All @@ -377,16 +377,24 @@ int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status)
struct cx23885_tsport *port = NULL;
struct netup_ci_state *state = NULL;

if (pci_status & PCI_MSK_GPIO0)
port = &dev->ts1;
else if (pci_status & PCI_MSK_GPIO1)
port = &dev->ts2;
else /* who calls ? */
ci_dbg_print("%s:\n", __func__);

if (0 == (pci_status & (PCI_MSK_GPIO0 | PCI_MSK_GPIO1)))
return 0;

state = port->port_priv;
if (pci_status & PCI_MSK_GPIO0) {
port = &dev->ts1;
state = port->port_priv;
schedule_work(&state->work);
ci_dbg_print("%s: Wakeup CI0\n", __func__);
}

schedule_work(&state->work);
if (pci_status & PCI_MSK_GPIO1) {
port = &dev->ts2;
state = port->port_priv;
schedule_work(&state->work);
ci_dbg_print("%s: Wakeup CI1\n", __func__);
}

return 1;
}
Expand Down

0 comments on commit ebce9a3

Please sign in to comment.