OSDN Git Service

Implement logical address allocation logic for HDMI CEC.
authorJungshik Jang <jayjang@google.com>
Wed, 30 Apr 2014 05:31:02 +0000 (14:31 +0900)
committerJungshik Jang <jayjang@google.com>
Fri, 2 May 2014 01:50:08 +0000 (10:50 +0900)
commit3f74ab0ee0ec27a6be31cdb5a4258f4f25909ba8
treeae78bf2ad38d7782e86c6e49510a7945e504b129
parent8822d4befdb30452ad4276b42d89062938b51a1f
Implement logical address allocation logic for HDMI CEC.

Logical address in CEC is to distinguish each logical device from others.
In order to allocate logical address for new device, CEC sends
<Polling Message> to CEC bus. <Polling Message> is a CEC message
which has the same address for both source and destination without
body frame. (10bits).
CEC allows one and more logical address for a device type.
For example, there are 3 logical address defined for recorder device(1, 2, 9).
Among logical address candidates for the given device type, CEC scans
first the previous logical address (preferred logical address) of device.
If a device has not been allocated any logical address, preferred address
will be 15 (Unregistered), which means scan address from the minimum address
number of type. For example for recorder device, it starts from 1.
If no devices acks to the <Polling Message> during scan, it will be the
logical address of the device.
Since logical address is determined by a series of sending <Polling Message>
it happens in IO thread with separate allocate logical address message
instead of individual sendCommand message.

Along with this, updated ADDR_FREE_USE(14) to ADDR_SPECIFIC_USE(14)
which is revised name on HDMI 1.4.

Change-Id: Ic96dcdbe4aaa3789cfed0352a88ca75369335a98
api/current.txt
core/java/android/hardware/hdmi/HdmiCec.java
services/core/java/com/android/server/hdmi/HdmiCecController.java