All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Nipun Gupta <nipun.gupta@amd.com>
Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
	rafael@kernel.org, eric.auger@redhat.com,
	alex.williamson@redhat.com, cohuck@redhat.com,
	song.bao.hua@hisilicon.com, mchehab+huawei@kernel.org,
	maz@kernel.org, f.fainelli@gmail.com, jeffrey.l.hugo@gmail.com,
	saravanak@google.com, Michael.Srba@seznam.cz, mani@kernel.org,
	yishaih@nvidia.com, jgg@ziepe.ca, jgg@nvidia.com,
	robin.murphy@arm.com, will@kernel.org, joro@8bytes.org,
	masahiroy@kernel.org, ndesaulniers@google.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, okaya@kernel.org,
	harpreet.anand@amd.com, nikhil.agarwal@amd.com,
	michal.simek@amd.com, git@amd.com
Subject: Re: [PATCH 01/19] bus/cdx: add the cdx bus driver
Date: Tue, 17 Jan 2023 15:07:02 +0100	[thread overview]
Message-ID: <Y8arhmVo7LPLuxqr@kroah.com> (raw)
In-Reply-To: <20230117134139.1298-2-nipun.gupta@amd.com>

On Tue, Jan 17, 2023 at 07:11:33PM +0530, Nipun Gupta wrote:
> Introduce AMD CDX bus, which provides a mechanism for scanning
> and probing CDX devices. These devices are memory mapped on
> system bus for Application Processors(APUs).
> 
> CDX devices can be changed dynamically in the Fabric and CDX
> bus interacts with CDX controller to rescan the bus and
> rediscover the devices.
> 
> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> Signed-off-by: Tarak Reddy <tarak.reddy@amd.com>

First off, very nice job, I didn't find any obvious issues with this
integration into the driver core.

That being said, why do you want this in drivers/bus/?  Why not
drivers/cdx/ ?

One minor comment to make the code smaller:

> +static int get_free_index(void)
> +{
> +	unsigned long id_map;
> +	unsigned long mask;
> +	int index = 0;
> +
> +	mask  = (1UL << MAX_CDX_CONTROLLERS) - 1;
> +retry:
> +	id_map = cdx_controller_id_map[0];
> +	if ((id_map & mask) == mask)
> +		return -ENOSPC;
> +
> +	index = ffz(id_map);
> +	if (index >= MAX_CDX_CONTROLLERS)
> +		return -ENOSPC;
> +
> +	if (test_and_set_bit(index, &cdx_controller_id_map[0]))
> +		goto retry;
> +
> +	return index;
> +}

Why not just use the idr/ida structure instead?  That will handle all of
that logic for you and get rid of your bit twiddling.

> +/**
> + * struct cdx_dev_params - CDX device parameters
> + * @cdx: CDX controller associated with the device
> + * @parent: Associated CDX controller
> + * @vendor: Vendor ID for CDX device
> + * @device: Device ID for CDX device
> + * @bus_num: Bus number for this CDX device
> + * @dev_num: Device number for this device
> + * @res: array of MMIO region entries
> + * @res_count: number of valid MMIO regions
> + * @req_id: Requestor ID associated with CDX device
> + */
> +struct cdx_dev_params {
> +	struct cdx_controller *cdx;
> +	u16 vendor;
> +	u16 device;

Are these in little endian format in memory?  Or native?  Or something
else?

thanks,

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@linuxfoundation.org>
To: Nipun Gupta <nipun.gupta@amd.com>
Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
	rafael@kernel.org, eric.auger@redhat.com,
	alex.williamson@redhat.com, cohuck@redhat.com,
	song.bao.hua@hisilicon.com, mchehab+huawei@kernel.org,
	maz@kernel.org, f.fainelli@gmail.com, jeffrey.l.hugo@gmail.com,
	saravanak@google.com, Michael.Srba@seznam.cz, mani@kernel.org,
	yishaih@nvidia.com, jgg@ziepe.ca, jgg@nvidia.com,
	robin.murphy@arm.com, will@kernel.org, joro@8bytes.org,
	masahiroy@kernel.org, ndesaulniers@google.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, okaya@kernel.org,
	harpreet.anand@amd.com, nikhil.agarwal@amd.com,
	michal.simek@amd.com, git@amd.com
Subject: Re: [PATCH 01/19] bus/cdx: add the cdx bus driver
Date: Tue, 17 Jan 2023 15:07:02 +0100	[thread overview]
Message-ID: <Y8arhmVo7LPLuxqr@kroah.com> (raw)
In-Reply-To: <20230117134139.1298-2-nipun.gupta@amd.com>

On Tue, Jan 17, 2023 at 07:11:33PM +0530, Nipun Gupta wrote:
> Introduce AMD CDX bus, which provides a mechanism for scanning
> and probing CDX devices. These devices are memory mapped on
> system bus for Application Processors(APUs).
> 
> CDX devices can be changed dynamically in the Fabric and CDX
> bus interacts with CDX controller to rescan the bus and
> rediscover the devices.
> 
> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> Signed-off-by: Tarak Reddy <tarak.reddy@amd.com>

First off, very nice job, I didn't find any obvious issues with this
integration into the driver core.

That being said, why do you want this in drivers/bus/?  Why not
drivers/cdx/ ?

One minor comment to make the code smaller:

> +static int get_free_index(void)
> +{
> +	unsigned long id_map;
> +	unsigned long mask;
> +	int index = 0;
> +
> +	mask  = (1UL << MAX_CDX_CONTROLLERS) - 1;
> +retry:
> +	id_map = cdx_controller_id_map[0];
> +	if ((id_map & mask) == mask)
> +		return -ENOSPC;
> +
> +	index = ffz(id_map);
> +	if (index >= MAX_CDX_CONTROLLERS)
> +		return -ENOSPC;
> +
> +	if (test_and_set_bit(index, &cdx_controller_id_map[0]))
> +		goto retry;
> +
> +	return index;
> +}

Why not just use the idr/ida structure instead?  That will handle all of
that logic for you and get rid of your bit twiddling.

> +/**
> + * struct cdx_dev_params - CDX device parameters
> + * @cdx: CDX controller associated with the device
> + * @parent: Associated CDX controller
> + * @vendor: Vendor ID for CDX device
> + * @device: Device ID for CDX device
> + * @bus_num: Bus number for this CDX device
> + * @dev_num: Device number for this device
> + * @res: array of MMIO region entries
> + * @res_count: number of valid MMIO regions
> + * @req_id: Requestor ID associated with CDX device
> + */
> +struct cdx_dev_params {
> +	struct cdx_controller *cdx;
> +	u16 vendor;
> +	u16 device;

Are these in little endian format in memory?  Or native?  Or something
else?

thanks,

greg k-h

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-01-17 14:07 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-17 13:41 [PATCH 0/7] add support for CDX bus Nipun Gupta
2023-01-17 13:41 ` Nipun Gupta
2023-01-17 13:41 ` [PATCH 01/19] bus/cdx: add the cdx bus driver Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 14:07   ` Greg KH [this message]
2023-01-17 14:07     ` Greg KH
2023-01-18 10:56     ` Gupta, Nipun
2023-01-18 10:56       ` Gupta, Nipun
2023-01-17 17:21   ` Randy Dunlap
2023-01-17 17:21     ` Randy Dunlap
2023-01-18 10:59     ` Gupta, Nipun
2023-01-18 10:59       ` Gupta, Nipun
2023-01-17 13:41 ` [PATCH 02/19] iommu/arm-smmu-v3: support ops registration for CDX bus Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 13:41 ` [PATCH 03/19] dt-bindings: bus: add CDX bus controller device tree bindings Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 17:54   ` Krzysztof Kozlowski
2023-01-17 17:54     ` Krzysztof Kozlowski
2023-01-18 12:39     ` Gupta, Nipun
2023-01-18 12:39       ` Gupta, Nipun
2023-01-18 12:43       ` Krzysztof Kozlowski
2023-01-18 12:43         ` Krzysztof Kozlowski
2023-01-19  7:33         ` Gupta, Nipun
2023-01-19  7:33           ` Gupta, Nipun
2023-01-17 13:41 ` [PATCH 04/19] bus/cdx: add MCDI protocol interface for firmware interaction Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 14:08   ` Greg KH
2023-01-17 14:08     ` Greg KH
2023-01-18 10:58     ` Gupta, Nipun
2023-01-18 10:58       ` Gupta, Nipun
2023-01-17 13:41 ` [PATCH 05/19] bus/cdx: add cdx controller Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 14:10   ` Greg KH
2023-01-17 14:10     ` Greg KH
2023-01-18 12:36     ` Gupta, Nipun
2023-01-18 12:36       ` Gupta, Nipun
2023-01-17 13:41 ` [PATCH 06/19] bus/cdx: add rpmsg communication channel for CDX Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 13:41 ` [PATCH 07/19] bus/cdx: add device attributes Nipun Gupta
2023-01-17 13:41   ` Nipun Gupta
2023-01-17 14:13   ` Greg KH
2023-01-17 14:13     ` Greg KH
2023-01-18 13:03     ` Gupta, Nipun
2023-01-18 13:03       ` Gupta, Nipun
2023-01-17 17:47 ` [PATCH 0/7] add support for CDX bus Krzysztof Kozlowski
2023-01-17 17:47   ` Krzysztof Kozlowski

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=Y8arhmVo7LPLuxqr@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=Michael.Srba@seznam.cz \
    --cc=alex.williamson@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=devicetree@vger.kernel.org \
    --cc=eric.auger@redhat.com \
    --cc=f.fainelli@gmail.com \
    --cc=git@amd.com \
    --cc=harpreet.anand@amd.com \
    --cc=jeffrey.l.hugo@gmail.com \
    --cc=jgg@nvidia.com \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=maz@kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=michal.simek@amd.com \
    --cc=ndesaulniers@google.com \
    --cc=nikhil.agarwal@amd.com \
    --cc=nipun.gupta@amd.com \
    --cc=okaya@kernel.org \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=saravanak@google.com \
    --cc=song.bao.hua@hisilicon.com \
    --cc=will@kernel.org \
    --cc=yishaih@nvidia.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.