linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: "Pali Rohár" <pali@kernel.org>,
	"Jérôme Pouiller" <Jerome.Pouiller@silabs.com>
Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
	Kalle Valo <kvalo@codeaurora.org>,
	devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"David S . Miller" <davem@davemloft.net>,
	devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	linux-mmc@vger.kernel.org
Subject: Re: [PATCH v9 08/24] wfx: add bus_sdio.c
Date: Wed, 12 Jan 2022 16:03:56 +0100	[thread overview]
Message-ID: <CAPDyKFoMj1r+bEh-MqOdTVzs0C=LCFPPbXj3jHwB4Yty=bA03Q@mail.gmail.com> (raw)
In-Reply-To: <20220112114332.jadw527pe7r2j4vv@pali>

On Wed, 12 Jan 2022 at 12:43, Pali Rohár <pali@kernel.org> wrote:
>
> On Wednesday 12 January 2022 12:18:58 Jérôme Pouiller wrote:
> > On Wednesday 12 January 2022 11:58:59 CET Pali Rohár wrote:
> > > On Tuesday 11 January 2022 18:14:08 Jerome Pouiller wrote:
> > > > +static const struct sdio_device_id wfx_sdio_ids[] = {
> > > > +     { SDIO_DEVICE(SDIO_VENDOR_ID_SILABS, SDIO_DEVICE_ID_SILABS_WF200) },
> > > > +     { },
> > > > +};
> > >
> > > Hello! Is this table still required?
> >
> > As far as I understand, if the driver does not provide an id_table, the
> > probe function won't be never called (see sdio_match_device()).
> >
> > Since, we rely on the device tree, we could replace SDIO_VENDOR_ID_SILABS
> > and SDIO_DEVICE_ID_SILABS_WF200 by SDIO_ANY_ID. However, it does not hurt
> > to add an extra filter here.
>
> Now when this particular id is not required, I'm thinking if it is still
> required and it is a good idea to define these SDIO_VENDOR_ID_SILABS
> macros into kernel include files. As it would mean that other broken
> SDIO devices could define these bogus numbers too... And having them in
> common kernel includes files can cause issues... e.g. other developers
> could think that it is correct to use them as they are defined in common
> header files. But as these numbers are not reliable (other broken cards
> may have same ids as wf200) and their usage may cause issues in future.
>
> Ulf, any opinion?

The sdio_match_device() is what is being used to match the device to
its sdio_driver, which is being called from the sdio_bus_type's
->match() callback.

In regards to the DT compatible strings from a drivers'
.of_match_table, that is currently left to be matched by the sdio
driver's ->probe() function internally, by calling
of_driver_match_device().

In other words, I think what Jerome has suggested here seems
reasonable to me. Matching on "SDIO_ANY_ID" would work too, but I
think it's better with a poor filter like SDIO_VENDOR_ID_SILABS*,
rather than none.

An entirely different and new approach would be to extend
sdio_match_device() to call of_driver_match_device() too. However, in
that case we would also need to add a new corresponding ->probe()
callback for the sdio_driver, as the current one takes a const struct
sdio_device_id, which doesn't work when matching on DT compatibles.

>
> Btw, is there any project which maintains SDIO ids, like there is
> pci-ids.ucw.cz for PCI or www.linux-usb.org/usb-ids.html for USB?
>
> > > > +MODULE_DEVICE_TABLE(sdio, wfx_sdio_ids);
> > > > +
> > > > +struct sdio_driver wfx_sdio_driver = {
> > > > +     .name = "wfx-sdio",
> > > > +     .id_table = wfx_sdio_ids,
> > > > +     .probe = wfx_sdio_probe,
> > > > +     .remove = wfx_sdio_remove,
> > > > +     .drv = {
> > > > +             .owner = THIS_MODULE,
> > > > +             .of_match_table = wfx_sdio_of_match,
> > > > +     }
> > > > +};
> > > > --
> > > > 2.34.1
> > > >
> > >
> >
> >
> > --
> > Jérôme Pouiller

Kind regards
Uffe

  parent reply	other threads:[~2022-01-12 15:04 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-11 17:14 [PATCH v9 00/24] wfx: get out from the staging area Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 01/24] mmc: sdio: add SDIO IDs for Silabs WF200 chip Jerome Pouiller
2022-01-12 10:58   ` Ulf Hansson
2022-01-12 12:45     ` Kalle Valo
2022-01-11 17:14 ` [PATCH v9 02/24] dt-bindings: introduce silabs,wfx.yaml Jerome Pouiller
2022-01-11 20:49   ` Rob Herring
2022-01-11 22:19   ` Rob Herring
2022-01-12  9:51     ` Jérôme Pouiller
2022-01-11 17:14 ` [PATCH v9 03/24] wfx: add Makefile/Kconfig Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 04/24] wfx: add wfx.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 05/24] wfx: add main.c/main.h Jerome Pouiller
2022-01-26  8:20   ` Jérôme Pouiller
2022-02-10 14:20     ` Kalle Valo
2022-02-10 14:41       ` Jérôme Pouiller
2022-02-10 14:51         ` Kalle Valo
2022-02-10 15:13           ` Jérôme Pouiller
2022-02-10 16:25             ` Kalle Valo
2022-02-10 16:37               ` Jérôme Pouiller
2022-02-11  7:08                 ` Kalle Valo
2022-02-10 14:23   ` Pali Rohár
2022-01-11 17:14 ` [PATCH v9 06/24] wfx: add bus.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 07/24] wfx: add bus_spi.c Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 08/24] wfx: add bus_sdio.c Jerome Pouiller
2022-01-12 10:51   ` Ulf Hansson
2022-01-12 10:58   ` Pali Rohár
2022-01-12 11:18     ` Jérôme Pouiller
2022-01-12 11:43       ` Pali Rohár
2022-01-12 12:06         ` Greg Kroah-Hartman
2022-01-12 12:14           ` Pali Rohár
2022-01-12 15:03         ` Ulf Hansson [this message]
2022-01-12 16:45         ` Jérôme Pouiller
2022-01-12 17:48           ` Pali Rohár
2022-01-12 18:23             ` Jérôme Pouiller
2022-01-13 12:07               ` Ulf Hansson
2022-01-11 17:14 ` [PATCH v9 09/24] wfx: add hwio.c/hwio.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 10/24] wfx: add fwio.c/fwio.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 11/24] wfx: add bh.c/bh.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 12/24] wfx: add hif_api_*.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 13/24] wfx: add hif_tx*.c/hif_tx*.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 14/24] wfx: add key.c/key.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 15/24] wfx: add hif_rx.c/hif_rx.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 16/24] wfx: add data_rx.c/data_rx.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 17/24] wfx: add queue.c/queue.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 18/24] wfx: add data_tx.c/data_tx.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 19/24] wfx: add sta.c/sta.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 20/24] wfx: add scan.c/scan.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 21/24] wfx: add debug.c/debug.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 22/24] wfx: add traces.h Jerome Pouiller
2022-01-11 17:14 ` [PATCH v9 23/24] wfx: remove from the staging area Jerome Pouiller
2022-01-12  7:49   ` Kalle Valo
2022-01-12  9:32     ` Jérôme Pouiller
2022-01-12 12:46       ` Kalle Valo
2022-01-11 17:14 ` [PATCH v9 24/24] wfx: get out " Jerome Pouiller

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='CAPDyKFoMj1r+bEh-MqOdTVzs0C=LCFPPbXj3jHwB4Yty=bA03Q@mail.gmail.com' \
    --to=ulf.hansson@linaro.org \
    --cc=Jerome.Pouiller@silabs.com \
    --cc=davem@davemloft.net \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pali@kernel.org \
    --cc=robh+dt@kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).