summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJinsuk Kim <jinsukkim@google.com>2014-04-29 21:34:58 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-04-29 21:34:58 +0000
commit85425cfe8937cc82722e6495b3eb4573db461eb7 (patch)
tree98a3f1918c93e94d9289bdc77e2a08982cca4bb5
parent6322562d0f1387c08109f706f381a3818114f91f (diff)
parentc2a0b2484ab80351ad18fb0b8337a8150e656b93 (diff)
downloadhardware_libhardware-85425cfe8937cc82722e6495b3eb4573db461eb7.zip
hardware_libhardware-85425cfe8937cc82722e6495b3eb4573db461eb7.tar.gz
hardware_libhardware-85425cfe8937cc82722e6495b3eb4573db461eb7.tar.bz2
am c2a0b248: Merge "Update HDMI-CEC HAL interface definition" into klp-modular-dev
* commit 'c2a0b2484ab80351ad18fb0b8337a8150e656b93': Update HDMI-CEC HAL interface definition
-rw-r--r--include/hardware/hdmi_cec.h42
1 files changed, 17 insertions, 25 deletions
diff --git a/include/hardware/hdmi_cec.h b/include/hardware/hdmi_cec.h
index de6c70c..f049952 100644
--- a/include/hardware/hdmi_cec.h
+++ b/include/hardware/hdmi_cec.h
@@ -221,34 +221,25 @@ typedef struct hdmi_cec_device {
struct hw_device_t common;
/*
- * (*allocate_logical_address)() allocates a new logical address
- * for a given device type. The address is written to addr. The HAL
- * implementation is also expected to configure itself to start receiving
- * the messages addressed to the allocated one. If the address has been already
- * allocated, it should simply return the allocated address without attempting
- * the allocation again. If allocation is not successful the addr will be
- * set to CEC_ADDR_UNREGISTERED.
+ * (*add_logical_address)() passes the logical address that will be used in this system.
+ *
+ * HAL may use it to configure the hardware so that the CEC commands addressed
+ * the given logical address can be filtered in. This method can be called as many times
+ * as necessary in order to support multiple logical devices. addr should be in the range
+ * of valid logical addresses for the call to succeed.
*
* Returns 0 on success or -errno on error.
*/
- int (*allocate_logical_address)(const struct hdmi_cec_device* dev,
- cec_device_type_t device_type, cec_logical_address_t* addr);
+ int (*add_logical_address)(const struct hdmi_cec_device* dev, cec_logical_address_t addr);
/*
- * (*get_logical_address)() returns the logical address already allocated
- * for the device of the given type. It is necessary to call this function
- * when HAL implementation, without being triggered by service, updated
- * the address by itself. Such situation happens when an event like
- * hotplug occurs, since it is possible the HDMI network topology or
- * the port which the device was connected to might have changed while it
- * was unplugged. In response to such events, the service is required to
- * call this function to get the updated address. The address is written
- * to addr.
+ * (*clear_logical_address)() tells HAL to reset all the logical addresses.
*
- * Returns 0 on success or -errno on error.
+ * It is used when the system doesn't need to process CEC command any more, hence to tell
+ * HAL to stop receiving commands from the CEC bus, and change the state back to the beginning.
*/
- int (*get_logical_address)(const struct hdmi_cec_device* dev,
- cec_device_type_t device_type, cec_logical_address_t* addr);
+ void (*clear_logical_address)(const struct hdmi_cec_device* dev);
+
/*
* (*get_physical_address)() returns the CEC physical address. The
* address is written to addr.
@@ -263,7 +254,10 @@ typedef struct hdmi_cec_device {
int (*get_physical_address)(const struct hdmi_cec_device* dev, uint16_t* addr);
/*
- * (*send_message)() transmits HDMI-CEC message to other HDMI device.
+ * (*send_message)() transmits HDMI-CEC message to other HDMI device. The method should be
+ * designed to return in a certain amount of time not hanging forever, which can happen
+ * if CEC signal line is pulled low for some reason. HAL implementation should take
+ * the situation into account so as not to wait forever for the message to get sent out.
*
* Returns 0 on success or -errno on error.
*/
@@ -280,9 +274,7 @@ typedef struct hdmi_cec_device {
event_callback_t callback, void* arg);
/*
- * (*get_version)() returns the CEC version supported by underlying
- * hardware. The version this HAL interface is based on is 0x04,
- * which corresponds to 1.3a.
+ * (*get_version)() returns the CEC version supported by underlying hardware.
*/
void (*get_version)(const struct hdmi_cec_device* dev, int* version);