From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B95AFC4338F for ; Fri, 6 Aug 2021 09:42:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 998B8611B0 for ; Fri, 6 Aug 2021 09:42:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244637AbhHFJmz (ORCPT ); Fri, 6 Aug 2021 05:42:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242680AbhHFJmx (ORCPT ); Fri, 6 Aug 2021 05:42:53 -0400 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5312C061798 for ; Fri, 6 Aug 2021 02:42:37 -0700 (PDT) Received: by mail-pl1-x632.google.com with SMTP id i10so6358254pla.3 for ; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=SXu8xId+7S96lozM+9jNDTE8KKNGlgx6uPoKWwz+WwXMvz1d0rTofjoV4SQCFfBnSZ LTuYpkQ0CveluxulWfcAhp7m4fWmgzDpBIdavDKgZxUWtxzkDRb3q8BfjRwEcApD9YHh yJGyg9XNka6qwhtKSbTE7OZ0NRcPB3y6hgI4TbrUCKYm6diWoiNap6rtWPQQ/SmhTcUm BSlATxLy43GGhqInxcGTKxazNRM1Zg//uB/Jj7C4m/JnBpihK0FRyTFLTkq6UjMmbYXo m3jUv43U/G6Dkbjs3xy3kvWsunCj/DdxViD6qYM+wt+FTFCXB+AR2t9X2xTnai+47F9a 0Nrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=aMbxli9mvvNc+0QmU3AlP3uO1yX+MpUVmoosmAulQbs5A4B/RNsXL9pP4g/67e+Epm 728ZVvpfior782vSa6JKm8odHxZGmIpnWVUyK9+4bunBUZ3lupK0t4Sdahp8DYQqExU/ OpRCSKv/RfiKQSQc+ytCB+cCyzzkev6KTd9MujmXf2CfeAxcrFgzkdb1KFYqrhdjwzmw c3f4Hd95j1THyD3127MYzzn2zgHtfI/Y5k4eAFV2uzFeuqUfM8CcGrJev6/wIj3TArxR FCuCKQdsMegeEs9lyEuir3eoOjwbdwTZnxyF2CVI3tgExtG9brhaYc0I5A3bdnxKQb4E tEvA== X-Gm-Message-State: AOAM533dNXuuuNpe3kXmBalnqnDGW4zZ7BgbjyPxzfS9GUnWSn/mDpuV gLs5HTI+5Na7ytlURuuN9XYrnE/A998XcFtmnkZwCA== X-Google-Smtp-Source: ABdhPJx+BDp+a/3ncBTlo6vu6+TXRvbaFZ9ImUS/1LbApSXQDKjL8eqWP8K5L9x04aHKdfGndP9XdWO+I9CX1KGMutQ= X-Received: by 2002:aa7:90c8:0:b029:32c:935f:de5f with SMTP id k8-20020aa790c80000b029032c935fde5fmr9660331pfk.79.1628242957366; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Foss Date: Fri, 6 Aug 2021 11:42:26 +0200 Message-ID: Subject: Re: [PATCH v2 1/1] drm/bridge: anx7625: Tune K value for IVO panel To: Xin Ji Cc: Nicolas Boichat , Andrzej Hajda , Sam Ravnborg , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Dan Carpenter , David Airlie , Daniel Vetter , Boris Brezillon , Hsin-Yi Wang , Torsten Duwe , Vasily Khoruzhick , Marek Szyprowski , Bernie Liang , Qilin Wen , dri-devel , linux-kernel , devel@driverdev.osuosl.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hey Xin, Thanks for implementing the suggestion so quickly. Can you send this version of the patch out as v2? Versioning is important and both tools and processes break if different versions aren't submitted in different emails. On Fri, 6 Aug 2021 at 11:35, Xin Ji wrote: > > IVO panel require less input video clock variation than video clock > variation in DP CTS spec. > > This patch decreases the K value of ANX7625 which will shrink eDP Tx > video clock variation to meet IVO panel's requirement. > > Acked-by: Sam Ravnborg > Signed-off-by: Xin Ji > --- > drivers/gpu/drm/bridge/analogix/anx7625.c | 24 ++++++++++++++++++++--- > drivers/gpu/drm/bridge/analogix/anx7625.h | 4 +++- > 2 files changed, 24 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c > index a3d82377066b..9b9e3984dd38 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.c > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c > @@ -384,6 +384,25 @@ static int anx7625_odfc_config(struct anx7625_data *ctx, > return ret; > } > > +/* > + * The MIPI source video data exist large variation (e.g. 59Hz ~ 61Hz), > + * anx7625 defined K ratio for matching MIPI input video clock and > + * DP output video clock. Increase K value can match bigger video data > + * variation. IVO panel has small variation than DP CTS spec, need > + * decrease the K value. > + */ > +static int anx7625_set_k_value(struct anx7625_data *ctx) > +{ > + struct edid *edid = (struct edid *)ctx->slimport_edid_p.edid_raw_data; > + > + if (edid->mfg_id[0] == IVO_MID0 && edid->mfg_id[1] == IVO_MID1) > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3B); > + > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3D); > +} > + > static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > { > struct device *dev = &ctx->client->dev; > @@ -470,9 +489,8 @@ static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > MIPI_PLL_N_NUM_15_8, (n >> 8) & 0xff); > ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, MIPI_PLL_N_NUM_7_0, > (n & 0xff)); > - /* Diff */ > - ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > - MIPI_DIGITAL_ADJ_1, 0x3D); > + > + anx7625_set_k_value(ctx); > > ret |= anx7625_odfc_config(ctx, post_divider - 1); > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h > index 034c3840028f..6dcf64c703f9 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.h > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h > @@ -210,7 +210,9 @@ > #define MIPI_VIDEO_STABLE_CNT 0x0A > > #define MIPI_LANE_CTRL_10 0x0F > -#define MIPI_DIGITAL_ADJ_1 0x1B > +#define MIPI_DIGITAL_ADJ_1 0x1B > +#define IVO_MID0 0x26 > +#define IVO_MID1 0xCF > > #define MIPI_PLL_M_NUM_23_16 0x1E > #define MIPI_PLL_M_NUM_15_8 0x1F > -- > 2.25.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F193AC4338F for ; Fri, 6 Aug 2021 09:42:41 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9A71E61040 for ; Fri, 6 Aug 2021 09:42:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9A71E61040 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5D65C40426; Fri, 6 Aug 2021 09:42:41 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3Dvp6FiZh3ad; Fri, 6 Aug 2021 09:42:40 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 4C9D94042F; Fri, 6 Aug 2021 09:42:40 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 07E381BF3B0 for ; Fri, 6 Aug 2021 09:42:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id E3E274042F for ; Fri, 6 Aug 2021 09:42:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kGMhfhp47u0e for ; Fri, 6 Aug 2021 09:42:38 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by smtp4.osuosl.org (Postfix) with ESMTPS id EDCBE40426 for ; Fri, 6 Aug 2021 09:42:37 +0000 (UTC) Received: by mail-pj1-x1036.google.com with SMTP id t7-20020a17090a5d87b029017807007f23so18693296pji.5 for ; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=SXu8xId+7S96lozM+9jNDTE8KKNGlgx6uPoKWwz+WwXMvz1d0rTofjoV4SQCFfBnSZ LTuYpkQ0CveluxulWfcAhp7m4fWmgzDpBIdavDKgZxUWtxzkDRb3q8BfjRwEcApD9YHh yJGyg9XNka6qwhtKSbTE7OZ0NRcPB3y6hgI4TbrUCKYm6diWoiNap6rtWPQQ/SmhTcUm BSlATxLy43GGhqInxcGTKxazNRM1Zg//uB/Jj7C4m/JnBpihK0FRyTFLTkq6UjMmbYXo m3jUv43U/G6Dkbjs3xy3kvWsunCj/DdxViD6qYM+wt+FTFCXB+AR2t9X2xTnai+47F9a 0Nrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=o9B+pOxpGtKTBJ1ASTzip0YwF0ulp3ocLrAarObZNB5s6vyDNiy6Ec0Ee4xq1P6bOW D/byevVT5z9SuaUhkVHej0bE0LH7fLVAjHdfens3R0u9zjVCzgyYOziz1miP/Qg6bqYV bDYovd6UJ3Mq3FjJfHYEujsOF/fXRbcwa9XcKHE7q7vyurlw2LhTDkZHHNKbyvpKt1KF MB31zoD/LZmAbLAtdj2LawTpht8iQKWoNK6T/RU35M2//IvnLc44B1rWgwB69um+gwrQ yY9UFWcGaIXNiNXSGVs99+x2bP8kXNYNHu0oDJYQGKy8Yc0J8NVEbOAzaMKR8RDU6Nxk K4kA== X-Gm-Message-State: AOAM532AXygbFcI89EuhFtNfn9cxUi5++ykA73oGijKIv3nQEE4UAn4s V6INJuNQxdMIh+SEVtjEGbS7F2KCe4lp8yk1O7e5lA== X-Google-Smtp-Source: ABdhPJx+BDp+a/3ncBTlo6vu6+TXRvbaFZ9ImUS/1LbApSXQDKjL8eqWP8K5L9x04aHKdfGndP9XdWO+I9CX1KGMutQ= X-Received: by 2002:aa7:90c8:0:b029:32c:935f:de5f with SMTP id k8-20020aa790c80000b029032c935fde5fmr9660331pfk.79.1628242957366; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Foss Date: Fri, 6 Aug 2021 11:42:26 +0200 Message-ID: Subject: Re: [PATCH v2 1/1] drm/bridge: anx7625: Tune K value for IVO panel To: Xin Ji X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Nicolas Boichat , Jonas Karlman , David Airlie , Bernie Liang , Qilin Wen , Neil Armstrong , linux-kernel , dri-devel , Vasily Khoruzhick , Andrzej Hajda , Boris Brezillon , Torsten Duwe , Laurent Pinchart , Daniel Vetter , Hsin-Yi Wang , Sam Ravnborg , Dan Carpenter , Marek Szyprowski Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" Hey Xin, Thanks for implementing the suggestion so quickly. Can you send this version of the patch out as v2? Versioning is important and both tools and processes break if different versions aren't submitted in different emails. On Fri, 6 Aug 2021 at 11:35, Xin Ji wrote: > > IVO panel require less input video clock variation than video clock > variation in DP CTS spec. > > This patch decreases the K value of ANX7625 which will shrink eDP Tx > video clock variation to meet IVO panel's requirement. > > Acked-by: Sam Ravnborg > Signed-off-by: Xin Ji > --- > drivers/gpu/drm/bridge/analogix/anx7625.c | 24 ++++++++++++++++++++--- > drivers/gpu/drm/bridge/analogix/anx7625.h | 4 +++- > 2 files changed, 24 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c > index a3d82377066b..9b9e3984dd38 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.c > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c > @@ -384,6 +384,25 @@ static int anx7625_odfc_config(struct anx7625_data *ctx, > return ret; > } > > +/* > + * The MIPI source video data exist large variation (e.g. 59Hz ~ 61Hz), > + * anx7625 defined K ratio for matching MIPI input video clock and > + * DP output video clock. Increase K value can match bigger video data > + * variation. IVO panel has small variation than DP CTS spec, need > + * decrease the K value. > + */ > +static int anx7625_set_k_value(struct anx7625_data *ctx) > +{ > + struct edid *edid = (struct edid *)ctx->slimport_edid_p.edid_raw_data; > + > + if (edid->mfg_id[0] == IVO_MID0 && edid->mfg_id[1] == IVO_MID1) > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3B); > + > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3D); > +} > + > static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > { > struct device *dev = &ctx->client->dev; > @@ -470,9 +489,8 @@ static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > MIPI_PLL_N_NUM_15_8, (n >> 8) & 0xff); > ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, MIPI_PLL_N_NUM_7_0, > (n & 0xff)); > - /* Diff */ > - ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > - MIPI_DIGITAL_ADJ_1, 0x3D); > + > + anx7625_set_k_value(ctx); > > ret |= anx7625_odfc_config(ctx, post_divider - 1); > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h > index 034c3840028f..6dcf64c703f9 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.h > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h > @@ -210,7 +210,9 @@ > #define MIPI_VIDEO_STABLE_CNT 0x0A > > #define MIPI_LANE_CTRL_10 0x0F > -#define MIPI_DIGITAL_ADJ_1 0x1B > +#define MIPI_DIGITAL_ADJ_1 0x1B > +#define IVO_MID0 0x26 > +#define IVO_MID1 0xCF > > #define MIPI_PLL_M_NUM_23_16 0x1E > #define MIPI_PLL_M_NUM_15_8 0x1F > -- > 2.25.1 > _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F66CC432BE for ; Fri, 6 Aug 2021 09:42:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1EDA661040 for ; Fri, 6 Aug 2021 09:42:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1EDA661040 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6FD416EB71; Fri, 6 Aug 2021 09:42:38 +0000 (UTC) Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by gabe.freedesktop.org (Postfix) with ESMTPS id C01786EB71 for ; Fri, 6 Aug 2021 09:42:37 +0000 (UTC) Received: by mail-pj1-x102b.google.com with SMTP id u13-20020a17090abb0db0290177e1d9b3f7so21919592pjr.1 for ; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=SXu8xId+7S96lozM+9jNDTE8KKNGlgx6uPoKWwz+WwXMvz1d0rTofjoV4SQCFfBnSZ LTuYpkQ0CveluxulWfcAhp7m4fWmgzDpBIdavDKgZxUWtxzkDRb3q8BfjRwEcApD9YHh yJGyg9XNka6qwhtKSbTE7OZ0NRcPB3y6hgI4TbrUCKYm6diWoiNap6rtWPQQ/SmhTcUm BSlATxLy43GGhqInxcGTKxazNRM1Zg//uB/Jj7C4m/JnBpihK0FRyTFLTkq6UjMmbYXo m3jUv43U/G6Dkbjs3xy3kvWsunCj/DdxViD6qYM+wt+FTFCXB+AR2t9X2xTnai+47F9a 0Nrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4HPNOHJF+FggNfCJseeN2/kUR7mznmygd2VV7qNoCFg=; b=ksXLhgSmvXwnLxU6evfPAYy1EQAOyKypuTZiezXCB/OZFNAY/boa2bfwyI6Nzzr9C6 T1BvCQtAHLjPjz4puEUqNJu2uzjX76PWJMulBxxnkui0Emkg39s/na2XFIgKVivGW7Wf UlhIrfKOQlxWK40AhS0FaGCOk/1ErzJxeN/98jkA9oI1c4TLebERnn6Lhat9KLlV4wxr ELc8iaa2h63FKfYfyzlM3bGgrcj8crH73WgFQtAUcf5fXx1lNjFBEEIL0+qZf1Q9jwZ7 lsMW7LYfYciGHlsZSLIy+eEgoz1FUxHxBbly5e2ayLyDWNmofyqyIkfri/XEYc/snLAo kNOQ== X-Gm-Message-State: AOAM531hWtiVgq62Tm1W2ge2HBI6JLkfRIY8ZXdhXM0efH/TKnufbT9s n95uAZU8hcqDThUwFc7JyiCfnAdThpSWROvir+iEVQ== X-Google-Smtp-Source: ABdhPJx+BDp+a/3ncBTlo6vu6+TXRvbaFZ9ImUS/1LbApSXQDKjL8eqWP8K5L9x04aHKdfGndP9XdWO+I9CX1KGMutQ= X-Received: by 2002:aa7:90c8:0:b029:32c:935f:de5f with SMTP id k8-20020aa790c80000b029032c935fde5fmr9660331pfk.79.1628242957366; Fri, 06 Aug 2021 02:42:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Foss Date: Fri, 6 Aug 2021 11:42:26 +0200 Message-ID: Subject: Re: [PATCH v2 1/1] drm/bridge: anx7625: Tune K value for IVO panel To: Xin Ji Cc: Nicolas Boichat , Andrzej Hajda , Sam Ravnborg , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Dan Carpenter , David Airlie , Daniel Vetter , Boris Brezillon , Hsin-Yi Wang , Torsten Duwe , Vasily Khoruzhick , Marek Szyprowski , Bernie Liang , Qilin Wen , dri-devel , linux-kernel , devel@driverdev.osuosl.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hey Xin, Thanks for implementing the suggestion so quickly. Can you send this version of the patch out as v2? Versioning is important and both tools and processes break if different versions aren't submitted in different emails. On Fri, 6 Aug 2021 at 11:35, Xin Ji wrote: > > IVO panel require less input video clock variation than video clock > variation in DP CTS spec. > > This patch decreases the K value of ANX7625 which will shrink eDP Tx > video clock variation to meet IVO panel's requirement. > > Acked-by: Sam Ravnborg > Signed-off-by: Xin Ji > --- > drivers/gpu/drm/bridge/analogix/anx7625.c | 24 ++++++++++++++++++++--- > drivers/gpu/drm/bridge/analogix/anx7625.h | 4 +++- > 2 files changed, 24 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c > index a3d82377066b..9b9e3984dd38 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.c > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c > @@ -384,6 +384,25 @@ static int anx7625_odfc_config(struct anx7625_data *ctx, > return ret; > } > > +/* > + * The MIPI source video data exist large variation (e.g. 59Hz ~ 61Hz), > + * anx7625 defined K ratio for matching MIPI input video clock and > + * DP output video clock. Increase K value can match bigger video data > + * variation. IVO panel has small variation than DP CTS spec, need > + * decrease the K value. > + */ > +static int anx7625_set_k_value(struct anx7625_data *ctx) > +{ > + struct edid *edid = (struct edid *)ctx->slimport_edid_p.edid_raw_data; > + > + if (edid->mfg_id[0] == IVO_MID0 && edid->mfg_id[1] == IVO_MID1) > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3B); > + > + return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > + MIPI_DIGITAL_ADJ_1, 0x3D); > +} > + > static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > { > struct device *dev = &ctx->client->dev; > @@ -470,9 +489,8 @@ static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) > MIPI_PLL_N_NUM_15_8, (n >> 8) & 0xff); > ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, MIPI_PLL_N_NUM_7_0, > (n & 0xff)); > - /* Diff */ > - ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, > - MIPI_DIGITAL_ADJ_1, 0x3D); > + > + anx7625_set_k_value(ctx); > > ret |= anx7625_odfc_config(ctx, post_divider - 1); > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h > index 034c3840028f..6dcf64c703f9 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.h > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h > @@ -210,7 +210,9 @@ > #define MIPI_VIDEO_STABLE_CNT 0x0A > > #define MIPI_LANE_CTRL_10 0x0F > -#define MIPI_DIGITAL_ADJ_1 0x1B > +#define MIPI_DIGITAL_ADJ_1 0x1B > +#define IVO_MID0 0x26 > +#define IVO_MID1 0xCF > > #define MIPI_PLL_M_NUM_23_16 0x1E > #define MIPI_PLL_M_NUM_15_8 0x1F > -- > 2.25.1 >