From nobody Thu Oct 9 04:18:54 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C88F2433AD; Sat, 21 Jun 2025 01:48:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750470503; cv=none; b=fkjdnKeynNmtM5q0lXs3/NRDpgH49uo5D25zH8XwkKmvkn9vlEYGQdmaYxEzgBvYiVXAdiM+/TcfSiYLCcFjPDNSwGYePQHud/fzkv7YaiQNeINiZwPli/51UAFmih/2s46ET5ii2LQROpMd1VQRarCpzUGLIXlUAZXS4VnCh5I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750470503; c=relaxed/simple; bh=tpbE2FvztANs2/izJnOECYoMP2X5oOScRQHxOIydI1k=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=TeWBaZdwgaMsH0D/ommJ9rcHQo46/NLuqLJYFJivtLLuQZ1/Bea/3nDN6nEJpdPM055FL4bIIIQEtgHr0YxiH4YucvtuPu8N51uZXJpi6C3g4ndCkRB3XrZ8n6XSroX4HjUedzb2UB588I/xk7MeHOMQWwt851nwKHOk5MxYMgs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OBrsiraU; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OBrsiraU" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-73c17c770a7so2878952b3a.2; Fri, 20 Jun 2025 18:48:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750470501; x=1751075301; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=mt5O7/7JEumjsAyKxjvlFipcH+4/5yB2S8im+OQhNPo=; b=OBrsiraUQLBH/mPseDkGNvVWPz2NpsCovbF+1v4lzrDGsxpwaVBMc1C3guOWlNHsgd WvLzexv3Qi+m5HE2xgM6qolGOrz7K/DQgNfyy3UNwN3TbM/Dga/1s6wTz9AfGleBuEoX crIodB1SFLiXupVLTjtKTnpdtKfV6PNC2U8zBrZe74FIHed/GFcFappsVzG16zNOV13B h090s9prAdvSQhVXIlpwkj/avxZws6PjGcb1S/siVIe8nQIrZNDLyk0QsiGrEtfh5cgD m7QhvrOw0cNWQ4HCArTMsJ1WSb0bVdckAgXbDg4XxBQdllwwA/dEKwaVxbdw1d1cqjgO 90Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750470501; x=1751075301; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=mt5O7/7JEumjsAyKxjvlFipcH+4/5yB2S8im+OQhNPo=; b=YQy//8APw27doNSgFxurVkvgX0NZiyQMpydgU4ZKvsMPiR2qPVY7flg0CMlOpMzx1M CM5nqTg9EtggHkXjNt3cSuBPqb7IlMZTe4t9zyfpgV/cHGgkkwRNnM6WDm/750gTBk5l X4Om+BRb58lUbMGLi6ptPjGiDBCM3eCl83wsYR1xQKkDRl2TE70ZdPk+GmD+wHQKRbmk qWPA6qUCJwal7ErOTJfmhrwlouzt2Pm0WAYvziEHAv3jO53WGqh/bC7hoENAN28R8BVl EKvCsfBOgUM95fwOVbf6V/6qXshRpY69Vl6qD8dkHIfQehVEj3CICg/nTTAFR2nr/TbU /BMQ== X-Forwarded-Encrypted: i=1; AJvYcCU9+TK42jKPj1f+ja6aMaAxHnmZfLTRQNjz0KekbQOf7nkbuII7EQe4Qn61UONxjdCs96MMpBRid5lqLwo=@vger.kernel.org, AJvYcCWXBB0K/2VYGFj38/yNLeUWLF4xgWsGVh4a2OMLUHLGGcD04FoO1GxDbXEZ+CJl/5M2aofv7l+mvEw0@vger.kernel.org X-Gm-Message-State: AOJu0YyHj0gaUCMebaXcBzuQF1rugwFXitxJfCzeHSWIbh+KQmYc1LnG oQssjKm5VDtVebOQgcWK0kKJgGI5RrZMNS1f9m2tZgA6KndEH+ybZh2/6y2MIqve X-Gm-Gg: ASbGncsHqyIUF2RWGXpmuxhj/1v/rul5f4yoB4HrcD98/fkG1A6xcQ7k+NQ2F1n3gYG R8rDgBV0deLCi2+fCle2VpXvD7uzyILs80edjwsecGnY91rJy5FMZLcr3lCrOMABj5EsuawR933 r2D8PIOCRxyPx+S708vo9RSxNbreVUAtqKXlrhOfrQRR+KJMBz6P9ZHSg8yfMfDCS4TAEa9sexF A/A1cUfKEoHYIt5GEznqgxhbWc2g15PLDtZuhTQAjY6U7HzU9ceuYkOfUrRSttYbwMN53Fuc37Z i/ymWb43Did6EOy6qJk74QfJGqhvrBG2uv+VNWrtzN6mvBpbOQ== X-Google-Smtp-Source: AGHT+IFSIf+C/e7hFUiyQQukqnOF7HBTcNd1+R55n0mGf9AyKlyC7XKNh6w0Bnji3xf4KraprNdL+Q== X-Received: by 2002:a05:6a00:1a88:b0:748:2ac2:f8c3 with SMTP id d2e1a72fcca58-7490d6bf6d6mr7948158b3a.24.1750470500939; Fri, 20 Jun 2025 18:48:20 -0700 (PDT) Received: from geday ([2804:7f2:800b:d1c8::dead:c001]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7490a626eecsm3049052b3a.82.2025.06.20.18.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 18:48:20 -0700 (PDT) Date: Fri, 20 Jun 2025 22:48:14 -0300 From: Geraldo Nascimento To: linux-rockchip@lists.infradead.org Cc: Shawn Lin , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Heiko Stuebner , Vinod Koul , Kishon Vijay Abraham I , Rick wertenbroek , linux-phy@lists.infradead.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Current code uses custom-defined register offsets and bitfields for standard PCIe registers. Change to using standard PCIe defines. Since we are now using standard PCIe defines, drop unused custom-defined ones, which are now referenced from offset at added Capabilities Register. Suggested-By: Bjorn Helgaas Signed-off-by: Geraldo Nascimento --- drivers/pci/controller/pcie-rockchip-ep.c | 4 +- drivers/pci/controller/pcie-rockchip-host.c | 44 ++++++++++----------- drivers/pci/controller/pcie-rockchip.h | 12 +----- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/drivers/pci/controller/pcie-rockchip-ep.c b/drivers/pci/contro= ller/pcie-rockchip-ep.c index 55416b8311dd..300cd85fa035 100644 --- a/drivers/pci/controller/pcie-rockchip-ep.c +++ b/drivers/pci/controller/pcie-rockchip-ep.c @@ -518,9 +518,9 @@ static void rockchip_pcie_ep_retrain_link(struct rockch= ip_pcie *rockchip) { u32 status; =20 - status =3D rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_BASE + PCI_EXP_LNK= CTL); status |=3D PCI_EXP_LNKCTL_RL; - rockchip_pcie_write(rockchip, status, PCIE_EP_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_EP_CONFIG_BASE + PCI_EXP_LNKCT= L); } =20 static bool rockchip_pcie_ep_link_up(struct rockchip_pcie *rockchip) diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/cont= roller/pcie-rockchip-host.c index b9e7a8710cf0..65653218b9ab 100644 --- a/drivers/pci/controller/pcie-rockchip-host.c +++ b/drivers/pci/controller/pcie-rockchip-host.c @@ -40,18 +40,18 @@ static void rockchip_pcie_enable_bw_int(struct rockchip= _pcie *rockchip) { u32 status; =20 - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCT= L); status |=3D (PCI_EXP_LNKCTL_LBMIE | PCI_EXP_LNKCTL_LABIE); - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL); } =20 static void rockchip_pcie_clr_bw_int(struct rockchip_pcie *rockchip) { u32 status; =20 - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCT= L); status |=3D (PCI_EXP_LNKSTA_LBMS | PCI_EXP_LNKSTA_LABS) << 16; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL); } =20 static void rockchip_pcie_update_txcredit_mui(struct rockchip_pcie *rockch= ip) @@ -269,7 +269,7 @@ static void rockchip_pcie_set_power_limit(struct rockch= ip_pcie *rockchip) scale =3D 3; /* 0.001x */ curr =3D curr / 1000; /* convert to mA */ power =3D (curr * 3300) / 1000; /* milliwatt */ - while (power > PCIE_RC_CONFIG_DCR_CSPL_LIMIT) { + while (power > FIELD_MAX(PCI_EXP_DEVCAP_PWR_VAL)) { if (!scale) { dev_warn(rockchip->dev, "invalid power supply\n"); return; @@ -278,10 +278,10 @@ static void rockchip_pcie_set_power_limit(struct rock= chip_pcie *rockchip) power =3D power / 10; } =20 - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_DCR); - status |=3D (power << PCIE_RC_CONFIG_DCR_CSPL_SHIFT) | - (scale << PCIE_RC_CONFIG_DCR_CPLS_SHIFT); - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_DCR); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCA= P); + status |=3D FIELD_PREP(PCI_EXP_DEVCAP_PWR_VAL, power); + status |=3D FIELD_PREP(PCI_EXP_DEVCAP_PWR_SCL, scale); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCAP); } =20 /** @@ -309,14 +309,14 @@ static int rockchip_pcie_host_init_port(struct rockch= ip_pcie *rockchip) rockchip_pcie_set_power_limit(rockchip); =20 /* Set RC's clock architecture as common clock */ - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCT= L); status |=3D PCI_EXP_LNKSTA_SLC << 16; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL); =20 /* Set RC's RCB to 128 */ - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCT= L); status |=3D PCI_EXP_LNKCTL_RCB; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL); =20 /* Enable Gen1 training */ rockchip_pcie_write(rockchip, PCIE_CLIENT_LINK_TRAIN_ENABLE, @@ -341,9 +341,9 @@ static int rockchip_pcie_host_init_port(struct rockchip= _pcie *rockchip) * Enable retrain for gen2. This should be configured only after * gen1 finished. */ - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKC= TL); status |=3D PCI_EXP_LNKCTL_RL; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS); + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL= ); =20 err =3D readl_poll_timeout(rockchip->apb_base + PCIE_CORE_CTRL, status, PCIE_LINK_IS_GEN2(status), 20, @@ -380,15 +380,15 @@ static int rockchip_pcie_host_init_port(struct rockch= ip_pcie *rockchip) =20 /* Clear L0s from RC's link cap */ if (of_property_read_bool(dev->of_node, "aspm-no-l0s")) { - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LINK_CAP); - status &=3D ~PCIE_RC_CONFIG_LINK_CAP_L0S; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LINK_CAP); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKC= AP); + status &=3D ~PCI_EXP_LNKCAP_ASPM_L0S; + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCAP= ); } =20 - status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_DCSR); - status &=3D ~PCIE_RC_CONFIG_DCSR_MPS_MASK; - status |=3D PCIE_RC_CONFIG_DCSR_MPS_256; - rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_DCSR); + status =3D rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCT= L); + status &=3D ~PCI_EXP_DEVCTL_PAYLOAD; + status |=3D PCI_EXP_DEVCTL_PAYLOAD_256B; + rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCTL); =20 return 0; err_power_off_phy: diff --git a/drivers/pci/controller/pcie-rockchip.h b/drivers/pci/controlle= r/pcie-rockchip.h index 5864a20323f2..f5cbf3c9d2d9 100644 --- a/drivers/pci/controller/pcie-rockchip.h +++ b/drivers/pci/controller/pcie-rockchip.h @@ -155,17 +155,7 @@ #define PCIE_EP_CONFIG_DID_VID (PCIE_EP_CONFIG_BASE + 0x00) #define PCIE_EP_CONFIG_LCS (PCIE_EP_CONFIG_BASE + 0xd0) #define PCIE_RC_CONFIG_RID_CCR (PCIE_RC_CONFIG_BASE + 0x08) -#define PCIE_RC_CONFIG_DCR (PCIE_RC_CONFIG_BASE + 0xc4) -#define PCIE_RC_CONFIG_DCR_CSPL_SHIFT 18 -#define PCIE_RC_CONFIG_DCR_CSPL_LIMIT 0xff -#define PCIE_RC_CONFIG_DCR_CPLS_SHIFT 26 -#define PCIE_RC_CONFIG_DCSR (PCIE_RC_CONFIG_BASE + 0xc8) -#define PCIE_RC_CONFIG_DCSR_MPS_MASK GENMASK(7, 5) -#define PCIE_RC_CONFIG_DCSR_MPS_256 (0x1 << 5) -#define PCIE_RC_CONFIG_LINK_CAP (PCIE_RC_CONFIG_BASE + 0xcc) -#define PCIE_RC_CONFIG_LINK_CAP_L0S BIT(10) -#define PCIE_RC_CONFIG_LCS (PCIE_RC_CONFIG_BASE + 0xd0) -#define PCIE_EP_CONFIG_LCS (PCIE_EP_CONFIG_BASE + 0xd0) +#define PCIE_RC_CONFIG_CR (PCIE_RC_CONFIG_BASE + 0xc0) #define PCIE_RC_CONFIG_L1_SUBSTATE_CTRL2 (PCIE_RC_CONFIG_BASE + 0x90c) #define PCIE_RC_CONFIG_THP_CAP (PCIE_RC_CONFIG_BASE + 0x274) #define PCIE_RC_CONFIG_THP_CAP_NEXT_MASK GENMASK(31, 20) --=20 2.49.0