void (*set_default_color)(struct omap_overlay_manager *mgr, u32 color);
u32 (*get_default_color)(struct omap_overlay_manager *mgr);
+ bool (*get_alpha_blending_status)(struct omap_overlay_manager *mgr);
void (*set_trans_key)(struct omap_overlay_manager *mgr,
enum omap_dss_color_key_type type,
u32 trans_key);
void (*enable_trans_key)(struct omap_overlay_manager *mgr,
bool enable);
+ void (*enable_alpha_blending)(struct omap_overlay_manager *mgr,
+ bool enable);
};
enum omap_display_caps {
REG_FLD_MOD(DISPC_CONFIG, enable, 12, 12);
enable_clocks(0);
}
+void dispc_enable_alpha_blending(enum omap_channel ch, bool enable)
+{
+ enable_clocks(1);
+ if (ch == OMAP_DSS_CHANNEL_LCD)
+ REG_FLD_MOD(DISPC_CONFIG, enable, 18, 18);
+ else /* OMAP_DSS_CHANNEL_DIGIT */
+ REG_FLD_MOD(DISPC_CONFIG, enable, 19, 19);
+ enable_clocks(0);
+}
+bool dispc_alpha_blending_enabled(enum omap_channel ch)
+{
+ bool enabled;
+
+ enable_clocks(1);
+ if (ch == OMAP_DSS_CHANNEL_LCD)
+ enabled = REG_GET(DISPC_CONFIG, 18, 18);
+ else if (ch == OMAP_DSS_CHANNEL_DIGIT)
+ enabled = REG_GET(DISPC_CONFIG, 18, 18);
+ else
+ BUG();
+ enable_clocks(0);
+
+ return enabled;
+
+}
+
bool dispc_trans_key_enabled(enum omap_channel ch)
{
enum omap_dss_color_key_type *type,
u32 *trans_key);
void dispc_enable_trans_key(enum omap_channel ch, bool enable);
+void dispc_enable_alpha_blending(enum omap_channel ch, bool enable);
bool dispc_trans_key_enabled(enum omap_channel ch);
+bool dispc_alpha_blending_enabled(enum omap_channel ch);
void dispc_set_lcd_timings(struct omap_video_timings *timings);
unsigned long dispc_fclk_rate(void);
{
dispc_enable_trans_key(mgr->id, enable);
}
+static void omap_dss_mgr_enable_alpha_blending(struct omap_overlay_manager *mgr,
+ bool enable)
+{
+ dispc_enable_alpha_blending(mgr->id, enable);
+}
+static bool omap_dss_mgr_get_alpha_blending_status(
+ struct omap_overlay_manager *mgr)
+{
+ return dispc_alpha_blending_enabled(mgr->id);
+}
static u32 omap_dss_mgr_get_default_color(struct omap_overlay_manager *mgr)
{
return dispc_get_default_color(mgr->id);
mgr->set_default_color = &omap_dss_mgr_set_def_color,
mgr->set_trans_key = &omap_dss_mgr_set_trans_key,
mgr->enable_trans_key = &omap_dss_mgr_enable_trans_key,
+ mgr->enable_alpha_blending =
+ &omap_dss_mgr_enable_alpha_blending;
+ mgr->get_alpha_blending_status =
+ omap_dss_mgr_get_alpha_blending_status;
mgr->get_default_color = &omap_dss_mgr_get_default_color;
mgr->caps = OMAP_DSS_OVL_MGR_CAP_DISPC,