aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/cx23885/cimax2.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/media/video/cx23885/cimax2.c b/drivers/media/video/cx23885/cimax2.c
index c95e7bc14745..209b971bd267 100644
--- a/drivers/media/video/cx23885/cimax2.c
+++ b/drivers/media/video/cx23885/cimax2.c
@@ -368,7 +368,7 @@ static void netup_read_ci_status(struct work_struct *work)
368 DVB_CA_EN50221_POLL_CAM_READY; 368 DVB_CA_EN50221_POLL_CAM_READY;
369 else 369 else
370 state->status = 0; 370 state->status = 0;
371 }; 371 }
372} 372}
373 373
374/* CI irq handler */ 374/* CI irq handler */
@@ -377,16 +377,24 @@ int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status)
377 struct cx23885_tsport *port = NULL; 377 struct cx23885_tsport *port = NULL;
378 struct netup_ci_state *state = NULL; 378 struct netup_ci_state *state = NULL;
379 379
380 if (pci_status & PCI_MSK_GPIO0) 380 ci_dbg_print("%s:\n", __func__);
381 port = &dev->ts1; 381
382 else if (pci_status & PCI_MSK_GPIO1) 382 if (0 == (pci_status & (PCI_MSK_GPIO0 | PCI_MSK_GPIO1)))
383 port = &dev->ts2;
384 else /* who calls ? */
385 return 0; 383 return 0;
386 384
387 state = port->port_priv; 385 if (pci_status & PCI_MSK_GPIO0) {
386 port = &dev->ts1;
387 state = port->port_priv;
388 schedule_work(&state->work);
389 ci_dbg_print("%s: Wakeup CI0\n", __func__);
390 }
388 391
389 schedule_work(&state->work); 392 if (pci_status & PCI_MSK_GPIO1) {
393 port = &dev->ts2;
394 state = port->port_priv;
395 schedule_work(&state->work);
396 ci_dbg_print("%s: Wakeup CI1\n", __func__);
397 }
390 398
391 return 1; 399 return 1;
392} 400}