|
@@ -51,6 +51,8 @@ static int tpd_connect(struct omap_dss_device *dssdev,
|
|
dssdev->dst = dst;
|
|
dssdev->dst = dst;
|
|
|
|
|
|
gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 1);
|
|
gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 1);
|
|
|
|
+ gpiod_set_value_cansleep(ddata->ls_oe_gpio, 1);
|
|
|
|
+
|
|
/* DC-DC converter needs at max 300us to get to 90% of 5V */
|
|
/* DC-DC converter needs at max 300us to get to 90% of 5V */
|
|
udelay(300);
|
|
udelay(300);
|
|
|
|
|
|
@@ -69,6 +71,7 @@ static void tpd_disconnect(struct omap_dss_device *dssdev,
|
|
return;
|
|
return;
|
|
|
|
|
|
gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 0);
|
|
gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 0);
|
|
|
|
+ gpiod_set_value_cansleep(ddata->ls_oe_gpio, 0);
|
|
|
|
|
|
dst->src = NULL;
|
|
dst->src = NULL;
|
|
dssdev->dst = NULL;
|
|
dssdev->dst = NULL;
|
|
@@ -146,18 +149,11 @@ static int tpd_read_edid(struct omap_dss_device *dssdev,
|
|
{
|
|
{
|
|
struct panel_drv_data *ddata = to_panel_data(dssdev);
|
|
struct panel_drv_data *ddata = to_panel_data(dssdev);
|
|
struct omap_dss_device *in = ddata->in;
|
|
struct omap_dss_device *in = ddata->in;
|
|
- int r;
|
|
|
|
|
|
|
|
if (!gpiod_get_value_cansleep(ddata->hpd_gpio))
|
|
if (!gpiod_get_value_cansleep(ddata->hpd_gpio))
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
- gpiod_set_value_cansleep(ddata->ls_oe_gpio, 1);
|
|
|
|
-
|
|
|
|
- r = in->ops.hdmi->read_edid(in, edid, len);
|
|
|
|
-
|
|
|
|
- gpiod_set_value_cansleep(ddata->ls_oe_gpio, 0);
|
|
|
|
-
|
|
|
|
- return r;
|
|
|
|
|
|
+ return in->ops.hdmi->read_edid(in, edid, len);
|
|
}
|
|
}
|
|
|
|
|
|
static bool tpd_detect(struct omap_dss_device *dssdev)
|
|
static bool tpd_detect(struct omap_dss_device *dssdev)
|