Lines Matching defs:mgr
124 static struct mgr_priv_data *get_mgr_priv(struct omap_overlay_manager *mgr)
126 return &dss_data.mgr_priv_data_array[mgr->id];
189 static bool mgr_manual_update(struct omap_overlay_manager *mgr)
191 struct mgr_priv_data *mp = get_mgr_priv(mgr);
196 static int dss_check_settings_low(struct omap_overlay_manager *mgr,
206 mp = get_mgr_priv(mgr);
217 list_for_each_entry(ovl, &mgr->overlays, list) {
230 return dss_mgr_check(mgr, mi, &mp->timings, &mp->lcd_config, ois);
236 static int dss_check_settings(struct omap_overlay_manager *mgr)
238 return dss_check_settings_low(mgr, false);
245 static int dss_check_settings_apply(struct omap_overlay_manager *mgr)
247 return dss_check_settings_low(mgr, true);
256 struct omap_overlay_manager *mgr;
260 mgr = omap_dss_get_overlay_manager(i);
261 mp = get_mgr_priv(mgr);
266 if (mgr_manual_update(mgr)) {
297 list_for_each_entry(ovl, &mgr->overlays, list) {
333 static bool need_go(struct omap_overlay_manager *mgr)
339 mp = get_mgr_priv(mgr);
344 list_for_each_entry(ovl, &mgr->overlays, list) {
360 struct omap_overlay_manager *mgr;
364 mgr = omap_dss_get_overlay_manager(i);
365 mp = get_mgr_priv(mgr);
376 list_for_each_entry(ovl, &mgr->overlays, list) {
414 static struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr)
418 dssdev = mgr->output;
436 static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr)
442 if (mgr->output == NULL)
449 switch (mgr->output->id) {
457 irq = dispc_mgr_get_vsync_irq(mgr->id);
468 static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
471 struct mgr_priv_data *mp = get_mgr_priv(mgr);
479 if (mgr_manual_update(mgr)) {
495 irq = dispc_mgr_get_vsync_irq(mgr->id);
517 DSSERR("mgr(%d)->wait_for_go() not finishing\n",
518 mgr->id);
528 DSSERR("mgr(%d)->wait_for_go() timeout\n", mgr->id);
676 static void dss_mgr_write_regs(struct omap_overlay_manager *mgr)
678 struct mgr_priv_data *mp = get_mgr_priv(mgr);
681 DSSDBG("writing mgr %d regs\n", mgr->id);
689 list_for_each_entry(ovl, &mgr->overlays, list) {
695 dispc_mgr_setup(mgr->id, &mp->info);
703 static void dss_mgr_write_regs_extra(struct omap_overlay_manager *mgr)
705 struct mgr_priv_data *mp = get_mgr_priv(mgr);
707 DSSDBG("writing mgr %d regs extra\n", mgr->id);
712 dispc_mgr_set_timings(mgr->id, &mp->timings);
715 if (dss_mgr_is_lcd(mgr->id))
716 dispc_mgr_set_lcd_config(mgr->id, &mp->lcd_config);
729 struct omap_overlay_manager *mgr;
733 mgr = omap_dss_get_overlay_manager(i);
734 mp = get_mgr_priv(mgr);
736 if (!mp->enabled || mgr_manual_update(mgr) || mp->busy)
739 r = dss_check_settings(mgr);
742 "illegal configuration\n", mgr->name);
746 dss_mgr_write_regs(mgr);
747 dss_mgr_write_regs_extra(mgr);
757 struct omap_overlay_manager *mgr;
760 mgr = omap_dss_get_overlay_manager(i);
761 mp = get_mgr_priv(mgr);
763 if (!mp->enabled || mgr_manual_update(mgr) || mp->busy)
766 if (!need_go(mgr))
774 dispc_mgr_go(mgr->id);
779 static void mgr_clear_shadow_dirty(struct omap_overlay_manager *mgr)
785 mp = get_mgr_priv(mgr);
789 list_for_each_entry(ovl, &mgr->overlays, list) {
796 static int dss_mgr_connect_compat(struct omap_overlay_manager *mgr,
799 return mgr->set_output(mgr, dst);
802 static void dss_mgr_disconnect_compat(struct omap_overlay_manager *mgr,
805 mgr->unset_output(mgr);
808 static void dss_mgr_start_update_compat(struct omap_overlay_manager *mgr)
810 struct mgr_priv_data *mp = get_mgr_priv(mgr);
818 r = dss_check_settings(mgr);
825 dss_mgr_write_regs(mgr);
826 dss_mgr_write_regs_extra(mgr);
833 dispc_mgr_enable_sync(mgr->id);
888 struct omap_overlay_manager *mgr;
891 mgr = omap_dss_get_overlay_manager(i);
892 mp = get_mgr_priv(mgr);
899 if (!mgr_manual_update(mgr)) {
904 mgr_clear_shadow_dirty(mgr);
917 struct omap_overlay_manager *mgr;
920 mgr = omap_dss_get_overlay_manager(i);
921 mp = get_mgr_priv(mgr);
923 if (!mgr_manual_update(mgr) || !mp->framedone_handler)
950 static void omap_dss_mgr_apply_mgr(struct omap_overlay_manager *mgr)
954 mp = get_mgr_priv(mgr);
964 static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
970 DSSDBG("omap_dss_mgr_apply(%s)\n", mgr->name);
974 r = dss_check_settings_apply(mgr);
982 list_for_each_entry(ovl, &mgr->overlays, list)
986 omap_dss_mgr_apply_mgr(mgr);
1037 static void dss_mgr_setup_fifos(struct omap_overlay_manager *mgr)
1042 mp = get_mgr_priv(mgr);
1047 list_for_each_entry(ovl, &mgr->overlays, list)
1054 struct omap_overlay_manager *mgr;
1058 mgr = omap_dss_get_overlay_manager(i);
1059 dss_mgr_setup_fifos(mgr);
1063 static int dss_mgr_enable_compat(struct omap_overlay_manager *mgr)
1065 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1078 r = dss_check_settings(mgr);
1081 mgr->id);
1090 if (!mgr_manual_update(mgr))
1098 if (!mgr_manual_update(mgr))
1099 dispc_mgr_enable_sync(mgr->id);
1113 static void dss_mgr_disable_compat(struct omap_overlay_manager *mgr)
1115 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1125 if (!mgr_manual_update(mgr))
1126 dispc_mgr_disable_sync(mgr->id);
1139 static int dss_mgr_set_info(struct omap_overlay_manager *mgr,
1142 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1146 r = dss_mgr_simple_check(mgr, info);
1160 static void dss_mgr_get_info(struct omap_overlay_manager *mgr,
1163 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1173 static int dss_mgr_set_output(struct omap_overlay_manager *mgr,
1180 if (mgr->output) {
1182 mgr->name);
1187 if ((mgr->supported_outputs & output->id) == 0) {
1189 mgr->name);
1194 output->manager = mgr;
1195 mgr->output = output;
1205 static int dss_mgr_unset_output(struct omap_overlay_manager *mgr)
1208 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1213 if (!mgr->output) {
1229 mgr->output->manager = NULL;
1230 mgr->output = NULL;
1243 static void dss_apply_mgr_timings(struct omap_overlay_manager *mgr,
1246 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1252 static void dss_mgr_set_timings_compat(struct omap_overlay_manager *mgr,
1256 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1262 mgr->name);
1266 dss_apply_mgr_timings(mgr, timings);
1271 static void dss_apply_mgr_lcd_config(struct omap_overlay_manager *mgr,
1274 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1280 static void dss_mgr_set_lcd_config_compat(struct omap_overlay_manager *mgr,
1284 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1290 mgr->name);
1294 dss_apply_mgr_lcd_config(mgr, config);
1334 struct omap_overlay_manager *mgr)
1340 if (!mgr)
1365 dispc_ovl_set_channel_out(ovl->id, mgr->id);
1367 ovl->manager = mgr;
1368 list_add_tail(&ovl->list, &mgr->overlays);
1545 static int dss_mgr_register_framedone_handler_compat(struct omap_overlay_manager *mgr,
1548 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1559 static void dss_mgr_unregister_framedone_handler_compat(struct omap_overlay_manager *mgr,
1562 struct mgr_priv_data *mp = get_mgr_priv(mgr);
1602 struct omap_overlay_manager *mgr;
1604 mgr = omap_dss_get_overlay_manager(i);
1606 mgr->set_output = &dss_mgr_set_output;
1607 mgr->unset_output = &dss_mgr_unset_output;
1608 mgr->apply = &omap_dss_mgr_apply;
1609 mgr->set_manager_info = &dss_mgr_set_info;
1610 mgr->get_manager_info = &dss_mgr_get_info;
1611 mgr->wait_for_go = &dss_mgr_wait_for_go;
1612 mgr->wait_for_vsync = &dss_mgr_wait_for_vsync;
1613 mgr->get_device = &dss_mgr_get_device;