Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp3699807rwi; Wed, 12 Oct 2022 05:49:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4cWzxnFcRAkXgdyGEhEJ7QyVJxZFQwwVh9xFhKnBUkxOWj1VrwyXqSkAJ6uS/I6SE3eBHe X-Received: by 2002:a63:1301:0:b0:457:f3b7:238b with SMTP id i1-20020a631301000000b00457f3b7238bmr25454304pgl.262.1665578966496; Wed, 12 Oct 2022 05:49:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665578966; cv=none; d=google.com; s=arc-20160816; b=r9AdHbTn1N5lfS6+vo8NPdG1W9gmAYj7Nw236b3ngGL+CXxz0a25cYQm3uWdWrWFop O+ZAwZNgxtdOQzB6JGsmIfaJ3j/9E2o4DCvNELLQk98eFKdkQJ95FURd0sWZFGwVgape ucDgKsbBCWsk8r3m49IG5+tmGM+TyOmXZlwzA1qb7QOJubTkPRaeCyS1V3KMurxGXXNa iWYfKjLErGbelR4wUq0DG0xsZGCCgkhVEmozcJADUZo2IxVOvQJ1n7x1qxs+0hKYIf/a /TrYdbyjbjdViuRmeGlyEYZ+TJS/5FdaRypCC590G297vpY8ZMIKXVnLdUcYRNNx2xJt nzBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=QZZ4DIYwMlwQ7Xv3xxiN7i/5hF0FTOgOHQyDGjhCKsM=; b=jW7KEmBjFiirZ0fiZmG9TXl/qcwh3m1cc1X07hZkhAehP1nOX7qjc/YGGtQ2bj8TgZ PF9dNKzzWhNH/eiSXhtWVQBHWwPcUxBgk6JCJjx0xYTXlnmIgx3BEMPRN6v23oM9YfCz eajlS+zxoZaCdaKkLw9q4uc/DsDZ1W5G1mcqu2LuhKT0LR9DKy94in+YLXgjYb0HG0Ks ZpRTu3qEAilcNKeTtF2NlZSRDlnG3BEbyFaQ/ZaPDiibc84kK4En+HmKFsqBvnlmNB76 ojfdI/dUewksEtLUILrV90Azp9Ky8dO1QesJZBhz1oelnYApwLFewkA1Kml271hrknv2 RIjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b="qi05bfq/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 134-20020a62178c000000b00565ba4c501asi879914pfx.276.2022.10.12.05.49.14; Wed, 12 Oct 2022 05:49:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b="qi05bfq/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229847AbiJLMf7 (ORCPT + 99 others); Wed, 12 Oct 2022 08:35:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229797AbiJLMf5 (ORCPT ); Wed, 12 Oct 2022 08:35:57 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6FBE459B5; Wed, 12 Oct 2022 05:35:56 -0700 (PDT) Received: from [192.168.1.15] (91-158-154-79.elisa-laajakaista.fi [91.158.154.79]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E3E794D3; Wed, 12 Oct 2022 14:35:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1665578154; bh=SABepyC6xSzkfB6VOqh+GnwmvujnNWZ7ncgar8IFJdw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=qi05bfq/gn7Xb0QkKBWcTU9IFqq8zn04oe7yBc7LirX5PdjJumR7PCkJeB86JP8yA I6YjpuKkKIgyYchDY20gT2W+5UBXYS9KLDOgDsR19WAUsbPXJMG2WtTatKqbMqUdPl IHWFC0MiImG/wKX6fWoO4N94a0z+wqBZSR2WU33E= Message-ID: <7df3e5bc-8d37-5f55-1666-9ea88f0c59ce@ideasonboard.com> Date: Wed, 12 Oct 2022 15:35:51 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [RFC PATCH v5 6/6] drm/tidss: Enable Dual and Duplicate Modes for OLDI Content-Language: en-US To: Aradhya Bhatia , Jyri Sarha , Rob Herring , David Airlie , Daniel Vetter , Krzysztof Kozlowski Cc: Nishanth Menon , Vignesh Raghavendra , Rahul T R , DRI Development List , Devicetree List , Linux Kernel List References: <20220928175223.15225-1-a-bhatia1@ti.com> <20220928175223.15225-7-a-bhatia1@ti.com> From: Tomi Valkeinen In-Reply-To: <20220928175223.15225-7-a-bhatia1@ti.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/09/2022 20:52, Aradhya Bhatia wrote: > The AM625 DSS IP contains 2 OLDI TXes which can work to enable 2 > duplicated displays of smaller resolutions or enable a single Dual Link > display with a higher resolution (1920x1200). > > Configure the necessary register to enable and disable the OLDI TXes > with necessary modes configurations. > > Signed-off-by: Aradhya Bhatia > --- > drivers/gpu/drm/tidss/tidss_dispc.c | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c b/drivers/gpu/drm/tidss/tidss_dispc.c > index 68444e0cd8d7..fd7f49535f0c 100644 > --- a/drivers/gpu/drm/tidss/tidss_dispc.c > +++ b/drivers/gpu/drm/tidss/tidss_dispc.c > @@ -1003,8 +1003,8 @@ static void dispc_enable_oldi(struct dispc_device *dispc, u32 hw_videoport, > int count = 0; > > /* > - * For the moment DUALMODESYNC, MASTERSLAVE, MODE, and SRC > - * bits of DISPC_VP_DSS_OLDI_CFG are set statically to 0. > + * For the moment MASTERSLAVE, and SRC bits of DISPC_VP_DSS_OLDI_CFG are > + * set statically to 0. > */ While at it, maybe say "are always set to 0". At least to me that's much more understandable. > > if (fmt->data_width == 24) > @@ -1021,6 +1021,30 @@ static void dispc_enable_oldi(struct dispc_device *dispc, u32 hw_videoport, > > oldi_cfg |= BIT(0); /* ENABLE */ > > + switch (dispc->oldi_mode) { > + case OLDI_MODE_OFF: > + oldi_cfg &= ~BIT(0); /* DISABLE */ Hmm, do we call this if OLDI_MODE_OFF? The current code always enabled OLDI here, so I presume we call this only when we actually want to enable it. > + break; > + > + case OLDI_SINGLE_LINK_SINGLE_MODE: > + /* All configuration is done for this mode. */ > + break; > + > + case OLDI_SINGLE_LINK_CLONE_MODE: > + oldi_cfg |= BIT(5); /* CLONE MODE */ > + break; > + > + case OLDI_DUAL_LINK_MODE: > + oldi_cfg |= BIT(11); /* DUALMODESYNC */ > + oldi_cfg |= BIT(3); /* data-mapping field also indicates dual-link mode */ > + break; > + > + default: > + dev_warn(dispc->dev, "%s: Incorrect oldi mode. Returning.\n", > + __func__); > + return; > + } > + > dispc_vp_write(dispc, hw_videoport, DISPC_VP_DSS_OLDI_CFG, oldi_cfg); > > while (!(oldi_reset_bit & dispc_read(dispc, DSS_SYSSTATUS)) &&