mbox series

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

Message ID 20200727133837.19086-1-pali@kernel.org (mailing list archive)
Headers show
Series mmc: sdio: Export CISTPL_VERS_1 attributes to userspace | expand

Message

Pali Rohár July 27, 2020, 1:38 p.m. UTC
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(-)

Comments

Pali Rohár Aug. 22, 2020, 9:41 a.m. UTC | #1
Hello Ulf! I would like to remind you this SDIO patch series. Could you
please look and review it?

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
>
Ulf Hansson Aug. 24, 2020, 6:35 a.m. UTC | #2
On Sat, 22 Aug 2020 at 11:41, Pali Rohár <pali@kernel.org> 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
> >
Ulf Hansson Aug. 24, 2020, 9:50 a.m. UTC | #3
On Mon, 27 Jul 2020 at 15:38, Pali Rohár <pali@kernel.org> 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
>

Applied for next, thanks!

Kind regards
Uffe