static void hdmic_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; dev_dbg(ddata->dev, "disable\n"); if (!omapdss_device_is_enabled(dssdev)) return; in->ops.hdmi->disable(in); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void tpo_td043_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; if (!omapdss_device_is_enabled(dssdev)) return; in->ops.dpi->disable(in); if (!ddata->spi_suspended) tpo_td043_power_off(ddata); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void acx565akm_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); dev_dbg(dssdev->dev, "%s\n", __func__); if (!omapdss_device_is_enabled(dssdev)) return; mutex_lock(&ddata->mutex); acx565akm_panel_power_off(dssdev); mutex_unlock(&ddata->mutex); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void tfp410_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; if (!omapdss_device_is_enabled(dssdev)) return; if (gpio_is_valid(ddata->pd_gpio)) gpio_set_value_cansleep(ddata->pd_gpio, 0); in->ops.dpi->disable(in); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void opa362_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; dev_dbg(dssdev->dev, "disable\n"); if (!omapdss_device_is_enabled(dssdev)) return; if (ddata->enable_gpio) gpiod_set_value_cansleep(ddata->enable_gpio, 0); in->ops.atv->disable(in); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void panel_dpi_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *src = dssdev->src; if (!omapdss_device_is_enabled(dssdev)) return; backlight_disable(ddata->backlight); gpiod_set_value_cansleep(ddata->enable_gpio, 0); regulator_disable(ddata->vcc_supply); src->ops->disable(src); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static void panel_dpi_disable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; if (!omapdss_device_is_enabled(dssdev)) return; if (gpio_is_valid(ddata->backlight_gpio)) gpio_set_value_cansleep(ddata->backlight_gpio, 0); gpiod_set_value_cansleep(ddata->enable_gpio, 0); regulator_disable(ddata->vcc_supply); in->ops.dpi->disable(in); dssdev->state = OMAP_DSS_DISPLAY_DISABLED; }
static int hdmic_audio_enable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; int r; /* enable audio only if the display is active */ if (!omapdss_device_is_enabled(dssdev)) return -EPERM; r = in->ops.hdmi->audio_enable(in); if (r) return r; dssdev->audio_state = OMAP_DSS_AUDIO_ENABLED; return 0; }
static int hdmic_audio_config(struct omap_dss_device *dssdev, struct omap_dss_audio *audio) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; int r; /* config audio only if the display is active */ if (!omapdss_device_is_enabled(dssdev)) return -EPERM; r = in->ops.hdmi->audio_config(in, audio); if (r) return r; dssdev->audio_state = OMAP_DSS_AUDIO_CONFIGURED; return 0; }
static int panel_dpi_enable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; int r; if (!omapdss_device_is_connected(dssdev)) return -ENODEV; if (omapdss_device_is_enabled(dssdev)) return 0; if (ddata->data_lines) in->ops.dpi->set_data_lines(in, ddata->data_lines); in->ops.dpi->set_timings(in, &ddata->vm); r = in->ops.dpi->enable(in); if (r) return r; r = regulator_enable(ddata->vcc_supply); if (r) { in->ops.dpi->disable(in); return r; } gpiod_set_value_cansleep(ddata->enable_gpio, 1); if (gpio_is_valid(ddata->backlight_gpio)) gpio_set_value_cansleep(ddata->backlight_gpio, 1); if (ddata->backlight) { ddata->backlight->props.power = FB_BLANK_UNBLANK; backlight_update_status(ddata->backlight); } dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; return 0; }
static int dvic_enable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; int r; if (!omapdss_device_is_connected(dssdev)) return -ENODEV; if (omapdss_device_is_enabled(dssdev)) return 0; in->ops.dvi->set_timings(in, &ddata->timings); r = in->ops.dvi->enable(in); if (r) return r; dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; return 0; }
static int acx565akm_enable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); int r; dev_dbg(dssdev->dev, "%s\n", __func__); if (!omapdss_device_is_connected(dssdev)) return -ENODEV; if (omapdss_device_is_enabled(dssdev)) return 0; mutex_lock(&ddata->mutex); r = acx565akm_panel_power_on(dssdev); mutex_unlock(&ddata->mutex); if (r) return r; dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; return 0; }
static int tpo_td043_enable(struct omap_dss_device *dssdev) { struct panel_drv_data *ddata = to_panel_data(dssdev); struct omap_dss_device *in = ddata->in; int r; if (!omapdss_device_is_connected(dssdev)) return -ENODEV; if (omapdss_device_is_enabled(dssdev)) return 0; if (ddata->data_lines) in->ops.dpi->set_data_lines(in, ddata->data_lines); in->ops.dpi->set_timings(in, &ddata->videomode); r = in->ops.dpi->enable(in); if (r) return r; /* * If we are resuming from system suspend, SPI clocks might not be * enabled yet, so we'll program the LCD from SPI PM resume callback. */ if (!ddata->spi_suspended) { r = tpo_td043_power_on(ddata); if (r) { in->ops.dpi->disable(in); return r; } } dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; return 0; }
static ssize_t display_enabled_show(struct omap_dss_device *dssdev, char *buf) { return snprintf(buf, PAGE_SIZE, "%d\n", omapdss_device_is_enabled(dssdev)); }