commit
390145f9adcf2730fcee81c8a51fd7c6c08f705f upstream.
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: David Cohen <david.a.cohen@linux.intel.com>
Reviewed-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
Acked-by: Dong Aisheng <b29396@freescale.com>
Signed-off-by: Chris Ball <chris@printf.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>