Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp567803ybk; Wed, 20 May 2020 06:46:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrxhjV+fcgL93xrvptdR1UCXAxAobm5sPogbQj8WAcQrvcJA711UBrEwWna6nDW+nGMgfx X-Received: by 2002:a17:907:9492:: with SMTP id dm18mr3840652ejc.328.1589982390754; Wed, 20 May 2020 06:46:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589982390; cv=none; d=google.com; s=arc-20160816; b=b6JUsi2v35MzkLWaKvtx3yXqzGirfCBDvAOt1wOYFW7NCGoPo8s6QFImT796C2z4Fy GxmcSkC7IO3dxId3UZ7MIzgIx10SD80tBaEUDKoPmbPm+OdiQkm/+kF7e8jFKeqH1FnN JbppBD1wtEy/s20zrWRxYjVim1f2aaKvVhbVJfNURewzZ/JswanWDPTwI8q74mi+Fx+2 JQZ/EQU/7gTqrshz7MkAIVG51kHRZAZoMcU6mS18Wc70PQb/+gWmqDMQtSYU9vSoIrLO ST2jow+z8nk2uBM4RdLv0Q4EnxekYyOS7ND9A9lhZu/t+sV6zgeqiqSx3hP0U3HEOfuk r9wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:date:cc:to:from:subject:message-id; bh=Izsbsy0G0AZDvrvuXtNsawBc1NYU8HoO4CbpyeF5M3c=; b=VB5xgSTx6ZuS8IEFh/PGQYYEUl5HNAx+PykJkzXvzn7uXJRrDJ4BQBinmVzY1IvYsP vSL5qg8TtdDQKs/cTwECRxV18qkMRJb/8iQzj3+lhZg5wEBKlA4/8dUVoFWMq58DwC4m Nu97h1w2u1x5oYjjNME8R2TynVCBd4lGn7x2w/4FUr70bmnWqSDb0sGLiVJi9lA+9xWU M/0bktITEmWhe/2K4GxgYvS8/s37+gcXfBlrRhhITMQsybBQ1SDC9xC+YCMYAdtJWCrv E4kVP3V0Jnld/+PjOj+X667r3g6YmAQsJXZE3lc5Q2ITfDR0TE0RRe3d5Njm8nkBMVCL YfeQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j10si1724548ejm.673.2020.05.20.06.46.06; Wed, 20 May 2020 06:46:30 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726836AbgETNoU (ORCPT + 99 others); Wed, 20 May 2020 09:44:20 -0400 Received: from mx2.suse.de ([195.135.220.15]:51768 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726443AbgETNoU (ORCPT ); Wed, 20 May 2020 09:44:20 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id B59DCAC46; Wed, 20 May 2020 13:44:20 +0000 (UTC) Message-ID: <4a49e7724e9a12e4f128a5e9ff4181da7af40bd3.camel@suse.de> Subject: Re: [PATCH 14/15] PCI: brcmstb: Set bus max burst side by chip type From: Nicolas Saenz Julienne To: Jim Quinlan Cc: Lorenzo Pieralisi , Rob Herring , Bjorn Helgaas , Florian Fainelli , "maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "open list:PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS" , open list Date: Wed, 20 May 2020 15:44:16 +0200 In-Reply-To: <20200519203419.12369-15-james.quinlan@broadcom.com> References: <20200519203419.12369-1-james.quinlan@broadcom.com> <20200519203419.12369-15-james.quinlan@broadcom.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-67gf22uKBltY92+BH4yY" User-Agent: Evolution 3.36.2 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-67gf22uKBltY92+BH4yY Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2020-05-19 at 16:34 -0400, Jim Quinlan wrote: > From: Jim Quinlan >=20 > The proper value of the parameter SCB_MAX_BURST_SIZE varies > per chip. The 2711 family requires 128B whereas other devices > can employ 512. The assignment is complicated by the fact > that the values for this two-bit field have different meanings; >=20 > Value Type_Generic Type_7278 >=20 > 00 Reserved 128B > 01 128B 256B > 10 256B 512B > 11 512B Reserved >=20 > Signed-off-by: Jim Quinlan > --- > drivers/pci/controller/pcie-brcmstb.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) >=20 > diff --git a/drivers/pci/controller/pcie-brcmstb.c > b/drivers/pci/controller/pcie-brcmstb.c > index 7bf945efd71b..0dfa1bbd9764 100644 > --- a/drivers/pci/controller/pcie-brcmstb.c > +++ b/drivers/pci/controller/pcie-brcmstb.c > @@ -53,7 +53,7 @@ > #define PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000 > #define PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000 > #define PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK 0x300000 > -#define PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_128 0x0 > + > #define PCIE_MISC_MISC_CTRL_SCB0_SIZE_MASK 0xf8000000 > #define PCIE_MISC_MISC_CTRL_SCB1_SIZE_MASK 0x07c00000 > #define PCIE_MISC_MISC_CTRL_SCB2_SIZE_MASK 0x0000001f > @@ -276,6 +276,7 @@ struct brcm_pcie { > int num_memc; > u64 memc_size[PCIE_BRCM_MAX_MEMC]; > u32 hw_rev; > + const struct of_device_id *of_id; > }; > =20 > /* > @@ -841,7 +842,7 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie) > int num_out_wins =3D 0; > u16 nlw, cls, lnksta; > int i, ret, memc; > - u32 tmp, aspm_support; > + u32 tmp, burst, aspm_support; > =20 > /* Reset the bridge */ > brcm_pcie_bridge_sw_init_set(pcie, 1); > @@ -857,10 +858,20 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie) > /* Wait for SerDes to be stable */ > usleep_range(100, 200); > =20 > + /* > + * SCB_MAX_BURST_SIZE is a two bit field. For GENERIC chips it > + * is encoded as 0=3D128, 1=3D256, 2=3D512, 3=3DRsvd, for BCM7278 it > + * is encoded as 0=3DRsvd, 1=3D128, 2=3D256, 3=3D512. > + */ > + if (strcmp(pcie->of_id->compatible, "brcm,bcm2711-pcie") =3D=3D 0) Would it make sense to use pcie->type here? I know GENERIC !=3D BCM2711, bu= t we could define it and avoid adding redundant info in struct brcm_pcie. Regards, Nicolas > + burst =3D 0x0; /* 128B */ > + else > + burst =3D (pcie->type =3D=3D BCM7278) ? 0x3 : 0x2; /* 512 bytes */ > + > /* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */ > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK); > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK); > - u32p_replace_bits(&tmp, PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_128, > + u32p_replace_bits(&tmp, burst, > PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK); > writel(tmp, base + PCIE_MISC_MISC_CTRL); > =20 > @@ -1200,6 +1211,7 @@ static int brcm_pcie_probe(struct platform_device *= pdev) > pcie->reg_offsets =3D data->offsets; > pcie->reg_field_info =3D data->reg_field_info; > pcie->type =3D data->type; > + pcie->of_id =3D of_id; > =20 > res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); > pcie->base =3D devm_ioremap_resource(&pdev->dev, res); --=-67gf22uKBltY92+BH4yY Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEErOkkGDHCg2EbPcGjlfZmHno8x/4FAl7FNDAACgkQlfZmHno8 x/5Lpwf/eAOpwSlhLavh+bn9QboXcCi13EVtwNjwBha1uical8dcFXceMgfJOJVm 7x35rF6gyugDp+uKGHdsG9q71U/R4VLiwdGJrsCYYgFa+8RALwAXNqefb3kmyFIt GSh8WzRkKUSR4/5Py6TfcgxWJ4ATyzSRwXIJ8KTOPEt73GFPgKyQFmfCthpvD8as iVdWqU6HmzlhsNPPgH98RCZ7d4lIAlN4VjhayR7A3QO2mBoQqtX3xyBGKM5Wzu9w vfRTV1Wnb3nFeK3ly+iGGCUJG1vWtDIWZFNSNHxmjgqKLiS9Lp7HgrWXAOpUZJ/J 9dDEJKpEi1M3rhu+p8ItSk3hat7sTg== =pmwt -----END PGP SIGNATURE----- --=-67gf22uKBltY92+BH4yY--