|
@@ -1442,12 +1442,15 @@ static int cec_receive_notify(struct cec_adapter *adap, struct cec_msg *msg,
|
|
|
|
|
|
switch (msg->msg[1]) {
|
|
|
/* The following messages are processed but still passed through */
|
|
|
- case CEC_MSG_REPORT_PHYSICAL_ADDR:
|
|
|
- adap->phys_addrs[init_laddr] =
|
|
|
- (msg->msg[2] << 8) | msg->msg[3];
|
|
|
- dprintk(1, "Reported physical address %04x for logical address %d\n",
|
|
|
- adap->phys_addrs[init_laddr], init_laddr);
|
|
|
+ case CEC_MSG_REPORT_PHYSICAL_ADDR: {
|
|
|
+ u16 pa = (msg->msg[2] << 8) | msg->msg[3];
|
|
|
+
|
|
|
+ if (!from_unregistered)
|
|
|
+ adap->phys_addrs[init_laddr] = pa;
|
|
|
+ dprintk(1, "Reported physical address %x.%x.%x.%x for logical address %d\n",
|
|
|
+ cec_phys_addr_exp(pa), init_laddr);
|
|
|
break;
|
|
|
+ }
|
|
|
|
|
|
case CEC_MSG_USER_CONTROL_PRESSED:
|
|
|
if (!(adap->capabilities & CEC_CAP_RC))
|