Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp1091675ybj; Tue, 5 May 2020 12:55:05 -0700 (PDT) X-Google-Smtp-Source: APiQypJsmAZ31HvJp/7WY5fx5pLjsU/YdYHJH+yY9XIsjar32D14xHoafH28DK4rZUcyvTxQPvHF X-Received: by 2002:a05:6402:1fc:: with SMTP id i28mr4081721edy.18.1588708505125; Tue, 05 May 2020 12:55:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588708505; cv=none; d=google.com; s=arc-20160816; b=ncjfpRoOHVobca90yVT1qWJ4iyYKccB3mkc1fJN78rBlbTyQDvW+lEVTrfs6nFusEj wKlywPLwwQtik1x1wlM1rVVstA70Aw1rap/CGJnyCOxXBHhWyKE5LJkUJzB6JKzbEEzq OB3Fj30r2T3cxVa4ctd6bs5DhvDKOPWmBaNpYzh5qEfej6I9lEZGExV7a+b3nhB/Cf9O +FjzMSrKbWjSH1eOsbk2GLWVOSLc42KWkZ0+esRMs+zCziNDt/AFpmfrnWXKTSFQ5Rpn 9Fn1dTJzJp77ZkMFAFCYOzzzi54kchP26zoi36YuApRcMql9RPK53zBzZZBb/Ha7B3Sl 5B9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:date:to:cc:from :subject:references:in-reply-to:content-transfer-encoding :mime-version:dkim-signature; bh=+v3yXRYBdTDl2IQ3cSUD9x3QkNmu1c3yvGjn11hkD6o=; b=cdVkDMHyGZctUYO385OlucibPc2JTT9eXmQQ4Arn7+cVlEhVY0tqU8itDuDj7nuvRE 7oGmAyDg5Eidwm6uB9daeMwDZEOQi9kpmLiqca/Ne7xv1cb14uNAB+IbQlg4bc14Hx9/ Jp17YKyCYYrXoSt024Nhiu+5JtBGYya0XyxO/z5YDkA4ODpQz9fSg+z2fOQQJ4b2T8gI DB9w4a9LKV7R23gZPeTJTZK8ASoNcw+NEldgfCznCujw7lEX+6Egrp+GVv3jFKD51qEw A5X8rS5cWpdw0r3C7IvUFM++CtcEXOFxK56DPorFYC60c1K8QmMBkdIlc+nLSk21mDxF phUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=eXgdwU2T; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y18si1769676edr.442.2020.05.05.12.54.41; Tue, 05 May 2020 12:55:05 -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=@chromium.org header.s=google header.b=eXgdwU2T; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728512AbgEETxB (ORCPT + 99 others); Tue, 5 May 2020 15:53:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726350AbgEETxB (ORCPT ); Tue, 5 May 2020 15:53:01 -0400 Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 239FEC061A10 for ; Tue, 5 May 2020 12:53:01 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id e6so52540pjt.4 for ; Tue, 05 May 2020 12:53:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:content-transfer-encoding:in-reply-to:references :subject:from:cc:to:date:message-id:user-agent; bh=+v3yXRYBdTDl2IQ3cSUD9x3QkNmu1c3yvGjn11hkD6o=; b=eXgdwU2TBfQdWavLRxs2y5/iRl3vmiwWS6NswNs0wL9cavsvf9xF6/lQ0oqivf3eA4 qkDuUL3Kg4nxS/2JKNla7YdZrhClL1oUid/Bd+bMalzTGF3r0tTUlFQBtnukDRxqHtbk H4gEpbvEJKHX+bfTUSkJ7ShyvrTMs/IpePiqQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:content-transfer-encoding :in-reply-to:references:subject:from:cc:to:date:message-id :user-agent; bh=+v3yXRYBdTDl2IQ3cSUD9x3QkNmu1c3yvGjn11hkD6o=; b=GIdRjYT+IVXmVYTB3arjMUI2heUoc05YHC0Xi7RMF28ofM7YzCTTBJb+QJYvaL/pqg 0jwfW0/XPOupf4i31ejL8bzDxEYbKTO8Euv37WMu2lM5PZ+05+zSBdT2GlhroQeiiUJe /QcohH4wSt2kSKEC9xG5NOMcMzVFnOQSXUSJVOqELqPtGXNRRHt6iuKp/kxpgxo5d7dd MQe/xuxOxFf2+5doISdl2sRPz1XBvd2rlv/Z76VwKMAJfusAGnzyYHJ6r3F+83Y5v3+j 28AL6Hwr7VovFsQQGvs6CLgNqtYkISdsoxg5A6mQtBHmBqE141MoERmMRvsrVSfhtVDl plAg== X-Gm-Message-State: AGi0PuYOytOAQ0eZzJhLijt2ugFW6N831iwUNniXmeGPNcavTaVv/2Q5 rP+t8Wwbfi9Dnfl+AKZOB7MotYu1eXA= X-Received: by 2002:a17:90a:d0c3:: with SMTP id y3mr5001545pjw.25.1588708380549; Tue, 05 May 2020 12:53:00 -0700 (PDT) Received: from chromium.org ([2620:15c:202:1:fa53:7765:582b:82b9]) by smtp.gmail.com with ESMTPSA id r78sm2678084pfr.10.2020.05.05.12.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 May 2020 12:52:59 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: References: <20200504213624.1.Ibc8eeddcee94984a608d6900b46f9ffde4045da4@changeid> <158865745768.11125.12003632060774071567@swboyd.mtv.corp.google.com> Subject: Re: [PATCH] drm/bridge: ti-sn65dsi86: Implement lane reordering + polarity From: Stephen Boyd Cc: Andrzej Hajda , Laurent Pinchart , Neil Armstrong , Rob Clark , Sean Paul , linux-arm-msm , Daniel Vetter , David Airlie , Jernej Skrabec , Jonas Karlman , dri-devel , LKML To: Doug Anderson Date: Tue, 05 May 2020 12:52:58 -0700 Message-ID: <158870837878.26370.13953763070282841423@swboyd.mtv.corp.google.com> User-Agent: alot/0.9 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Doug Anderson (2020-05-05 11:45:05) > On Mon, May 4, 2020 at 10:44 PM Stephen Boyd wrote: > > > > Quoting Douglas Anderson (2020-05-04 21:36:31) > > > regmap_update_bits(pdata->regmap, SN_DSI_LANES_REG, > > > CHA_DSI_LANES_MASK, val); > > > > > > + regmap_write(pdata->regmap, SN_LN_ASSIGN_REG, pdata->ln_assig= n); > > > + regmap_update_bits(pdata->regmap, SN_ENH_FRAME_REG, LN_POLRS_= MASK, > > > + pdata->ln_polrs << LN_POLRS_OFFSET); > > > + > > > /* set dsi clk frequency value */ > > > ti_sn_bridge_set_dsi_rate(pdata); > > > > > > @@ -1063,6 +1066,50 @@ static int ti_sn_setup_gpio_controller(struct = ti_sn_bridge *pdata) > > > return ret; > > > } > > > > > > +static void ti_sn_bridge_parse_lanes(struct ti_sn_bridge *pdata, > > > + struct device_node *np) > > > +{ > > > + u32 lane_assignments[SN_MAX_DP_LANES] =3D { 0, 1, 2, 3 }; > > > + u32 lane_polarities[SN_MAX_DP_LANES] =3D { }; > > > + struct device_node *endpoint; > > > + u8 ln_assign =3D 0; > > > + u8 ln_polrs =3D 0; > > > > Do we need to assign to 0 to start? Seems like no? >=20 > Yes. See usage: >=20 > ln_assign =3D ln_assign << LN_ASSIGN_WIDTH | lane_assignments[i]; > ln_polrs =3D ln_polrs << 1 | lane_polarities[i]; >=20 > Notably each time we shift a new bit in we base on the old value. If > you think it'll make it clearer, I can put this initialization at the > beginning of the loop. It's 2 extra lines of code but if it adds > clarity I'll do it. No it doesn't really make it any clearer.