Lines Matching refs:mgr
134 static struct mgr_priv_data *get_mgr_priv(struct omap_overlay_manager *mgr) in get_mgr_priv() argument
136 return &dss_data.mgr_priv_data_array[mgr->id]; in get_mgr_priv()
201 static bool mgr_manual_update(struct omap_overlay_manager *mgr) in mgr_manual_update() argument
203 struct mgr_priv_data *mp = get_mgr_priv(mgr); in mgr_manual_update()
208 static int dss_check_settings_low(struct omap_overlay_manager *mgr, in dss_check_settings_low() argument
218 mp = get_mgr_priv(mgr); in dss_check_settings_low()
229 list_for_each_entry(ovl, &mgr->overlays, list) { in dss_check_settings_low()
242 return dss_mgr_check(mgr, mi, &mp->timings, &mp->lcd_config, ois); in dss_check_settings_low()
248 static int dss_check_settings(struct omap_overlay_manager *mgr) in dss_check_settings() argument
250 return dss_check_settings_low(mgr, false); in dss_check_settings()
257 static int dss_check_settings_apply(struct omap_overlay_manager *mgr) in dss_check_settings_apply() argument
259 return dss_check_settings_low(mgr, true); in dss_check_settings_apply()
268 struct omap_overlay_manager *mgr; in need_isr() local
272 mgr = omap_dss_get_overlay_manager(i); in need_isr()
273 mp = get_mgr_priv(mgr); in need_isr()
278 if (mgr_manual_update(mgr)) { in need_isr()
309 list_for_each_entry(ovl, &mgr->overlays, list) { in need_isr()
345 static bool need_go(struct omap_overlay_manager *mgr) in need_go() argument
351 mp = get_mgr_priv(mgr); in need_go()
356 list_for_each_entry(ovl, &mgr->overlays, list) { in need_go()
372 struct omap_overlay_manager *mgr; in extra_info_update_ongoing() local
376 mgr = omap_dss_get_overlay_manager(i); in extra_info_update_ongoing()
377 mp = get_mgr_priv(mgr); in extra_info_update_ongoing()
388 list_for_each_entry(ovl, &mgr->overlays, list) { in extra_info_update_ongoing()
426 static struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr) in dss_mgr_get_device() argument
430 dssdev = mgr->output; in dss_mgr_get_device()
448 static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr) in dss_mgr_wait_for_vsync() argument
454 if (mgr->output == NULL) in dss_mgr_wait_for_vsync()
461 switch (mgr->output->id) { in dss_mgr_wait_for_vsync()
469 irq = dispc_mgr_get_vsync_irq(mgr->id); in dss_mgr_wait_for_vsync()
480 static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr) in dss_mgr_wait_for_go() argument
483 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_wait_for_go()
491 if (mgr_manual_update(mgr)) { in dss_mgr_wait_for_go()
507 irq = dispc_mgr_get_vsync_irq(mgr->id); in dss_mgr_wait_for_go()
530 mgr->id); in dss_mgr_wait_for_go()
540 DSSERR("mgr(%d)->wait_for_go() timeout\n", mgr->id); in dss_mgr_wait_for_go()
688 static void dss_mgr_write_regs(struct omap_overlay_manager *mgr) in dss_mgr_write_regs() argument
690 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_write_regs()
693 DSSDBG("writing mgr %d regs\n", mgr->id); in dss_mgr_write_regs()
701 list_for_each_entry(ovl, &mgr->overlays, list) { in dss_mgr_write_regs()
707 dispc_mgr_setup(mgr->id, &mp->info); in dss_mgr_write_regs()
715 static void dss_mgr_write_regs_extra(struct omap_overlay_manager *mgr) in dss_mgr_write_regs_extra() argument
717 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_write_regs_extra()
719 DSSDBG("writing mgr %d regs extra\n", mgr->id); in dss_mgr_write_regs_extra()
724 dispc_mgr_set_timings(mgr->id, &mp->timings); in dss_mgr_write_regs_extra()
727 if (dss_mgr_is_lcd(mgr->id)) in dss_mgr_write_regs_extra()
728 dispc_mgr_set_lcd_config(mgr->id, &mp->lcd_config); in dss_mgr_write_regs_extra()
741 struct omap_overlay_manager *mgr; in dss_write_regs() local
745 mgr = omap_dss_get_overlay_manager(i); in dss_write_regs()
746 mp = get_mgr_priv(mgr); in dss_write_regs()
748 if (!mp->enabled || mgr_manual_update(mgr) || mp->busy) in dss_write_regs()
751 r = dss_check_settings(mgr); in dss_write_regs()
754 "illegal configuration\n", mgr->name); in dss_write_regs()
758 dss_mgr_write_regs(mgr); in dss_write_regs()
759 dss_mgr_write_regs_extra(mgr); in dss_write_regs()
769 struct omap_overlay_manager *mgr; in dss_set_go_bits() local
772 mgr = omap_dss_get_overlay_manager(i); in dss_set_go_bits()
773 mp = get_mgr_priv(mgr); in dss_set_go_bits()
775 if (!mp->enabled || mgr_manual_update(mgr) || mp->busy) in dss_set_go_bits()
778 if (!need_go(mgr)) in dss_set_go_bits()
786 dispc_mgr_go(mgr->id); in dss_set_go_bits()
791 static void mgr_clear_shadow_dirty(struct omap_overlay_manager *mgr) in mgr_clear_shadow_dirty() argument
797 mp = get_mgr_priv(mgr); in mgr_clear_shadow_dirty()
801 list_for_each_entry(ovl, &mgr->overlays, list) { in mgr_clear_shadow_dirty()
808 static int dss_mgr_connect_compat(struct omap_overlay_manager *mgr, in dss_mgr_connect_compat() argument
811 return mgr->set_output(mgr, dst); in dss_mgr_connect_compat()
814 static void dss_mgr_disconnect_compat(struct omap_overlay_manager *mgr, in dss_mgr_disconnect_compat() argument
817 mgr->unset_output(mgr); in dss_mgr_disconnect_compat()
820 static void dss_mgr_start_update_compat(struct omap_overlay_manager *mgr) in dss_mgr_start_update_compat() argument
822 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_start_update_compat()
830 r = dss_check_settings(mgr); in dss_mgr_start_update_compat()
837 dss_mgr_write_regs(mgr); in dss_mgr_start_update_compat()
838 dss_mgr_write_regs_extra(mgr); in dss_mgr_start_update_compat()
845 dispc_mgr_enable_sync(mgr->id); in dss_mgr_start_update_compat()
900 struct omap_overlay_manager *mgr; in dss_apply_irq_handler() local
903 mgr = omap_dss_get_overlay_manager(i); in dss_apply_irq_handler()
904 mp = get_mgr_priv(mgr); in dss_apply_irq_handler()
911 if (!mgr_manual_update(mgr)) { in dss_apply_irq_handler()
916 mgr_clear_shadow_dirty(mgr); in dss_apply_irq_handler()
929 struct omap_overlay_manager *mgr; in dss_apply_irq_handler() local
932 mgr = omap_dss_get_overlay_manager(i); in dss_apply_irq_handler()
933 mp = get_mgr_priv(mgr); in dss_apply_irq_handler()
935 if (!mgr_manual_update(mgr) || !mp->framedone_handler) in dss_apply_irq_handler()
962 static void omap_dss_mgr_apply_mgr(struct omap_overlay_manager *mgr) in omap_dss_mgr_apply_mgr() argument
966 mp = get_mgr_priv(mgr); in omap_dss_mgr_apply_mgr()
976 static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr) in omap_dss_mgr_apply() argument
982 DSSDBG("omap_dss_mgr_apply(%s)\n", mgr->name); in omap_dss_mgr_apply()
986 r = dss_check_settings_apply(mgr); in omap_dss_mgr_apply()
994 list_for_each_entry(ovl, &mgr->overlays, list) in omap_dss_mgr_apply()
998 omap_dss_mgr_apply_mgr(mgr); in omap_dss_mgr_apply()
1049 static void dss_mgr_setup_fifos(struct omap_overlay_manager *mgr) in dss_mgr_setup_fifos() argument
1054 mp = get_mgr_priv(mgr); in dss_mgr_setup_fifos()
1059 list_for_each_entry(ovl, &mgr->overlays, list) in dss_mgr_setup_fifos()
1066 struct omap_overlay_manager *mgr; in dss_setup_fifos() local
1070 mgr = omap_dss_get_overlay_manager(i); in dss_setup_fifos()
1071 dss_mgr_setup_fifos(mgr); in dss_setup_fifos()
1075 static int dss_mgr_enable_compat(struct omap_overlay_manager *mgr) in dss_mgr_enable_compat() argument
1077 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_enable_compat()
1090 r = dss_check_settings(mgr); in dss_mgr_enable_compat()
1093 mgr->id); in dss_mgr_enable_compat()
1102 if (!mgr_manual_update(mgr)) in dss_mgr_enable_compat()
1110 if (!mgr_manual_update(mgr)) in dss_mgr_enable_compat()
1111 dispc_mgr_enable_sync(mgr->id); in dss_mgr_enable_compat()
1125 static void dss_mgr_disable_compat(struct omap_overlay_manager *mgr) in dss_mgr_disable_compat() argument
1127 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_disable_compat()
1137 if (!mgr_manual_update(mgr)) in dss_mgr_disable_compat()
1138 dispc_mgr_disable_sync(mgr->id); in dss_mgr_disable_compat()
1151 static int dss_mgr_set_info(struct omap_overlay_manager *mgr, in dss_mgr_set_info() argument
1154 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_set_info()
1158 r = dss_mgr_simple_check(mgr, info); in dss_mgr_set_info()
1172 static void dss_mgr_get_info(struct omap_overlay_manager *mgr, in dss_mgr_get_info() argument
1175 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_get_info()
1185 static int dss_mgr_set_output(struct omap_overlay_manager *mgr, in dss_mgr_set_output() argument
1192 if (mgr->output) { in dss_mgr_set_output()
1194 mgr->name); in dss_mgr_set_output()
1199 if ((mgr->supported_outputs & output->id) == 0) { in dss_mgr_set_output()
1201 mgr->name); in dss_mgr_set_output()
1206 output->manager = mgr; in dss_mgr_set_output()
1207 mgr->output = output; in dss_mgr_set_output()
1217 static int dss_mgr_unset_output(struct omap_overlay_manager *mgr) in dss_mgr_unset_output() argument
1220 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_unset_output()
1225 if (!mgr->output) { in dss_mgr_unset_output()
1241 mgr->output->manager = NULL; in dss_mgr_unset_output()
1242 mgr->output = NULL; in dss_mgr_unset_output()
1255 static void dss_apply_mgr_timings(struct omap_overlay_manager *mgr, in dss_apply_mgr_timings() argument
1258 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_apply_mgr_timings()
1264 static void dss_mgr_set_timings_compat(struct omap_overlay_manager *mgr, in dss_mgr_set_timings_compat() argument
1268 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_set_timings_compat()
1274 mgr->name); in dss_mgr_set_timings_compat()
1278 dss_apply_mgr_timings(mgr, timings); in dss_mgr_set_timings_compat()
1283 static void dss_apply_mgr_lcd_config(struct omap_overlay_manager *mgr, in dss_apply_mgr_lcd_config() argument
1286 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_apply_mgr_lcd_config()
1292 static void dss_mgr_set_lcd_config_compat(struct omap_overlay_manager *mgr, in dss_mgr_set_lcd_config_compat() argument
1296 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_set_lcd_config_compat()
1302 mgr->name); in dss_mgr_set_lcd_config_compat()
1306 dss_apply_mgr_lcd_config(mgr, config); in dss_mgr_set_lcd_config_compat()
1346 struct omap_overlay_manager *mgr) in dss_ovl_set_manager() argument
1352 if (!mgr) in dss_ovl_set_manager()
1377 dispc_ovl_set_channel_out(ovl->id, mgr->id); in dss_ovl_set_manager()
1379 ovl->manager = mgr; in dss_ovl_set_manager()
1380 list_add_tail(&ovl->list, &mgr->overlays); in dss_ovl_set_manager()
1557 static int dss_mgr_register_framedone_handler_compat(struct omap_overlay_manager *mgr, in dss_mgr_register_framedone_handler_compat() argument
1560 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_register_framedone_handler_compat()
1571 static void dss_mgr_unregister_framedone_handler_compat(struct omap_overlay_manager *mgr, in dss_mgr_unregister_framedone_handler_compat() argument
1574 struct mgr_priv_data *mp = get_mgr_priv(mgr); in dss_mgr_unregister_framedone_handler_compat()
1614 struct omap_overlay_manager *mgr; in omapdss_compat_init() local
1616 mgr = omap_dss_get_overlay_manager(i); in omapdss_compat_init()
1618 mgr->set_output = &dss_mgr_set_output; in omapdss_compat_init()
1619 mgr->unset_output = &dss_mgr_unset_output; in omapdss_compat_init()
1620 mgr->apply = &omap_dss_mgr_apply; in omapdss_compat_init()
1621 mgr->set_manager_info = &dss_mgr_set_info; in omapdss_compat_init()
1622 mgr->get_manager_info = &dss_mgr_get_info; in omapdss_compat_init()
1623 mgr->wait_for_go = &dss_mgr_wait_for_go; in omapdss_compat_init()
1624 mgr->wait_for_vsync = &dss_mgr_wait_for_vsync; in omapdss_compat_init()
1625 mgr->get_device = &dss_mgr_get_device; in omapdss_compat_init()