Add modules to support realtek PCIE card reader
Subsystems (2)
v2 cover Add modules to support realtek PCIE card reader
From: Wei WANG <[email protected]>
Support for Realtek PCI-Express driver-based card readers including rts5209 and rts5229.
Wei WANG (2):
drivers/mfd: Add realtek pcie card reader driver drivers/mmc: Add realtek pcie sdmmc host driver
drivers/mfd/Kconfig | 9 + drivers/mfd/Makefile | 4 + drivers/mfd/rts5209.c | 102 +++ drivers/mfd/rts5229.c | 117 +++ drivers/mfd/rtsx_pcr.c | 1464 +++++++++++++++++++++++++++++++++++++ drivers/mfd/rtsx_pcr.h | 31 + drivers/mmc/host/Kconfig | 7 + drivers/mmc/host/Makefile | 2 + drivers/mmc/host/rtsx_pci_sdmmc.c | 1348 ++++++++++++++++++++++++++++++++++ include/linux/mfd/rtsx_common.h | 47 ++ include/linux/mfd/rtsx_pci.h | 692 ++++++++++++++++++ 11 files changed, 3823 insertions(+) create mode 100644 drivers/mfd/rts5209.c create mode 100644 drivers/mfd/rts5229.c create mode 100644 drivers/mfd/rtsx_pcr.c create mode 100644 drivers/mfd/rtsx_pcr.h create mode 100644 drivers/mmc/host/rtsx_pci_sdmmc.c create mode 100644 include/linux/mfd/rtsx_common.h create mode 100644 include/linux/mfd/rtsx_pci.h
Signature · 1 line
1.7.9.5
PATCH v2 1/2 drivers/mfd: Add realtek pcie card reader driver
From: Wei WANG <[email protected]>
Realtek PCI-E card reader driver adapts requests from upper-level sdmmc/memstick layer to the real physical card reader.
--- drivers/mfd/Kconfig | 9 + drivers/mfd/Makefile | 4 + drivers/mfd/rts5209.c | 102 +++ drivers/mfd/rts5229.c | 117 ++++ drivers/mfd/rtsx_pcr.c | 1464 +++++++++++++++++++++++++++++++++++++++ drivers/mfd/rtsx_pcr.h | 31 + include/linux/mfd/rtsx_common.h | 47 ++ include/linux/mfd/rtsx_pci.h | 692 ++++++++++++++++++ 8 files changed, 2466 insertions(+) create mode 100644 drivers/mfd/rts5209.c create mode 100644 drivers/mfd/rts5229.c create mode 100644 drivers/mfd/rtsx_pcr.c create mode 100644 drivers/mfd/rtsx_pcr.h create mode 100644 include/linux/mfd/rtsx_common.h create mode 100644 include/linux/mfd/rtsx_pci.h
drivers/mfd/Kconfig +9 -0
@@ -63,6 +63,15 @@ config MFD_SM501_GPIO lines on the SM501. The platform data is used to supply the base number for the first GPIO line to register. +config MFD_RTSX_PCI + tristate "Support for Realtek PCI-E driver-based card reader" + depends on PCI + help + This supports for Realtek PCI-Express driver-based card reader including + rts5209, rts5229, etc. Realtek driver-based card reader supports access + to many types of memory cards, such as Memory Stick, Memory Stick Pro, + Secure Digital and MultiMediaCard. + config MFD_ASIC3 bool "Support for Compaq ASIC3" depends on GENERIC_HARDIRQS && GPIOLIB && ARM
drivers/mfd/Makefile +4 -0
@@ -9,6 +9,9 @@ obj-$(CONFIG_MFD_88PM805) += 88pm805.o 88pm80x.o obj-$(CONFIG_MFD_SM501) += sm501.o obj-$(CONFIG_MFD_ASIC3) += asic3.o tmio_core.o +rtsx_pci-objs := rtsx_pcr.o rts5209.o rts5229.o +obj-$(CONFIG_MFD_RTSX_PCI) += rtsx_pci.o + obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o obj-$(CONFIG_HTC_I2CPLD) += htc-i2cpld.o
@@ -132,3 +135,4 @@ obj-$(CONFIG_MFD_RC5T583) += rc5t583.o rc5t583-irq.o obj-$(CONFIG_MFD_SEC_CORE) += sec-core.o sec-irq.o obj-$(CONFIG_MFD_ANATOP) += anatop-mfd.o obj-$(CONFIG_MFD_LM3533) += lm3533-core.o lm3533-ctrlbank.o +obj-$(CONFIG_MFD_RTSX_PCI) += rtsx_pci.o
drivers/mfd/rts5209.c new file +102 -0
102 lines not on this page · raw message
drivers/mfd/rts5229.c new file +117 -0
117 lines not on this page · raw message
drivers/mfd/rtsx_pcr.c new file +1464 -0
1,464 lines not on this page · raw message
drivers/mfd/rtsx_pcr.h new file +31 -0
@@ -0,0 +1,31 @@ +/* Driver for Realtek PCI-Express card reader +* +* Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2, or (at your option) any +* later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, see <http://www.gnu.org/licenses/>. +* +* Author: +* Wei WANG <[email protected]> +* No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China +*/ + +#ifndef __RTSX_PCR_H +#define __RTSX_PCR_H + +#include <linux/mfd/rtsx_pci.h> + +extern const struct pcr_ops rts5209_pcr_ops; +extern const struct pcr_ops rts5229_pcr_ops; + +#endif
include/linux/mfd/rtsx_common.h new file +47 -0
47 lines not on this page · raw message
include/linux/mfd/rtsx_pci.h new file +692 -0
692 lines not on this page · raw message
Signature · 1 line
1.7.9.5
Re: [PATCH v2 1/2] drivers/mfd: Add realtek pcie card reader driver
Quoted 5 lines · On Tuesday 14 August 2012, [email protected] wrote:
drivers/mfd/rtsx_pcr.c new file +5
-0+ +void rtsx_pci_start_run (struct rtsx_pcr *pcr) +{ +/* If pci device removed, don't queue idle work any more */ +if (pcr->remove_pci)
drivers/mfd/rtsx_pcr.c line 67
Quoted 10 lines
drivers/mfd/rtsx_pcr.c new file +10
-0+return ; + +if (pcr->state !=PDEV_STAT_RUN ) { + pcr->state =PDEV_STAT_RUN ; + pcr->ops->enable_auto_blink (pcr); + } + +mod_timer (&pcr->idle_timer, jiffies +msecs_to_jiffies (200 )); +} +EXPORT_SYMBOL_GPL (rtsx_pci_start_run);
One more comment on the mod_timer/queue_work combination: I just saw that Tejun Heo posted a series to introduce a new mod_delayed_work() helper.
Once that goes in, it would be best to start using it here.
Arnd
Re: [PATCH v2 1/2] drivers/mfd: Add realtek pcie card reader driver
Quoted 20 lines · Arnd Bergmann
Quoted 5 lines · On Tuesday 14 August 2012, [email protected] wrote:
drivers/mfd/rtsx_pcr.c new file +5
-0+ +void rtsx_pci_start_run (struct rtsx_pcr *pcr) +{ +/* If pci device removed, don't queue idle work any more */ +if (pcr->remove_pci)drivers/mfd/rtsx_pcr.c line 67
Quoted 10 lines
drivers/mfd/rtsx_pcr.c new file +10
-0+return ; + +if (pcr->state !=PDEV_STAT_RUN ) { + pcr->state =PDEV_STAT_RUN ; + pcr->ops->enable_auto_blink (pcr); + } + +mod_timer (&pcr->idle_timer, jiffies +msecs_to_jiffies (200 )); +} +EXPORT_SYMBOL_GPL (rtsx_pci_start_run);One more comment on the mod_timer/queue_work combination: I just saw that Tejun Heo posted a series to introduce a new
mod_delayed_work()helper.
Quoted 1 line
Once that goes in, it would be best to start using it here.
mod_delayed_work() is now in the following git branch.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git wq-mod_delayed
The branch is stable and will be pushed during for-3.7 merge window. Please feel free to pull as necessary.
Thanks.
Signature · 1 line
tejun
PATCH v2 2/2 drivers/mmc: Add realtek pcie sdmmc host driver
In reply to [email protected]From: Wei WANG <[email protected]>
Realtek PCI-E SD/MMC card host driver is used to access SD/MMC card, with the help of Realtek PCI-E card reader MFD driver.
--- drivers/mmc/host/Kconfig | 7 + drivers/mmc/host/Makefile | 2 + drivers/mmc/host/rtsx_pci_sdmmc.c | 1348 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1357 insertions(+) create mode 100644 drivers/mmc/host/rtsx_pci_sdmmc.c
drivers/mmc/host/Kconfig +7 -0
@@ -612,3 +612,10 @@ config MMC_USHC Note: These controllers only support SDIO cards and do not support MMC or SD memory cards. + +config MMC_REALTEK_PCI + tristate "Realtek PCI-E SD/MMC Card Interface Driver" + depends on MFD_RTSX_PCI + help + Say Y here to include driver code to support SD/MMC card interface + of Realtek PCI-E driver-based card reader
drivers/mmc/host/Makefile +2 -0
@@ -45,6 +45,8 @@ obj-$(CONFIG_MMC_JZ4740) += jz4740_mmc.o obj-$(CONFIG_MMC_VUB300) += vub300.o obj-$(CONFIG_MMC_USHC) += ushc.o +obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o + obj-$(CONFIG_MMC_SDHCI_PLTFM) += sdhci-pltfm.o obj-$(CONFIG_MMC_SDHCI_CNS3XXX) += sdhci-cns3xxx.o obj-$(CONFIG_MMC_SDHCI_ESDHC_IMX) += sdhci-esdhc-imx.o
drivers/mmc/host/rtsx_pci_sdmmc.c new file +1348 -0
1,348 lines not on this page · raw message
Signature · 1 line
1.7.9.5
Quoted 19 lines · On Tue, Aug 14, 2012 at 06:40:36PM +0800, [email protected] wrote:
From: Wei WANG <[email protected]>
Support for Realtek PCI-Express driver-based card readers including rts5209 and rts5229.
Wei WANG (2):
drivers/mfd: Add realtek pcie card reader driverdrivers/mmc: Add realtek pcie sdmmc host driverdrivers/mfd/Kconfig | 9 + drivers/mfd/Makefile | 4 + drivers/mfd/rts5209.c | 102 +++ drivers/mfd/rts5229.c | 117 +++ drivers/mfd/rtsx_pcr.c | 1464 +++++++++++++++++++++++++++++++++++++ drivers/mfd/rtsx_pcr.h | 31 + drivers/mmc/host/Kconfig | 7 + drivers/mmc/host/Makefile | 2 + drivers/mmc/host/rtsx_pci_sdmmc.c | 1348 ++++++++++++++++++++++++++++++++++ include/linux/mfd/rtsx_common.h | 47 ++ include/linux/mfd/rtsx_pci.h | 692 ++++++++++++++++++
Quoted 8 lines
11 files changed, 3823 insertions(+) create mode 100644 drivers/mfd/rts5209.c create mode 100644 drivers/mfd/rts5229.c create mode 100644 drivers/mfd/rtsx_pcr.c create mode 100644 drivers/mfd/rtsx_pcr.h create mode 100644 drivers/mmc/host/rtsx_pci_sdmmc.c create mode 100644 include/linux/mfd/rtsx_common.h create mode 100644 include/linux/mfd/rtsx_pci.h
Yeah, this thing still has issues though.
When I slide in an SD card and do
$ mkfs.ext3 /dev/mmcblk0p1
after having created the partition with fdisk, we run out of DMA space and the hung-tasks detector triggers:
...
[ 286.244866] mmc0: new ultra high speed SDR50 SDHC card at address e624
[ 286.277199] mmcblk0: mmc0:e624 SU16G 14.8 GiB
[ 286.318163] mmcblk0:
[ 363.754647] mmcblk0: p1
[ 379.545510] DMA: Out of SW-IOMMU space for 438272 bytes at device 0000:03:00.0
[ 389.578514] DMA: Out of SW-IOMMU space for 380928 bytes at device 0000:03:00.0
[ 399.590953] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 409.590698] DMA: Out of SW-IOMMU space for 380928 bytes at device 0000:03:00.0
[ 419.589054] DMA: Out of SW-IOMMU space for 380928 bytes at device 0000:03:00.0
[ 429.587710] DMA: Out of SW-IOMMU space for 380928 bytes at device 0000:03:00.0
[ 439.586748] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 449.603357] DMA: Out of SW-IOMMU space for 516096 bytes at device 0000:03:00.0
[ 459.602781] DMA: Out of SW-IOMMU space for 385024 bytes at device 0000:03:00.0
[ 469.604105] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 479.602964] DMA: Out of SW-IOMMU space for 385024 bytes at device 0000:03:00.0
[ 489.601303] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 499.599617] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 509.597943] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 519.596815] DMA: Out of SW-IOMMU space for 385024 bytes at device 0000:03:00.0
[ 529.594130] DMA: Out of SW-IOMMU space for 389120 bytes at device 0000:03:00.0
[ 539.593000] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 549.594701] DMA: Out of SW-IOMMU space for 471040 bytes at device 0000:03:00.0
[ 559.594068] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 569.592643] DMA: Out of SW-IOMMU space for 389120 bytes at device 0000:03:00.0
[ 579.589890] DMA: Out of SW-IOMMU space for 520192 bytes at device 0000:03:00.0
[ 589.588743] DMA: Out of SW-IOMMU space for 393216 bytes at device 0000:03:00.0
[ 599.587003] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0
[ 600.415530] INFO: task flush-179:0:3418 blocked for more than 120 seconds.
[ 600.418439] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 600.421516] flush-179:0 D ffff880117c40050 0 3418 2 0x00000000
[ 600.424578] ffff88011578f650 0000000000000086 ffff88011578f5f0 ffffffff810a567d
[ 600.426155] ffff88011578ffd8 ffff880117e459a0 ffff88011578ffd8 ffff88011578ffd8
[ 600.427705] ffffffff81a13420 ffff880117e459a0 ffff88011578f620 ffff880117e459a0
[ 600.430917] Call Trace:
[ 600.432458] [<ffffffff810a567d>] ? trace_hardirqs_on+0xd/0x10
[ 600.434041] [<ffffffff81495cc9>] schedule+0x29/0x70
[ 600.435627] [<ffffffff81495d9f>] io_schedule+0x8f/0xd0
[ 600.437204] [<ffffffff8121d35b>] get_request+0x15b/0x5e0
[ 600.438766] [<ffffffff81223ccf>] ? ioc_lookup_icq+0x9f/0xf0
[ 600.440340] [<ffffffff81070320>] ? __init_waitqueue_head+0x60/0x60
[ 600.441904] [<ffffffff81220b2d>] blk_queue_bio+0x7d/0x400
[ 600.443486] [<ffffffff8121edc2>] generic_make_request+0xc2/0x110
[ 600.445057] [<ffffffff8121fb65>] submit_bio+0x75/0x100
[ 600.446616] [<ffffffff8117f54a>] ? bio_alloc_bioset+0x5a/0x100
[ 600.448191] [<ffffffff811799d4>] submit_bh+0xf4/0x130
[ 600.449748] [<ffffffff8117c047>] __block_write_full_page+0x1f7/0x390
[ 600.451299] [<ffffffff8117c1e0>] ? __block_write_full_page+0x390/0x390
[ 600.452837] [<ffffffff81180d20>] ? blkdev_get_blocks+0xc0/0xc0
[ 600.452840] [<ffffffff81180d20>] ? blkdev_get_blocks+0xc0/0xc0
[ 600.452845] [<ffffffff8117ca5f>] block_write_full_page_endio+0x10f/0x130
[ 600.452852] [<ffffffff81104fba>] ? clear_page_dirty_for_io+0xba/0x100
[ 600.452856] [<ffffffff8117ca95>] block_write_full_page+0x15/0x20
[ 600.452861] [<ffffffff81180548>] blkdev_writepage+0x18/0x20
[ 600.452865] [<ffffffff81104aba>] __writepage+0x1a/0x50
[ 600.452870] [<ffffffff81105371>] write_cache_pages+0x241/0x490
[ 600.452874] [<ffffffff81104aa0>] ? mapping_tagged+0x20/0x20
[ 600.452880] [<ffffffff81105603>] generic_writepages+0x43/0x60
[ 600.452884] [<ffffffff81106e41>] do_writepages+0x21/0x50
[ 600.452888] [<ffffffff811728bb>] __writeback_single_inode.isra.32+0x3b/0x190
[ 600.452893] [<ffffffff8107fca9>] ? sub_preempt_count+0x79/0xd0
[ 600.452897] [<ffffffff81173695>] writeback_sb_inodes+0x345/0x4f0
[ 600.452901] [<ffffffff811738d7>] __writeback_inodes_wb+0x97/0xd0
[ 600.452905] [<ffffffff81173b1b>] wb_writeback+0x20b/0x340
[ 600.452910] [<ffffffff811743d5>] wb_do_writeback+0x205/0x260
[ 600.452915] [<ffffffff811744c3>] bdi_writeback_thread+0x93/0x2b0
[ 600.452919] [<ffffffff81174430>] ? wb_do_writeback+0x260/0x260
[ 600.452923] [<ffffffff8106fcaa>] kthread+0xea/0xf0
[ 600.452930] [<ffffffff814990a4>] kernel_thread_helper+0x4/0x10
[ 600.452935] [<ffffffff8107b355>] ? finish_task_switch+0x85/0x110
[ 600.452939] [<ffffffff8149728b>] ? _raw_spin_unlock_irq+0x3b/0x60
[ 600.452943] [<ffffffff8149769d>] ? retint_restore_args+0xe/0xe
[ 600.452947] [<ffffffff8106fbc0>] ? kthread_create_on_node+0x160/0x160
[ 600.452951] [<ffffffff814990a0>] ? gs_change+0xb/0xb
[ 600.452978] 1 lock held by flush-179:0/3418:
[ 600.452990] #0: (&type->s_umount_key#19){.+.+..}, at: [<ffffffff8114ce13>] grab_super_passive+0x43/0x90
[ 600.452993] INFO: task mkfs.ext3:3438 blocked for more than 120 seconds.
[ 600.452995] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 600.453000] mkfs.ext3 D ffff880117c40098 0 3438 3353 0x00000000
[ 600.453005] ffff880117e519b8 0000000000000082 ffff880117e51958 ffffffff810a567d
[ 600.453010] ffff880117e51fd8 ffff880117e42cd0 ffff880117e51fd8 ffff880117e51fd8
[ 600.453015] ffffffff81a13420 ffff880117e42cd0 ffff880117e51988 ffff880117e42cd0
[ 600.453017] Call Trace:
[ 600.453021] [<ffffffff810a567d>] ? trace_hardirqs_on+0xd/0x10
[ 600.453026] [<ffffffff81495cc9>] schedule+0x29/0x70
[ 600.453031] [<ffffffff81495d9f>] io_schedule+0x8f/0xd0
[ 600.453034] [<ffffffff8121d35b>] get_request+0x15b/0x5e0
[ 600.453039] [<ffffffff81223ccf>] ? ioc_lookup_icq+0x9f/0xf0
[ 600.453043] [<ffffffff81070320>] ? __init_waitqueue_head+0x60/0x60
[ 600.453047] [<ffffffff81220b2d>] blk_queue_bio+0x7d/0x400
[ 600.453052] [<ffffffff8121edc2>] generic_make_request+0xc2/0x110
[ 600.453055] [<ffffffff8121fb65>] submit_bio+0x75/0x100
[ 600.453060] [<ffffffff8117f54a>] ? bio_alloc_bioset+0x5a/0x100
[ 600.453064] [<ffffffff811799d4>] submit_bh+0xf4/0x130
[ 600.453068] [<ffffffff8117c047>] __block_write_full_page+0x1f7/0x390
[ 600.453073] [<ffffffff8117c1e0>] ? __block_write_full_page+0x390/0x390
[ 600.453076] [<ffffffff81180d20>] ? blkdev_get_blocks+0xc0/0xc0
[ 600.453080] [<ffffffff81180d20>] ? blkdev_get_blocks+0xc0/0xc0
[ 600.453084] [<ffffffff8117ca5f>] block_write_full_page_endio+0x10f/0x130
[ 600.453089] [<ffffffff81104fba>] ? clear_page_dirty_for_io+0xba/0x100
[ 600.453094] [<ffffffff8117ca95>] block_write_full_page+0x15/0x20
[ 600.453098] [<ffffffff81180548>] blkdev_writepage+0x18/0x20
[ 600.453102] [<ffffffff81104aba>] __writepage+0x1a/0x50
[ 600.453106] [<ffffffff81105371>] write_cache_pages+0x241/0x490
[ 600.453111] [<ffffffff81104aa0>] ? mapping_tagged+0x20/0x20
[ 600.453117] [<ffffffff81105603>] generic_writepages+0x43/0x60
[ 600.453121] [<ffffffff81106e41>] do_writepages+0x21/0x50
[ 600.453125] [<ffffffff810fd6e1>] __filemap_fdatawrite_range+0x51/0x60
[ 600.453129] [<ffffffff810fd742>] filemap_write_and_wait_range+0x52/0x70
[ 600.453133] [<ffffffff81180744>] blkdev_fsync+0x24/0x50
[ 600.453137] [<ffffffff81178110>] do_fsync+0x50/0x80
[ 600.453140] [<ffffffff811783a0>] sys_fsync+0x10/0x20
[ 600.453144] [<ffffffff81497f92>] system_call_fastpath+0x16/0x1b
[ 600.453147] no locks held by mkfs.ext3/3438.
[ 609.585190] DMA: Out of SW-IOMMU space for 524288 bytes at device 0000:03:00.0Signature · 2 lines
Regards/Gruss, Boris.
Hi Boris:
Can you tell me the detailed information about your pc and the SD card? Do you have ever tried to use another SD card?
I have tested all of the SD cards that we have in our company, and everything runs smoothly. Maybe it is compatibilty issue and we have to debug it specifically.
Please help to check the VID:PID of the card reader using lspci, and I will send you our SCSI driver for this reader to test the card.
Thank you!
BR,
wwang
________________________________________
Yeah, this thing still has issues though.
When I slide in an SD card and do
$ mkfs.ext3 /dev/mmcblk0p1
after having created the partition with fdisk, we run out of DMA space and the hung-tasks detector triggers:
--
Regards/Gruss,
Boris.
Quoted 10 lines · 王炜
Hi Boris:
Can you tell me the detailed information about your pc and the SD card? Do you have ever tried to use another SD card? I have tested all of the SD cards that we have in our company, and everything runs smoothly. Maybe it is compatibilty issue and we have to debug it specifically.
Please help to check the VID:PID of the card reader using lspci, and I will send you our SCSI driver for this reader to test the card.
Ok,
here's some info:
* Card is: http://tinyurl.com/cadsmb9
It is in German but should be clear. Otherwise, ask me.
* lspci output:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5209 PCI Express Card Reader (rev 01)
...
03:00.0 ff00: 10ec:5209 (rev 01)
Subsystem: 17aa:21ec
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 5
Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at f0400000 [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <1us, L1 <8us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot-
LnkCtl: ASPM L0s Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis+
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] Device Serial Number 00-00-00-01-00-4c-e0-00
HTH.
Signature · 2 lines
Regards/Gruss, Boris.