All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Jon Derrick <jonathan.derrick@intel.com>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Andy Shevchenko <andriy.shevchenko@intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Pawel Baldysiak <pawel.baldysiak@intel.com>,
	Sinan Kaya <okaya@kernel.org>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Keith Busch <kbusch@kernel.org>,
	Alexandru Gagniuc <mr.nuke.me@gmail.com>,
	Christoph Hellwig <hch@lst.de>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Russell King <rmk+kernel@armlinux.org.uk>
Subject: Re: [RFC 1/9] PCI: pci-bridge-emul: Update PCIe register behaviors
Date: Sat, 28 Mar 2020 16:42:18 -0500	[thread overview]
Message-ID: <20200328214218.GA129350@google.com> (raw)
In-Reply-To: <1581120007-5280-2-git-send-email-jonathan.derrick@intel.com>

[+cc Thomas, Russell]

On Fri, Feb 07, 2020 at 04:59:59PM -0700, Jon Derrick wrote:
> Update the PCIe register behaviors and comments for PCIe v5.0.
> Replace the specific bit definitions with BIT and GENMASK to make
> updating easier in the future.

I think this patch makes sense on its own, independent of the rest of
the series.  I *would* like to see it split into (a) a "no changes"
patch that converts to BIT/GENMASK, and (b) another patch that
contains only the PCIe r5.0 updates.

> Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
> ---
>  drivers/pci/pci-bridge-emul.c | 54 +++++++++++++++++++++----------------------
>  1 file changed, 27 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
> index fffa770..d065c2a 100644
> --- a/drivers/pci/pci-bridge-emul.c
> +++ b/drivers/pci/pci-bridge-emul.c
> @@ -191,12 +191,12 @@ struct pci_bridge_reg_behavior {
>  		.rw = GENMASK(15, 0),
>  
>  		/*
> -		 * Device status register has 4 bits W1C, then 2 bits
> -		 * RO, the rest is reserved
> +		 * Device status register has bits 6 and [3:0] W1C, [5:4] RO,
> +		 * the rest is reserved
>  		 */
> -		.w1c = GENMASK(19, 16),
> -		.ro = GENMASK(20, 19),
> -		.rsvd = GENMASK(31, 21),
> +		.w1c = (BIT(6) | GENMASK(3, 0)) << 16,
> +		.ro = GENMASK(5, 4) << 16,
> +		.rsvd = GENMASK(15, 7) << 16,
>  	},
>  
>  	[PCI_EXP_LNKCAP / 4] = {
> @@ -207,15 +207,16 @@ struct pci_bridge_reg_behavior {
>  
>  	[PCI_EXP_LNKCTL / 4] = {
>  		/*
> -		 * Link control has bits [1:0] and [11:3] RW, the
> -		 * other bits are reserved.
> -		 * Link status has bits [13:0] RO, and bits [14:15]
> +		 * Link control has bits [15:14], [11:3] and [1:0] RW, the
> +		 * rest is reserved.
> +		 *
> +		 * Link status has bits [13:0] RO, and bits [15:14]
>  		 * W1C.
>  		 */
> -		.rw = GENMASK(11, 3) | GENMASK(1, 0),
> +		.rw = GENMASK(15, 14) | GENMASK(11, 3) | GENMASK(1, 0),
>  		.ro = GENMASK(13, 0) << 16,
>  		.w1c = GENMASK(15, 14) << 16,
> -		.rsvd = GENMASK(15, 12) | BIT(2),
> +		.rsvd = GENMASK(13, 12) | BIT(2),
>  	},
>  
>  	[PCI_EXP_SLTCAP / 4] = {
> @@ -224,19 +225,16 @@ struct pci_bridge_reg_behavior {
>  
>  	[PCI_EXP_SLTCTL / 4] = {
>  		/*
> -		 * Slot control has bits [12:0] RW, the rest is
> +		 * Slot control has bits [14:0] RW, the rest is
>  		 * reserved.
>  		 *
> -		 * Slot status has a mix of W1C and RO bits, as well
> -		 * as reserved bits.
> +		 * Slot status has bits 8 and [4:0] W1C, bits [7:5] RO, the
> +		 * rest is reserved.
>  		 */
> -		.rw = GENMASK(12, 0),
> -		.w1c = (PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
> -			PCI_EXP_SLTSTA_MRLSC | PCI_EXP_SLTSTA_PDC |
> -			PCI_EXP_SLTSTA_CC | PCI_EXP_SLTSTA_DLLSC) << 16,
> -		.ro = (PCI_EXP_SLTSTA_MRLSS | PCI_EXP_SLTSTA_PDS |
> -		       PCI_EXP_SLTSTA_EIS) << 16,
> -		.rsvd = GENMASK(15, 12) | (GENMASK(15, 9) << 16),
> +		.rw = GENMASK(14, 0),
> +		.w1c = (BIT(8) | GENMASK(4, 0)) << 16,
> +		.ro = GENMASK(7, 5) << 16,
> +		.rsvd = BIT(15) | (GENMASK(15, 9) << 16),
>  	},
>  
>  	[PCI_EXP_RTCTL / 4] = {
> @@ -244,18 +242,20 @@ struct pci_bridge_reg_behavior {
>  		 * Root control has bits [4:0] RW, the rest is
>  		 * reserved.
>  		 *
> -		 * Root status has bit 0 RO, the rest is reserved.
> +		 * Root capabilities has bit 0 RO, the rest is reserved.
>  		 */
> -		.rw = (PCI_EXP_RTCTL_SECEE | PCI_EXP_RTCTL_SENFEE |
> -		       PCI_EXP_RTCTL_SEFEE | PCI_EXP_RTCTL_PMEIE |
> -		       PCI_EXP_RTCTL_CRSSVE),
> -		.ro = PCI_EXP_RTCAP_CRSVIS << 16,
> +		.rw = GENMASK(4, 0),
> +		.ro = BIT(0) << 16,
>  		.rsvd = GENMASK(15, 5) | (GENMASK(15, 1) << 16),
>  	},
>  
>  	[PCI_EXP_RTSTA / 4] = {
> -		.ro = GENMASK(15, 0) | PCI_EXP_RTSTA_PENDING,
> -		.w1c = PCI_EXP_RTSTA_PME,
> +		/*
> +		 * Root status has bits 17 and [15:0] RO, bit 16 W1C, the rest
> +		 * is reserved.
> +		 */
> +		.ro = BIT(17) | GENMASK(15, 0),
> +		.w1c = BIT(16),
>  		.rsvd = GENMASK(31, 18),
>  	},
>  };
> -- 
> 1.8.3.1
> 

  parent reply	other threads:[~2020-03-28 21:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-07 23:59 [RFC 0/9] PCIe Hotplug Slot Emulation driver Jon Derrick
2020-02-07 23:59 ` [RFC 1/9] PCI: pci-bridge-emul: Update PCIe register behaviors Jon Derrick
2020-02-08  9:55   ` Andy Shevchenko
2020-03-28 21:42   ` Bjorn Helgaas [this message]
2020-02-08  0:00 ` [RFC 2/9] PCI: pci-bridge-emul: Eliminate reserved member Jon Derrick
2020-03-28 21:43   ` Bjorn Helgaas
2020-02-08  0:00 ` [RFC 3/9] PCI: pci-bridge-emul: Provide a helper to set behavior Jon Derrick
2020-02-08  0:00 ` [RFC 4/9] PCI: pciehp: Indirect slot register operations Jon Derrick
2020-02-08  0:00 ` [RFC 5/9] PCI: Add pcie_port_slot_emulated stub Jon Derrick
2020-02-08  0:00 ` [RFC 6/9] PCI: pciehp: Expose the poll loop to other drivers Jon Derrick
2020-02-08  0:00 ` [RFC 7/9] PCI: Move pci_dev_str_match to search.c Jon Derrick
2020-02-08  0:00 ` [RFC 8/9] PCI: pciehp: Add hotplug slot emulation driver Jon Derrick
2020-02-08  0:00 ` [RFC 9/9] PCI: pciehp: Wire up pcie_port_emulate_slot and pciehp_emul Jon Derrick
2020-02-10  7:01 ` [RFC 0/9] PCIe Hotplug Slot Emulation driver Christoph Hellwig
2020-02-10 15:05   ` Derrick, Jonathan
2020-02-10 16:58     ` hch
2020-02-10 17:09       ` Derrick, Jonathan
2020-03-28 21:51 ` Bjorn Helgaas
2020-03-30 17:43   ` Derrick, Jonathan
2020-03-30 17:49     ` hch
2020-04-01 21:45     ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200328214218.GA129350@google.com \
    --to=helgaas@kernel.org \
    --cc=andriy.shevchenko@intel.com \
    --cc=hch@lst.de \
    --cc=jonathan.derrick@intel.com \
    --cc=kbusch@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mr.nuke.me@gmail.com \
    --cc=okaya@kernel.org \
    --cc=pawel.baldysiak@intel.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.