linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: "Jérôme Pouiller" <jerome.pouiller@silabs.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	netdev <netdev@vger.kernel.org>,
	Kalle Valo <kvalo@codeaurora.org>,
	driverdevel <devel@driverdev.osuosl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"David S . Miller" <davem@davemloft.net>,
	DTML <devicetree@vger.kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>
Subject: Re: [PATCH v7 08/24] wfx: add bus_sdio.c
Date: Thu, 30 Sep 2021 19:06:46 +0200	[thread overview]
Message-ID: <20210930170646.cffsuytdpa72izbh@pali> (raw)
In-Reply-To: <19731906.ZuIkq4dnIL@pc-42>

On Thursday 30 September 2021 18:51:09 Jérôme Pouiller wrote:
> Hello Ulf,
> 
> On Thursday 30 September 2021 12:07:55 CEST Ulf Hansson wrote:
> > On Mon, 20 Sept 2021 at 18:12, Jerome Pouiller
> > <Jerome.Pouiller@silabs.com> wrote:
> > >
> > > From: Jérôme Pouiller <jerome.pouiller@silabs.com>
> > >
> > > Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
> > > ---
> > >  drivers/net/wireless/silabs/wfx/bus_sdio.c | 261 +++++++++++++++++++++
> > >  1 file changed, 261 insertions(+)
> > >  create mode 100644 drivers/net/wireless/silabs/wfx/bus_sdio.c
> > >
> > > diff --git a/drivers/net/wireless/silabs/wfx/bus_sdio.c b/drivers/net/wireless/silabs/wfx/bus_sdio.c
> > 
> > [...]
> > 
> > > +
> > > +static int wfx_sdio_probe(struct sdio_func *func,
> > > +                         const struct sdio_device_id *id)
> > > +{
> > > +       struct device_node *np = func->dev.of_node;
> > > +       struct wfx_sdio_priv *bus;
> > > +       int ret;
> > > +
> > > +       if (func->num != 1) {
> > > +               dev_err(&func->dev, "SDIO function number is %d while it should always be 1 (unsupported chip?)\n",
> > > +                       func->num);
> > > +               return -ENODEV;
> > > +       }
> > > +
> > > +       bus = devm_kzalloc(&func->dev, sizeof(*bus), GFP_KERNEL);
> > > +       if (!bus)
> > > +               return -ENOMEM;
> > > +
> > > +       if (!np || !of_match_node(wfx_sdio_of_match, np)) {
> > > +               dev_warn(&func->dev, "no compatible device found in DT\n");
> > > +               return -ENODEV;
> > > +       }
> > > +
> > > +       bus->func = func;
> > > +       bus->of_irq = irq_of_parse_and_map(np, 0);
> > > +       sdio_set_drvdata(func, bus);
> > > +       func->card->quirks |= MMC_QUIRK_LENIENT_FN0 |
> > > +                             MMC_QUIRK_BLKSZ_FOR_BYTE_MODE |
> > > +                             MMC_QUIRK_BROKEN_BYTE_MODE_512;
> > 
> > I would rather see that you add an SDIO_FIXUP for the SDIO card, to
> > the sdio_fixup_methods[], in drivers/mmc/core/quirks.h, instead of
> > this.
> 
> In the current patch, these quirks are applied only if the device appears
> in the device tree (see the condition above). If I implement them in
> drivers/mmc/core/quirks.h they will be applied as soon as the device is
> detected. Is it what we want?
> 
> Note: we already have had a discussion about the strange VID/PID declared
> by this device:
>   https://www.spinics.net/lists/netdev/msg692577.html

Yes, vendor id 0x0000 is invalid per SDIO spec. So based on this vendor
id, it is not possible to write any quirk in mmc/sdio generic code.

Ulf, but maybe it could be possible to write quirk based on OF
compatible string?

Jérôme, could you please notify your hw departement that this sdio card
does not comply with SDIO spec due to incorrect vendor id stored in hw,
so they could fix this issue in next product, by proper allocation of
vendor id number from USB-IF (*)? I know that for existing products it
is not possible to fix, but it can be fixed in next generation of
products based on used SDIO IP.

(*) - USB-IF really allocates SDIO vendor ids, see:
https://lore.kernel.org/linux-mmc/20210607140216.64iuprp3siggslrk@pali/

> 
> [...]
> > > +
> > > +static const struct sdio_device_id wfx_sdio_ids[] = {
> > > +       { SDIO_DEVICE(SDIO_VENDOR_ID_SILABS, SDIO_DEVICE_ID_SILABS_WF200) },
> > > +       { },
> > > +};
> > > +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,
> > 
> > Is there no power management? Or do you intend to add that on top?
> 
> It seems we already have had this discussion:
> 
>   https://lore.kernel.org/netdev/CAPDyKFqJf=vUqpQg3suDCadKrFTkQWFTY_qp=+yDK=_Lu9gJGg@mail.gmail.com/#r
> 
> In this thread, Kalle said:
> > Many mac80211 drivers do so that the device is powered off during
> > interface down (ifconfig wlan0 down), and as mac80211 does interface
> > down automatically during suspend, suspend then works without extra
> > handlers.
> 
> 
> -- 
> Jérôme Pouiller
> 
> 

  reply	other threads:[~2021-09-30 17:06 UTC|newest]

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

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=20210930170646.cffsuytdpa72izbh@pali \
    --to=pali@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jerome.pouiller@silabs.com \
    --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=robh+dt@kernel.org \
    --cc=ulf.hansson@linaro.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).