From 53c019c2ebf958765fc2fcdcd224263319739937 Mon Sep 17 00:00:00 2001 From: Tao Zeng Date: Thu, 03 Dec 2015 07:00:18 +0000 Subject: PD#116255: Make AO CEC support both TX and RX Change-Id: I6a2f5bb00e242114ae4a3adc527686019770cf64 --- diff --git a/hdmi_cec.c b/hdmi_cec.c index 71c53df..9ef9d23 100644 --- a/hdmi_cec.c +++ b/hdmi_cec.c @@ -58,9 +58,6 @@ #define E(format, args...) ALOGE("[%s]"format, __func__, ##args) -#define CEC_RX 0 -#define CEC_TX 1 - #define CEC_FILE "/dev/cec" #define MAX_PORT 32 @@ -482,6 +479,7 @@ static int open_cec( const struct hw_module_t* module, char const *name, struct hw_device_t **device ) { char value[PROPERTY_VALUE_MAX] = {}; + int ret; D("name:%s\n", name); hal_info = malloc(sizeof(*hal_info)); @@ -500,9 +498,9 @@ static int open_cec( const struct hw_module_t* module, char const *name, property_get("ro.hdmi.device_type", value, "0"); D("get ro.hdmi.device_type:%s\n", value); if (value[0] == '4') { - hal_info->device_type = CEC_TX; + hal_info->device_type = DEV_TYPE_TX; } else { - hal_info->device_type = CEC_RX; + hal_info->device_type = DEV_TYPE_RX; } hdmi_cec_device_t *dev = malloc(sizeof(hdmi_cec_device_t)); @@ -542,6 +540,7 @@ static int open_cec( const struct hw_module_t* module, char const *name, E("can't open %s\n", CEC_FILE); return -EINVAL; } + ioctl(hal_info->fd, CEC_IOC_SET_DEV_TYPE, hal_info->device_type); pthread_create(&hal_info->ThreadId, NULL, cec_rx_loop, hal_info); D("creat thread:%ld for poll cec message, fd:%d\n", diff --git a/hdmi_cec.h b/hdmi_cec.h index 9738675..fd8cde2 100644 --- a/hdmi_cec.h +++ b/hdmi_cec.h @@ -15,10 +15,14 @@ #define CEC_IOC_GET_CONNECT_STATUS _IOR(CEC_IOC_MAGIC, 0x0A, uint32_t) #define CEC_IOC_ADD_LOGICAL_ADDR _IOW(CEC_IOC_MAGIC, 0x0B, uint32_t) #define CEC_IOC_CLR_LOGICAL_ADDR _IOW(CEC_IOC_MAGIC, 0x0C, uint32_t) +#define CEC_IOC_SET_DEV_TYPE _IOW(CEC_IOC_MAGIC, 0x0D, uint32_t) #define CEC_FAIL_NONE 0 #define CEC_FAIL_NACK 1 #define CEC_FAIL_BUSY 2 #define CEC_FAIL_OTHER 3 +#define DEV_TYPE_RX 0 +#define DEV_TYPE_TX 4 + #endif /* __HDMI_CEC_H__ */ -- cgit