aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/pulse8-cec/pulse8-cec.c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2016-08-12 06:46:06 -0300
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-08-22 14:04:09 -0300
commit31f58e31dc0e170e117a83584103921269b7581b (patch)
tree58036a32968d3bc12831c53b4c7e430f92f548c7 /drivers/staging/media/pulse8-cec/pulse8-cec.c
parent[media] pulse8-cec: set correct Signal Free Time (diff)
downloadlinux-dev-31f58e31dc0e170e117a83584103921269b7581b.tar.xz
linux-dev-31f58e31dc0e170e117a83584103921269b7581b.zip
[media] pulse8-cec: fix error handling
Support more error codes and fix a bug where MSGCODE_TRANSMIT_FAILED_LINE was mapped to CEC_TX_STATUS_ARB_LOST, which is wrong. Thanks to Pulse-Eight for providing me with the information needed to handle this correctly (I hope). Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/staging/media/pulse8-cec/pulse8-cec.c')
-rw-r--r--drivers/staging/media/pulse8-cec/pulse8-cec.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/media/pulse8-cec/pulse8-cec.c b/drivers/staging/media/pulse8-cec/pulse8-cec.c
index 28f853c80b19..ed8bd95ad6d0 100644
--- a/drivers/staging/media/pulse8-cec/pulse8-cec.c
+++ b/drivers/staging/media/pulse8-cec/pulse8-cec.c
@@ -114,14 +114,11 @@ static void pulse8_irq_work_handler(struct work_struct *work)
cec_transmit_done(pulse8->adap, CEC_TX_STATUS_OK,
0, 0, 0, 0);
break;
- case MSGCODE_TRANSMIT_FAILED_LINE:
- cec_transmit_done(pulse8->adap, CEC_TX_STATUS_ARB_LOST,
- 1, 0, 0, 0);
- break;
case MSGCODE_TRANSMIT_FAILED_ACK:
cec_transmit_done(pulse8->adap, CEC_TX_STATUS_NACK,
0, 1, 0, 0);
break;
+ case MSGCODE_TRANSMIT_FAILED_LINE:
case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA:
case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
cec_transmit_done(pulse8->adap, CEC_TX_STATUS_ERROR,
@@ -170,6 +167,9 @@ static irqreturn_t pulse8_interrupt(struct serio *serio, unsigned char data,
case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
schedule_work(&pulse8->work);
break;
+ case MSGCODE_HIGH_ERROR:
+ case MSGCODE_LOW_ERROR:
+ case MSGCODE_RECEIVE_FAILED:
case MSGCODE_TIMEOUT_ERROR:
break;
case MSGCODE_COMMAND_ACCEPTED: