diff options
| -rw-r--r-- | drivers/media/video/cx23885/cimax2.c | 24 |
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 | } |
