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
next prev parent 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: linkBe 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.