lkml.org 
[lkml]   [2014]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.15 001/139] imx-drm: fix hdmi hotplug detection initial state
    Date
    3.15-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Russell King <rmk+kernel@arm.linux.org.uk>

    commit 98dbeadaf050335df8655d8d9be7a324b6cd896e upstream.

    The initial state at boot is assumed to be disconnected, and we hope
    to receive an interrupt to update the status. Let's be more explicit
    about the current state - reading the PHY status register tells us
    the current level of the hotplug signal, which we can report back in
    the _detect() method.

    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/staging/imx-drm/imx-hdmi.c | 9 +++------
    1 file changed, 3 insertions(+), 6 deletions(-)

    --- a/drivers/staging/imx-drm/imx-hdmi.c
    +++ b/drivers/staging/imx-drm/imx-hdmi.c
    @@ -120,8 +120,6 @@ struct imx_hdmi {
    struct clk *isfr_clk;
    struct clk *iahb_clk;

    - enum drm_connector_status connector_status;
    -
    struct hdmi_data_info hdmi_data;
    int vic;

    @@ -1382,7 +1380,9 @@ static enum drm_connector_status imx_hdm
    {
    struct imx_hdmi *hdmi = container_of(connector, struct imx_hdmi,
    connector);
    - return hdmi->connector_status;
    +
    + return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ?
    + connector_status_connected : connector_status_disconnected;
    }

    static int imx_hdmi_connector_get_modes(struct drm_connector *connector)
    @@ -1524,7 +1524,6 @@ static irqreturn_t imx_hdmi_irq(int irq,

    hdmi_modb(hdmi, 0, HDMI_PHY_HPD, HDMI_PHY_POL0);

    - hdmi->connector_status = connector_status_connected;
    imx_hdmi_poweron(hdmi);
    } else {
    dev_dbg(hdmi->dev, "EVENT=plugout\n");
    @@ -1532,7 +1531,6 @@ static irqreturn_t imx_hdmi_irq(int irq,
    hdmi_modb(hdmi, HDMI_PHY_HPD, HDMI_PHY_HPD,
    HDMI_PHY_POL0);

    - hdmi->connector_status = connector_status_disconnected;
    imx_hdmi_poweroff(hdmi);
    }
    drm_helper_hpd_irq_event(hdmi->connector.dev);
    @@ -1606,7 +1604,6 @@ static int imx_hdmi_bind(struct device *
    return -ENOMEM;

    hdmi->dev = dev;
    - hdmi->connector_status = connector_status_disconnected;
    hdmi->sample_rate = 48000;
    hdmi->ratio = 100;




    \
     
     \ /
      Last update: 2014-06-28 21:21    [W:3.862 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site