From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Lee Jones <lee@kernel.org>
Cc: linux-fpga@vger.kernel.org, Xu Yilun <yilun.xu@intel.com>,
Wu Hao <hao.wu@intel.com>, Tom Rix <trix@redhat.com>,
Moritz Fischer <mdf@kernel.org>,
Matthew Gerlach <matthew.gerlach@linux.intel.com>,
Russ Weight <russell.h.weight@intel.com>,
Tianfei zhang <tianfei.zhang@intel.com>,
Mark Brown <broonie@kernel.org>,
Marco Pagani <marpagan@redhat.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 01/10] mfd: intel-m10-bmc: Create m10bmc_platform_info for type specific info
Date: Mon, 9 Jan 2023 20:04:28 +0200 (EET) [thread overview]
Message-ID: <1ffa5844-f5ce-e56a-7ed9-9ba434904b6d@linux.intel.com> (raw)
In-Reply-To: <Y7xSQde3pzcOIu+X@google.com>
[-- Attachment #1: Type: text/plain, Size: 4416 bytes --]
On Mon, 9 Jan 2023, Lee Jones wrote:
> On Mon, 26 Dec 2022, Ilpo Järvinen wrote:
>
> > BMC type specific info is currently set by a switch/case block. The
> > size of this info is expected to grow as more dev types and features
> > are added which would have made the switch block bloaty.
> >
> > Store type specific info into struct and place them into .driver_data
> > instead because it makes things a bit cleaner.
> >
> > The m10bmc_type enum can be dropped as the differentiation is now
> > fully handled by the platform info.
> >
> > The info member of struct intel_m10bmc that is added here is not used
> > yet in this change but its addition logically still belongs to this
> > change. The CSR map change that comes after this change needs to have
> > the info member.
> >
> > Reviewed-by: Russ Weight <russell.h.weight@intel.com>
> > Reviewed-by: Xu Yilun <yilun.xu@intel.com>
> > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> > ---
> > drivers/mfd/intel-m10-bmc.c | 53 ++++++++++++++-----------------
> > include/linux/mfd/intel-m10-bmc.h | 12 +++++++
> > 2 files changed, 36 insertions(+), 29 deletions(-)
> >
> > diff --git a/drivers/mfd/intel-m10-bmc.c b/drivers/mfd/intel-m10-bmc.c
> > index 7e3319e5b22f..12c522c16d83 100644
> > --- a/drivers/mfd/intel-m10-bmc.c
> > +++ b/drivers/mfd/intel-m10-bmc.c
> > @@ -13,12 +13,6 @@
> > #include <linux/regmap.h>
> > #include <linux/spi/spi.h>
> >
> > -enum m10bmc_type {
> > - M10_N3000,
> > - M10_D5005,
> > - M10_N5010,
> > -};
> > -
> > static struct mfd_cell m10bmc_d5005_subdevs[] = {
> > { .name = "d5005bmc-hwmon" },
> > { .name = "d5005bmc-sec-update" }
> > @@ -162,15 +156,17 @@ static int check_m10bmc_version(struct intel_m10bmc *ddata)
> > static int intel_m10_bmc_spi_probe(struct spi_device *spi)
> > {
> > const struct spi_device_id *id = spi_get_device_id(spi);
> > + const struct intel_m10bmc_platform_info *info;
> > struct device *dev = &spi->dev;
> > - struct mfd_cell *cells;
> > struct intel_m10bmc *ddata;
> > - int ret, n_cell;
> > + int ret;
> >
> > ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
> > if (!ddata)
> > return -ENOMEM;
> >
> > + info = (struct intel_m10bmc_platform_info *)id->driver_data;
> > + ddata->info = info;
>
> Why are you keeping it?
There are plenty of users starting from patch 04. There will more users
and members in the changes not included into this series. Thus, storing
csr_map instead of info would not be forward-looking enough.
> > ddata->dev = dev;
> >
> > ddata->regmap =
> > @@ -189,24 +185,8 @@ static int intel_m10_bmc_spi_probe(struct spi_device *spi)
> > return ret;
> > }
> >
> > - switch (id->driver_data) {
> > - case M10_N3000:
> > - cells = m10bmc_pacn3000_subdevs;
> > - n_cell = ARRAY_SIZE(m10bmc_pacn3000_subdevs);
> > - break;
> > - case M10_D5005:
> > - cells = m10bmc_d5005_subdevs;
> > - n_cell = ARRAY_SIZE(m10bmc_d5005_subdevs);
> > - break;
> > - case M10_N5010:
> > - cells = m10bmc_n5010_subdevs;
> > - n_cell = ARRAY_SIZE(m10bmc_n5010_subdevs);
> > - break;
> > - default:
> > - return -ENODEV;
> > - }
> > -
> > - ret = devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, cells, n_cell,
> > + ret = devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO,
> > + info->cells, info->n_cells,
> > NULL, 0, NULL);
> > if (ret)
> > dev_err(dev, "Failed to register sub-devices: %d\n", ret);
> > @@ -214,10 +194,25 @@ static int intel_m10_bmc_spi_probe(struct spi_device *spi)
> > return ret;
> > }
> >
> > +static const struct intel_m10bmc_platform_info m10bmc_spi_n3000 = {
> > + .cells = m10bmc_pacn3000_subdevs,
> > + .n_cells = ARRAY_SIZE(m10bmc_pacn3000_subdevs),
> > +};
>
> Not seeing how adding a whole new structure and swapping out 4 lines to
> describe a device for a different 4 lines per device is better?
>
> I'm not necessarily against it. Just seems like a bit of a pointless
> exercise.
After the BMC core/SPI split in a later patch in this series, there will
be an init func in m10bmc core that will be called from spi side and
after PMCI is added, from there too.
With a structure, only a pointer to that will have to be passed to the
init func rather than n parameters (there will be more members added into
the info structure too both by changes in this series and in the ones not
included to this series).
Thanks for the review.
--
i.
next prev parent reply other threads:[~2023-01-09 18:06 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-26 17:58 [PATCH v5 00/10] intel-m10-bmc: Split BMC to core and SPI parts & add PMCI+N6000 support Ilpo Järvinen
2022-12-26 17:58 ` [PATCH v5 01/10] mfd: intel-m10-bmc: Create m10bmc_platform_info for type specific info Ilpo Järvinen
2023-01-09 17:43 ` Lee Jones
2023-01-09 18:04 ` Ilpo Järvinen [this message]
2023-01-10 10:05 ` Lee Jones
2022-12-26 17:58 ` [PATCH v5 02/10] mfd: intel-m10-bmc: Rename the local variables Ilpo Järvinen
2023-01-09 18:07 ` Lee Jones
2023-01-09 18:17 ` Ilpo Järvinen
2023-01-10 10:13 ` Lee Jones
2022-12-26 17:58 ` [PATCH v5 03/10] mfd: intel-m10-bmc: Split into core and spi specific parts Ilpo Järvinen
2023-01-13 14:42 ` Lee Jones
2022-12-26 17:58 ` [PATCH v5 04/10] mfd: intel-m10-bmc: Support multiple CSR register layouts Ilpo Järvinen
2023-01-13 14:44 ` Lee Jones
2022-12-26 17:58 ` [PATCH v5 05/10] fpga: intel-m10-bmc: Rework flash read/write Ilpo Järvinen
2022-12-26 17:58 ` [PATCH v5 06/10] mfd: intel-m10-bmc: Downscope SPI defines & prefix with M10BMC_N3000 Ilpo Järvinen
2023-01-10 17:05 ` Lee Jones
2022-12-26 17:58 ` [PATCH v5 07/10] fpga: m10bmc-sec: Create helpers for rsu status/progress checks Ilpo Järvinen
2022-12-30 3:16 ` Xu Yilun
2022-12-26 17:58 ` [PATCH v5 08/10] fpga: m10bmc-sec: Differentiate rsu status from doorbell in csr map Ilpo Järvinen
2022-12-30 4:32 ` Xu Yilun
2022-12-30 10:23 ` Ilpo Järvinen
2023-01-03 9:34 ` Xu Yilun
2023-01-03 12:12 ` Ilpo Järvinen
2022-12-26 17:58 ` [PATCH v5 09/10] mfd: intel-m10-bmc: Add PMCI driver Ilpo Järvinen
2023-01-13 14:40 ` Lee Jones
2023-01-13 15:08 ` Ilpo Järvinen
2022-12-26 17:58 ` [PATCH v5 10/10] fpga: m10bmc-sec: Add support for N6000 Ilpo Järvinen
2022-12-30 6:10 ` Xu Yilun
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=1ffa5844-f5ce-e56a-7ed9-9ba434904b6d@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=broonie@kernel.org \
--cc=hao.wu@intel.com \
--cc=lee@kernel.org \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marpagan@redhat.com \
--cc=matthew.gerlach@linux.intel.com \
--cc=mdf@kernel.org \
--cc=russell.h.weight@intel.com \
--cc=tianfei.zhang@intel.com \
--cc=trix@redhat.com \
--cc=yilun.xu@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox