@ -416,8 +416,6 @@ struct overlay_cache_data {
enum omap_burst_size burst_size ;
u32 fifo_low ;
u32 fifo_high ;
bool manual_update ;
} ;
struct manager_cache_data {
@ -437,7 +435,6 @@ struct manager_cache_data {
bool alpha_enabled ;
bool manual_upd_display ;
bool manual_update ;
bool do_manual_update ;
@ -539,24 +536,15 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
if ( ! dssdev | | dssdev - > state ! = OMAP_DSS_DISPLAY_ACTIVE )
return 0 ;
if ( dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE )
return 0 ;
if ( dssdev - > type = = OMAP_DISPLAY_TYPE_VENC
| | dssdev - > type = = OMAP_DISPLAY_TYPE_HDMI ) {
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN ;
} else {
if ( dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE ) {
enum omap_dss_update_mode mode ;
mode = dssdev - > driver - > get_update_mode ( dssdev ) ;
if ( mode ! = OMAP_DSS_UPDATE_AUTO )
return 0 ;
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_FRAMEDONE
: DISPC_IRQ_FRAMEDONE2 ;
} else {
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_VSYNC
: DISPC_IRQ_VSYNC2 ;
}
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2 ;
}
mc = & dss_cache . manager_cache [ mgr - > id ] ;
@ -617,24 +605,15 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
if ( ! dssdev | | dssdev - > state ! = OMAP_DSS_DISPLAY_ACTIVE )
return 0 ;
if ( dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE )
return 0 ;
if ( dssdev - > type = = OMAP_DISPLAY_TYPE_VENC
| | dssdev - > type = = OMAP_DISPLAY_TYPE_HDMI ) {
irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN ;
} else {
if ( dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE ) {
enum omap_dss_update_mode mode ;
mode = dssdev - > driver - > get_update_mode ( dssdev ) ;
if ( mode ! = OMAP_DSS_UPDATE_AUTO )
return 0 ;
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_FRAMEDONE
: DISPC_IRQ_FRAMEDONE2 ;
} else {
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_VSYNC
: DISPC_IRQ_VSYNC2 ;
}
irq = ( dssdev - > manager - > id = = OMAP_DSS_CHANNEL_LCD ) ?
DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2 ;
}
oc = & dss_cache . overlay_cache [ ovl - > id ] ;
@ -763,7 +742,7 @@ static int configure_overlay(enum omap_plane plane)
orig_outw = outw ;
orig_outh = outh ;
if ( c - > manual_update & & mc - > do_manual_update ) {
if ( m c- > manual_update & & mc - > do_manual_update ) {
unsigned bpp ;
unsigned scale_x_m = w , scale_x_d = outw ;
unsigned scale_y_m = h , scale_y_d = outh ;
@ -928,7 +907,7 @@ static int configure_dispc(void)
if ( ! oc - > dirty )
continue ;
if ( o c- > manual_update & & ! mc - > do_manual_update )
if ( m c- > manual_update & & ! mc - > do_manual_update )
continue ;
if ( mgr_busy [ oc - > channel ] ) {
@ -976,7 +955,7 @@ static int configure_dispc(void)
/* We don't need GO with manual update display. LCD iface will
* always be turned off after frame , and new settings will be
* taken in to use at next update */
if ( ! mc - > manual_upd_display )
if ( ! mc - > manual_update )
dispc_go ( i ) ;
}
@ -1302,11 +1281,6 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
oc - > enabled = true ;
oc - > manual_update =
dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE & &
dssdev - > driver - > get_update_mode ( dssdev ) ! =
OMAP_DSS_UPDATE_AUTO ;
+ + num_planes_enabled ;
}
@ -1341,13 +1315,8 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
mc - > trans_enabled = mgr - > info . trans_enabled ;
mc - > alpha_enabled = mgr - > info . alpha_enabled ;
mc - > manual_upd_display =
dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE ;
mc - > manual_update =
dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE & &
dssdev - > driver - > get_update_mode ( dssdev ) ! =
OMAP_DSS_UPDATE_AUTO ;
dssdev - > caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE ;
}
/* XXX TODO: Try to get fifomerge working. The problem is that it