diff options
Diffstat (limited to 'linux/drivers/media/dvb/ttpci')
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget-av.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/ttpci/budget-av.c b/linux/drivers/media/dvb/ttpci/budget-av.c index b6babd21a..ee5f0bc53 100644 --- a/linux/drivers/media/dvb/ttpci/budget-av.c +++ b/linux/drivers/media/dvb/ttpci/budget-av.c @@ -230,7 +230,7 @@ static int ciintf_slot_ts_enable (struct dvb_ca_en50221 *ca, int slot) return 0; } -static int ciintf_poll_slot_status (struct dvb_ca_en50221 *ca, int slot) +static int ciintf_poll_slot_status (struct dvb_ca_en50221 *ca, int slot, int open) { struct budget_av *budget_av = (struct budget_av *) ca->data; struct saa7146_dev *saa = budget_av->budget.dev; @@ -247,6 +247,9 @@ static int ciintf_poll_slot_status (struct dvb_ca_en50221 *ca, int slot) if (cam) budget_av->slot_status = 1; + } else if (!open) { + if (ciintf_read_cam_control(ca, 0, 0) == -ETIMEDOUT) + budget_av->slot_status = 0; } if (budget_av->slot_status == 1) |