Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31f58e31 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[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: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 1e6e9754
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -114,14 +114,11 @@ static void pulse8_irq_work_handler(struct work_struct *work)
		cec_transmit_done(pulse8->adap, CEC_TX_STATUS_OK,
		cec_transmit_done(pulse8->adap, CEC_TX_STATUS_OK,
				  0, 0, 0, 0);
				  0, 0, 0, 0);
		break;
		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:
	case MSGCODE_TRANSMIT_FAILED_ACK:
		cec_transmit_done(pulse8->adap, CEC_TX_STATUS_NACK,
		cec_transmit_done(pulse8->adap, CEC_TX_STATUS_NACK,
				  0, 1, 0, 0);
				  0, 1, 0, 0);
		break;
		break;
	case MSGCODE_TRANSMIT_FAILED_LINE:
	case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA:
	case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA:
	case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
	case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
		cec_transmit_done(pulse8->adap, CEC_TX_STATUS_ERROR,
		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:
		case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
			schedule_work(&pulse8->work);
			schedule_work(&pulse8->work);
			break;
			break;
		case MSGCODE_HIGH_ERROR:
		case MSGCODE_LOW_ERROR:
		case MSGCODE_RECEIVE_FAILED:
		case MSGCODE_TIMEOUT_ERROR:
		case MSGCODE_TIMEOUT_ERROR:
			break;
			break;
		case MSGCODE_COMMAND_ACCEPTED:
		case MSGCODE_COMMAND_ACCEPTED: