alistair23-linux/arch/arm/mach-omap2
H. Nikolaus Schaller 20547dfd85 ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both
With 4.13 kernel I get this boot message:

[    1.051727] ------------[ cut here ]------------
[    1.051818] WARNING: CPU: 0 PID: 1 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74
[    1.051849] sysfs: cannot create duplicate filename '/devices/platform/omap_hsmmc.2'
[    1.051879] Modules linked in:
[    1.051971] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.13.0-letux+ #1360
[    1.052001] Hardware name: Generic OMAP3 (Flattened Device Tree)
[    1.052062] [<c010f690>] (unwind_backtrace) from [<c010bba8>] (show_stack+0x10/0x14)
[    1.052124] [<c010bba8>] (show_stack) from [<c075dc88>] (dump_stack+0x98/0xd0)
[    1.052185] [<c075dc88>] (dump_stack) from [<c012f398>] (__warn+0xd0/0x100)
[    1.052215] [<c012f398>] (__warn) from [<c012f3fc>] (warn_slowpath_fmt+0x34/0x44)
[    1.052276] [<c012f3fc>] (warn_slowpath_fmt) from [<c02ebcb4>] (sysfs_warn_dup+0x54/0x74)
[    1.052337] [<c02ebcb4>] (sysfs_warn_dup) from [<c02ebd90>] (sysfs_create_dir_ns+0x74/0x84)
[    1.052398] [<c02ebd90>] (sysfs_create_dir_ns) from [<c0761b8c>] (kobject_add_internal+0xd0/0x294)
[    1.052429] [<c0761b8c>] (kobject_add_internal) from [<c0761f00>] (kobject_add+0x6c/0x8c)
[    1.052490] [<c0761f00>] (kobject_add) from [<c04e831c>] (device_add+0xe4/0x510)
[    1.052551] [<c04e831c>] (device_add) from [<c04ec6e4>] (platform_device_add+0x130/0x1c0)
[    1.052612] [<c04ec6e4>] (platform_device_add) from [<c01281c0>] (omap_hsmmc_late_init+0x3c/0x60)
[    1.052673] [<c01281c0>] (omap_hsmmc_late_init) from [<c0b0fa44>] (omap3_pandora_legacy_init+0x24/0xb4)
[    1.052734] [<c0b0fa44>] (omap3_pandora_legacy_init) from [<c0128178>] (pdata_quirks_check+0x30/0x3c)
[    1.052795] [<c0128178>] (pdata_quirks_check) from [<c0b0f950>] (omap_generic_init+0xc/0x18)
[    1.052856] [<c0b0f950>] (omap_generic_init) from [<c0b03480>] (customize_machine+0x1c/0x28)
[    1.052917] [<c0b03480>] (customize_machine) from [<c0101938>] (do_one_initcall+0xa8/0x150)
[    1.052947] [<c0101938>] (do_one_initcall) from [<c0b00d70>] (kernel_init_freeable+0x110/0x1d4)
[    1.053009] [<c0b00d70>] (kernel_init_freeable) from [<c076f198>] (kernel_init+0x8/0x10c)
[    1.053070] [<c076f198>] (kernel_init) from [<c01070f0>] (ret_from_fork+0x14/0x24)
[    1.055023] ---[ end trace 44e490b09ac4ab88 ]---

This can be traced down to the calls of

	omap_hsmmc_init(pandora_mmc3);
	omap_hsmmc_late_init(pandora_mmc3);

in omap3_pandora_legacy_init().

It turns out that both funcions disagree how to decide if the other one was alredy called.

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2017-09-19 10:59:26 -07:00
..
include/mach
am33xx-restart.c
am33xx.h
board-generic.c ARM/arm64: SoC platform updates for v4.14 2017-09-10 20:35:46 -07:00
board-n8x0.c ARM: OMAP2+: Remove unused legacy code for n8x0 2017-06-08 04:15:10 -07:00
clkt2xxx_dpll.c
clkt2xxx_dpllcore.c clk: ti: convert to use proper register definition for all accesses 2017-03-08 13:06:15 +02:00
clkt2xxx_virt_prcm_set.c
clock.c clk: ti: convert to use proper register definition for all accesses 2017-03-08 13:06:15 +02:00
clock.h clk: ti: convert to use proper register definition for all accesses 2017-03-08 13:06:15 +02:00
clock2xxx.h
clock3xxx.h
clockdomain.c ARM: omap2+: clockdomain: add clkdm_xlate_address 2017-06-06 00:13:56 -07:00
clockdomain.h ARM: omap2+: clockdomain: add clkdm_xlate_address 2017-06-06 00:13:56 -07:00
clockdomains2xxx_3xxx_data.c
clockdomains3xxx_data.c
clockdomains7xx_data.c ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP 2017-04-28 10:23:20 -05:00
clockdomains33xx_data.c
clockdomains43xx_data.c
clockdomains44xx_data.c
clockdomains54xx_data.c
clockdomains81xx_data.c ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA 2017-03-28 14:10:03 -07:00
clockdomains2420_data.c
clockdomains2430_data.c
cm-regbits-7xx.h
cm-regbits-24xx.h
cm-regbits-33xx.h
cm-regbits-34xx.h
cm-regbits-44xx.h
cm-regbits-54xx.h
cm.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cm1_7xx.h
cm1_44xx.h
cm1_54xx.h
cm2_7xx.h
cm2_44xx.h
cm2_54xx.h
cm2xxx.c clk: ti: convert to use proper register definition for all accesses 2017-03-08 13:06:15 +02:00
cm2xxx.h
cm2xxx_3xxx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cm3xxx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cm3xxx.h
cm33xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cm33xx.h
cm44xx.h
cm81xx.h ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA 2017-03-28 14:10:03 -07:00
cm_common.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cminst44xx.c ARM: OMAP4: cminst: add support for clkdm_xlate_address 2017-06-06 00:14:01 -07:00
common-board-devices.h ARM: OMAP2+: Drop legacy ads7846 init 2016-11-10 15:46:13 -07:00
common.c
common.h mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
control.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
control.h
cpuidle34xx.c ARM: OMAP3: Add cpuidle parameters table for omap3430 2016-02-19 10:35:39 -08:00
cpuidle44xx.c ARM: OMAP5: Add basic cpuidle MPU CSWR support 2016-11-07 16:52:14 -07:00
ctrl_module_wkup_44xx.h
devices.c ARM: OMAP2+: Remove unused legacy code for device init 2017-06-08 02:57:38 -07:00
display.c ARM: OMAP2+: fix missing variable declaration 2017-08-24 15:17:25 +03:00
display.h ARM: OMAP2+: Remove unused omapdrm platform device 2017-08-16 15:38:51 +03:00
dma.c ARM: OMAP2+: Remove unused legacy code for DMA 2017-08-10 08:21:40 -07:00
fb.c ARM: OMAP2+: use IS_ENABLED() instead of checking for built-in or module 2016-08-26 08:42:35 -07:00
gpmc-onenand.c ARM: OMAP2+: gpmc-onenand: propagate error on initialization failure 2017-02-28 09:06:23 -08:00
gpmc.h
hdq1w.c
hdq1w.h
hsmmc.c ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both 2017-09-19 10:59:26 -07:00
hsmmc.h ARM: OMAP2+: hsmmc.c: Remove dead code 2017-07-17 15:04:47 +02:00
i2c.c ARM: OMAP2+: Remove legacy i2c.c platform init code 2016-11-10 08:53:30 -07:00
i2c.h
id.c ARM: dra762: Add support for device identification 2017-08-14 10:32:02 -07:00
id.h
io.c ARM: OMAP2+: Register SoC device attributes from machine .init() 2017-08-15 15:18:25 +03:00
iomap.h
Kconfig ARM: OMAP2+: Select PINCTRL_TI_IODELAY for SOC_DRA7XX 2017-08-10 09:56:20 -07:00
l3_2xxx.h
l3_3xxx.h
l4_2xxx.h
l4_3xxx.h
Makefile ARM: OMAP2+: Remove unused omapdrm platform device 2017-08-16 15:38:51 +03:00
mcbsp.c ARM: OMAP2+: Remove unused legacy code for McBSP 2017-06-08 04:15:10 -07:00
mmc.h
msdi.c ARM: OMAP2+: Remove legacy mux code 2016-11-10 12:42:49 -07:00
omap-headsmp.S ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build 2017-02-16 13:12:15 -08:00
omap-hotplug.c ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot 2017-03-27 10:10:42 -07:00
omap-mpuss-lowpower.c ARM: omap2+: make omap4_get_cpu1_ns_pa_addr declaration usable 2017-05-09 21:13:25 +02:00
omap-pm-noop.c
omap-pm.h
omap-secure.c
omap-secure.h ARM: OMAP5 / DRA7: Introduce workaround for 801819 2016-05-12 10:14:54 -07:00
omap-smc.S ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot 2017-03-27 10:10:42 -07:00
omap-smp.c ARM: dra762: Enable SMP for dra762 2017-08-14 10:33:13 -07:00
omap-wakeupgen.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
omap-wakeupgen.h
omap2-restart.c ARM: OMAP2+: Change core_initcall levels to postcore_initcall 2015-12-03 11:38:09 -08:00
omap3-restart.c
omap4-common.c ARM: OMAP4+: Initialize SAR RAM base early for proper CPU1 reset for kexec 2016-06-22 22:55:47 -07:00
omap4-restart.c
omap4-sar-layout.h ARM: OMAP5: Fix mpuss_early_init 2016-11-07 16:51:58 -07:00
omap24xx.h
omap34xx.h
omap44xx.h
omap54xx.h
omap_device.c ARM: OMAP2+: omap_device: drop broken RPM status update from suspend_noirq 2017-08-10 08:06:39 -07:00
omap_device.h
omap_hwmod.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
omap_hwmod.h ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO 2017-03-23 13:19:59 -07:00
omap_hwmod_2xxx_3xxx_interconnect_data.c ARM: OMAP2+: Remove legacy data from hwmod for omap3 2016-11-10 14:03:19 -07:00
omap_hwmod_2xxx_3xxx_ipblock_data.c ARM: OMAP2+: Remove legacy data from hwmod for omap3 2016-11-10 14:03:19 -07:00
omap_hwmod_2xxx_interconnect_data.c ARM: OMAP2+: Remove legacy data from hwmod for omap3 2016-11-10 14:03:19 -07:00
omap_hwmod_2xxx_ipblock_data.c ARM: OMAP2+: Remove unused CLOCKACT_TEST_ICLK 2017-03-14 13:13:19 -07:00
omap_hwmod_3xxx_data.c ARM: OMAP2+: Remove unused legacy code for interconnects 2017-06-08 04:15:10 -07:00
omap_hwmod_7xx_data.c ARM: OMAP2+: dra7xx: Set OPT_CLKS_IN_RESET flag for gpio1 2017-09-19 10:43:23 -07:00
omap_hwmod_33xx_43xx_common_data.h ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
omap_hwmod_33xx_43xx_interconnect_data.c ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
omap_hwmod_33xx_43xx_ipblock_data.c ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
omap_hwmod_33xx_data.c ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
omap_hwmod_43xx_data.c ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
omap_hwmod_44xx_data.c ARM: OMAP4: hwmod_data: add SHAM crypto accelerator 2017-06-14 00:53:51 -07:00
omap_hwmod_54xx_data.c ARM: OMAP2+: Remove unused CLOCKACT_TEST_ICLK 2017-03-14 13:13:19 -07:00
omap_hwmod_81xx_data.c ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA 2017-03-28 14:10:03 -07:00
omap_hwmod_2420_data.c
omap_hwmod_2430_data.c
omap_hwmod_common_data.c
omap_hwmod_common_data.h ARM: OMAP2+: Remove legacy gpio code 2016-11-23 08:22:10 -08:00
omap_hwmod_common_ipblock_data.c
omap_hwmod_reset.c ARM: OMAP2+: hwmod: RTC: Add lock and unlock functions 2016-04-10 13:20:10 -06:00
omap_opp_data.h
omap_phy_internal.c
omap_twl.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
opp2xxx.h
opp3xxx_data.c ARM: OMAP2+: Remove unused legacy code for opp 2017-06-08 02:57:16 -07:00
opp4xxx_data.c ARM: OMAP2+: Remove unused legacy code for opp 2017-06-08 02:57:16 -07:00
opp2420_data.c
opp2430_data.c
pdata-quirks.c ARM: OMAP2+: Add pdata-quirks for MMC/SD on DRA74x EVM 2017-08-10 09:02:37 -07:00
pm-debug.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00
pm.c ARM: OMAP2+: pm: Remove __init from omap_pm_clkdms_setup 2017-05-16 08:44:58 -07:00
pm.h
pm24xx.c
pm34xx.c ARM: OMAP2+: Fix omap3 prm shared irq 2017-06-29 23:30:18 -07:00
pm44xx.c ARM: OMAP5: Add basic cpuidle MPU CSWR support 2016-11-07 16:52:14 -07:00
powerdomain-common.c
powerdomain.c ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
powerdomain.h
powerdomains2xxx_3xxx_data.c
powerdomains2xxx_3xxx_data.h
powerdomains2xxx_data.c
powerdomains3xxx_data.c ARM: OMAP2+: Update 81xx clock and power domains for default, active and sgx 2015-12-22 16:23:08 -08:00
powerdomains7xx_data.c ARM: OMAP: dra7: powerdomain data: Register SoC specific powerdomains 2017-08-14 10:33:29 -07:00
powerdomains33xx_data.c
powerdomains43xx_data.c
powerdomains44xx_data.c
powerdomains54xx_data.c
prcm-common.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prcm43xx.h ARM: AMx3xx: hwmod: Add data for RNG 2016-11-09 15:39:41 -07:00
prcm44xx.h
prcm_mpu7xx.h
prcm_mpu44xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prcm_mpu44xx.h
prcm_mpu54xx.h
prcm_mpu_44xx_54xx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prm-regbits-24xx.h
prm-regbits-33xx.h
prm-regbits-34xx.h
prm-regbits-44xx.h
prm.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prm2xxx.c
prm2xxx.h
prm2xxx_3xxx.c
prm2xxx_3xxx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prm3xxx.c ARM: OMAP3+: PRM: fix of_irq_get() result check 2017-08-15 08:53:18 -07:00
prm3xxx.h
prm7xx.h ARM: DRA7: hwmod: Add reset data for PCIe 2016-02-09 02:18:52 -07:00
prm33xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prm33xx.h ARM: dts: am43xx: Remove wrongly defined RSTST offset for PER Domain 2016-06-22 03:33:25 -07:00
prm44xx.c ARM: OMAP4+: PRM: fix of_irq_get() result checks 2017-08-15 08:53:28 -07:00
prm44xx.h
prm44xx_54xx.h
prm54xx.h
prm_common.c SoC changes for omap variants for v4.13 merge window: 2017-06-18 20:46:30 -07:00
prminst44xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prminst44xx.h
scrm44xx.h
scrm54xx.h
sdrc.c
sdrc.h ARM: OMAP2+: Fix typo in sdrc.h 2016-06-10 04:17:07 -07:00
sdrc2xxx.c
serial.h
sleep24xx.S
sleep34xx.S ARM: align .data section 2017-08-14 16:22:55 +01:00
sleep44xx.S ARM: align .data section 2017-08-14 16:22:55 +01:00
smartreflex-class3.c
soc.h ARM: dra762: Add support for device identification 2017-08-14 10:32:02 -07:00
sr_device.c ARM: OMAP2+: SmartReflex: Delete an error message for a failed memory allocation in two functions 2017-06-08 03:02:32 -07:00
sram.c
sram.h
sram242x.S
sram243x.S
ti81xx-restart.c
ti81xx.h
timer.c ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
usb-tusb6010.c ARM: OMAP2+: Remove legacy muxing for usb-tusb6010.c 2016-11-10 12:42:15 -07:00
usb.h
vc.c ARM: remove duplicate 'const' annotations' 2017-05-19 10:12:55 +02:00
vc.h
vc3xxx_data.c
vc44xx_data.c
voltage.c ARM: OMAP2+: avoid NULL pointer dereference 2016-11-07 16:24:53 -07:00
voltage.h
voltagedomains2xxx_data.c
voltagedomains3xxx_data.c
voltagedomains44xx_data.c
voltagedomains54xx_data.c
vp.c
vp.h
vp3xxx_data.c
vp44xx_data.c
wd_timer.c ARM: OMAP2+: Remove unused legacy code for watchdog 2017-06-08 04:15:10 -07:00
wd_timer.h