diff options
| author | Archit Taneja <archit@ti.com> | 2012-09-26 07:12:39 -0400 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-09-26 07:58:31 -0400 |
| commit | 97f01b3a2ed6d46132bf4e2d237c27846e7b260a (patch) | |
| tree | 27c7a36c7ea6dbd51b6bf0a5edb04a861e8ac381 | |
| parent | 6d71b923e53184808b0206ebd74159c41a2dcf38 (diff) | |
OMAPDSS: APPLY: Add manager set/unset output ops for omap_overlay_manager
Add set_output/unset_output ops for overlay managers, these form links between
managers and outputs. Create a function in dss features which tell all the
output instances that connect to a manager, use it when a manager tries to set
an output. Add a constraint of not unsetting an output when the manager is
enabled.
Keep the omap_dss_device pointer and set/unset_device ops in overlay_manager for
now to not break things. Keep the dss feature function get_supported_displays
as it's used in some places. These will be removed later.
Signed-off-by: Archit Taneja <archit@ti.com>
| -rw-r--r-- | drivers/video/omap2/dss/apply.c | 70 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/dss.h | 3 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/dss_features.c | 71 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/dss_features.h | 1 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/manager.c | 4 | ||||
| -rw-r--r-- | include/video/omapdss.h | 5 |
6 files changed, 154 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c index 72f3468b0790..3cc47265bb03 100644 --- a/drivers/video/omap2/dss/apply.c +++ b/drivers/video/omap2/dss/apply.c | |||
| @@ -1174,6 +1174,76 @@ err: | |||
| 1174 | return r; | 1174 | return r; |
| 1175 | } | 1175 | } |
| 1176 | 1176 | ||
| 1177 | int dss_mgr_set_output(struct omap_overlay_manager *mgr, | ||
| 1178 | struct omap_dss_output *output) | ||
| 1179 | { | ||
| 1180 | int r; | ||
| 1181 | |||
| 1182 | mutex_lock(&apply_lock); | ||
| 1183 | |||
| 1184 | if (mgr->output) { | ||
| 1185 | DSSERR("manager %s is already connected to an output\n", | ||
| 1186 | mgr->name); | ||
| 1187 | r = -EINVAL; | ||
| 1188 | goto err; | ||
| 1189 | } | ||
| 1190 | |||
| 1191 | if ((mgr->supported_outputs & output->id) == 0) { | ||
| 1192 | DSSERR("output does not support manager %s\n", | ||
| 1193 | mgr->name); | ||
| 1194 | r = -EINVAL; | ||
| 1195 | goto err; | ||
| 1196 | } | ||
| 1197 | |||
| 1198 | output->manager = mgr; | ||
| 1199 | mgr->output = output; | ||
| 1200 | |||
| 1201 | mutex_unlock(&apply_lock); | ||
| 1202 | |||
| 1203 | return 0; | ||
| 1204 | err: | ||
| 1205 | mutex_unlock(&apply_lock); | ||
| 1206 | return r; | ||
| 1207 | } | ||
| 1208 | |||
| 1209 | int dss_mgr_unset_output(struct omap_overlay_manager *mgr) | ||
| 1210 | { | ||
| 1211 | int r; | ||
| 1212 | struct mgr_priv_data *mp = get_mgr_priv(mgr); | ||
| 1213 | unsigned long flags; | ||
| 1214 | |||
| 1215 | mutex_lock(&apply_lock); | ||
| 1216 | |||
| 1217 | if (!mgr->output) { | ||
| 1218 | DSSERR("failed to unset output, output not set\n"); | ||
| 1219 | r = -EINVAL; | ||
| 1220 | goto err; | ||
| 1221 | } | ||
| 1222 | |||
| 1223 | spin_lock_irqsave(&data_lock, flags); | ||
| 1224 | |||
| 1225 | if (mp->enabled) { | ||
| 1226 | DSSERR("output can't be unset when manager is enabled\n"); | ||
| 1227 | r = -EINVAL; | ||
| 1228 | goto err1; | ||
| 1229 | } | ||
| 1230 | |||
| 1231 | spin_unlock_irqrestore(&data_lock, flags); | ||
| 1232 | |||
| 1233 | mgr->output->manager = NULL; | ||
| 1234 | mgr->output = NULL; | ||
| 1235 | |||
| 1236 | mutex_unlock(&apply_lock); | ||
| 1237 | |||
| 1238 | return 0; | ||
| 1239 | err1: | ||
| 1240 | spin_unlock_irqrestore(&data_lock, flags); | ||
| 1241 | err: | ||
| 1242 | mutex_unlock(&apply_lock); | ||
| 1243 | |||
| 1244 | return r; | ||
| 1245 | } | ||
| 1246 | |||
| 1177 | static void dss_apply_mgr_timings(struct omap_overlay_manager *mgr, | 1247 | static void dss_apply_mgr_timings(struct omap_overlay_manager *mgr, |
| 1178 | const struct omap_video_timings *timings) | 1248 | const struct omap_video_timings *timings) |
| 1179 | { | 1249 | { |
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h index aecd3bea2e63..b5c0df43547f 100644 --- a/drivers/video/omap2/dss/dss.h +++ b/drivers/video/omap2/dss/dss.h | |||
| @@ -209,6 +209,9 @@ void dss_mgr_get_info(struct omap_overlay_manager *mgr, | |||
| 209 | int dss_mgr_set_device(struct omap_overlay_manager *mgr, | 209 | int dss_mgr_set_device(struct omap_overlay_manager *mgr, |
| 210 | struct omap_dss_device *dssdev); | 210 | struct omap_dss_device *dssdev); |
| 211 | int dss_mgr_unset_device(struct omap_overlay_manager *mgr); | 211 | int dss_mgr_unset_device(struct omap_overlay_manager *mgr); |
| 212 | int dss_mgr_set_output(struct omap_overlay_manager *mgr, | ||
| 213 | struct omap_dss_output *output); | ||
| 214 | int dss_mgr_unset_output(struct omap_overlay_manager *mgr); | ||
| 212 | void dss_mgr_set_timings(struct omap_overlay_manager *mgr, | 215 | void dss_mgr_set_timings(struct omap_overlay_manager *mgr, |
| 213 | const struct omap_video_timings *timings); | 216 | const struct omap_video_timings *timings); |
| 214 | void dss_mgr_set_lcd_config(struct omap_overlay_manager *mgr, | 217 | void dss_mgr_set_lcd_config(struct omap_overlay_manager *mgr, |
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c index 406913949e2c..bfe7fc7b8593 100644 --- a/drivers/video/omap2/dss/dss_features.c +++ b/drivers/video/omap2/dss/dss_features.c | |||
| @@ -47,6 +47,7 @@ struct omap_dss_features { | |||
| 47 | const int num_mgrs; | 47 | const int num_mgrs; |
| 48 | const int num_ovls; | 48 | const int num_ovls; |
| 49 | const enum omap_display_type *supported_displays; | 49 | const enum omap_display_type *supported_displays; |
| 50 | const enum omap_dss_output_id *supported_outputs; | ||
| 50 | const enum omap_color_mode *supported_color_modes; | 51 | const enum omap_color_mode *supported_color_modes; |
| 51 | const enum omap_overlay_caps *overlay_caps; | 52 | const enum omap_overlay_caps *overlay_caps; |
| 52 | const char * const *clksrc_names; | 53 | const char * const *clksrc_names; |
| @@ -172,6 +173,63 @@ static const enum omap_display_type omap5_dss_supported_displays[] = { | |||
| 172 | OMAP_DISPLAY_TYPE_DSI, | 173 | OMAP_DISPLAY_TYPE_DSI, |
| 173 | }; | 174 | }; |
| 174 | 175 | ||
| 176 | static const enum omap_dss_output_id omap2_dss_supported_outputs[] = { | ||
| 177 | /* OMAP_DSS_CHANNEL_LCD */ | ||
| 178 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI, | ||
| 179 | |||
| 180 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
| 181 | OMAP_DSS_OUTPUT_VENC, | ||
| 182 | }; | ||
| 183 | |||
| 184 | static const enum omap_dss_output_id omap3430_dss_supported_outputs[] = { | ||
| 185 | /* OMAP_DSS_CHANNEL_LCD */ | ||
| 186 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 187 | OMAP_DSS_OUTPUT_SDI | OMAP_DSS_OUTPUT_DSI1, | ||
| 188 | |||
| 189 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
| 190 | OMAP_DSS_OUTPUT_VENC, | ||
| 191 | }; | ||
| 192 | |||
| 193 | static const enum omap_dss_output_id omap3630_dss_supported_outputs[] = { | ||
| 194 | /* OMAP_DSS_CHANNEL_LCD */ | ||
| 195 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 196 | OMAP_DSS_OUTPUT_DSI1, | ||
| 197 | |||
| 198 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
| 199 | OMAP_DSS_OUTPUT_VENC, | ||
| 200 | }; | ||
| 201 | |||
| 202 | static const enum omap_dss_output_id omap4_dss_supported_outputs[] = { | ||
| 203 | /* OMAP_DSS_CHANNEL_LCD */ | ||
| 204 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 205 | OMAP_DSS_OUTPUT_DSI1, | ||
| 206 | |||
| 207 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
| 208 | OMAP_DSS_OUTPUT_VENC | OMAP_DSS_OUTPUT_HDMI | | ||
| 209 | OMAP_DSS_OUTPUT_DPI, | ||
| 210 | |||
| 211 | /* OMAP_DSS_CHANNEL_LCD2 */ | ||
| 212 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 213 | OMAP_DSS_OUTPUT_DSI2, | ||
| 214 | }; | ||
| 215 | |||
| 216 | static const enum omap_dss_output_id omap5_dss_supported_outputs[] = { | ||
| 217 | /* OMAP_DSS_CHANNEL_LCD */ | ||
| 218 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 219 | OMAP_DSS_OUTPUT_DSI1 | OMAP_DSS_OUTPUT_DSI2, | ||
| 220 | |||
| 221 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
| 222 | OMAP_DSS_OUTPUT_HDMI | OMAP_DSS_OUTPUT_DPI, | ||
| 223 | |||
| 224 | /* OMAP_DSS_CHANNEL_LCD2 */ | ||
| 225 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 226 | OMAP_DSS_OUTPUT_DSI1, | ||
| 227 | |||
| 228 | /* OMAP_DSS_CHANNEL_LCD3 */ | ||
| 229 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI | | ||
| 230 | OMAP_DSS_OUTPUT_DSI2, | ||
| 231 | }; | ||
| 232 | |||
| 175 | static const enum omap_color_mode omap2_dss_supported_color_modes[] = { | 233 | static const enum omap_color_mode omap2_dss_supported_color_modes[] = { |
| 176 | /* OMAP_DSS_GFX */ | 234 | /* OMAP_DSS_GFX */ |
| 177 | OMAP_DSS_COLOR_CLUT1 | OMAP_DSS_COLOR_CLUT2 | | 235 | OMAP_DSS_COLOR_CLUT1 | OMAP_DSS_COLOR_CLUT2 | |
| @@ -554,6 +612,7 @@ static const struct omap_dss_features omap2_dss_features = { | |||
| 554 | .num_mgrs = 2, | 612 | .num_mgrs = 2, |
| 555 | .num_ovls = 3, | 613 | .num_ovls = 3, |
| 556 | .supported_displays = omap2_dss_supported_displays, | 614 | .supported_displays = omap2_dss_supported_displays, |
| 615 | .supported_outputs = omap2_dss_supported_outputs, | ||
| 557 | .supported_color_modes = omap2_dss_supported_color_modes, | 616 | .supported_color_modes = omap2_dss_supported_color_modes, |
| 558 | .overlay_caps = omap2_dss_overlay_caps, | 617 | .overlay_caps = omap2_dss_overlay_caps, |
| 559 | .clksrc_names = omap2_dss_clk_source_names, | 618 | .clksrc_names = omap2_dss_clk_source_names, |
| @@ -574,6 +633,7 @@ static const struct omap_dss_features omap3430_dss_features = { | |||
| 574 | .num_mgrs = 2, | 633 | .num_mgrs = 2, |
| 575 | .num_ovls = 3, | 634 | .num_ovls = 3, |
| 576 | .supported_displays = omap3430_dss_supported_displays, | 635 | .supported_displays = omap3430_dss_supported_displays, |
| 636 | .supported_outputs = omap3430_dss_supported_outputs, | ||
| 577 | .supported_color_modes = omap3_dss_supported_color_modes, | 637 | .supported_color_modes = omap3_dss_supported_color_modes, |
| 578 | .overlay_caps = omap3430_dss_overlay_caps, | 638 | .overlay_caps = omap3430_dss_overlay_caps, |
| 579 | .clksrc_names = omap3_dss_clk_source_names, | 639 | .clksrc_names = omap3_dss_clk_source_names, |
| @@ -597,6 +657,7 @@ static const struct omap_dss_features am35xx_dss_features = { | |||
| 597 | .num_mgrs = 2, | 657 | .num_mgrs = 2, |
| 598 | .num_ovls = 3, | 658 | .num_ovls = 3, |
| 599 | .supported_displays = omap3430_dss_supported_displays, | 659 | .supported_displays = omap3430_dss_supported_displays, |
| 660 | .supported_outputs = omap3430_dss_supported_outputs, | ||
| 600 | .supported_color_modes = omap3_dss_supported_color_modes, | 661 | .supported_color_modes = omap3_dss_supported_color_modes, |
| 601 | .overlay_caps = omap3430_dss_overlay_caps, | 662 | .overlay_caps = omap3430_dss_overlay_caps, |
| 602 | .clksrc_names = omap3_dss_clk_source_names, | 663 | .clksrc_names = omap3_dss_clk_source_names, |
| @@ -616,6 +677,7 @@ static const struct omap_dss_features omap3630_dss_features = { | |||
| 616 | .num_mgrs = 2, | 677 | .num_mgrs = 2, |
| 617 | .num_ovls = 3, | 678 | .num_ovls = 3, |
| 618 | .supported_displays = omap3630_dss_supported_displays, | 679 | .supported_displays = omap3630_dss_supported_displays, |
| 680 | .supported_outputs = omap3630_dss_supported_outputs, | ||
| 619 | .supported_color_modes = omap3_dss_supported_color_modes, | 681 | .supported_color_modes = omap3_dss_supported_color_modes, |
| 620 | .overlay_caps = omap3630_dss_overlay_caps, | 682 | .overlay_caps = omap3630_dss_overlay_caps, |
| 621 | .clksrc_names = omap3_dss_clk_source_names, | 683 | .clksrc_names = omap3_dss_clk_source_names, |
| @@ -637,6 +699,7 @@ static const struct omap_dss_features omap4430_es1_0_dss_features = { | |||
| 637 | .num_mgrs = 3, | 699 | .num_mgrs = 3, |
| 638 | .num_ovls = 4, | 700 | .num_ovls = 4, |
| 639 | .supported_displays = omap4_dss_supported_displays, | 701 | .supported_displays = omap4_dss_supported_displays, |
| 702 | .supported_outputs = omap4_dss_supported_outputs, | ||
| 640 | .supported_color_modes = omap4_dss_supported_color_modes, | 703 | .supported_color_modes = omap4_dss_supported_color_modes, |
| 641 | .overlay_caps = omap4_dss_overlay_caps, | 704 | .overlay_caps = omap4_dss_overlay_caps, |
| 642 | .clksrc_names = omap4_dss_clk_source_names, | 705 | .clksrc_names = omap4_dss_clk_source_names, |
| @@ -657,6 +720,7 @@ static const struct omap_dss_features omap4430_es2_0_1_2_dss_features = { | |||
| 657 | .num_mgrs = 3, | 720 | .num_mgrs = 3, |
| 658 | .num_ovls = 4, | 721 | .num_ovls = 4, |
| 659 | .supported_displays = omap4_dss_supported_displays, | 722 | .supported_displays = omap4_dss_supported_displays, |
| 723 | .supported_outputs = omap4_dss_supported_outputs, | ||
| 660 | .supported_color_modes = omap4_dss_supported_color_modes, | 724 | .supported_color_modes = omap4_dss_supported_color_modes, |
| 661 | .overlay_caps = omap4_dss_overlay_caps, | 725 | .overlay_caps = omap4_dss_overlay_caps, |
| 662 | .clksrc_names = omap4_dss_clk_source_names, | 726 | .clksrc_names = omap4_dss_clk_source_names, |
| @@ -677,6 +741,7 @@ static const struct omap_dss_features omap4_dss_features = { | |||
| 677 | .num_mgrs = 3, | 741 | .num_mgrs = 3, |
| 678 | .num_ovls = 4, | 742 | .num_ovls = 4, |
| 679 | .supported_displays = omap4_dss_supported_displays, | 743 | .supported_displays = omap4_dss_supported_displays, |
| 744 | .supported_outputs = omap4_dss_supported_outputs, | ||
| 680 | .supported_color_modes = omap4_dss_supported_color_modes, | 745 | .supported_color_modes = omap4_dss_supported_color_modes, |
| 681 | .overlay_caps = omap4_dss_overlay_caps, | 746 | .overlay_caps = omap4_dss_overlay_caps, |
| 682 | .clksrc_names = omap4_dss_clk_source_names, | 747 | .clksrc_names = omap4_dss_clk_source_names, |
| @@ -697,6 +762,7 @@ static const struct omap_dss_features omap5_dss_features = { | |||
| 697 | .num_mgrs = 3, | 762 | .num_mgrs = 3, |
| 698 | .num_ovls = 4, | 763 | .num_ovls = 4, |
| 699 | .supported_displays = omap5_dss_supported_displays, | 764 | .supported_displays = omap5_dss_supported_displays, |
| 765 | .supported_outputs = omap5_dss_supported_outputs, | ||
| 700 | .supported_color_modes = omap4_dss_supported_color_modes, | 766 | .supported_color_modes = omap4_dss_supported_color_modes, |
| 701 | .overlay_caps = omap4_dss_overlay_caps, | 767 | .overlay_caps = omap4_dss_overlay_caps, |
| 702 | .clksrc_names = omap5_dss_clk_source_names, | 768 | .clksrc_names = omap5_dss_clk_source_names, |
| @@ -766,6 +832,11 @@ enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel | |||
| 766 | return omap_current_dss_features->supported_displays[channel]; | 832 | return omap_current_dss_features->supported_displays[channel]; |
| 767 | } | 833 | } |
| 768 | 834 | ||
| 835 | enum omap_dss_output_id dss_feat_get_supported_outputs(enum omap_channel channel) | ||
| 836 | { | ||
| 837 | return omap_current_dss_features->supported_outputs[channel]; | ||
| 838 | } | ||
| 839 | |||
| 769 | enum omap_color_mode dss_feat_get_supported_color_modes(enum omap_plane plane) | 840 | enum omap_color_mode dss_feat_get_supported_color_modes(enum omap_plane plane) |
| 770 | { | 841 | { |
| 771 | return omap_current_dss_features->supported_color_modes[plane]; | 842 | return omap_current_dss_features->supported_color_modes[plane]; |
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h index aacad863fa22..89df2aa860d4 100644 --- a/drivers/video/omap2/dss/dss_features.h +++ b/drivers/video/omap2/dss/dss_features.h | |||
| @@ -108,6 +108,7 @@ int dss_feat_get_num_ovls(void); | |||
| 108 | unsigned long dss_feat_get_param_min(enum dss_range_param param); | 108 | unsigned long dss_feat_get_param_min(enum dss_range_param param); |
| 109 | unsigned long dss_feat_get_param_max(enum dss_range_param param); | 109 | unsigned long dss_feat_get_param_max(enum dss_range_param param); |
| 110 | enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel); | 110 | enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel); |
| 111 | enum omap_dss_output_id dss_feat_get_supported_outputs(enum omap_channel channel); | ||
| 111 | enum omap_color_mode dss_feat_get_supported_color_modes(enum omap_plane plane); | 112 | enum omap_color_mode dss_feat_get_supported_color_modes(enum omap_plane plane); |
| 112 | enum omap_overlay_caps dss_feat_get_overlay_caps(enum omap_plane plane); | 113 | enum omap_overlay_caps dss_feat_get_overlay_caps(enum omap_plane plane); |
| 113 | bool dss_feat_color_mode_supported(enum omap_plane plane, | 114 | bool dss_feat_color_mode_supported(enum omap_plane plane, |
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index 383314f222b0..92a2585d04b2 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
| @@ -95,6 +95,8 @@ int dss_init_overlay_managers(struct platform_device *pdev) | |||
| 95 | 95 | ||
| 96 | mgr->set_device = &dss_mgr_set_device; | 96 | mgr->set_device = &dss_mgr_set_device; |
| 97 | mgr->unset_device = &dss_mgr_unset_device; | 97 | mgr->unset_device = &dss_mgr_unset_device; |
| 98 | mgr->set_output = &dss_mgr_set_output; | ||
| 99 | mgr->unset_output = &dss_mgr_unset_output; | ||
| 98 | mgr->apply = &omap_dss_mgr_apply; | 100 | mgr->apply = &omap_dss_mgr_apply; |
| 99 | mgr->set_manager_info = &dss_mgr_set_info; | 101 | mgr->set_manager_info = &dss_mgr_set_info; |
| 100 | mgr->get_manager_info = &dss_mgr_get_info; | 102 | mgr->get_manager_info = &dss_mgr_get_info; |
| @@ -104,6 +106,8 @@ int dss_init_overlay_managers(struct platform_device *pdev) | |||
| 104 | mgr->caps = 0; | 106 | mgr->caps = 0; |
| 105 | mgr->supported_displays = | 107 | mgr->supported_displays = |
| 106 | dss_feat_get_supported_displays(mgr->id); | 108 | dss_feat_get_supported_displays(mgr->id); |
| 109 | mgr->supported_outputs = | ||
| 110 | dss_feat_get_supported_outputs(mgr->id); | ||
| 107 | 111 | ||
| 108 | INIT_LIST_HEAD(&mgr->overlays); | 112 | INIT_LIST_HEAD(&mgr->overlays); |
| 109 | 113 | ||
diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 6d08cf55e5e2..d8fd1c85fc87 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h | |||
| @@ -459,9 +459,11 @@ struct omap_overlay_manager { | |||
| 459 | enum omap_overlay_manager_caps caps; | 459 | enum omap_overlay_manager_caps caps; |
| 460 | struct list_head overlays; | 460 | struct list_head overlays; |
| 461 | enum omap_display_type supported_displays; | 461 | enum omap_display_type supported_displays; |
| 462 | enum omap_dss_output_id supported_outputs; | ||
| 462 | 463 | ||
| 463 | /* dynamic fields */ | 464 | /* dynamic fields */ |
| 464 | struct omap_dss_device *device; | 465 | struct omap_dss_device *device; |
| 466 | struct omap_dss_output *output; | ||
| 465 | 467 | ||
| 466 | /* | 468 | /* |
| 467 | * The following functions do not block: | 469 | * The following functions do not block: |
| @@ -477,6 +479,9 @@ struct omap_overlay_manager { | |||
| 477 | int (*set_device)(struct omap_overlay_manager *mgr, | 479 | int (*set_device)(struct omap_overlay_manager *mgr, |
| 478 | struct omap_dss_device *dssdev); | 480 | struct omap_dss_device *dssdev); |
| 479 | int (*unset_device)(struct omap_overlay_manager *mgr); | 481 | int (*unset_device)(struct omap_overlay_manager *mgr); |
| 482 | int (*set_output)(struct omap_overlay_manager *mgr, | ||
| 483 | struct omap_dss_output *output); | ||
| 484 | int (*unset_output)(struct omap_overlay_manager *mgr); | ||
| 480 | 485 | ||
| 481 | int (*set_manager_info)(struct omap_overlay_manager *mgr, | 486 | int (*set_manager_info)(struct omap_overlay_manager *mgr, |
| 482 | struct omap_overlay_manager_info *info); | 487 | struct omap_overlay_manager_info *info); |
