• David Cohen's avatar
    mmc: sdhci-pci: add broken HS200 quirk for Intel Merrifield · 390145f9
    David Cohen authored
    Due to unknown hw issue so far, Merrifield is unable to enable HS200
    support. This patch adds quirk to avoid SDHCI to initialize with error
    below:
    
    [   53.850132] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W
    3.12.0-rc6-00037-g3d7c8d9-dirty #36
    [   53.850150] Hardware name: Intel Corporation Merrifield/SALT BAY,
    BIOS 397 2013.09.12:11.51.40
    [   53.850167]  00000000 00000000 ee409e48 c18816d2 00000000 ee409e78
    c123e254 c1acc9b0
    [   53.850227]  00000000 00000000 c1b14148 000003de c16c03bf c16c03bf
    ee75b480 ed97c54c
    [   53.850282]  ee75b480 ee409e88 c123e292 00000009 00000000 ee409ef8
    c16c03bf c1207fac
    [   53.850339] Call Trace:
    [   53.850376]  [<c18816d2>] dump_stack+0x4b/0x79
    [   53.850408]  [<c123e254>] warn_slowpath_common+0x84/0xa0
    [   53.850436]  [<c16c03bf>] ? sdhci_send_command+0xb4f/0xc50
    [   53.850462]  [<c16c03bf>] ? sdhci_send_command+0xb4f/0xc50
    [   53.850490]  [<c123e292>] warn_slowpath_null+0x22/0x30
    [   53.850516]  [<c16c03bf>] sdhci_send_command+0xb4f/0xc50
    [   53.850545]  [<c1207fac>] ? native_sched_clock+0x2c/0xb0
    [   53.850575]  [<c14c1f93>] ? delay_tsc+0x73/0xb0
    [   53.850601]  [<c14c1ebe>] ? __const_udelay+0x1e/0x20
    [   53.850626]  [<c16bdeb3>] ? sdhci_reset+0x93/0x190
    [   53.850654]  [<c16c05b0>] sdhci_finish_data+0xf0/0x2e0
    [   53.850683]  [<c16c130f>] sdhci_irq+0x31f/0x930
    [   53.850713]  [<c12cb080>] ? __buffer_unlock_commit+0x10/0x20
    [   53.850740]  [<c12cbcd7>] ? trace_buffer_unlock_commit+0x37/0x50
    [   53.850773]  [<c1288f3c>] handle_irq_event_percpu+0x5c/0x220
    [   53.850800]  [<c128bc96>] ? handle_fasteoi_irq+0x16/0xd0
    [   53.850827]  [<c128913a>] handle_irq_event+0x3a/0x60
    [   53.850852]  [<c128bc80>] ? unmask_irq+0x30/0x30
    [   53.850878]  [<c128bcce>] handle_fasteoi_irq+0x4e/0xd0
    [   53.850895]  <IRQ>  [<c1890b52>] ? do_IRQ+0x42/0xb0
    [   53.850943]  [<c1890a31>] ? common_interrupt+0x31/0x38
    [   53.850973]  [<c12b00d8>] ? cgroup_mkdir+0x4e8/0x580
    [   53.851001]  [<c1208d32>] ? default_idle+0x22/0xf0
    [   53.851029]  [<c1209576>] ? arch_cpu_idle+0x26/0x30
    [   53.851054]  [<c1288505>] ? cpu_startup_entry+0x65/0x240
    [   53.851082]  [<c18793d5>] ? rest_init+0xb5/0xc0
    [   53.851108]  [<c1879320>] ? __read_lock_failed+0x18/0x18
    [   53.851138]  [<c1bf6a15>] ? start_kernel+0x31b/0x321
    [   53.851164]  [<c1bf652f>] ? repair_env_string+0x51/0x51
    [   53.851190]  [<c1bf6363>] ? i386_start_kernel+0x139/0x13c
    [   53.851209] ---[ end trace 92777f5fe48d33f2 ]---
    [   53.853449] mmcblk0: error -84 transferring data, sector 11142162, nr
    304, cmd response 0x0, card status 0x0
    [   53.853476] mmcblk0: retrying using single block read
    [   55.937863] sdhci: Timeout waiting for Buffer Read Ready interrupt
    during tuning procedure, falling back to fixed sampling clock
    [   56.207951] sdhci: Timeout waiting for Buffer Read Ready interrupt
    during tuning procedure, falling back to fixed sampling clock
    [   66.228785] mmc0: Timeout waiting for hardware interrupt.
    [   66.230855] ------------[ cut here ]------------
    Signed-off-by: default avatarDavid Cohen <david.a.cohen@linux.intel.com>
    Reviewed-by: default avatarChuanxiao Dong <chuanxiao.dong@intel.com>
    Acked-by: default avatarDong Aisheng <b29396@freescale.com>
    Cc: stable <stable@vger.kernel.org> # [3.13]
    Signed-off-by: default avatarChris Ball <chris@printf.net>
    390145f9
sdhci-pci.c 36.7 KB