mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 08:08:54 +00:00
OMAP4: DSS2: Add display type HDMI to DSS2
Adding display type HDMI in dss_features, overlay and the manager so that HDMI type of display will be recognized. Signed-off-by: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
d80d499ed9
commit
b119601d4e
5 changed files with 15 additions and 5 deletions
|
@ -58,6 +58,7 @@ enum omap_display_type {
|
||||||
OMAP_DISPLAY_TYPE_SDI = 1 << 2,
|
OMAP_DISPLAY_TYPE_SDI = 1 << 2,
|
||||||
OMAP_DISPLAY_TYPE_DSI = 1 << 3,
|
OMAP_DISPLAY_TYPE_DSI = 1 << 3,
|
||||||
OMAP_DISPLAY_TYPE_VENC = 1 << 4,
|
OMAP_DISPLAY_TYPE_VENC = 1 << 4,
|
||||||
|
OMAP_DISPLAY_TYPE_HDMI = 1 << 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum omap_plane {
|
enum omap_plane {
|
||||||
|
|
|
@ -342,6 +342,7 @@ int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev)
|
||||||
return 16;
|
return 16;
|
||||||
case OMAP_DISPLAY_TYPE_VENC:
|
case OMAP_DISPLAY_TYPE_VENC:
|
||||||
case OMAP_DISPLAY_TYPE_SDI:
|
case OMAP_DISPLAY_TYPE_SDI:
|
||||||
|
case OMAP_DISPLAY_TYPE_HDMI:
|
||||||
return 24;
|
return 24;
|
||||||
default:
|
default:
|
||||||
BUG();
|
BUG();
|
||||||
|
@ -368,6 +369,7 @@ bool dss_use_replication(struct omap_dss_device *dssdev,
|
||||||
case OMAP_DISPLAY_TYPE_DPI:
|
case OMAP_DISPLAY_TYPE_DPI:
|
||||||
bpp = dssdev->phy.dpi.data_lines;
|
bpp = dssdev->phy.dpi.data_lines;
|
||||||
break;
|
break;
|
||||||
|
case OMAP_DISPLAY_TYPE_HDMI:
|
||||||
case OMAP_DISPLAY_TYPE_VENC:
|
case OMAP_DISPLAY_TYPE_VENC:
|
||||||
case OMAP_DISPLAY_TYPE_SDI:
|
case OMAP_DISPLAY_TYPE_SDI:
|
||||||
bpp = 24;
|
bpp = 24;
|
||||||
|
|
|
@ -130,7 +130,7 @@ static const enum omap_display_type omap4_dss_supported_displays[] = {
|
||||||
OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI,
|
OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI,
|
||||||
|
|
||||||
/* OMAP_DSS_CHANNEL_DIGIT */
|
/* OMAP_DSS_CHANNEL_DIGIT */
|
||||||
OMAP_DISPLAY_TYPE_VENC,
|
OMAP_DISPLAY_TYPE_VENC | OMAP_DISPLAY_TYPE_HDMI,
|
||||||
|
|
||||||
/* OMAP_DSS_CHANNEL_LCD2 */
|
/* OMAP_DSS_CHANNEL_LCD2 */
|
||||||
OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI |
|
OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI |
|
||||||
|
|
|
@ -515,6 +515,8 @@ static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr)
|
||||||
|
|
||||||
if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) {
|
if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) {
|
||||||
irq = DISPC_IRQ_EVSYNC_ODD;
|
irq = DISPC_IRQ_EVSYNC_ODD;
|
||||||
|
} else if (mgr->device->type == OMAP_DISPLAY_TYPE_HDMI) {
|
||||||
|
irq = DISPC_IRQ_EVSYNC_EVEN;
|
||||||
} else {
|
} else {
|
||||||
if (mgr->id == OMAP_DSS_CHANNEL_LCD)
|
if (mgr->id == OMAP_DSS_CHANNEL_LCD)
|
||||||
irq = DISPC_IRQ_VSYNC;
|
irq = DISPC_IRQ_VSYNC;
|
||||||
|
@ -536,7 +538,8 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
|
||||||
if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
|
if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
|
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
|
||||||
|
|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
|
||||||
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
|
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
|
||||||
} else {
|
} else {
|
||||||
if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
||||||
|
@ -613,7 +616,8 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
|
||||||
if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
|
if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
|
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
|
||||||
|
|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
|
||||||
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
|
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
|
||||||
} else {
|
} else {
|
||||||
if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
||||||
|
@ -1377,6 +1381,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
|
||||||
case OMAP_DISPLAY_TYPE_DBI:
|
case OMAP_DISPLAY_TYPE_DBI:
|
||||||
case OMAP_DISPLAY_TYPE_SDI:
|
case OMAP_DISPLAY_TYPE_SDI:
|
||||||
case OMAP_DISPLAY_TYPE_VENC:
|
case OMAP_DISPLAY_TYPE_VENC:
|
||||||
|
case OMAP_DISPLAY_TYPE_HDMI:
|
||||||
default_get_overlay_fifo_thresholds(ovl->id, size,
|
default_get_overlay_fifo_thresholds(ovl->id, size,
|
||||||
&oc->burst_size, &oc->fifo_low,
|
&oc->burst_size, &oc->fifo_low,
|
||||||
&oc->fifo_high);
|
&oc->fifo_high);
|
||||||
|
|
|
@ -679,7 +679,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
|
||||||
lcd2_mgr->set_device(lcd2_mgr, dssdev);
|
lcd2_mgr->set_device(lcd2_mgr, dssdev);
|
||||||
mgr = lcd2_mgr;
|
mgr = lcd2_mgr;
|
||||||
}
|
}
|
||||||
} else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC) {
|
} else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC
|
||||||
|
&& dssdev->type != OMAP_DISPLAY_TYPE_HDMI) {
|
||||||
if (!lcd_mgr->device || force) {
|
if (!lcd_mgr->device || force) {
|
||||||
if (lcd_mgr->device)
|
if (lcd_mgr->device)
|
||||||
lcd_mgr->unset_device(lcd_mgr);
|
lcd_mgr->unset_device(lcd_mgr);
|
||||||
|
@ -688,7 +689,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
|
if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
|
||||||
|
|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
|
||||||
if (!tv_mgr->device || force) {
|
if (!tv_mgr->device || force) {
|
||||||
if (tv_mgr->device)
|
if (tv_mgr->device)
|
||||||
tv_mgr->unset_device(tv_mgr);
|
tv_mgr->unset_device(tv_mgr);
|
||||||
|
|
Loading…
Reference in a new issue