commit 83ee92e168bc5d744f96961254ffac95a6260220 Author: wolfgar Date: Sat Sep 13 01:58:08 2014 +0200 No longer try to get link status directly in this driver Only consume the event sent by mxc-hdmi driver diff --git a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c index f8b3f7a..c30237e 100644 --- a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c +++ b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c @@ -67,7 +67,6 @@ struct hdmi_cec_priv { u8 msg_len; int tx_answer; u16 latest_cec_stat; - u8 link_status; spinlock_t irq_lock; struct delayed_work hdmi_cec_work; struct mutex lock; @@ -96,7 +95,6 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data) struct hdmi_cec_priv *hdmi_cec = data; u16 cec_stat = 0; unsigned long flags; - u8 phy_stat0; irqreturn_t ret = IRQ_HANDLED; spin_lock_irqsave(&hdmi_cec->irq_lock, flags); @@ -105,7 +103,6 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data) cec_stat = hdmi_readb(HDMI_IH_CEC_STAT0); hdmi_writeb(cec_stat, HDMI_IH_CEC_STAT0); - phy_stat0 = hdmi_readb(HDMI_PHY_STAT0) & 0x02; if ((cec_stat & (HDMI_IH_CEC_STAT0_ERROR_INIT | \ HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | \ @@ -113,14 +110,7 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data) ret = IRQ_NONE; cec_stat = 0; } - if (hdmi_cec->link_status ^ phy_stat0) { - /* HPD value changed */ - hdmi_cec->link_status = phy_stat0; - if (hdmi_cec->link_status) - cec_stat |= 0x80; /* Connected */ - else - cec_stat |= 0x100; /* Disconnected */ - } + pr_debug("HDMI CEC interrupt received\n"); hdmi_cec->latest_cec_stat = cec_stat ; @@ -357,7 +347,6 @@ static ssize_t hdmi_cec_write(struct file *file, const char __user *buf, return ret; } - void hdmi_cec_start_device(void) { u8 val; @@ -373,7 +362,6 @@ void hdmi_cec_start_device(void) val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL | HDMI_IH_CEC_STAT0_ARB_LOST; hdmi_writeb(val, HDMI_CEC_MASK); hdmi_writeb(val, HDMI_IH_MUTE_CEC_STAT0); - hdmi_cec_data.link_status = hdmi_readb(HDMI_PHY_STAT0) & 0x02; hdmi_cec_data.cec_state = true; } EXPORT_SYMBOL(hdmi_cec_start_device);