From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759267AbcG1CXW (ORCPT ); Wed, 27 Jul 2016 22:23:22 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:26484 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1758826AbcG1CXD (ORCPT ); Wed, 27 Jul 2016 22:23:03 -0400 From: Bibby Hsieh To: David Airlie , Matthias Brugger , Daniel Vetter , , CC: Yingjoe Chen , Cawa Cheng , Daniel Kurtz , Bibby Hsieh , Philipp Zabel , YT Shen , Thierry Reding , CK Hu , Mao Huang , , , Sascha Hauer Subject: [PATCH v4 1/4] drm/mediatek: Add AAL engine basic function Date: Thu, 28 Jul 2016 10:22:52 +0800 Message-ID: <1469672575-5847-2-git-send-email-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> References: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 AAL engine basic function, include config, start and stop function. Signed-off-by: Bibby Hsieh --- drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 29 ++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c index 3970fcf..5fc9671 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -38,6 +38,9 @@ #define DISP_COLOR_WIDTH 0x0c50 #define DISP_COLOR_HEIGHT 0x0c54 +#define DISP_AAL_EN 0x0000 +#define DISP_AAL_SIZE 0x0030 + #define OD_RELAY_MODE BIT(0) #define UFO_BYPASS BIT(2) @@ -45,6 +48,8 @@ #define COLOR_BYPASS_ALL BIT(7) #define COLOR_SEQ_SEL BIT(13) +#define AAL_EN BIT(0) + static void mtk_color_config(struct mtk_ddp_comp *comp, unsigned int w, unsigned int h, unsigned int vrefresh) { @@ -76,6 +81,28 @@ static void mtk_ufoe_start(struct mtk_ddp_comp *comp) writel(UFO_BYPASS, comp->regs + DISP_REG_UFO_START); } +static void mtk_aal_config(struct mtk_ddp_comp *comp, unsigned int w, + unsigned int h, unsigned int vrefresh) +{ + writel(h << 16 | w, comp->regs + DISP_AAL_SIZE); +} + +static void mtk_aal_start(struct mtk_ddp_comp *comp) +{ + writel(AAL_EN, comp->regs + DISP_AAL_EN); +} + +static void mtk_aal_stop(struct mtk_ddp_comp *comp) +{ + writel_relaxed(0x0, comp->regs + DISP_AAL_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_color = { .config = mtk_color_config, .start = mtk_color_start, @@ -112,7 +139,7 @@ struct mtk_ddp_comp_match { }; static const struct mtk_ddp_comp_match mtk_ddp_matches[DDP_COMPONENT_ID_MAX] = { - [DDP_COMPONENT_AAL] = { MTK_DISP_AAL, 0, NULL }, + [DDP_COMPONENT_AAL] = { MTK_DISP_AAL, 0, &ddp_aal }, [DDP_COMPONENT_COLOR0] = { MTK_DISP_COLOR, 0, &ddp_color }, [DDP_COMPONENT_COLOR1] = { MTK_DISP_COLOR, 1, &ddp_color }, [DDP_COMPONENT_DPI0] = { MTK_DPI, 0, NULL }, -- 1.7.9.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bibby Hsieh Subject: [PATCH v4 1/4] drm/mediatek: Add AAL engine basic function Date: Thu, 28 Jul 2016 10:22:52 +0800 Message-ID: <1469672575-5847-2-git-send-email-bibby.hsieh@mediatek.com> References: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by gabe.freedesktop.org (Postfix) with ESMTP id B70126E62C for ; Thu, 28 Jul 2016 02:23:00 +0000 (UTC) In-Reply-To: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Matthias Brugger , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Cawa Cheng , Mao Huang , Yingjoe Chen , Sascha Hauer , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org SW4gb3JkZXIgdG8gY29ycmVjdCBicmlnaHRuZXNzIHZhbHVlcywgd2UgaGF2ZQp0byBzdXBwb3J0 IGdhbW1hIGZ1bmNpdG9uIG9uIE1UODE3My4gSW4gTVQ4MTczLAp3ZSBoYXZlIHR3byBlbmdpbmVz IGZvciBzdXBwb3J0aW5nIGdhbW1hIGZ1bmN0aW9uOgpBQUwgYW5kIEdBTU1BLiBUaGlzIHBhdGNo IGFkZCBzb21lIEFBTCBlbmdpbmUKYmFzaWMgZnVuY3Rpb24sIGluY2x1ZGUgY29uZmlnLCBzdGFy dCBhbmQgc3RvcApmdW5jdGlvbi4KClNpZ25lZC1vZmYtYnk6IEJpYmJ5IEhzaWVoIDxiaWJieS5o c2llaEBtZWRpYXRlay5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYyB8ICAgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hh bmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCmluZGV4IDM5NzBmY2YuLjVmYzk2NzEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwpAQCAtMzgsNiArMzgs OSBAQAogI2RlZmluZSBESVNQX0NPTE9SX1dJRFRICQkJMHgwYzUwCiAjZGVmaW5lIERJU1BfQ09M T1JfSEVJR0hUCQkJMHgwYzU0CiAKKyNkZWZpbmUgRElTUF9BQUxfRU4JCQkJMHgwMDAwCisjZGVm aW5lIERJU1BfQUFMX1NJWkUJCQkJMHgwMDMwCisKICNkZWZpbmUJT0RfUkVMQVlfTU9ERQkJQklU KDApCiAKICNkZWZpbmUJVUZPX0JZUEFTUwkJQklUKDIpCkBAIC00NSw2ICs0OCw4IEBACiAjZGVm aW5lCUNPTE9SX0JZUEFTU19BTEwJQklUKDcpCiAjZGVmaW5lCUNPTE9SX1NFUV9TRUwJCUJJVCgx MykKIAorI2RlZmluZSBBQUxfRU4JCQlCSVQoMCkKKwogc3RhdGljIHZvaWQgbXRrX2NvbG9yX2Nv bmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywKIAkJCSAgICAg dW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCkKIHsKQEAgLTc2LDYgKzgxLDI4 IEBAIHN0YXRpYyB2b2lkIG10a191Zm9lX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAp CiAJd3JpdGVsKFVGT19CWVBBU1MsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19VRk9fU1RBUlQpOwog fQogCitzdGF0aWMgdm9pZCBtdGtfYWFsX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w LCB1bnNpZ25lZCBpbnQgdywKKwkJCSAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJl ZnJlc2gpCit7CisJd3JpdGVsKGggPDwgMTYgfCB3LCBjb21wLT5yZWdzICsgRElTUF9BQUxfU0la RSk7Cit9CisKK3N0YXRpYyB2b2lkIG10a19hYWxfc3RhcnQoc3RydWN0IG10a19kZHBfY29tcCAq Y29tcCkKK3sKKwl3cml0ZWwoQUFMX0VOLCBjb21wLT5yZWdzICsgRElTUF9BQUxfRU4pOworfQor CitzdGF0aWMgdm9pZCBtdGtfYWFsX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKK3sK Kwl3cml0ZWxfcmVsYXhlZCgweDAsIGNvbXAtPnJlZ3MgKyBESVNQX0FBTF9FTik7Cit9CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9hYWwgPSB7CisJLmNvbmZp ZyA9IG10a19hYWxfY29uZmlnLAorCS5zdGFydCA9IG10a19hYWxfc3RhcnQsCisJLnN0b3AgPSBt dGtfYWFsX3N0b3AsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5j cyBkZHBfY29sb3IgPSB7CiAJLmNvbmZpZyA9IG10a19jb2xvcl9jb25maWcsCiAJLnN0YXJ0ID0g bXRrX2NvbG9yX3N0YXJ0LApAQCAtMTEyLDcgKzEzOSw3IEBAIHN0cnVjdCBtdGtfZGRwX2NvbXBf bWF0Y2ggewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRr X2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKLQlbRERQX0NPTVBPTkVOVF9B QUxdCT0geyBNVEtfRElTUF9BQUwsCTAsIE5VTEwgfSwKKwlbRERQX0NPTVBPTkVOVF9BQUxdCT0g eyBNVEtfRElTUF9BQUwsCTAsICZkZHBfYWFsIH0sCiAJW0REUF9DT01QT05FTlRfQ09MT1IwXQk9 IHsgTVRLX0RJU1BfQ09MT1IsCTAsICZkZHBfY29sb3IgfSwKIAlbRERQX0NPTVBPTkVOVF9DT0xP UjFdCT0geyBNVEtfRElTUF9DT0xPUiwJMSwgJmRkcF9jb2xvciB9LAogCVtERFBfQ09NUE9ORU5U X0RQSTBdCT0geyBNVEtfRFBJLAkJMCwgTlVMTCB9LAotLSAKMS43LjkuNQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: bibby.hsieh@mediatek.com (Bibby Hsieh) Date: Thu, 28 Jul 2016 10:22:52 +0800 Subject: [PATCH v4 1/4] drm/mediatek: Add AAL engine basic function In-Reply-To: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> References: <1469672575-5847-1-git-send-email-bibby.hsieh@mediatek.com> Message-ID: <1469672575-5847-2-git-send-email-bibby.hsieh@mediatek.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 AAL engine basic function, include config, start and stop function. Signed-off-by: Bibby Hsieh --- drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 29 ++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c index 3970fcf..5fc9671 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -38,6 +38,9 @@ #define DISP_COLOR_WIDTH 0x0c50 #define DISP_COLOR_HEIGHT 0x0c54 +#define DISP_AAL_EN 0x0000 +#define DISP_AAL_SIZE 0x0030 + #define OD_RELAY_MODE BIT(0) #define UFO_BYPASS BIT(2) @@ -45,6 +48,8 @@ #define COLOR_BYPASS_ALL BIT(7) #define COLOR_SEQ_SEL BIT(13) +#define AAL_EN BIT(0) + static void mtk_color_config(struct mtk_ddp_comp *comp, unsigned int w, unsigned int h, unsigned int vrefresh) { @@ -76,6 +81,28 @@ static void mtk_ufoe_start(struct mtk_ddp_comp *comp) writel(UFO_BYPASS, comp->regs + DISP_REG_UFO_START); } +static void mtk_aal_config(struct mtk_ddp_comp *comp, unsigned int w, + unsigned int h, unsigned int vrefresh) +{ + writel(h << 16 | w, comp->regs + DISP_AAL_SIZE); +} + +static void mtk_aal_start(struct mtk_ddp_comp *comp) +{ + writel(AAL_EN, comp->regs + DISP_AAL_EN); +} + +static void mtk_aal_stop(struct mtk_ddp_comp *comp) +{ + writel_relaxed(0x0, comp->regs + DISP_AAL_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_color = { .config = mtk_color_config, .start = mtk_color_start, @@ -112,7 +139,7 @@ struct mtk_ddp_comp_match { }; static const struct mtk_ddp_comp_match mtk_ddp_matches[DDP_COMPONENT_ID_MAX] = { - [DDP_COMPONENT_AAL] = { MTK_DISP_AAL, 0, NULL }, + [DDP_COMPONENT_AAL] = { MTK_DISP_AAL, 0, &ddp_aal }, [DDP_COMPONENT_COLOR0] = { MTK_DISP_COLOR, 0, &ddp_color }, [DDP_COMPONENT_COLOR1] = { MTK_DISP_COLOR, 1, &ddp_color }, [DDP_COMPONENT_DPI0] = { MTK_DPI, 0, NULL }, -- 1.7.9.5