msm: display: HDMI: Driver support for CEC feature

Driver implementation of HDMI CEC feature. Support includes
CEC frame send and frame receive. Support added for sysfs interface
for CEC daemon to interact with the driver for reading and writing frames.

sysfs interface
/sys/class/graphics/fb1/cec
        Read: CEC block state.
        Write: Enable/Disable CEC block.

/sys/class/graphics/fb1/cec_logical_addr
        Read: Print CEC logical address
        Write: Set CEC logical address which is used for
               addressing CEC messages to and from MSM

/sys/class/graphics/fb1/cec_rd_frame
        Read: Read rcvd CEC message from message queue.
              If queue is empty -EBUSY.
              If CEC block is disabled -EPERM.
        Write: N/A

/sys/class/graphics/fb1/cec_wr_frame
        Read: N/A
        Write: Write to send CEC message.
               If CEC line arbitration fault/no ack -EINVAL.
               If CEC block is disabled -EPERM.

Change-Id: I62ce418b7f1e887550319081cc4b78fbd564a6f5
Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
diff --git a/drivers/video/msm/external_common.h b/drivers/video/msm/external_common.h
index 30a8f48..f629d0f 100644
--- a/drivers/video/msm/external_common.h
+++ b/drivers/video/msm/external_common.h
@@ -225,6 +225,7 @@
 /* The external interface driver needs to initialize the common state. */
 extern struct external_common_state_type *external_common_state;
 extern struct mutex external_common_state_hpd_mutex;
+extern struct mutex hdmi_msm_state_mutex;
 
 #ifdef CONFIG_FB_MSM_HDMI_COMMON
 #define VFRMT_NOT_SUPPORTED(VFRMT) \