diff mbox

[v3,02/15] mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get

Message ID 1440666847-12594-3-git-send-email-kishon@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kishon Vijay Abraham I Aug. 27, 2015, 9:13 a.m. UTC
Now return error only if the return value of
devm_regulator_get_optional() is not the same as -ENODEV, since with
-EPROBE_DEFER, the regulator can be obtained later and all other
errors are fatal.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Tested-by: Tony Lindgren <tony@atomide.com>
---
 drivers/mmc/host/omap_hsmmc.c |   22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

Comments

Olof Johansson Aug. 28, 2015, 6:07 p.m. UTC | #1
Hi,

On Thu, Aug 27, 2015 at 2:13 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> Now return error only if the return value of
> devm_regulator_get_optional() is not the same as -ENODEV, since with
> -EPROBE_DEFER, the regulator can be obtained later and all other
> errors are fatal.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Tested-by: Tony Lindgren <tony@atomide.com>

I bisected boot failures on Panda ES with multi_v7_defconfig down to
this commit on last night's -next build:

http://arm-soc.lixom.net/bootlogs/next/next-20150828/pandaes-arm-multi_v7_defconfig.html

-Olof
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Aug. 28, 2015, 7:03 p.m. UTC | #2
* Olof Johansson <olof@lixom.net> [150828 11:11]:
> Hi,
> 
> On Thu, Aug 27, 2015 at 2:13 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> > Now return error only if the return value of
> > devm_regulator_get_optional() is not the same as -ENODEV, since with
> > -EPROBE_DEFER, the regulator can be obtained later and all other
> > errors are fatal.
> >
> > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> > Tested-by: Tony Lindgren <tony@atomide.com>
> 
> I bisected boot failures on Panda ES with multi_v7_defconfig down to
> this commit on last night's -next build:
> 
> http://arm-soc.lixom.net/bootlogs/next/next-20150828/pandaes-arm-multi_v7_defconfig.html

MMC is working for me at least on Duovero. Interesting that you also
have all kind of errors there, I guess this is some older revision
of the board.

Anyways, Kishon, care to look into what might be causing this?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kishon Vijay Abraham I Aug. 31, 2015, 5:44 a.m. UTC | #3
Hi,

On Saturday 29 August 2015 12:33 AM, Tony Lindgren wrote:
> * Olof Johansson <olof@lixom.net> [150828 11:11]:
>> Hi,
>>
>> On Thu, Aug 27, 2015 at 2:13 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
>>> Now return error only if the return value of
>>> devm_regulator_get_optional() is not the same as -ENODEV, since with
>>> -EPROBE_DEFER, the regulator can be obtained later and all other
>>> errors are fatal.
>>>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> Tested-by: Tony Lindgren <tony@atomide.com>
>>
>> I bisected boot failures on Panda ES with multi_v7_defconfig down to
>> this commit on last night's -next build:
>>
>> http://arm-soc.lixom.net/bootlogs/next/next-20150828/pandaes-arm-multi_v7_defconfig.html
> 
> MMC is working for me at least on Duovero. Interesting that you also
> have all kind of errors there, I guess this is some older revision
> of the board.
> 
> Anyways, Kishon, care to look into what might be causing this?

I think this might be because my pbias fix [1] patch wasn't merged yet.
I'll try to get that resolved asap.

Thanks
Kishon

[1] -> http://lkml.iu.edu/hypermail/linux/kernel/1507.3/01594.html
> 
> Regards,
> 
> Tony
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Aug. 31, 2015, 8:58 p.m. UTC | #4
* Kishon Vijay Abraham I <kishon@ti.com> [150830 22:47]:
> Hi,
> 
> On Saturday 29 August 2015 12:33 AM, Tony Lindgren wrote:
> > * Olof Johansson <olof@lixom.net> [150828 11:11]:
> >> Hi,
> >>
> >> On Thu, Aug 27, 2015 at 2:13 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> >>> Now return error only if the return value of
> >>> devm_regulator_get_optional() is not the same as -ENODEV, since with
> >>> -EPROBE_DEFER, the regulator can be obtained later and all other
> >>> errors are fatal.
> >>>
> >>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> >>> Tested-by: Tony Lindgren <tony@atomide.com>
> >>
> >> I bisected boot failures on Panda ES with multi_v7_defconfig down to
> >> this commit on last night's -next build:
> >>
> >> http://arm-soc.lixom.net/bootlogs/next/next-20150828/pandaes-arm-multi_v7_defconfig.html
> > 
> > MMC is working for me at least on Duovero. Interesting that you also
> > have all kind of errors there, I guess this is some older revision
> > of the board.
> > 
> > Anyways, Kishon, care to look into what might be causing this?
> 
> I think this might be because my pbias fix [1] patch wasn't merged yet.
> I'll try to get that resolved asap.

Kishon, as there seems to be an ongoing discussion with the regulator regmap
stuff for pbias, I suggest you provide a fix for the hsmmc driver instead for
now or revert some patches to remove the dependency and get things working.

And I must have tested next-20150827 instead of next-20150828. Or
else it does not happen on every boot. In any case, I'm now getting
the following on next-20150831 most of the time:

[    9.493133] omap_hsmmc 4809c000.mmc: using lookup tables for GPIO lookup
[    9.500274] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
[    9.506378] ------------[ cut here ]------------
[    9.508941] WARNING: CPU: 0 PID: 6 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x224/0x350()
[    9.520568] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access
[    9.524810] Modules linked in: rtc_twl twl4030_wdt
[    9.534820] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00002-gf55bad8 #1113
[    9.544830] Hardware name: Generic OMAP4 (Flattened Device Tree)
[    9.544830] Workqueue: deferwq deferred_probe_work_func
[    9.554809] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
[    9.564819] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
[    9.574829] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
[    9.574951] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
[    9.584686] [<c003ea00>] (warn_slowpath_fmt) from [<c037cc7c>] (l3_interrupt_handler+0x224/0x350)
[    9.594818] [<c037cc7c>] (l3_interrupt_handler) from [<c009e7b4>] (handle_irq_event_percpu+0x44/0x1f0)
[    9.604827] [<c009e7b4>] (handle_irq_event_percpu) from [<c009e9a0>] (handle_irq_event+0x40/0x64)
[    9.614807] [<c009e9a0>] (handle_irq_event) from [<c00a1a4c>] (handle_fasteoi_irq+0xcc/0x1c4)
[    9.625396] [<c00a1a4c>] (handle_fasteoi_irq) from [<c009de58>] (generic_handle_irq+0x28/0x3c)
[    9.638732] [<c009de58>] (generic_handle_irq) from [<c009e140>] (__handle_domain_irq+0x64/0xe0)
[    9.647827] [<c009e140>] (__handle_domain_irq) from [<c0009514>] (gic_handle_irq+0x40/0x8c)
[    9.654693] [<c0009514>] (gic_handle_irq) from [<c064ccb8>] (__irq_svc+0x58/0x78)
[    9.664367] Exception stack(0xee0cfd80 to 0xee0cfdc8)
[    9.665130] fd80: ee1ec010 c082f174 000000d0 00000000 ee6b0800 ee6ae850 ee1ec000 ee1ec010
[    9.674835] fda0: 00000000 ee6b0cc0 000000ee fa09c000 00000003 ee0cfdd0 c04cd748 c04df4e0
[    9.684814] fdc0: 20000113 ffffffff
[    9.684814] [<c064ccb8>] (__irq_svc) from [<c04df4e0>] (devm_clk_get+0x8/0x70)
[    9.694824] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
[    9.704833] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
[    9.714691] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
[    9.724548] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
[    9.733459] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
[    9.734832] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
[    9.744812] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
[    9.760040] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
[    9.769470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
[    9.774688] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
[    9.785614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
[    9.785614] ---[ end trace 402743bd8cfdde2f ]---
 
> [1] -> http://lkml.iu.edu/hypermail/linux/kernel/1507.3/01594.html

With patch 1/2 of the above applied, I'm getting this instead:

[    2.930938] ------------[ cut here ]------------
[    2.935852] WARNING: CPU: 0 PID: 6 at drivers/regulator/core.c:2105 _regulator_disable+0x13c/0x1d4()
[    2.945465] unbalanced disables for pbias_mmc_omap4
[    2.945465] Modules linked in:
[    2.950592] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00003-gc5112ac-dirty #1114
[    2.963684] Hardware name: Generic OMAP4 (Flattened Device Tree)
[    2.970031] Workqueue: deferwq deferred_probe_work_func
[    2.975585] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
[    2.983764] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
[    2.983764] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
[    2.999877] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
[    3.009063] [<c003ea00>] (warn_slowpath_fmt) from [<c03ad830>] (_regulator_disable+0x13c/0x1d4)
[    3.018218] [<c03ad830>] (_regulator_disable) from [<c03ad8f8>] (regulator_disable+0x30/0x6c)
[    3.027221] [<c03ad8f8>] (regulator_disable) from [<c04cdfe8>] (omap_hsmmc_set_power+0x158/0x1e8)
[    3.027252] [<c04cdfe8>] (omap_hsmmc_set_power) from [<c04ce210>] (omap_hsmmc_set_ios+0x198/0x318)
[    3.046020] [<c04ce210>] (omap_hsmmc_set_ios) from [<c04b7da4>] (mmc_power_up.part.10+0x30/0xf8)
[    3.055267] [<c04b7da4>] (mmc_power_up.part.10) from [<c04b8cb0>] (mmc_start_host+0x40/0x7c)
[    3.064178] [<c04b8cb0>] (mmc_start_host) from [<c04b9dc4>] (mmc_add_host+0x5c/0x84)
[    3.072326] [<c04b9dc4>] (mmc_add_host) from [<c04cda50>] (omap_hsmmc_probe+0x5b0/0x9f0)
[    3.080871] [<c04cda50>] (omap_hsmmc_probe) from [<c03e9834>] (platform_drv_probe+0x44/0xac)
[    3.089752] [<c03e9834>] (platform_drv_probe) from [<c03e7ee8>] (driver_probe_device+0x1f4/0x2f0)
[    3.099090] [<c03e7ee8>] (driver_probe_device) from [<c03e63f4>] (bus_for_each_drv+0x64/0x98)
[    3.108093] [<c03e63f4>] (bus_for_each_drv) from [<c03e7c68>] (__device_attach+0xb0/0x118)
[    3.116790] [<c03e7c68>] (__device_attach) from [<c03e7210>] (bus_probe_device+0x88/0x90)
[    3.125427] [<c03e7210>] (bus_probe_device) from [<c03e7638>] (deferred_probe_work_func+0x60/0x90)
[    3.125427] [<c03e7638>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
[    3.144470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
[    3.152984] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
[    3.160614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
[    3.160644] ---[ end trace 2869621ad5ef511c ]---

Regards,

Tony

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Aug. 31, 2015, 9:14 p.m. UTC | #5
* Tony Lindgren <tony@atomide.com> [150831 14:02]:
> 
> And I must have tested next-20150827 instead of next-20150828. Or
> else it does not happen on every boot. In any case, I'm now getting
> the following on next-20150831 most of the time:
> 
> [    9.493133] omap_hsmmc 4809c000.mmc: using lookup tables for GPIO lookup
> [    9.500274] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
> [    9.506378] ------------[ cut here ]------------
> [    9.508941] WARNING: CPU: 0 PID: 6 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x224/0x350()
> [    9.520568] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access
> [    9.524810] Modules linked in: rtc_twl twl4030_wdt
> [    9.534820] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00002-gf55bad8 #1113
> [    9.544830] Hardware name: Generic OMAP4 (Flattened Device Tree)
> [    9.544830] Workqueue: deferwq deferred_probe_work_func
> [    9.554809] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
> [    9.564819] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
> [    9.574829] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
> [    9.574951] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
> [    9.584686] [<c003ea00>] (warn_slowpath_fmt) from [<c037cc7c>] (l3_interrupt_handler+0x224/0x350)
> [    9.594818] [<c037cc7c>] (l3_interrupt_handler) from [<c009e7b4>] (handle_irq_event_percpu+0x44/0x1f0)
> [    9.604827] [<c009e7b4>] (handle_irq_event_percpu) from [<c009e9a0>] (handle_irq_event+0x40/0x64)
> [    9.614807] [<c009e9a0>] (handle_irq_event) from [<c00a1a4c>] (handle_fasteoi_irq+0xcc/0x1c4)
> [    9.625396] [<c00a1a4c>] (handle_fasteoi_irq) from [<c009de58>] (generic_handle_irq+0x28/0x3c)
> [    9.638732] [<c009de58>] (generic_handle_irq) from [<c009e140>] (__handle_domain_irq+0x64/0xe0)
> [    9.647827] [<c009e140>] (__handle_domain_irq) from [<c0009514>] (gic_handle_irq+0x40/0x8c)
> [    9.654693] [<c0009514>] (gic_handle_irq) from [<c064ccb8>] (__irq_svc+0x58/0x78)
> [    9.664367] Exception stack(0xee0cfd80 to 0xee0cfdc8)
> [    9.665130] fd80: ee1ec010 c082f174 000000d0 00000000 ee6b0800 ee6ae850 ee1ec000 ee1ec010
> [    9.674835] fda0: 00000000 ee6b0cc0 000000ee fa09c000 00000003 ee0cfdd0 c04cd748 c04df4e0
> [    9.684814] fdc0: 20000113 ffffffff
> [    9.684814] [<c064ccb8>] (__irq_svc) from [<c04df4e0>] (devm_clk_get+0x8/0x70)
> [    9.694824] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
> [    9.704833] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
> [    9.714691] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
> [    9.724548] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
> [    9.733459] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
> [    9.734832] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
> [    9.744812] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
> [    9.760040] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
> [    9.769470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
> [    9.774688] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
> [    9.785614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
> [    9.785614] ---[ end trace 402743bd8cfdde2f ]---

And with the (currently almost useless) l3 interrupt stuff taken out by
removing the ti,omap4-l3-noc compatible from omap4.dtsi, we get a real
trace that might be of some help to you:

[    8.440917] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
[    8.447418] Unhandled fault: imprecise external abort (0x1406) at 0xbeafaa10
[    8.454925] pgd = c0004000
[    8.454986] [beafaa10] *pgd=00000000/root/init: line 14: /sys/devices/68000000.ocp/4
8098000.spi/spi_master/spi1/spi1[    8.461334] Internal error: : 1406 [#1] SMP ARM
.2/backlight/acx565akm/brightness: No such file [    8.473175] Modules linked in:or directory
 rtc_twl twl4030_wdt
[    8.483520] CPU: 1 PID: 66 Comm: kworker/u4:1 Not tainted 4.2.0-next-20150831-00002-gf55bad8-dirty #1115
[    8.493652] Hardware name: Generic OMAP4 (Flattened Device Tree)
[    8.498352] Workqueue: deferwq deferred_probe_work_func
[    8.505493] task: ee5f4f40 ti: ee5f6000 task.ti: ee5f6000
[    8.510803] PC is at devm_clk_get+0x8/0x70
[    8.514801] LR is at omap_hsmmc_probe+0x2e8/0x9f0
[    8.520385] pc : [<c04df4e0>]    lr : [<c04cd748>]    psr: 20010013
[    8.520385] sp : ee5f7dd0  ip : 00000003  fp : fa09c000
[    8.532470] r10: 000000ee  r9 : ee6904c0  r8 : 00000000
[    8.537963] r7 : ee1ec010  r6 : ee1ec000  r5 : ee6e7dd0  r4 : ee690000
[    8.544769] r3 : 00000000  r2 : 000000d0  r1 : c082f184  r0 : ee1ec010
[    8.551666] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    8.559143] Control: 10c5387d  Table: ae73804a  DAC: 00000051
[    8.564727] Process kworker/u4:1 (pid: 66, stack limit = 0xee5f6218)
[    8.571441] Stack: (0xee5f7dd0 to 0xee5f8000)
[    8.576263] 7dc0:                                     ee690000 ee6e7dd0 ee1ec000 c04cd748
[    8.584930] 7de0: 00000000 c09cf8f8 ee1ed270 ee5de150 00000000 ee090248 c11cb0d4 c09ae55c
[    8.593597] 7e00: 00000000 ee1ec010 ee1ec010 c09ae55c fffffdfb 0000001d c09cf8f8 00000000
[    8.601837] 7e20: c09cf8f8 c03e97f4 ee1ec010 c11cb118 c09ae55c 00000000 0000001d c03e7ea8
[    8.610107] 7e40: 00000000 ee5f7e70 c03e803c 00000001 ee5f7ec8 c03e63b4 ee0f2ed4 ee5d6594
[    8.619323] 7e60: ee1ec010 ee1ec010 ee1ec044 c03e7c28 ee1ec010 00000001 c099b110 ee1ec010
[    8.627777] 7e80: ee1ec010 c099a708 ee61cf00 c03e71d0 ee1ec010 c099a3fc c099a3b8 c03e75f8
[    8.636535] 7ea0: c099a434 ee371940 ee08a400 c00589f8 00000001 00000000 c0058968 ee08a400
[    8.644805] 7ec0: c0058e5c 00000001 c099a434 c0b2a770 00000000 c0811a00 ee08a400 ee08a400
[    8.653503] 7ee0: ee371958 ee08a430 ee5f6000 00000088 c09cf04c ee371940 ee08a400 c0058de8
[    8.662261] 7f00: ee08a5d0 00000000 c0058dac 00000000 ee56af40 ee371940 c0058dac 00000000
[    8.670532] 7f20: 00000000 00000000 00000000 c005eb88 1c4eefdf 00000000 00000000 ee371940
[    8.679290] 7f40: 00000000 00000000 dead4ead ffffffff ffffffff c09d6da0 00000000 00000000
[    8.679290] 7f60: c07d16a0 ee5f7f64 ee5f7f64 00000000 00000000 dead4ead ffffffff ffffffff
[    8.696411] 7f80: c09d6da0 00000000 00000000 c07d16a0 ee5f7f90 ee5f7f90 ee5f7fac ee56af40
[    8.705047] 7fa0: c005eab4 00000000 00000000 c000f710 00000000 00000000 00000000 00000000
[    8.713562] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.721435] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 2eade3dd cf5fffcd
[    8.730743] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
[    8.738952] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
[    8.748077] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
[    8.757385] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
[    8.766326] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
[    8.774993] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
[    8.783538] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
[    8.792907] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
[    8.802490] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
[    8.810943] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
[    8.818511] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
[    8.824737] Code: e5910000 ea000091 e92d4070 e3a020d0 (e1a06000) 
[    8.826141] ---[ end trace a89146bc4a70cc4d ]---

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Grygorii Strashko Sept. 1, 2015, 2:33 p.m. UTC | #6
On 09/01/2015 12:14 AM, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [150831 14:02]:
>>
>> And I must have tested next-20150827 instead of next-20150828. Or
>> else it does not happen on every boot. In any case, I'm now getting
>> the following on next-20150831 most of the time:
>>
>> [    9.493133] omap_hsmmc 4809c000.mmc: using lookup tables for GPIO lookup
>> [    9.500274] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
>> [    9.506378] ------------[ cut here ]------------
>> [    9.508941] WARNING: CPU: 0 PID: 6 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x224/0x350()
>> [    9.520568] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access
>> [    9.524810] Modules linked in: rtc_twl twl4030_wdt
>> [    9.534820] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00002-gf55bad8 #1113
>> [    9.544830] Hardware name: Generic OMAP4 (Flattened Device Tree)
>> [    9.544830] Workqueue: deferwq deferred_probe_work_func
>> [    9.554809] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
>> [    9.564819] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
>> [    9.574829] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
>> [    9.574951] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
>> [    9.584686] [<c003ea00>] (warn_slowpath_fmt) from [<c037cc7c>] (l3_interrupt_handler+0x224/0x350)
>> [    9.594818] [<c037cc7c>] (l3_interrupt_handler) from [<c009e7b4>] (handle_irq_event_percpu+0x44/0x1f0)
>> [    9.604827] [<c009e7b4>] (handle_irq_event_percpu) from [<c009e9a0>] (handle_irq_event+0x40/0x64)
>> [    9.614807] [<c009e9a0>] (handle_irq_event) from [<c00a1a4c>] (handle_fasteoi_irq+0xcc/0x1c4)
>> [    9.625396] [<c00a1a4c>] (handle_fasteoi_irq) from [<c009de58>] (generic_handle_irq+0x28/0x3c)
>> [    9.638732] [<c009de58>] (generic_handle_irq) from [<c009e140>] (__handle_domain_irq+0x64/0xe0)
>> [    9.647827] [<c009e140>] (__handle_domain_irq) from [<c0009514>] (gic_handle_irq+0x40/0x8c)
>> [    9.654693] [<c0009514>] (gic_handle_irq) from [<c064ccb8>] (__irq_svc+0x58/0x78)
>> [    9.664367] Exception stack(0xee0cfd80 to 0xee0cfdc8)
>> [    9.665130] fd80: ee1ec010 c082f174 000000d0 00000000 ee6b0800 ee6ae850 ee1ec000 ee1ec010
>> [    9.674835] fda0: 00000000 ee6b0cc0 000000ee fa09c000 00000003 ee0cfdd0 c04cd748 c04df4e0
>> [    9.684814] fdc0: 20000113 ffffffff
>> [    9.684814] [<c064ccb8>] (__irq_svc) from [<c04df4e0>] (devm_clk_get+0x8/0x70)
>> [    9.694824] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
>> [    9.704833] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
>> [    9.714691] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
>> [    9.724548] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
>> [    9.733459] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
>> [    9.734832] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
>> [    9.744812] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
>> [    9.760040] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
>> [    9.769470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
>> [    9.774688] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
>> [    9.785614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
>> [    9.785614] ---[ end trace 402743bd8cfdde2f ]---
> 
> And with the (currently almost useless) l3 interrupt stuff taken out by
> removing the ti,omap4-l3-noc compatible from omap4.dtsi, we get a real
> trace that might be of some help to you:
> 
> [    8.440917] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
> [    8.447418] Unhandled fault: imprecise external abort (0x1406) at 0xbeafaa10
> [    8.454925] pgd = c0004000
> [    8.454986] [beafaa10] *pgd=00000000/root/init: line 14: /sys/devices/68000000.ocp/4
> 8098000.spi/spi_master/spi1/spi1[    8.461334] Internal error: : 1406 [#1] SMP ARM
> .2/backlight/acx565akm/brightness: No such file [    8.473175] Modules linked in:or directory
>   rtc_twl twl4030_wdt
> [    8.483520] CPU: 1 PID: 66 Comm: kworker/u4:1 Not tainted 4.2.0-next-20150831-00002-gf55bad8-dirty #1115
> [    8.493652] Hardware name: Generic OMAP4 (Flattened Device Tree)
> [    8.498352] Workqueue: deferwq deferred_probe_work_func
> [    8.505493] task: ee5f4f40 ti: ee5f6000 task.ti: ee5f6000
> [    8.510803] PC is at devm_clk_get+0x8/0x70
> [    8.514801] LR is at omap_hsmmc_probe+0x2e8/0x9f0
> [    8.520385] pc : [<c04df4e0>]    lr : [<c04cd748>]    psr: 20010013
> [    8.520385] sp : ee5f7dd0  ip : 00000003  fp : fa09c000
> [    8.532470] r10: 000000ee  r9 : ee6904c0  r8 : 00000000
> [    8.537963] r7 : ee1ec010  r6 : ee1ec000  r5 : ee6e7dd0  r4 : ee690000
> [    8.544769] r3 : 00000000  r2 : 000000d0  r1 : c082f184  r0 : ee1ec010
> [    8.551666] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
> [    8.559143] Control: 10c5387d  Table: ae73804a  DAC: 00000051
> [    8.564727] Process kworker/u4:1 (pid: 66, stack limit = 0xee5f6218)
> [    8.571441] Stack: (0xee5f7dd0 to 0xee5f8000)
> [    8.576263] 7dc0:                                     ee690000 ee6e7dd0 ee1ec000 c04cd748
> [    8.584930] 7de0: 00000000 c09cf8f8 ee1ed270 ee5de150 00000000 ee090248 c11cb0d4 c09ae55c
> [    8.593597] 7e00: 00000000 ee1ec010 ee1ec010 c09ae55c fffffdfb 0000001d c09cf8f8 00000000
> [    8.601837] 7e20: c09cf8f8 c03e97f4 ee1ec010 c11cb118 c09ae55c 00000000 0000001d c03e7ea8
> [    8.610107] 7e40: 00000000 ee5f7e70 c03e803c 00000001 ee5f7ec8 c03e63b4 ee0f2ed4 ee5d6594
> [    8.619323] 7e60: ee1ec010 ee1ec010 ee1ec044 c03e7c28 ee1ec010 00000001 c099b110 ee1ec010
> [    8.627777] 7e80: ee1ec010 c099a708 ee61cf00 c03e71d0 ee1ec010 c099a3fc c099a3b8 c03e75f8
> [    8.636535] 7ea0: c099a434 ee371940 ee08a400 c00589f8 00000001 00000000 c0058968 ee08a400
> [    8.644805] 7ec0: c0058e5c 00000001 c099a434 c0b2a770 00000000 c0811a00 ee08a400 ee08a400
> [    8.653503] 7ee0: ee371958 ee08a430 ee5f6000 00000088 c09cf04c ee371940 ee08a400 c0058de8
> [    8.662261] 7f00: ee08a5d0 00000000 c0058dac 00000000 ee56af40 ee371940 c0058dac 00000000
> [    8.670532] 7f20: 00000000 00000000 00000000 c005eb88 1c4eefdf 00000000 00000000 ee371940
> [    8.679290] 7f40: 00000000 00000000 dead4ead ffffffff ffffffff c09d6da0 00000000 00000000
> [    8.679290] 7f60: c07d16a0 ee5f7f64 ee5f7f64 00000000 00000000 dead4ead ffffffff ffffffff
> [    8.696411] 7f80: c09d6da0 00000000 00000000 c07d16a0 ee5f7f90 ee5f7f90 ee5f7fac ee56af40
> [    8.705047] 7fa0: c005eab4 00000000 00000000 c000f710 00000000 00000000 00000000 00000000
> [    8.713562] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [    8.721435] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 2eade3dd cf5fffcd
> [    8.730743] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
> [    8.738952] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
> [    8.748077] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
> [    8.757385] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
> [    8.766326] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
> [    8.774993] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
> [    8.783538] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
> [    8.792907] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
> [    8.802490] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
> [    8.810943] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
> [    8.818511] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
> [    8.824737] Code: e5910000 ea000091 e92d4070 e3a020d0 (e1a06000)
> [    8.826141] ---[ end trace a89146bc4a70cc4d ]---
> 

On -next, Above crash signature could be related to race 
"ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
http://www.spinics.net/lists/linux-omap/msg121622.html

Especially if before crash smth. like below appears in log:
> [ 1.840364] omap_hsmmc 480b4000.mmc: omap_device_late_idle: enabled but no driver. Idling
> [ 1.840634] ldousb: disabling
Tony Lindgren Sept. 1, 2015, 2:50 p.m. UTC | #7
* Grygorii Strashko <grygorii.strashko@ti.com> [150901 07:36]:
> On 09/01/2015 12:14 AM, Tony Lindgren wrote:
> > * Tony Lindgren <tony@atomide.com> [150831 14:02]:
> >>
> >> And I must have tested next-20150827 instead of next-20150828. Or
> >> else it does not happen on every boot. In any case, I'm now getting
> >> the following on next-20150831 most of the time:
> >>
> >> [    9.493133] omap_hsmmc 4809c000.mmc: using lookup tables for GPIO lookup
> >> [    9.500274] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
> >> [    9.506378] ------------[ cut here ]------------
> >> [    9.508941] WARNING: CPU: 0 PID: 6 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x224/0x350()
> >> [    9.520568] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access
> >> [    9.524810] Modules linked in: rtc_twl twl4030_wdt
> >> [    9.534820] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00002-gf55bad8 #1113
> >> [    9.544830] Hardware name: Generic OMAP4 (Flattened Device Tree)
> >> [    9.544830] Workqueue: deferwq deferred_probe_work_func
> >> [    9.554809] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
> >> [    9.564819] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
> >> [    9.574829] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
> >> [    9.574951] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
> >> [    9.584686] [<c003ea00>] (warn_slowpath_fmt) from [<c037cc7c>] (l3_interrupt_handler+0x224/0x350)
> >> [    9.594818] [<c037cc7c>] (l3_interrupt_handler) from [<c009e7b4>] (handle_irq_event_percpu+0x44/0x1f0)
> >> [    9.604827] [<c009e7b4>] (handle_irq_event_percpu) from [<c009e9a0>] (handle_irq_event+0x40/0x64)
> >> [    9.614807] [<c009e9a0>] (handle_irq_event) from [<c00a1a4c>] (handle_fasteoi_irq+0xcc/0x1c4)
> >> [    9.625396] [<c00a1a4c>] (handle_fasteoi_irq) from [<c009de58>] (generic_handle_irq+0x28/0x3c)
> >> [    9.638732] [<c009de58>] (generic_handle_irq) from [<c009e140>] (__handle_domain_irq+0x64/0xe0)
> >> [    9.647827] [<c009e140>] (__handle_domain_irq) from [<c0009514>] (gic_handle_irq+0x40/0x8c)
> >> [    9.654693] [<c0009514>] (gic_handle_irq) from [<c064ccb8>] (__irq_svc+0x58/0x78)
> >> [    9.664367] Exception stack(0xee0cfd80 to 0xee0cfdc8)
> >> [    9.665130] fd80: ee1ec010 c082f174 000000d0 00000000 ee6b0800 ee6ae850 ee1ec000 ee1ec010
> >> [    9.674835] fda0: 00000000 ee6b0cc0 000000ee fa09c000 00000003 ee0cfdd0 c04cd748 c04df4e0
> >> [    9.684814] fdc0: 20000113 ffffffff
> >> [    9.684814] [<c064ccb8>] (__irq_svc) from [<c04df4e0>] (devm_clk_get+0x8/0x70)
> >> [    9.694824] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
> >> [    9.704833] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
> >> [    9.714691] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
> >> [    9.724548] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
> >> [    9.733459] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
> >> [    9.734832] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
> >> [    9.744812] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
> >> [    9.760040] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
> >> [    9.769470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
> >> [    9.774688] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
> >> [    9.785614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
> >> [    9.785614] ---[ end trace 402743bd8cfdde2f ]---
> > 
> > And with the (currently almost useless) l3 interrupt stuff taken out by
> > removing the ti,omap4-l3-noc compatible from omap4.dtsi, we get a real
> > trace that might be of some help to you:
> > 
> > [    8.440917] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
> > [    8.447418] Unhandled fault: imprecise external abort (0x1406) at 0xbeafaa10
> > [    8.454925] pgd = c0004000
> > [    8.454986] [beafaa10] *pgd=00000000/root/init: line 14: /sys/devices/68000000.ocp/4
> > 8098000.spi/spi_master/spi1/spi1[    8.461334] Internal error: : 1406 [#1] SMP ARM
> > .2/backlight/acx565akm/brightness: No such file [    8.473175] Modules linked in:or directory
> >   rtc_twl twl4030_wdt
> > [    8.483520] CPU: 1 PID: 66 Comm: kworker/u4:1 Not tainted 4.2.0-next-20150831-00002-gf55bad8-dirty #1115
> > [    8.493652] Hardware name: Generic OMAP4 (Flattened Device Tree)
> > [    8.498352] Workqueue: deferwq deferred_probe_work_func
> > [    8.505493] task: ee5f4f40 ti: ee5f6000 task.ti: ee5f6000
> > [    8.510803] PC is at devm_clk_get+0x8/0x70
> > [    8.514801] LR is at omap_hsmmc_probe+0x2e8/0x9f0
> > [    8.520385] pc : [<c04df4e0>]    lr : [<c04cd748>]    psr: 20010013
> > [    8.520385] sp : ee5f7dd0  ip : 00000003  fp : fa09c000
> > [    8.532470] r10: 000000ee  r9 : ee6904c0  r8 : 00000000
> > [    8.537963] r7 : ee1ec010  r6 : ee1ec000  r5 : ee6e7dd0  r4 : ee690000
> > [    8.544769] r3 : 00000000  r2 : 000000d0  r1 : c082f184  r0 : ee1ec010
> > [    8.551666] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
> > [    8.559143] Control: 10c5387d  Table: ae73804a  DAC: 00000051
> > [    8.564727] Process kworker/u4:1 (pid: 66, stack limit = 0xee5f6218)
> > [    8.571441] Stack: (0xee5f7dd0 to 0xee5f8000)
> > [    8.576263] 7dc0:                                     ee690000 ee6e7dd0 ee1ec000 c04cd748
> > [    8.584930] 7de0: 00000000 c09cf8f8 ee1ed270 ee5de150 00000000 ee090248 c11cb0d4 c09ae55c
> > [    8.593597] 7e00: 00000000 ee1ec010 ee1ec010 c09ae55c fffffdfb 0000001d c09cf8f8 00000000
> > [    8.601837] 7e20: c09cf8f8 c03e97f4 ee1ec010 c11cb118 c09ae55c 00000000 0000001d c03e7ea8
> > [    8.610107] 7e40: 00000000 ee5f7e70 c03e803c 00000001 ee5f7ec8 c03e63b4 ee0f2ed4 ee5d6594
> > [    8.619323] 7e60: ee1ec010 ee1ec010 ee1ec044 c03e7c28 ee1ec010 00000001 c099b110 ee1ec010
> > [    8.627777] 7e80: ee1ec010 c099a708 ee61cf00 c03e71d0 ee1ec010 c099a3fc c099a3b8 c03e75f8
> > [    8.636535] 7ea0: c099a434 ee371940 ee08a400 c00589f8 00000001 00000000 c0058968 ee08a400
> > [    8.644805] 7ec0: c0058e5c 00000001 c099a434 c0b2a770 00000000 c0811a00 ee08a400 ee08a400
> > [    8.653503] 7ee0: ee371958 ee08a430 ee5f6000 00000088 c09cf04c ee371940 ee08a400 c0058de8
> > [    8.662261] 7f00: ee08a5d0 00000000 c0058dac 00000000 ee56af40 ee371940 c0058dac 00000000
> > [    8.670532] 7f20: 00000000 00000000 00000000 c005eb88 1c4eefdf 00000000 00000000 ee371940
> > [    8.679290] 7f40: 00000000 00000000 dead4ead ffffffff ffffffff c09d6da0 00000000 00000000
> > [    8.679290] 7f60: c07d16a0 ee5f7f64 ee5f7f64 00000000 00000000 dead4ead ffffffff ffffffff
> > [    8.696411] 7f80: c09d6da0 00000000 00000000 c07d16a0 ee5f7f90 ee5f7f90 ee5f7fac ee56af40
> > [    8.705047] 7fa0: c005eab4 00000000 00000000 c000f710 00000000 00000000 00000000 00000000
> > [    8.713562] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> > [    8.721435] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 2eade3dd cf5fffcd
> > [    8.730743] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
> > [    8.738952] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
> > [    8.748077] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
> > [    8.757385] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
> > [    8.766326] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
> > [    8.774993] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
> > [    8.783538] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
> > [    8.792907] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
> > [    8.802490] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
> > [    8.810943] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
> > [    8.818511] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
> > [    8.824737] Code: e5910000 ea000091 e92d4070 e3a020d0 (e1a06000)
> > [    8.826141] ---[ end trace a89146bc4a70cc4d ]---
> > 
> 
> On -next, Above crash signature could be related to race 
> "ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
> http://www.spinics.net/lists/linux-omap/msg121622.html

Good point thanks, yes that's the case. MMC probing fails and then we hit this
separate issue while MMC is trying to probe. Applying your fix makes the
abort disappear, but naturally does not get MMC working again.

Regards,

Tony 
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Grygorii Strashko Sept. 1, 2015, 2:54 p.m. UTC | #8
On 09/01/2015 05:50 PM, Tony Lindgren wrote:
> * Grygorii Strashko <grygorii.strashko@ti.com> [150901 07:36]:
>> On 09/01/2015 12:14 AM, Tony Lindgren wrote:
>>> * Tony Lindgren <tony@atomide.com> [150831 14:02]:
>>>>
>>>> And I must have tested next-20150827 instead of next-20150828. Or
>>>> else it does not happen on every boot. In any case, I'm now getting
>>>> the following on next-20150831 most of the time:
>>>>
>>>> [    9.493133] omap_hsmmc 4809c000.mmc: using lookup tables for GPIO lookup
>>>> [    9.500274] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
>>>> [    9.506378] ------------[ cut here ]------------
>>>> [    9.508941] WARNING: CPU: 0 PID: 6 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x224/0x350()
>>>> [    9.520568] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access
>>>> [    9.524810] Modules linked in: rtc_twl twl4030_wdt
>>>> [    9.534820] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.2.0-next-20150831-00002-gf55bad8 #1113
>>>> [    9.544830] Hardware name: Generic OMAP4 (Flattened Device Tree)
>>>> [    9.544830] Workqueue: deferwq deferred_probe_work_func
>>>> [    9.554809] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
>>>> [    9.564819] [<c0013a58>] (show_stack) from [<c034efb4>] (dump_stack+0x84/0x9c)
>>>> [    9.574829] [<c034efb4>] (dump_stack) from [<c003e994>] (warn_slowpath_common+0x78/0xb4)
>>>> [    9.574951] [<c003e994>] (warn_slowpath_common) from [<c003ea00>] (warn_slowpath_fmt+0x30/0x40)
>>>> [    9.584686] [<c003ea00>] (warn_slowpath_fmt) from [<c037cc7c>] (l3_interrupt_handler+0x224/0x350)
>>>> [    9.594818] [<c037cc7c>] (l3_interrupt_handler) from [<c009e7b4>] (handle_irq_event_percpu+0x44/0x1f0)
>>>> [    9.604827] [<c009e7b4>] (handle_irq_event_percpu) from [<c009e9a0>] (handle_irq_event+0x40/0x64)
>>>> [    9.614807] [<c009e9a0>] (handle_irq_event) from [<c00a1a4c>] (handle_fasteoi_irq+0xcc/0x1c4)
>>>> [    9.625396] [<c00a1a4c>] (handle_fasteoi_irq) from [<c009de58>] (generic_handle_irq+0x28/0x3c)
>>>> [    9.638732] [<c009de58>] (generic_handle_irq) from [<c009e140>] (__handle_domain_irq+0x64/0xe0)
>>>> [    9.647827] [<c009e140>] (__handle_domain_irq) from [<c0009514>] (gic_handle_irq+0x40/0x8c)
>>>> [    9.654693] [<c0009514>] (gic_handle_irq) from [<c064ccb8>] (__irq_svc+0x58/0x78)
>>>> [    9.664367] Exception stack(0xee0cfd80 to 0xee0cfdc8)
>>>> [    9.665130] fd80: ee1ec010 c082f174 000000d0 00000000 ee6b0800 ee6ae850 ee1ec000 ee1ec010
>>>> [    9.674835] fda0: 00000000 ee6b0cc0 000000ee fa09c000 00000003 ee0cfdd0 c04cd748 c04df4e0
>>>> [    9.684814] fdc0: 20000113 ffffffff
>>>> [    9.684814] [<c064ccb8>] (__irq_svc) from [<c04df4e0>] (devm_clk_get+0x8/0x70)
>>>> [    9.694824] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
>>>> [    9.704833] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
>>>> [    9.714691] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
>>>> [    9.724548] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
>>>> [    9.733459] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
>>>> [    9.734832] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
>>>> [    9.744812] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
>>>> [    9.760040] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
>>>> [    9.769470] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
>>>> [    9.774688] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
>>>> [    9.785614] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
>>>> [    9.785614] ---[ end trace 402743bd8cfdde2f ]---
>>>
>>> And with the (currently almost useless) l3 interrupt stuff taken out by
>>> removing the ti,omap4-l3-noc compatible from omap4.dtsi, we get a real
>>> trace that might be of some help to you:
>>>
>>> [    8.440917] omap_hsmmc 4809c000.mmc: lookup for GPIO wp failed
>>> [    8.447418] Unhandled fault: imprecise external abort (0x1406) at 0xbeafaa10
>>> [    8.454925] pgd = c0004000
>>> [    8.454986] [beafaa10] *pgd=00000000/root/init: line 14: /sys/devices/68000000.ocp/4
>>> 8098000.spi/spi_master/spi1/spi1[    8.461334] Internal error: : 1406 [#1] SMP ARM
>>> .2/backlight/acx565akm/brightness: No such file [    8.473175] Modules linked in:or directory
>>>    rtc_twl twl4030_wdt
>>> [    8.483520] CPU: 1 PID: 66 Comm: kworker/u4:1 Not tainted 4.2.0-next-20150831-00002-gf55bad8-dirty #1115
>>> [    8.493652] Hardware name: Generic OMAP4 (Flattened Device Tree)
>>> [    8.498352] Workqueue: deferwq deferred_probe_work_func
>>> [    8.505493] task: ee5f4f40 ti: ee5f6000 task.ti: ee5f6000
>>> [    8.510803] PC is at devm_clk_get+0x8/0x70
>>> [    8.514801] LR is at omap_hsmmc_probe+0x2e8/0x9f0
>>> [    8.520385] pc : [<c04df4e0>]    lr : [<c04cd748>]    psr: 20010013
>>> [    8.520385] sp : ee5f7dd0  ip : 00000003  fp : fa09c000
>>> [    8.532470] r10: 000000ee  r9 : ee6904c0  r8 : 00000000
>>> [    8.537963] r7 : ee1ec010  r6 : ee1ec000  r5 : ee6e7dd0  r4 : ee690000
>>> [    8.544769] r3 : 00000000  r2 : 000000d0  r1 : c082f184  r0 : ee1ec010
>>> [    8.551666] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
>>> [    8.559143] Control: 10c5387d  Table: ae73804a  DAC: 00000051
>>> [    8.564727] Process kworker/u4:1 (pid: 66, stack limit = 0xee5f6218)
>>> [    8.571441] Stack: (0xee5f7dd0 to 0xee5f8000)
>>> [    8.576263] 7dc0:                                     ee690000 ee6e7dd0 ee1ec000 c04cd748
>>> [    8.584930] 7de0: 00000000 c09cf8f8 ee1ed270 ee5de150 00000000 ee090248 c11cb0d4 c09ae55c
>>> [    8.593597] 7e00: 00000000 ee1ec010 ee1ec010 c09ae55c fffffdfb 0000001d c09cf8f8 00000000
>>> [    8.601837] 7e20: c09cf8f8 c03e97f4 ee1ec010 c11cb118 c09ae55c 00000000 0000001d c03e7ea8
>>> [    8.610107] 7e40: 00000000 ee5f7e70 c03e803c 00000001 ee5f7ec8 c03e63b4 ee0f2ed4 ee5d6594
>>> [    8.619323] 7e60: ee1ec010 ee1ec010 ee1ec044 c03e7c28 ee1ec010 00000001 c099b110 ee1ec010
>>> [    8.627777] 7e80: ee1ec010 c099a708 ee61cf00 c03e71d0 ee1ec010 c099a3fc c099a3b8 c03e75f8
>>> [    8.636535] 7ea0: c099a434 ee371940 ee08a400 c00589f8 00000001 00000000 c0058968 ee08a400
>>> [    8.644805] 7ec0: c0058e5c 00000001 c099a434 c0b2a770 00000000 c0811a00 ee08a400 ee08a400
>>> [    8.653503] 7ee0: ee371958 ee08a430 ee5f6000 00000088 c09cf04c ee371940 ee08a400 c0058de8
>>> [    8.662261] 7f00: ee08a5d0 00000000 c0058dac 00000000 ee56af40 ee371940 c0058dac 00000000
>>> [    8.670532] 7f20: 00000000 00000000 00000000 c005eb88 1c4eefdf 00000000 00000000 ee371940
>>> [    8.679290] 7f40: 00000000 00000000 dead4ead ffffffff ffffffff c09d6da0 00000000 00000000
>>> [    8.679290] 7f60: c07d16a0 ee5f7f64 ee5f7f64 00000000 00000000 dead4ead ffffffff ffffffff
>>> [    8.696411] 7f80: c09d6da0 00000000 00000000 c07d16a0 ee5f7f90 ee5f7f90 ee5f7fac ee56af40
>>> [    8.705047] 7fa0: c005eab4 00000000 00000000 c000f710 00000000 00000000 00000000 00000000
>>> [    8.713562] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>>> [    8.721435] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 2eade3dd cf5fffcd
>>> [    8.730743] [<c04df4e0>] (devm_clk_get) from [<c04cd748>] (omap_hsmmc_probe+0x2e8/0x9f0)
>>> [    8.738952] [<c04cd748>] (omap_hsmmc_probe) from [<c03e97f4>] (platform_drv_probe+0x44/0xac)
>>> [    8.748077] [<c03e97f4>] (platform_drv_probe) from [<c03e7ea8>] (driver_probe_device+0x1f4/0x2f0)
>>> [    8.757385] [<c03e7ea8>] (driver_probe_device) from [<c03e63b4>] (bus_for_each_drv+0x64/0x98)
>>> [    8.766326] [<c03e63b4>] (bus_for_each_drv) from [<c03e7c28>] (__device_attach+0xb0/0x118)
>>> [    8.774993] [<c03e7c28>] (__device_attach) from [<c03e71d0>] (bus_probe_device+0x88/0x90)
>>> [    8.783538] [<c03e71d0>] (bus_probe_device) from [<c03e75f8>] (deferred_probe_work_func+0x60/0x90)
>>> [    8.792907] [<c03e75f8>] (deferred_probe_work_func) from [<c00589f8>] (process_one_work+0x1a4/0x558)
>>> [    8.802490] [<c00589f8>] (process_one_work) from [<c0058de8>] (worker_thread+0x3c/0x514)
>>> [    8.810943] [<c0058de8>] (worker_thread) from [<c005eb88>] (kthread+0xd4/0xf0)
>>> [    8.818511] [<c005eb88>] (kthread) from [<c000f710>] (ret_from_fork+0x14/0x24)
>>> [    8.824737] Code: e5910000 ea000091 e92d4070 e3a020d0 (e1a06000)
>>> [    8.826141] ---[ end trace a89146bc4a70cc4d ]---
>>>
>>
>> On -next, Above crash signature could be related to race
>> "ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
>> http://www.spinics.net/lists/linux-omap/msg121622.html
>
> Good point thanks, yes that's the case. MMC probing fails and then we hit this
> separate issue while MMC is trying to probe. Applying your fix makes the
> abort disappear, but naturally does not get MMC working again.

you may need CONFIG_GPIO_PCF857X=y for dra7-evm
Tony Lindgren Sept. 1, 2015, 3:03 p.m. UTC | #9
* Grygorii Strashko <grygorii.strashko@ti.com> [150901 07:57]:
> On 09/01/2015 05:50 PM, Tony Lindgren wrote:
> >>
> >>On -next, Above crash signature could be related to race
> >>"ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
> >>http://www.spinics.net/lists/linux-omap/msg121622.html
> >
> >Good point thanks, yes that's the case. MMC probing fails and then we hit this
> >separate issue while MMC is trying to probe. Applying your fix makes the
> >abort disappear, but naturally does not get MMC working again.
> 
> you may need CONFIG_GPIO_PCF857X=y for dra7-evm

This is a regression at least on omap4 as pointed out by Olof.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kevin Hilman Sept. 10, 2015, 4:59 p.m. UTC | #10
On Tue, Sep 1, 2015 at 8:03 AM, Tony Lindgren <tony@atomide.com> wrote:
> * Grygorii Strashko <grygorii.strashko@ti.com> [150901 07:57]:
>> On 09/01/2015 05:50 PM, Tony Lindgren wrote:
>> >>
>> >>On -next, Above crash signature could be related to race
>> >>"ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
>> >>http://www.spinics.net/lists/linux-omap/msg121622.html
>> >
>> >Good point thanks, yes that's the case. MMC probing fails and then we hit this
>> >separate issue while MMC is trying to probe. Applying your fix makes the
>> >abort disappear, but naturally does not get MMC working again.
>>
>> you may need CONFIG_GPIO_PCF857X=y for dra7-evm
>
> This is a regression at least on omap4 as pointed out by Olof.

FWIW, this problem still exists in mainline[1], and note that it fails
for omap2plus_defconfig which already has CONFIG_REGULATOR_PBIAS=y, so
that is not the fix for this issue.

Kevin

[1] http://kernelci.org/boot/omap4-panda-es/?mainline&omap2plus_defconfig&lab-khilman
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Sept. 10, 2015, 8:45 p.m. UTC | #11
* Kevin Hilman <khilman@kernel.org> [150910 10:03]:
> On Tue, Sep 1, 2015 at 8:03 AM, Tony Lindgren <tony@atomide.com> wrote:
> > * Grygorii Strashko <grygorii.strashko@ti.com> [150901 07:57]:
> >> On 09/01/2015 05:50 PM, Tony Lindgren wrote:
> >> >>
> >> >>On -next, Above crash signature could be related to race
> >> >>"ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init"
> >> >>http://www.spinics.net/lists/linux-omap/msg121622.html
> >> >
> >> >Good point thanks, yes that's the case. MMC probing fails and then we hit this
> >> >separate issue while MMC is trying to probe. Applying your fix makes the
> >> >abort disappear, but naturally does not get MMC working again.
> >>
> >> you may need CONFIG_GPIO_PCF857X=y for dra7-evm
> >
> > This is a regression at least on omap4 as pointed out by Olof.
> 
> FWIW, this problem still exists in mainline[1], and note that it fails
> for omap2plus_defconfig which already has CONFIG_REGULATOR_PBIAS=y, so
> that is not the fix for this issue.

There are also the pbias regulator fixes pending.. And the .dts
fixes pending.. So looks like it's going to be few more days.

AFAIK, also the multi_v7_defconfig change is needed..

Regards,

Tony
 
> [1] http://kernelci.org/boot/omap4-panda-es/?mainline&omap2plus_defconfig&lab-khilman
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9b335af..2eafd6f 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -375,10 +375,28 @@  static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
 
 	/* Allow an aux regulator */
 	reg = devm_regulator_get_optional(host->dev, "vmmc_aux");
-	host->vcc_aux = IS_ERR(reg) ? NULL : reg;
+	if (IS_ERR(reg)) {
+		ret = PTR_ERR(reg);
+		if (ret != -ENODEV)
+			return ret;
+		host->vcc_aux = NULL;
+		dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n",
+			PTR_ERR(reg));
+	} else {
+		host->vcc_aux = reg;
+	}
 
 	reg = devm_regulator_get_optional(host->dev, "pbias");
-	host->pbias = IS_ERR(reg) ? NULL : reg;
+	if (IS_ERR(reg)) {
+		ret = PTR_ERR(reg);
+		if (ret != -ENODEV)
+			return ret;
+		host->pbias = NULL;
+		dev_dbg(host->dev, "unable to get pbias regulator %ld\n",
+			PTR_ERR(reg));
+	} else {
+		host->pbias = reg;
+	}
 
 	/* For eMMC do not power off when not in sleep state */
 	if (mmc_pdata(host)->no_regulator_off_init)