Skip to contentSkip to conversation

Add modules to support realtek PCIE card reader

PATCH Superseded [email protected] 4 participants 8 messages Aug 14, 2012 – Aug 16, 2012

Subsystems (2)

v2 of 7 Superseded Latest is v7 →

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index d1facef..4c07a34 100644
@@ -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
index 79dd22d..e8cdc7b 100644
@@ -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
new file mode 100644
index 0000000..8fbc471
@@ -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
#2 lore raw

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

#3 lore raw

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
#4 lore raw

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
index aa131b3..d6f0c01 100644
@@ -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
index 8922b06..4679ba3 100644
@@ -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
#5 lore raw
In reply to [email protected]
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 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 ++++++++++++++++++
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.0
Signature · 2 lines
Regards/Gruss,
Boris.
author
#6 lore raw

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.

#7 lore raw
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.