Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp335287pxb; Mon, 16 Aug 2021 06:34:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyy7jTQFThYAOvQx2Okeu3ReuScazea3Dsr5vHF5ymGYCOpSjI4yrEM+rm/o8hrFLMYyDjN X-Received: by 2002:a17:906:53d2:: with SMTP id p18mr15634907ejo.152.1629120886038; Mon, 16 Aug 2021 06:34:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629120886; cv=none; d=google.com; s=arc-20160816; b=kOFfSBVz3FXgE59fiY2vculonLVNaqukPBKmUXIih3ZP5RcUdf0kXd81IAzpDeaydu JTMLuW48+P2smO4aPbOVNnyAMeeV+Ip04sUK++U8CFuoFv9CTR8xjBpTIxAP4dmqs0vj 6Cey7h1JZXyx9NIShqdpegkzJoILOpSCoQSAczuIuERcpl6mUPb2+YtYm62a26X4+IXa i2cuyJV2sXBaHQ1yN4kW8FKcJ6ShIILj/sJww+lLKEi1oEujO+d90Zfx6YeF0FhkXgxo w+78uvrwvSGGVkhupmMHGGadlP26hlz4rk5gNquvRmvD77/bydT0FX0nc7SNb89os2Lc 5EYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZDBZ2WHF8e2qwOL0U9q8LBTQU3EyzC85eTePYKMIKGM=; b=ykAn44VNr0jkT/B31PvN+FrUNGnLH92PxwCBKYeivbtEwG9lk8O7MH16i3pncAwqSP F6GVNEOxarJrZMS8FSpHT6+osQ3sc9uMuPAyBEld7uWp1BKhDKirGQgXq5rE01w0+LLu uXVCbm6+5Ca2UxmyAr5foGow+TlcExCbWsNmE06uKYKY2gtQh+eJfrmKG/UxNXGZy8U3 TDzeLcBK9iGHPcWp5Has12H1A8qFhi0o06Y1lWrqJPLU4GcU/rEskZk0kAH4pEOw6Me6 K4NrvGXFDFkxiLeNGiaTW8jrUtfdjOgYHkCwW2SrEtt7r9d3g2nRxMuIzGYYkN2F7Y3G c0uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=lQtTxxI8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w8si4012563edc.268.2021.08.16.06.34.22; Mon, 16 Aug 2021 06:34:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=lQtTxxI8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240685AbhHPNcA (ORCPT + 99 others); Mon, 16 Aug 2021 09:32:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:39180 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238894AbhHPNQg (ORCPT ); Mon, 16 Aug 2021 09:16:36 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B71F8632ED; Mon, 16 Aug 2021 13:13:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1629119602; bh=DmvCyg3+GaFmW/1KXTkP3Udlm3T9LTw6aydB4yoyp6w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lQtTxxI8RQjIfinTh2UeQ/Zh26C7CdUNmoExL7XNxuBG79sbFFXrtM9nPiS6dmid4 LBWnke7QXKiIqiOnGe628VHQ73Ewz4U9sXeOvkKXtXJE2SdZqgSmsM4pabhTFTtMCA 2vzmEZcYHhe/Fv3njES3B8m0pNx/j7HxEsD3I5Ew= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mathias Steiger , Christian Hewitt , Neil Armstrong , Philip Milev , Sasha Levin Subject: [PATCH 5.13 088/151] drm/meson: fix colour distortion from HDR set during vendor u-boot Date: Mon, 16 Aug 2021 15:01:58 +0200 Message-Id: <20210816125446.981911556@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210816125444.082226187@linuxfoundation.org> References: <20210816125444.082226187@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian Hewitt [ Upstream commit bf33677a3c394bb8fddd48d3bbc97adf0262e045 ] Add support for the OSD1 HDR registers so meson DRM can handle the HDR properties set by Amlogic u-boot on G12A and newer devices which result in blue/green/pink colour distortion to display output. This takes the original patch submissions from Mathias [0] and [1] with corrections for formatting and the missing description and attribution needed for merge. [0] https://lore.kernel.org/linux-amlogic/59dfd7e6-fc91-3d61-04c4-94e078a3188c@baylibre.com/T/ [1] https://lore.kernel.org/linux-amlogic/CAOKfEHBx_fboUqkENEMd-OC-NSrf46nto+vDLgvgttzPe99kXg@mail.gmail.com/T/#u Fixes: 728883948b0d ("drm/meson: Add G12A Support for VIU setup") Suggested-by: Mathias Steiger Signed-off-by: Christian Hewitt Tested-by: Neil Armstrong Tested-by: Philip Milev [narmsrong: adding missing space on second tested-by tag] Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20210806094005.7136-1-christianshewitt@gmail.com Signed-off-by: Sasha Levin --- drivers/gpu/drm/meson/meson_registers.h | 5 +++++ drivers/gpu/drm/meson/meson_viu.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/meson/meson_registers.h b/drivers/gpu/drm/meson/meson_registers.h index 446e7961da48..0f3cafab8860 100644 --- a/drivers/gpu/drm/meson/meson_registers.h +++ b/drivers/gpu/drm/meson/meson_registers.h @@ -634,6 +634,11 @@ #define VPP_WRAP_OSD3_MATRIX_PRE_OFFSET2 0x3dbc #define VPP_WRAP_OSD3_MATRIX_EN_CTRL 0x3dbd +/* osd1 HDR */ +#define OSD1_HDR2_CTRL 0x38a0 +#define OSD1_HDR2_CTRL_VDIN0_HDR2_TOP_EN BIT(13) +#define OSD1_HDR2_CTRL_REG_ONLY_MAT BIT(16) + /* osd2 scaler */ #define OSD2_VSC_PHASE_STEP 0x3d00 #define OSD2_VSC_INI_PHASE 0x3d01 diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c index aede0c67a57f..259f3e6bec90 100644 --- a/drivers/gpu/drm/meson/meson_viu.c +++ b/drivers/gpu/drm/meson/meson_viu.c @@ -425,9 +425,14 @@ void meson_viu_init(struct meson_drm *priv) if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) || meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL)) meson_viu_load_matrix(priv); - else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) + else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) { meson_viu_set_g12a_osd1_matrix(priv, RGB709_to_YUV709l_coeff, true); + /* fix green/pink color distortion from vendor u-boot */ + writel_bits_relaxed(OSD1_HDR2_CTRL_REG_ONLY_MAT | + OSD1_HDR2_CTRL_VDIN0_HDR2_TOP_EN, 0, + priv->io_base + _REG(OSD1_HDR2_CTRL)); + } /* Initialize OSD1 fifo control register */ reg = VIU_OSD_DDR_PRIORITY_URGENT | -- 2.30.2