Re: [PATCH v2 0/2] Add modules to support realtek PCIE card reader

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 14, 2012 at 06:40:36PM +0800, wei_wang@xxxxxxxxxxxxxx wrote:
> From: Wei WANG <wei_wang@xxxxxxxxxxxxxx>
> 
> 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

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

-- 
Regards/Gruss,
Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux