Re: [PATCH 0/4] mmc: sdio: Export CISTPL_VERS_1 attributes to userspace

From: Ulf Hansson
Date: Mon Aug 24 2020 - 02:36:19 EST


On Sat, 22 Aug 2020 at 11:41, Pali Rohár <pali@xxxxxxxxxx> wrote:
>
> Hello Ulf! I would like to remind you this SDIO patch series. Could you
> please look and review it?

Yes, thanks for pinging, I will have a look.

Kind regards
Uffe

>
> On Monday 27 July 2020 15:38:33 Pali Rohár wrote:
> > CISTPL_VERS_1 structure contains useful information for identification
> > of SDIO cards. It contains revision number according to which standard
> > is SDIO card compliant. And also it contain human readable info strings
> > which should contain manufacturer name or product information, like for
> > old PCMCIA cards. SDIO simplified specification 3.00 just contain
> > reference to PCMCIA metaformat specification for definition of that
> > CISTPL_VERS_1 structure itself.
> >
> > Human readable SDIO card strings can be useful for userspace to do card
> > identification. Until now kernel exported to userspace only vendor and
> > device numbers but these numbers do not help to identify new or unknown
> > cards.
> >
> >
> > I have tested these patches with Marwell 88W8997 SDIO card (WiFi+Bluetooth)
> > and here is content of attributes available in userspace:
> >
> > $ grep . /sys/class/mmc_host/mmc0/mmc0:0001/* /sys/class/mmc_host/mmc0/mmc0:0001/*/*
> > /sys/class/mmc_host/mmc0/mmc0:0001/device:0x9140
> > /sys/class/mmc_host/mmc0/mmc0:0001/info1:Marvell
> > /sys/class/mmc_host/mmc0/mmc0:0001/info2:Wireless Device ID: 50
> > /sys/class/mmc_host/mmc0/mmc0:0001/ocr:0x00200000
> > /sys/class/mmc_host/mmc0/mmc0:0001/rca:0x0001
> > /sys/class/mmc_host/mmc0/mmc0:0001/revision:1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/type:SDIO
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:MMC_TYPE=SDIO
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:SDIO_ID=02DF:9140
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:SDIO_REVISION=1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:SDIO_INFO1=Marvell
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:SDIO_INFO2=Wireless Device ID: 50
> > /sys/class/mmc_host/mmc0/mmc0:0001/uevent:SDIO_INFO3=
> > /sys/class/mmc_host/mmc0/mmc0:0001/vendor:0x02df
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/class:0x00
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/device:0x9141
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/info1:Marvell WiFi Device
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/modalias:sdio:c00v02DFd9141
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/revision:1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:DRIVER=mwifiex_sdio
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:SDIO_CLASS=00
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:SDIO_ID=02DF:9141
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:SDIO_REVISION=1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:SDIO_INFO1=Marvell WiFi Device
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:SDIO_INFO2=
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/uevent:MODALIAS=sdio:c00v02DFd9141
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:1/vendor:0x02df
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/class:0x00
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/device:0x9142
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/info1:Marvell Bluetooth Device
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/modalias:sdio:c00v02DFd9142
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/revision:1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:DRIVER=btmrvl_sdio
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:SDIO_CLASS=00
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:SDIO_ID=02DF:9142
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:SDIO_REVISION=1.0
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:SDIO_INFO1=Marvell Bluetooth Device
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:SDIO_INFO2=
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/uevent:MODALIAS=sdio:c00v02DFd9142
> > /sys/class/mmc_host/mmc0/mmc0:0001/mmc0:0001:2/vendor:0x02df
> > /sys/class/mmc_host/mmc0/mmc0:0001/power/control:auto
> > /sys/class/mmc_host/mmc0/mmc0:0001/power/runtime_active_time:0
> > /sys/class/mmc_host/mmc0/mmc0:0001/power/runtime_status:unsupported
> > /sys/class/mmc_host/mmc0/mmc0:0001/power/runtime_suspended_time:0
> > /sys/class/mmc_host/mmc0/mmc0:0001/subsystem/drivers_autoprobe:1
> >
> > As can be seen SDIO card does not provide all 4 info strings as required by
> > SDIO/PCMCIA specificaion and the third and the second strings are empty.
> >
> >
> > Pali Rohár (4):
> > mmc: sdio: Check for CISTPL_VERS_1 buffer size
> > mmc: sdio: Parse CISTPL_VERS_1 major and minor revision numbers
> > mmc: sdio: Extend sdio_config_attr macro and use it also for modalias
> > mmc: sdio: Export SDIO revision and info strings to userspace
> >
> > drivers/mmc/core/bus.c | 12 ++++++++
> > drivers/mmc/core/sd.c | 36 +++++++++++++++++++++--
> > drivers/mmc/core/sdio.c | 24 ++++++++++++++++
> > drivers/mmc/core/sdio_bus.c | 54 ++++++++++++++++++++++++++---------
> > drivers/mmc/core/sdio_cis.c | 11 +++++++
> > include/linux/mmc/card.h | 2 ++
> > include/linux/mmc/sdio_func.h | 2 ++
> > 7 files changed, 124 insertions(+), 17 deletions(-)
> >
> > --
> > 2.20.1
> >