Skip to content

Commit

Permalink
drm/mediatek: Add GAMMA engine basic function
Browse files Browse the repository at this point in the history
In order to correct brightness values, we have
to support gamma funciton on MT8173. In MT8173,
we have two engines for supporting gamma function:
AAL and GAMMA. This patch add some GAMMA engine
basic function, include config, start and stop
function.

Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
  • Loading branch information
Bibby Hsieh authored and Philipp Zabel committed Aug 11, 2016
1 parent 0664d13 commit e0a5d33
Showing 1 changed file with 28 additions and 1 deletion.
29 changes: 28 additions & 1 deletion drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
#define DISP_AAL_EN 0x0000
#define DISP_AAL_SIZE 0x0030

#define DISP_GAMMA_EN 0x0000
#define DISP_GAMMA_SIZE 0x0030

#define OD_RELAY_MODE BIT(0)

#define UFO_BYPASS BIT(2)
Expand All @@ -50,6 +53,8 @@

#define AAL_EN BIT(0)

#define GAMMA_EN BIT(0)

static void mtk_color_config(struct mtk_ddp_comp *comp, unsigned int w,
unsigned int h, unsigned int vrefresh)
{
Expand Down Expand Up @@ -97,12 +102,34 @@ static void mtk_aal_stop(struct mtk_ddp_comp *comp)
writel_relaxed(0x0, comp->regs + DISP_AAL_EN);
}

static void mtk_gamma_config(struct mtk_ddp_comp *comp, unsigned int w,
unsigned int h, unsigned int vrefresh)
{
writel(h << 16 | w, comp->regs + DISP_GAMMA_SIZE);
}

static void mtk_gamma_start(struct mtk_ddp_comp *comp)
{
writel(GAMMA_EN, comp->regs + DISP_GAMMA_EN);
}

static void mtk_gamma_stop(struct mtk_ddp_comp *comp)
{
writel_relaxed(0x0, comp->regs + DISP_GAMMA_EN);
}

static const struct mtk_ddp_comp_funcs ddp_aal = {
.config = mtk_aal_config,
.start = mtk_aal_start,
.stop = mtk_aal_stop,
};

static const struct mtk_ddp_comp_funcs ddp_gamma = {
.config = mtk_gamma_config,
.start = mtk_gamma_start,
.stop = mtk_gamma_stop,
};

static const struct mtk_ddp_comp_funcs ddp_color = {
.config = mtk_color_config,
.start = mtk_color_start,
Expand Down Expand Up @@ -145,7 +172,7 @@ static const struct mtk_ddp_comp_match mtk_ddp_matches[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_DPI0] = { MTK_DPI, 0, NULL },
[DDP_COMPONENT_DSI0] = { MTK_DSI, 0, NULL },
[DDP_COMPONENT_DSI1] = { MTK_DSI, 1, NULL },
[DDP_COMPONENT_GAMMA] = { MTK_DISP_GAMMA, 0, NULL },
[DDP_COMPONENT_GAMMA] = { MTK_DISP_GAMMA, 0, &ddp_gamma },
[DDP_COMPONENT_OD] = { MTK_DISP_OD, 0, &ddp_od },
[DDP_COMPONENT_OVL0] = { MTK_DISP_OVL, 0, NULL },
[DDP_COMPONENT_OVL1] = { MTK_DISP_OVL, 1, NULL },
Expand Down

0 comments on commit e0a5d33

Please sign in to comment.