|
@@ -699,16 +699,31 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
|
|
else
|
|
|
msg->flags = 0;
|
|
|
|
|
|
+ if (msg->len > 1 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
|
|
+ msg->msg[2] = adap->phys_addr >> 8;
|
|
|
+ msg->msg[3] = adap->phys_addr & 0xff;
|
|
|
+ }
|
|
|
+
|
|
|
/* Sanity checks */
|
|
|
if (msg->len == 0 || msg->len > CEC_MAX_MSG_SIZE) {
|
|
|
dprintk(1, "%s: invalid length %d\n", __func__, msg->len);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
+
|
|
|
+ memset(msg->msg + msg->len, 0, sizeof(msg->msg) - msg->len);
|
|
|
+
|
|
|
+ if (msg->timeout)
|
|
|
+ dprintk(2, "%s: %*ph (wait for 0x%02x%s)\n",
|
|
|
+ __func__, msg->len, msg->msg, msg->reply,
|
|
|
+ !block ? ", nb" : "");
|
|
|
+ else
|
|
|
+ dprintk(2, "%s: %*ph%s\n",
|
|
|
+ __func__, msg->len, msg->msg, !block ? " (nb)" : "");
|
|
|
+
|
|
|
if (msg->timeout && msg->len == 1) {
|
|
|
- dprintk(1, "%s: can't reply for poll msg\n", __func__);
|
|
|
+ dprintk(1, "%s: can't reply to poll msg\n", __func__);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
- memset(msg->msg + msg->len, 0, sizeof(msg->msg) - msg->len);
|
|
|
if (msg->len == 1) {
|
|
|
if (cec_msg_destination(msg) == 0xf) {
|
|
|
dprintk(1, "%s: invalid poll message\n", __func__);
|
|
@@ -768,19 +783,6 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
|
|
if (!msg->sequence)
|
|
|
msg->sequence = ++adap->sequence;
|
|
|
|
|
|
- if (msg->len > 1 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
|
|
- msg->msg[2] = adap->phys_addr >> 8;
|
|
|
- msg->msg[3] = adap->phys_addr & 0xff;
|
|
|
- }
|
|
|
-
|
|
|
- if (msg->timeout)
|
|
|
- dprintk(2, "%s: %*ph (wait for 0x%02x%s)\n",
|
|
|
- __func__, msg->len, msg->msg, msg->reply,
|
|
|
- !block ? ", nb" : "");
|
|
|
- else
|
|
|
- dprintk(2, "%s: %*ph%s\n",
|
|
|
- __func__, msg->len, msg->msg, !block ? " (nb)" : "");
|
|
|
-
|
|
|
data->msg = *msg;
|
|
|
data->fh = fh;
|
|
|
data->adap = adap;
|