All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Robert Richter <rrichter@amd.com>
Cc: Alison Schofield <alison.schofield@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Dave Jiang <dave.jiang@intel.com>,
	"Davidlohr Bueso" <dave@stgolabs.net>,
	<linux-cxl@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Gregory Price <gourry@gourry.net>,
	"Fabio M. De Francesco" <fabio.m.de.francesco@linux.intel.com>,
	Terry Bowman <terry.bowman@amd.com>
Subject: Re: [PATCH v3 03/18] cxl/pci: cxl_hdm_decode_init: Move comment
Date: Fri, 14 Feb 2025 15:49:55 +0000	[thread overview]
Message-ID: <20250214154955.00006b0c@huawei.com> (raw)
In-Reply-To: <Z60-UF3VGPsyqHjX@rric.localdomain>

On Thu, 13 Feb 2025 01:35:29 +0100
Robert Richter <rrichter@amd.com> wrote:

> On 12.02.25 18:09:10, Jonathan Cameron wrote:
> > On Tue, 11 Feb 2025 10:53:33 +0100
> > Robert Richter <rrichter@amd.com> wrote:
> >   
> > > The comment applies to the check, move it there.  
> > 
> > I think I disagree. It was in the right place as far as I can tell.
> > It is an odd place for comment, but it's kind of describing
> > why it is not an error to get down there.  
> 
> Ah, that was not obvious to the reader. :-)
> 
> >   
> > > 
> > > Signed-off-by: Robert Richter <rrichter@amd.com>
> > > Reviewed-by: Gregory Price <gourry@gourry.net>
> > > Tested-by: Gregory Price <gourry@gourry.net>
> > > ---
> > >  drivers/cxl/core/pci.c | 18 +++++++++---------
> > >  1 file changed, 9 insertions(+), 9 deletions(-)
> > > 
> > > diff --git a/drivers/cxl/core/pci.c b/drivers/cxl/core/pci.c
> > > index f8e22bc278c3..c49efc419285 100644
> > > --- a/drivers/cxl/core/pci.c
> > > +++ b/drivers/cxl/core/pci.c
> > > @@ -419,6 +419,15 @@ int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm,
> > >  	if (!hdm)
> > >  		return -ENODEV;
> > >  
> > > +	/*
> > > +	 * Per CXL 2.0 Section 8.1.3.8.3 and 8.1.3.8.4 DVSEC CXL Range 1 Base
> > > +	 * [High,Low] when HDM operation is enabled the range register values
> > > +	 * are ignored by the device, but the spec also recommends matching the
> > > +	 * DVSEC Range 1,2 to HDM Decoder Range 0,1. So, non-zero info->ranges
> > > +	 * are expected even though Linux does not require or maintain that
> > > +	 * match. If at least one DVSEC range is enabled and allowed, skip HDM
> > > +	 * Decoder Capability Enable.  
> > 
> > This check is about mem_enabled. Would be fine to add another comment here to
> > say.  
> 
> The next patch extends the comment for more clarification (I hope so).

Not to me.  It says 'else' when referring to what happens in the if.

> 
> > 
> > 	/*
> > 	 * If mem_enabled is not set prior configuration is irrelevant and we
> > 	 * can do what we like so enable HDM decoders and ignore DVSEC registers.
> > 	 */  
> > > +	 */
> > >  	if (!info->mem_enabled) {
> > >  		rc = devm_cxl_enable_hdm(&port->dev, cxlhdm);
> > >  		if (rc)
> > > @@ -454,15 +463,6 @@ int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm,
> > >  		return -ENXIO;
> > >  	}
> > >  
> > > -	/*
> > > -	 * Per CXL 2.0 Section 8.1.3.8.3 and 8.1.3.8.4 DVSEC CXL Range 1 Base
> > > -	 * [High,Low] when HDM operation is enabled the range register values
> > > -	 * are ignored by the device, but the spec also recommends matching the
> > > -	 * DVSEC Range 1,2 to HDM Decoder Range 0,1. So, non-zero info->ranges
> > > -	 * are expected even though Linux does not require or maintain that
> > > -	 * match. If at least one DVSEC range is enabled and allowed, skip HDM
> > > -	 * Decoder Capability Enable.
> > > -	 */  
> > 
> > This is the path the comment is talking about because only if we get to this
> > return path are we 'skipping' the HDM decoder capability and not returning
> > an error.  The path representing an HDM decoder equipped device that
> > was configured by a BIOS that decided to use the DVSEC registers.
> > 
> > I'm not sure why we care about how the hdm decoders are programmed inthis
> > case though.
> > 
> > I'm confused :(  
> 
> There is an HDM, but it is disabled (CXL_HDM_DECODER_ENABLE is
> cleared). If the DVSEC range regs do not have valid values
> (!info->mem_enabled, firmware indicates it is not used), just go and
> enable the HDM.
> 
> We try to use the hdm decoders here to be able to use them for a
> non-auto setup. Else, decoder emulation is used
> (should_emulate_decoders()) and decoders are locked
> (CXL_DECODER_F_LOCK will be set).
> 
> Maybe take a look at the whole change with added comments including
> patch 4/18?
> 
> I hope to not add confusion here. :-)
> 
> -Robert
> 
> >   
> > >  	return 0;
> > >  }
> > >  EXPORT_SYMBOL_NS_GPL(cxl_hdm_decode_init, "CXL");  
> >   


  reply	other threads:[~2025-02-14 15:49 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11  9:53 [PATCH v3 00/18] cxl: Address translation support, part 1: Cleanups and refactoring Robert Richter
2025-02-11  9:53 ` [PATCH v3 01/18] cxl: Remove else after return Robert Richter
2025-02-11  9:53 ` [PATCH v3 02/18] cxl/pci: Moving code in cxl_hdm_decode_init() Robert Richter
2025-02-12 17:57   ` Jonathan Cameron
2025-02-20  1:03   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 03/18] cxl/pci: cxl_hdm_decode_init: Move comment Robert Richter
2025-02-12 18:09   ` Jonathan Cameron
2025-02-13  0:35     ` Robert Richter
2025-02-14 15:49       ` Jonathan Cameron [this message]
2025-03-06  9:38         ` Robert Richter
2025-02-11  9:53 ` [PATCH v3 04/18] cxl/pci: Add comments to cxl_hdm_decode_init() Robert Richter
2025-02-14 15:51   ` Jonathan Cameron
2025-02-11  9:53 ` [PATCH v3 05/18] cxl: Introduce parent_port_of() helper Robert Richter
2025-02-20 16:12   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 06/18] cxl/region: Rename function to cxl_find_decoder_early() Robert Richter
2025-02-14 15:58   ` Jonathan Cameron
2025-03-05 12:48     ` Robert Richter
2025-02-11  9:53 ` [PATCH v3 07/18] cxl/region: Avoid duplicate call of cxl_find_decoder_early() Robert Richter
2025-02-14 16:07   ` Jonathan Cameron
2025-03-06  9:16     ` Robert Richter
2025-02-11  9:53 ` [PATCH v3 08/18] cxl/region: Move find_cxl_root() to cxl_add_to_region() Robert Richter
2025-02-20 16:39   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 09/18] cxl/region: Factor out code to find the root decoder Robert Richter
2025-02-20 16:48   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 10/18] cxl/region: Factor out code to find a root decoder's region Robert Richter
2025-02-14 16:15   ` Jonathan Cameron
2025-02-20 16:50   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 11/18] cxl/region: Split region registration into an initialization and adding part Robert Richter
2025-02-14 16:24   ` Jonathan Cameron
2025-02-11  9:53 ` [PATCH v3 12/18] cxl/region: Use iterator to find the root port in cxl_find_root_decoder() Robert Richter
2025-02-20 17:17   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 13/18] cxl/region: Add function to find a port's switch decoder by range Robert Richter
2025-02-14 16:29   ` Jonathan Cameron
2025-02-20 17:23   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 14/18] cxl/region: Unfold cxl_find_root_decoder() into cxl_endpoint_decoder_initialize() Robert Richter
2025-02-14 16:33   ` Jonathan Cameron
2025-03-06 16:18     ` Robert Richter
2025-02-11  9:53 ` [PATCH v3 15/18] cxl/region: Add a dev_warn() on registration failure Robert Richter
2025-02-14 16:35   ` Jonathan Cameron
2025-02-20 17:35     ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 16/18] cxl/region: Add a dev_err() on missing target list entries Robert Richter
2025-02-14 16:36   ` Jonathan Cameron
2025-02-20 17:44   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 17/18] cxl: Add a dev_dbg() when a decoder was added to a port Robert Richter
2025-02-14 16:37   ` Jonathan Cameron
2025-02-20 17:45   ` Dave Jiang
2025-02-11  9:53 ` [PATCH v3 18/18] cxl/acpi: Unify CFMWS memory log messages with SRAT messages Robert Richter
2025-02-14 16:37   ` Jonathan Cameron
2025-02-20 17:46   ` Dave Jiang

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=20250214154955.00006b0c@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=fabio.m.de.francesco@linux.intel.com \
    --cc=gourry@gourry.net \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rrichter@amd.com \
    --cc=terry.bowman@amd.com \
    --cc=vishal.l.verma@intel.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.