Remove unused omap legacy code
Subsystems (7)
Tony Lindgren
maintainercover Remove unused omap legacy code
Hi all,
We can now remove quite a bit of clutter with legacy booting gone. Basically anything with of_have_populated_dt() not set can now go.
Regards,
Tony
Tony Lindgren (11):
ARM: OMAP2+: Remove unused legacy code for opp
ARM: OMAP2+: Remove unused legacy code for timer
ARM: OMAP2+: Remove unused legacy code for PMU
ARM: OMAP2+: Remove unused legacy code for device init
ARM: OMAP2+: Remove unused legacy code for McBSP
ARM: OMAP2+: Remove unused legacy code for io.c
ARM: OMAP2+: Remove unused legacy code for DMA
ARM: OMAP2+: Remove unused legacy code for PRM
ARM: OMAP2+: Remove unused legacy code for interconnects
ARM: OMAP2+: Remove unused legacy code for watchdog
ARM: OMAP2+: Remove unused legacy code for n8x0
arch/arm/mach-omap2/Makefile | 4 - arch/arm/mach-omap2/board-n8x0.c | 14 +-- arch/arm/mach-omap2/devices.c | 163 --------------------------- arch/arm/mach-omap2/dma.c | 30 +---- arch/arm/mach-omap2/io.c | 59 +++------- arch/arm/mach-omap2/mcbsp.c | 70 ------------ arch/arm/mach-omap2/omap_device.c | 5 +- arch/arm/mach-omap2/omap_hwmod.c | 23 ++-- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3 +- arch/arm/mach-omap2/opp.c | 104 ----------------- arch/arm/mach-omap2/opp3xxx_data.c | 86 --------------- arch/arm/mach-omap2/opp4xxx_data.c | 79 ------------- arch/arm/mach-omap2/pmu.c | 97 ---------------- arch/arm/mach-omap2/prm3xxx.c | 17 ++- arch/arm/mach-omap2/prm44xx.c | 59 ---------- arch/arm/mach-omap2/prm_common.c | 9 +- arch/arm/mach-omap2/timer.c | 172 ++++------------------------- arch/arm/mach-omap2/wd_timer.c | 28 ----- 18 files changed, 63 insertions(+), 959 deletions(-) delete mode 100644 arch/arm/mach-omap2/opp.c delete mode 100644 arch/arm/mach-omap2/pmu.c
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 1/11 ARM: OMAP2+: Remove unused legacy code for opp
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
Note that the volt_data is still being used.
--- arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/opp.c | 104 ------------------------------------- arch/arm/mach-omap2/opp3xxx_data.c | 86 ------------------------------ arch/arm/mach-omap2/opp4xxx_data.c | 79 ---------------------------- 4 files changed, 270 deletions(-) delete mode 100644 arch/arm/mach-omap2/opp.c
arch/arm/mach-omap2/Makefile +0 -1
@@ -69,7 +69,6 @@ obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o # OPP table initialization ifeq ($(CONFIG_PM_OPP),y) -obj-y += opp.o obj-$(CONFIG_ARCH_OMAP3) += opp3xxx_data.o obj-$(CONFIG_ARCH_OMAP4) += opp4xxx_data.o endif
arch/arm/mach-omap2/opp.c deleted +0 -104
104 lines not on this page · raw message
arch/arm/mach-omap2/opp3xxx_data.c +0 -86
89 lines not on this page · raw message
arch/arm/mach-omap2/opp4xxx_data.c +0 -79
88 lines not on this page · raw message
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 2/11 ARM: OMAP2+: Remove unused legacy code for timer
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/timer.c | 172 ++++++-------------------------------------- 1 file changed, 20 insertions(+), 152 deletions(-)
arch/arm/mach-omap2/timer.c +20 -152
@@ -252,37 +252,27 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,const char **timer_name, int posted) { - char name[10]; /* 10 = sizeof("gptXX_Xck0") */ const char *oh_name = NULL;struct device_node *np;struct omap_hwmod *oh; -struct resource irq, mem;struct clk *src;int r =0 ; -if (of_have_populated_dt ()) { - np =omap_get_timer_dt (omap_timer_match, property); -if (!np) -return -ENODEV ; + np =omap_get_timer_dt (omap_timer_match, property); +if (!np) +return -ENODEV ; -of_property_read_string_index (np,"ti,hwmods" ,0 , &oh_name); -if (!oh_name) -return -ENODEV ; +of_property_read_string_index (np,"ti,hwmods" ,0 , &oh_name); +if (!oh_name) +return -ENODEV ; - timer->irq =irq_of_parse_and_map (np,0 ); -if (!timer->irq) -return -ENXIO ; + timer->irq =irq_of_parse_and_map (np,0 ); +if (!timer->irq) +return -ENXIO ; - timer->io_base =of_iomap (np,0 ); + timer->io_base =of_iomap (np,0 ); -of_node_put (np); - }else { -if (omap_dm_timer_reserve_systimer (timer->id)) -return -ENODEV ; - -sprintf (name,"timer%d" , timer->id); - oh_name = name; - } +of_node_put (np); oh =omap_hwmod_lookup (oh_name);if (!oh)
@@ -290,22 +280,6 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, *timer_name = oh->name; -if (!of_have_populated_dt ()) { - r =omap_hwmod_get_resource_byname (oh,IORESOURCE_IRQ ,NULL , - &irq); -if (r) -return -ENXIO ; - timer->irq = irq.start; - - r =omap_hwmod_get_resource_byname (oh,IORESOURCE_MEM ,NULL , - &mem); -if (r) -return -ENXIO ; - -/* Static mapping, never released */ - timer->io_base =ioremap (mem.start, mem.end - mem.start); - } -if (!timer->io_base)return -ENXIO ;
@@ -433,18 +407,15 @@ static int __init __maybe_unused omap2_sync32k_clocksource_init(void)const char *oh_name ="counter_32k" ;/* -* If device-tree is present, then search the DT blob -* to see if the 32kHz counter is supported. +* See if the 32kHz counter is supported. */ -if (of_have_populated_dt ()) { - np =omap_get_timer_dt (omap_counter_match,NULL ); -if (!np) -return -ENODEV ; - -of_property_read_string_index (np,"ti,hwmods" ,0 , &oh_name); -if (!oh_name) -return -ENODEV ; - } + np =omap_get_timer_dt (omap_counter_match,NULL ); +if (!np) +return -ENODEV ; + +of_property_read_string_index (np,"ti,hwmods" ,0 , &oh_name); +if (!oh_name) +return -ENODEV ;/* * First check hwmod data is available for sync32k counter
@@ -462,18 +433,6 @@ static int __init __maybe_unused omap2_sync32k_clocksource_init(void)return ret; } -if (!of_have_populated_dt ()) { -void __iomem *vbase; - - vbase =omap_hwmod_get_mpu_rt_va (oh); - - ret =omap_init_clocksource_32k (vbase); -if (ret) { -pr_warn ("%s: failed to initialize counter_32k as a clocksource (%d)\n" , - __func__, ret); -omap_hwmod_idle (oh); - } - }return ret; }
@@ -544,8 +503,7 @@ void __init omap3_gptimer_timer_init(void) {__omap_sync32k_timer_init (2 ,"timer_sys_ck" ,NULL ,1 ,"timer_sys_ck" ,"ti,timer-alwon" , true); -if (of_have_populated_dt ()) -clocksource_probe (); +clocksource_probe (); }#endif
@@ -689,96 +647,6 @@ void __init omap5_realtime_timer_init(void)#endif /* CONFIG_SOC_OMAP5 || CONFIG_SOC_DRA7XX */ /** -* omap_timer_init - build and register timer device with an -* associated timer hwmod -* @oh: timer hwmod pointer to be used to build timer device -* @user: parameter that can be passed from calling hwmod API -* -* Called by omap_hwmod_for_each_by_class to register each of the timer -* devices present in the system. The number of timer devices is known -* by parsing through the hwmod database for a given class name. At the -* end of function call memory is allocated for timer device and it is -* registered to the framework ready to be proved by the driver. -*/ -static int __init omap_timer_init (struct omap_hwmod *oh,void *unused) -{ -int id; -int ret =0 ; -char *name ="omap_timer" ; -struct dmtimer_platform_data *pdata; -struct platform_device *pdev; -struct omap_timer_capability_dev_attr *timer_dev_attr; - -pr_debug ("%s: %s\n" , __func__, oh->name); - -/* on secure device, do not register secure timer */ - timer_dev_attr = oh->dev_attr; -if (omap_type () !=OMAP2_DEVICE_TYPE_GP && timer_dev_attr) -if (timer_dev_attr->timer_capability ==OMAP_TIMER_SECURE ) -return ret; - - pdata =kzalloc (sizeof (*pdata),GFP_KERNEL ); -if (!pdata) { -pr_err ("%s: No memory for [%s]\n" , __func__, oh->name); -return -ENOMEM ; - } - -/* -* Extract the IDs from name field in hwmod database -* and use the same for constructing ids' for the -* timer devices. In a way, we are avoiding usage of -* static variable witin the function to do the same. -* CAUTION: We have to be careful and make sure the -* name in hwmod database does not change in which case -* we might either make corresponding change here or -* switch back static variable mechanism. -*/ -sscanf (oh->name,"timer%2d" , &id); - -if (timer_dev_attr) - pdata->timer_capability = timer_dev_attr->timer_capability; - - pdata->timer_errata =omap_dm_timer_get_errata (); - pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count; - - pdev =omap_device_build (name, id, oh, pdata,sizeof (*pdata)); - -if (IS_ERR (pdev)) { -pr_err ("%s: Can't build omap_device for %s: %s.\n" , - __func__, name, oh->name); - ret = -EINVAL ; - } - -kfree (pdata); - -return ret; -} - -/** -* omap2_dm_timer_init - top level regular device initialization -* -* Uses dedicated hwmod api to parse through hwmod database for -* given class name and then build and register the timer device. -*/ -static int __init omap2_dm_timer_init (void ) -{ -int ret; - -/* If dtb is there, the devices will be created dynamically */ -if (of_have_populated_dt ()) -return -ENODEV ; - - ret =omap_hwmod_for_each_by_class ("timer" , omap_timer_init,NULL ); -if (unlikely (ret)) { -pr_err ("%s: device registration failed.\n" , __func__); -return -EINVAL ; - } - -return 0 ; -} -omap_arch_initcall (omap2_dm_timer_init); - -/** * omap2_override_clocksource - clocksource override with user configuration * * Allows user to override default clocksource, using kernel parameter
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 3/11 ARM: OMAP2+: Remove unused legacy code for PMU
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/Makefile | 3 -- arch/arm/mach-omap2/pmu.c | 97 -------------------------------------------- 2 files changed, 100 deletions(-) delete mode 100644 arch/arm/mach-omap2/pmu.c
arch/arm/mach-omap2/Makefile +0 -3
@@ -219,9 +219,6 @@ obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o obj-$(CONFIG_SOC_OMAP5) += omap_hwmod_54xx_data.o obj-$(CONFIG_SOC_DRA7XX) += omap_hwmod_7xx_data.o -# EMU peripherals -obj-$(CONFIG_HW_PERF_EVENTS) += pmu.o - # OMAP2420 MSDI controller integration support ("MMC") obj-$(CONFIG_SOC_OMAP2420) += msdi.o
arch/arm/mach-omap2/pmu.c deleted +0 -97
97 lines not on this page · raw message
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/devices.c | 163 ------------------------------------------ 1 file changed, 163 deletions(-)
arch/arm/mach-omap2/devices.c +0 -163
@@ -36,130 +36,8 @@#define L3_MODULES_MAX_LEN 12#define L3_MODULES 3 -static int __init omap3_l3_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char oh_name[L3_MODULES_MAX_LEN ]; - -/* -* To avoid code running on other OMAPs in -* multi-omap builds -*/ -if (!(cpu_is_omap34xx ()) ||of_have_populated_dt ()) -return -ENODEV ; - -snprintf (oh_name,L3_MODULES_MAX_LEN ,"l3_main" ); - - oh =omap_hwmod_lookup (oh_name); - -if (!oh) -pr_err ("could not look up %s\n" , oh_name); - - pdev =omap_device_build ("omap_l3_smx" ,0 , oh,NULL ,0 ); - -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap3_l3_init); -static inline void omap_init_sti (void ) {} -#if IS_ENABLED (CONFIG_SPI_OMAP24XX ) - -#include <linux/platform_data/spi-omap2-mcspi.h> - -static int __init omap_mcspi_init (struct omap_hwmod *oh,void *unused) -{ -struct platform_device *pdev; -char *name ="omap2_mcspi" ; -struct omap2_mcspi_platform_config *pdata; -static int spi_num; -struct omap2_mcspi_dev_attr *mcspi_attrib = oh->dev_attr; - - pdata =kzalloc (sizeof (*pdata),GFP_KERNEL ); -if (!pdata) { -pr_err ("Memory allocation for McSPI device failed\n" ); -return -ENOMEM ; - } - - pdata->num_cs = mcspi_attrib->num_chipselect; -switch (oh->class->rev) { -case OMAP2_MCSPI_REV : -case OMAP3_MCSPI_REV : - pdata->regs_offset =0 ; -break ; -case OMAP4_MCSPI_REV : - pdata->regs_offset =OMAP4_MCSPI_REG_OFFSET ; -break ; -default : -pr_err ("Invalid McSPI Revision value\n" ); -kfree (pdata); -return -EINVAL ; - } - - spi_num++; - pdev =omap_device_build (name, spi_num, oh, pdata,sizeof (*pdata)); -WARN (IS_ERR (pdev),"Can't build omap_device for %s:%s\n" , - name, oh->name); -kfree (pdata); -return 0 ; -} - -static void omap_init_mcspi (void ) -{ -omap_hwmod_for_each_by_class ("mcspi" , omap_mcspi_init,NULL ); -} - -#else -static inline void omap_init_mcspi (void ) {} -#endif - -/** -* omap_init_rng - bind the RNG hwmod to the RNG omap_device -* -* Bind the RNG hwmod to the RNG omap_device. No return value. -*/ -static void __init omap_init_rng (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("rng" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap_rng" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap_rng\n" ); -} - -static void __init omap_init_sham (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("sham" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-sham" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-sham\n" ); -} - -static void __init omap_init_aes (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("aes" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-aes" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-aes\n" ); -} -/*-------------------------------------------------------------------------*/ #if IS_ENABLED (CONFIG_VIDEO_OMAP2_VOUT )
@@ -190,49 +68,8 @@ int __init omap_init_vout(void) { return 0; }static int __init omap2_init_devices (void ) { -/* Enable dummy states for those platforms without pinctrl support */ -if (!of_have_populated_dt ()) -pinctrl_provide_dummies (); - -/* If dtb is there, the devices will be created dynamically */ -if (!of_have_populated_dt ()) { -/* -* please keep these calls, and their implementations above, -* in alphabetical order so they're easier to sort through. -*/ -omap_init_mcspi (); -omap_init_sham (); -omap_init_aes (); -omap_init_rng (); - }omap_init_sti ();return 0 ; }omap_arch_initcall (omap2_init_devices); - -static int __init omap_gpmc_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char *oh_name ="gpmc" ; - -/* -* if the board boots up with a populated DT, do not -* manually add the device from this initcall -*/ -if (of_have_populated_dt ()) -return -ENODEV ; - - oh =omap_hwmod_lookup (oh_name); -if (!oh) { -pr_err ("Could not look up %s\n" , oh_name); -return -ENODEV ; - } - - pdev =omap_device_build ("omap-gpmc" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap_gpmc_init);
Signature · 1 line
2.13.0
PATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
Hi,
Quoted 21 lines · Tony Lindgren
[...]
arch/arm/mach-omap2/devices.c +0
-13-static inline void omap_init_sti (void ) {}@@ -190,49 +68,8 @@ int __init omap_init_vout(void) { return 0; }static int __init omap2_init_devices (void ) { -/* Enable dummy states for those platforms without pinctrl support */ -if (!of_have_populated_dt ()) -pinctrl_provide_dummies (); - -/* If dtb is there, the devices will be created dynamically */ -if (!of_have_populated_dt ()) { -/* -* please keep these calls, and their implementations above, -* in alphabetical order so they're easier to sort through. -*/ -omap_init_mcspi (); -omap_init_sham ();
arch/arm/mach-omap2/devices.c int __init omap_init_vout(void) { return 0; } · line 213
Quoted 10 lines
arch/arm/mach-omap2/devices.c +0
-4-omap_init_aes (); -omap_init_rng (); - }omap_init_sti ();return 0 ; }omap_arch_initcall (omap2_init_devices); -
I guess you can drop omap2_init_devices() completly?
-- Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170608/1e42be47/attachment-0001.sig>
Tony Lindgren
maintainerPATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
Quoted 1 line · Sebastian Reichel
I guess you can drop
omap2_init_devices()completly?
We still have omap_init_sti() left there, but it's just static inline void omap_init_sti(void) {} :)
So yeah will remove that too.
Regards,
Tony
Tony Lindgren
maintainerPATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
Quoted 7 lines · Tony Lindgren
Quoted 1 line · Sebastian Reichel
I guess you can drop
omap2_init_devices()completly?We still have
omap_init_sti()left there, but it's just static inline voidomap_init_sti(void){} :)So yeah will remove that too.
Here's this one updated.
Regards,
Tony
8< -----------------
Quoted 1 line
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Wed, 31 May 2017 15:51:32 -0700
Subject: [PATCH] ARM: OMAP2+: Remove unused legacy code for device init
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
Note that omap_init_sti() won't do anything so we can remove omap2_init_devices() as pointed out by Sebastian Reichel <[email protected]>.
--- arch/arm/mach-omap2/devices.c | 175 ------------------------------------------ 1 file changed, 175 deletions(-)
arch/arm/mach-omap2/devices.c +0 -175
@@ -36,130 +36,6 @@#define L3_MODULES_MAX_LEN 12#define L3_MODULES 3 -static int __init omap3_l3_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char oh_name[L3_MODULES_MAX_LEN ]; - -/* -* To avoid code running on other OMAPs in -* multi-omap builds -*/ -if (!(cpu_is_omap34xx ()) ||of_have_populated_dt ()) -return -ENODEV ; - -snprintf (oh_name,L3_MODULES_MAX_LEN ,"l3_main" ); - - oh =omap_hwmod_lookup (oh_name); - -if (!oh) -pr_err ("could not look up %s\n" , oh_name); - - pdev =omap_device_build ("omap_l3_smx" ,0 , oh,NULL ,0 ); - -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap3_l3_init); - -static inline void omap_init_sti (void ) {} - -#if IS_ENABLED (CONFIG_SPI_OMAP24XX ) - -#include <linux/platform_data/spi-omap2-mcspi.h> - -static int __init omap_mcspi_init (struct omap_hwmod *oh,void *unused) -{ -struct platform_device *pdev; -char *name ="omap2_mcspi" ; -struct omap2_mcspi_platform_config *pdata; -static int spi_num; -struct omap2_mcspi_dev_attr *mcspi_attrib = oh->dev_attr; - - pdata =kzalloc (sizeof (*pdata),GFP_KERNEL ); -if (!pdata) { -pr_err ("Memory allocation for McSPI device failed\n" ); -return -ENOMEM ; - } - - pdata->num_cs = mcspi_attrib->num_chipselect; -switch (oh->class->rev) { -case OMAP2_MCSPI_REV : -case OMAP3_MCSPI_REV : - pdata->regs_offset =0 ; -break ; -case OMAP4_MCSPI_REV : - pdata->regs_offset =OMAP4_MCSPI_REG_OFFSET ; -break ; -default : -pr_err ("Invalid McSPI Revision value\n" ); -kfree (pdata); -return -EINVAL ; - } - - spi_num++; - pdev =omap_device_build (name, spi_num, oh, pdata,sizeof (*pdata)); -WARN (IS_ERR (pdev),"Can't build omap_device for %s:%s\n" , - name, oh->name); -kfree (pdata); -return 0 ; -} - -static void omap_init_mcspi (void ) -{ -omap_hwmod_for_each_by_class ("mcspi" , omap_mcspi_init,NULL ); -} - -#else -static inline void omap_init_mcspi (void ) {} -#endif - -/** -* omap_init_rng - bind the RNG hwmod to the RNG omap_device -* -* Bind the RNG hwmod to the RNG omap_device. No return value. -*/ -static void __init omap_init_rng (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("rng" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap_rng" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap_rng\n" ); -} - -static void __init omap_init_sham (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("sham" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-sham" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-sham\n" ); -} - -static void __init omap_init_aes (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("aes" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-aes" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-aes\n" ); -} -/*-------------------------------------------------------------------------*/ #if IS_ENABLED (CONFIG_VIDEO_OMAP2_VOUT )
@@ -185,54 +61,3 @@ int __init omap_init_vout(void)#else int __init omap_init_vout (void ) {return 0 ; }#endif - -/*-------------------------------------------------------------------------*/ - -static int __init omap2_init_devices (void ) -{ -/* Enable dummy states for those platforms without pinctrl support */ -if (!of_have_populated_dt ()) -pinctrl_provide_dummies (); - -/* If dtb is there, the devices will be created dynamically */ -if (!of_have_populated_dt ()) { -/* -* please keep these calls, and their implementations above, -* in alphabetical order so they're easier to sort through. -*/ -omap_init_mcspi (); -omap_init_sham (); -omap_init_aes (); -omap_init_rng (); - } -omap_init_sti (); - -return 0 ; -} -omap_arch_initcall (omap2_init_devices); - -static int __init omap_gpmc_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char *oh_name ="gpmc" ; - -/* -* if the board boots up with a populated DT, do not -* manually add the device from this initcall -*/ -if (of_have_populated_dt ()) -return -ENODEV ; - - oh =omap_hwmod_lookup (oh_name); -if (!oh) { -pr_err ("Could not look up %s\n" , oh_name); -return -ENODEV ; - } - - pdev =omap_device_build ("omap-gpmc" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap_gpmc_init);
Signature · 1 line
2.13.0
PATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
Hi,
Quoted 10 lines · Tony Lindgren
Quoted 7 lines · Tony Lindgren
Quoted 1 line · Sebastian Reichel
I guess you can drop
omap2_init_devices()completly?We still have
omap_init_sti()left there, but it's just static inline voidomap_init_sti(void){} :)So yeah will remove that too.
Here's this one updated.
Defines for L3_MODULES_MAX_LEN + L3_MODULES and most of the includes could be dropped now.
-- Sebastian
Quoted 210 lines
8< -----------------
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Wed, 31 May 2017 15:51:32 -0700
Subject: [PATCH] ARM: OMAP2+: Remove unused legacy code for device initWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now.Note that
omap_init_sti()won't do anything so we can removeomap2_init_devices()as pointed out by Sebastian Reichel <[email protected]>.Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/devices.c | 175 ------------------------------------------ 1 file changed, 175 deletions(-)arch/arm/mach-omap2/devices.c +0
-175@@ -36,130 +36,6 @@#define L3_MODULES_MAX_LEN 12#define L3_MODULES 3 -static int __init omap3_l3_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char oh_name[L3_MODULES_MAX_LEN ]; - -/* -* To avoid code running on other OMAPs in -* multi-omap builds -*/ -if (!(cpu_is_omap34xx ()) ||of_have_populated_dt ()) -return -ENODEV ; - -snprintf (oh_name,L3_MODULES_MAX_LEN ,"l3_main" ); - - oh =omap_hwmod_lookup (oh_name); - -if (!oh) -pr_err ("could not look up %s\n" , oh_name); - - pdev =omap_device_build ("omap_l3_smx" ,0 , oh,NULL ,0 ); - -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap3_l3_init); - -static inline void omap_init_sti (void ) {} - -#if IS_ENABLED (CONFIG_SPI_OMAP24XX ) - -#include <linux/platform_data/spi-omap2-mcspi.h> - -static int __init omap_mcspi_init (struct omap_hwmod *oh,void *unused) -{ -struct platform_device *pdev; -char *name ="omap2_mcspi" ; -struct omap2_mcspi_platform_config *pdata; -static int spi_num; -struct omap2_mcspi_dev_attr *mcspi_attrib = oh->dev_attr; - - pdata =kzalloc (sizeof (*pdata),GFP_KERNEL ); -if (!pdata) { -pr_err ("Memory allocation for McSPI device failed\n" ); -return -ENOMEM ; - } - - pdata->num_cs = mcspi_attrib->num_chipselect; -switch (oh->class->rev) { -case OMAP2_MCSPI_REV : -case OMAP3_MCSPI_REV : - pdata->regs_offset =0 ; -break ; -case OMAP4_MCSPI_REV : - pdata->regs_offset =OMAP4_MCSPI_REG_OFFSET ; -break ; -default : -pr_err ("Invalid McSPI Revision value\n" ); -kfree (pdata); -return -EINVAL ; - } - - spi_num++; - pdev =omap_device_build (name, spi_num, oh, pdata,sizeof (*pdata)); -WARN (IS_ERR (pdev),"Can't build omap_device for %s:%s\n" , - name, oh->name); -kfree (pdata); -return 0 ; -} - -static void omap_init_mcspi (void ) -{ -omap_hwmod_for_each_by_class ("mcspi" , omap_mcspi_init,NULL ); -} - -#else -static inline void omap_init_mcspi (void ) {} -#endif - -/** -* omap_init_rng - bind the RNG hwmod to the RNG omap_device -* -* Bind the RNG hwmod to the RNG omap_device. No return value. -*/ -static void __init omap_init_rng (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("rng" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap_rng" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap_rng\n" ); -} - -static void __init omap_init_sham (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("sham" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-sham" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-sham\n" ); -} - -static void __init omap_init_aes (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; - - oh =omap_hwmod_lookup ("aes" ); -if (!oh) -return ; - - pdev =omap_device_build ("omap-aes" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"Can't build omap_device for omap-aes\n" ); -} -/*-------------------------------------------------------------------------*/ #if IS_ENABLED (CONFIG_VIDEO_OMAP2_VOUT )@@ -185,54 +61,3 @@ int __init omap_init_vout(void)#else int __init omap_init_vout (void ) {return 0 ; }#endif - -/*-------------------------------------------------------------------------*/ - -static int __init omap2_init_devices (void ) -{ -/* Enable dummy states for those platforms without pinctrl support */ -if (!of_have_populated_dt ()) -pinctrl_provide_dummies (); - -/* If dtb is there, the devices will be created dynamically */ -if (!of_have_populated_dt ()) { -/* -* please keep these calls, and their implementations above, -* in alphabetical order so they're easier to sort through. -*/ -omap_init_mcspi (); -omap_init_sham (); -omap_init_aes (); -omap_init_rng (); - } -omap_init_sti (); - -return 0 ; -} -omap_arch_initcall (omap2_init_devices); - -static int __init omap_gpmc_init (void ) -{ -struct omap_hwmod *oh; -struct platform_device *pdev; -char *oh_name ="gpmc" ; - -/* -* if the board boots up with a populated DT, do not -* manually add the device from this initcall -*/ -if (of_have_populated_dt ()) -return -ENODEV ; - - oh =omap_hwmod_lookup (oh_name); -if (!oh) { -pr_err ("Could not look up %s\n" , oh_name); -return -ENODEV ; - } - - pdev =omap_device_build ("omap-gpmc" ,-1 , oh,NULL ,0 ); -WARN (IS_ERR (pdev),"could not build omap_device for %s\n" , oh_name); - -return PTR_ERR_OR_ZERO (pdev); -} -omap_postcore_initcall (omap_gpmc_init);Signature · 1 line
2.13.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170608/a39a2270/attachment.sig>
Tony Lindgren
maintainerPATCH 4/11 ARM: OMAP2+: Remove unused legacy code for device init
Quoted 4 lines · Sebastian Reichel
Quoted 1 line · Tony Lindgren
Here's this one updated.
Reviewed-by Sebastian Reichel <[email protected]>
Thanks for looking.
Quoted 2 lines
Defines for
L3_MODULES_MAX_LEN+L3_MODULESand most of the includes could be dropped now.
Yeah I bet we have tons of unused defines now. I think I used to have some shell script to grep for those somewhere.
Regards,
Tony
Tony Lindgren
maintainerPATCH 5/11 ARM: OMAP2+: Remove unused legacy code for McBSP
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/mcbsp.c | 70 --------------------------------------------- 1 file changed, 70 deletions(-)
arch/arm/mach-omap2/mcbsp.c +0 -70
@@ -53,73 +53,3 @@ void __init omap3_mcbsp_init_pdata_callback( pdata->force_ick_on = omap3_mcbsp_force_ick_on; } - -static int __init omap_init_mcbsp (struct omap_hwmod *oh,void *unused) -{ -int id, count =1 ; -char *name ="omap-mcbsp" ; -struct omap_hwmod *oh_device[2 ]; -struct omap_mcbsp_platform_data *pdata =NULL ; -struct platform_device *pdev; - -sscanf (oh->name,"mcbsp%d" , &id); - - pdata =kzalloc (sizeof (struct omap_mcbsp_platform_data ),GFP_KERNEL ); -if (!pdata) { -pr_err ("%s: No memory for mcbsp\n" , __func__); -return -ENOMEM ; - } - - pdata->reg_step =4 ; -if (oh->class->rev <MCBSP_CONFIG_TYPE2 ) { - pdata->reg_size =2 ; - }else { - pdata->reg_size =4 ; - pdata->has_ccr = true; - } - -if (oh->class->rev ==MCBSP_CONFIG_TYPE2 ) { -/* The FIFO has 128 locations */ - pdata->buffer_size =0x80 ; - }else if (oh->class->rev ==MCBSP_CONFIG_TYPE3 ) { -if (id ==2 ) -/* The FIFO has 1024 + 256 locations */ - pdata->buffer_size =0x500 ; -else -/* The FIFO has 128 locations */ - pdata->buffer_size =0x80 ; - }else if (oh->class->rev ==MCBSP_CONFIG_TYPE4 ) { -/* The FIFO has 128 locations for all instances */ - pdata->buffer_size =0x80 ; - } - -if (oh->class->rev >=MCBSP_CONFIG_TYPE3 ) - pdata->has_wakeup = true; - - oh_device[0 ] = oh; - -if (oh->dev_attr) { - oh_device[1 ] =omap_hwmod_lookup (( - (struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone); - pdata->force_ick_on = omap3_mcbsp_force_ick_on; - count++; - } - pdev =omap_device_build_ss (name, id, oh_device, count, pdata, -sizeof (*pdata)); -kfree (pdata); -if (IS_ERR (pdev)) { -pr_err ("%s: Can't build omap_device for %s:%s.\n" , __func__, - name, oh->name); -return PTR_ERR (pdev); - } -return 0 ; -} - -static int __init omap2_mcbsp_init (void ) -{ -if (!of_have_populated_dt ()) -omap_hwmod_for_each_by_class ("mcbsp" , omap_init_mcbsp,NULL ); - -return 0 ; -} -omap_arch_initcall (omap2_mcbsp_init);
Signature · 1 line
2.13.0
PATCH 5/11 ARM: OMAP2+: Remove unused legacy code for McBSP
Quoted 5 lines · Tony Lindgren
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now.Signed-off-by Tony Lindgren <[email protected]>
Quoted 72 lines
--- arch/arm/mach-omap2/mcbsp.c | 70 --------------------------------------------- 1 file changed, 70 deletions(-)arch/arm/mach-omap2/mcbsp.c +0
-60@@ -53,73 +53,3 @@ void __init omap3_mcbsp_init_pdata_callback( pdata->force_ick_on = omap3_mcbsp_force_ick_on; } - -static int __init omap_init_mcbsp (struct omap_hwmod *oh,void *unused) -{ -int id, count =1 ; -char *name ="omap-mcbsp" ; -struct omap_hwmod *oh_device[2 ]; -struct omap_mcbsp_platform_data *pdata =NULL ; -struct platform_device *pdev; - -sscanf (oh->name,"mcbsp%d" , &id); - - pdata =kzalloc (sizeof (struct omap_mcbsp_platform_data ),GFP_KERNEL ); -if (!pdata) { -pr_err ("%s: No memory for mcbsp\n" , __func__); -return -ENOMEM ; - } - - pdata->reg_step =4 ; -if (oh->class->rev <MCBSP_CONFIG_TYPE2 ) { - pdata->reg_size =2 ; - }else { - pdata->reg_size =4 ; - pdata->has_ccr = true; - } - -if (oh->class->rev ==MCBSP_CONFIG_TYPE2 ) { -/* The FIFO has 128 locations */ - pdata->buffer_size =0x80 ; - }else if (oh->class->rev ==MCBSP_CONFIG_TYPE3 ) { -if (id ==2 ) -/* The FIFO has 1024 + 256 locations */ - pdata->buffer_size =0x500 ; -else -/* The FIFO has 128 locations */ - pdata->buffer_size =0x80 ; - }else if (oh->class->rev ==MCBSP_CONFIG_TYPE4 ) { -/* The FIFO has 128 locations for all instances */ - pdata->buffer_size =0x80 ; - } - -if (oh->class->rev >=MCBSP_CONFIG_TYPE3 ) - pdata->has_wakeup = true; - - oh_device[0 ] = oh; - -if (oh->dev_attr) { - oh_device[1 ] =omap_hwmod_lookup (( - (struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone); - pdata->force_ick_on = omap3_mcbsp_force_ick_on; - count++; - } - pdev =omap_device_build_ss (name, id, oh_device, count, pdata, -sizeof (*pdata)); -kfree (pdata); -if (IS_ERR (pdev)) { -pr_err ("%s: Can't build omap_device for %s:%s.\n" , __func__, - name, oh->name); -return PTR_ERR (pdev); - } -return 0 ;
arch/arm/mach-omap2/mcbsp.c void __init omap3_mcbsp_init_pdata_callback( · line 125
Quoted 10 lines
arch/arm/mach-omap2/mcbsp.c +0
-10-} - -static int __init omap2_mcbsp_init (void ) -{ -if (!of_have_populated_dt ()) -omap_hwmod_for_each_by_class ("mcbsp" , omap_init_mcbsp,NULL ); - -return 0 ; -} -omap_arch_initcall (omap2_mcbsp_init);
- P?ter
Tony Lindgren
maintainerPATCH 6/11 ARM: OMAP2+: Remove unused legacy code for io.c
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/io.c | 59 ++++++++++++------------------------------------ 1 file changed, 14 insertions(+), 45 deletions(-)
arch/arm/mach-omap2/io.c +14 -45
@@ -493,67 +493,39 @@ void __init omap3_init_early(void)omap2_set_globals_tap (OMAP343X_CLASS ,OMAP2_L4_IO_ADDRESS (0x4830A000 ));omap2_set_globals_sdrc (OMAP2_L3_IO_ADDRESS (OMAP343X_SDRC_BASE ),OMAP2_L3_IO_ADDRESS (OMAP343X_SMS_BASE )); -/* XXX: remove these once OMAP3 is DT only */ -if (!of_have_populated_dt ()) { -omap2_set_globals_control ( -OMAP2_L4_IO_ADDRESS (OMAP343X_CTRL_BASE )); -omap2_set_globals_prm (OMAP2_L4_IO_ADDRESS (OMAP3430_PRM_BASE )); -omap2_set_globals_cm (OMAP2_L4_IO_ADDRESS (OMAP3430_CM_BASE ), -NULL ); - }omap2_control_base_init ();omap3xxx_check_revision ();omap3xxx_check_features ();omap2_prcm_base_init (); -/* XXX: remove these once OMAP3 is DT only */ -if (!of_have_populated_dt ()) { -omap3xxx_prm_init (NULL ); -omap3xxx_cm_init (NULL ); - }omap3xxx_voltagedomains_init ();omap3xxx_powerdomains_init ();omap3xxx_clockdomains_init ();omap3xxx_hwmod_init ();omap_hwmod_init_postsetup (); -if (!of_have_populated_dt ()) { -omap3_control_legacy_iomap_init (); -if (soc_is_am35xx ()) - omap_clk_soc_init = am35xx_clk_legacy_init; -else if (cpu_is_omap3630 ()) - omap_clk_soc_init = omap36xx_clk_legacy_init; -else if (omap_rev () ==OMAP3430_REV_ES1_0 ) - omap_clk_soc_init = omap3430es1_clk_legacy_init; -else - omap_clk_soc_init = omap3430_clk_legacy_init; - } }void __init omap3430_init_early (void ) {omap3_init_early (); -if (of_have_populated_dt ()) - omap_clk_soc_init = omap3430_dt_clk_init; + omap_clk_soc_init = omap3430_dt_clk_init; }void __init omap35xx_init_early (void ) {omap3_init_early (); -if (of_have_populated_dt ()) - omap_clk_soc_init = omap3430_dt_clk_init; + omap_clk_soc_init = omap3430_dt_clk_init; }void __init omap3630_init_early (void ) {omap3_init_early (); -if (of_have_populated_dt ()) - omap_clk_soc_init = omap3630_dt_clk_init; + omap_clk_soc_init = omap3630_dt_clk_init; }void __init am35xx_init_early (void ) {omap3_init_early (); -if (of_have_populated_dt ()) - omap_clk_soc_init = am35xx_dt_clk_init; + omap_clk_soc_init = am35xx_dt_clk_init; }void __init omap3_init_late (void )
@@ -628,8 +600,7 @@ void __init ti816x_init_early(void)ti816x_clockdomains_init ();dm816x_hwmod_init ();omap_hwmod_init_postsetup (); -if (of_have_populated_dt ()) - omap_clk_soc_init = dm816x_dt_clk_init; + omap_clk_soc_init = dm816x_dt_clk_init; }#endif
@@ -785,21 +756,19 @@ int __init omap_clk_init(void)omap2_clk_setup_ll_ops (); -if (of_have_populated_dt ()) { - ret =omap_control_init (); -if (ret) -return ret; + ret =omap_control_init (); +if (ret) +return ret; - ret =omap_prcm_init (); -if (ret) -return ret; + ret =omap_prcm_init (); +if (ret) +return ret; -of_clk_init (NULL ); +of_clk_init (NULL ); -ti_dt_clk_init_retry_clks (); +ti_dt_clk_init_retry_clks (); -ti_dt_clockdomains_setup (); - } +ti_dt_clockdomains_setup (); ret =omap_clk_soc_init ();
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/dma.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-)
arch/arm/mach-omap2/dma.c +1 -29
@@ -334,20 +334,6 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; p.errata =configure_dma_errata (); -if (!of_have_populated_dt ()) { -if (soc_is_omap24xx ()) { - p.slave_map = omap24xx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap24xx_sdma_map); - }else if (soc_is_omap34xx () ||soc_is_omap3630 ()) { - p.slave_map = omap3xxx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap3xxx_sdma_map); - }else { -pr_err ("%s: The legacy DMA map is not provided!\n" , - __func__); -return -ENODEV ; - } - } - pdev =omap_device_build (name,0 , oh, &p,sizeof (p));if (IS_ERR (pdev)) { pr_err("%s: Can't build omap_device for %s:%s.\n",
@@ -389,21 +375,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)static int __init omap2_system_dma_init (void ) { -struct platform_device *pdev; -int res; - - res =omap_hwmod_for_each_by_class ("dma" , +return omap_hwmod_for_each_by_class ("dma" , omap2_system_dma_init_dev,NULL ); -if (res) -return res; - -if (of_have_populated_dt ()) -return res; - - pdev =platform_device_register_full (&omap_dma_dev_info); -if (IS_ERR (pdev)) -return PTR_ERR (pdev); - -return res; }omap_arch_initcall (omap2_system_dma_init);
Signature · 1 line
2.13.0
PATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Tony,
Quoted 20 lines · Tony Lindgren
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now.Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/dma.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-)arch/arm/mach-omap2/dma.c +0
-4@@ -334,20 +334,6 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; p.errata =configure_dma_errata (); -if (!of_have_populated_dt ()) { -if (soc_is_omap24xx ()) { - p.slave_map = omap24xx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap24xx_sdma_map);
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 350
Quoted 10 lines
arch/arm/mach-omap2/dma.c +0
-10- }else if (soc_is_omap34xx () ||soc_is_omap3630 ()) { - p.slave_map = omap3xxx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap3xxx_sdma_map); - }else { -pr_err ("%s: The legacy DMA map is not provided!\n" , - __func__); -return -ENODEV ; - } - } -
This will conflict with the changes introduced by the tusb6010 DMAengine conversion:
https://patchwork.kernel.org/patch/9734219/
with this patch I think the omap24xx_sdma_map and omap3xxx_sdma_map can also be removed, but we need to keep the omap24xx_sdma_dt_map for now till we have proper DT support for tusb.
Quoted 17 lines
arch/arm/mach-omap2/dma.c +1
-7pdev =omap_device_build (name,0 , oh, &p,sizeof (p));if (IS_ERR (pdev)) { pr_err("%s: Can't build omap_device for %s:%s.\n",@@ -389,21 +375,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)static int __init omap2_system_dma_init (void ) { -struct platform_device *pdev; -int res; - - res =omap_hwmod_for_each_by_class ("dma" , +return omap_hwmod_for_each_by_class ("dma" , omap2_system_dma_init_dev,NULL ); -if (res) -return res; -
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 381
Quoted 10 lines
arch/arm/mach-omap2/dma.c +0
-8-if (of_have_populated_dt ()) -return res; - - pdev =platform_device_register_full (&omap_dma_dev_info); -if (IS_ERR (pdev)) -return PTR_ERR (pdev); - -return res; }omap_arch_initcall (omap2_system_dma_init);
- P?ter
Tony Lindgren
maintainerPATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Quoted 17 lines · Peter Ujfalusi
Quoted 16 lines · Tony Lindgren
arch/arm/mach-omap2/dma.c +0
-10@@ -334,20 +334,6 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; p.errata =configure_dma_errata (); -if (!of_have_populated_dt ()) { -if (soc_is_omap24xx ()) { - p.slave_map = omap24xx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap24xx_sdma_map); - }else if (soc_is_omap34xx () ||soc_is_omap3630 ()) { - p.slave_map = omap3xxx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap3xxx_sdma_map); - }else { -pr_err ("%s: The legacy DMA map is not provided!\n" , - __func__);
Quoted 8 lines
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 350
Quoted 4 lines
arch/arm/mach-omap2/dma.c +0
-4-return -ENODEV ; - } - } -This will conflict with the changes introduced by the tusb6010 DMAengine conversion:
https://patchwork.kernel.org/patch/9734219/
Oops forgot about that one. I'll take a look if it makes sense to leave the braces for now to avoid a merge conflict.
Quoted 3 lines
with this patch I think the
omap24xx_sdma_mapandomap3xxx_sdma_mapcan also be removed, but we need to keep theomap24xx_sdma_dt_mapfor now till we have proper DT support for tusb.
OK good point, will check.
Regards,
Tony
Tony Lindgren
maintainerPATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Quoted 6 lines · Tony Lindgren
Quoted 4 lines · Peter Ujfalusi
This will conflict with the changes introduced by the tusb6010 DMAengine conversion:
https://patchwork.kernel.org/patch/9734219/
Quoted 8 lines
Oops forgot about that one. I'll take a look if it makes sense to leave the braces for now to avoid a merge conflict.
Quoted 3 lines
with this patch I think the
omap24xx_sdma_mapandomap3xxx_sdma_mapcan also be removed, but we need to keep theomap24xx_sdma_dt_mapfor now till we have proper DT support for tusb.OK good point, will check.
Here's this one updated.
Regards,
Tony
8< ------------------
Quoted 1 line
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Wed, 31 May 2017 15:51:35 -0700
Subject: [PATCH] ARM: OMAP2+: Remove unused legacy code for DMA
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
Let's leave the dummy omap2_system_dma_init_dev() check in place for now to avoid a pointless merge conflict with tusb6010 dmaengine conversion as pointed out by Peter Ujfalusi <[email protected]>.
--- arch/arm/mach-omap2/dma.c | 125 +--------------------------------------------- 1 file changed, 2 insertions(+), 123 deletions(-)
arch/arm/mach-omap2/dma.c +2 -123
@@ -204,108 +204,6 @@ static unsigned configure_dma_errata(void)return errata; } -static const struct dma_slave_map omap24xx_sdma_map[] = { - {"omap-gpmc" ,"rxtx" ,SDMA_FILTER_PARAM (4 ) }, - {"omap-aes" ,"tx" ,SDMA_FILTER_PARAM (9 ) }, - {"omap-aes" ,"rx" ,SDMA_FILTER_PARAM (10 ) }, - {"omap-sham" ,"rx" ,SDMA_FILTER_PARAM (13 ) }, - {"omap2_mcspi.2" ,"tx0" ,SDMA_FILTER_PARAM (15 ) }, - {"omap2_mcspi.2" ,"rx0" ,SDMA_FILTER_PARAM (16 ) }, - {"omap-mcbsp.3" ,"tx" ,SDMA_FILTER_PARAM (17 ) }, - {"omap-mcbsp.3" ,"rx" ,SDMA_FILTER_PARAM (18 ) }, - {"omap-mcbsp.4" ,"tx" ,SDMA_FILTER_PARAM (19 ) }, - {"omap-mcbsp.4" ,"rx" ,SDMA_FILTER_PARAM (20 ) }, - {"omap-mcbsp.5" ,"tx" ,SDMA_FILTER_PARAM (21 ) }, - {"omap-mcbsp.5" ,"rx" ,SDMA_FILTER_PARAM (22 ) }, - {"omap2_mcspi.2" ,"tx1" ,SDMA_FILTER_PARAM (23 ) }, - {"omap2_mcspi.2" ,"rx1" ,SDMA_FILTER_PARAM (24 ) }, - {"omap_i2c.1" ,"tx" ,SDMA_FILTER_PARAM (27 ) }, - {"omap_i2c.1" ,"rx" ,SDMA_FILTER_PARAM (28 ) }, - {"omap_i2c.2" ,"tx" ,SDMA_FILTER_PARAM (29 ) }, - {"omap_i2c.2" ,"rx" ,SDMA_FILTER_PARAM (30 ) }, - {"omap-mcbsp.1" ,"tx" ,SDMA_FILTER_PARAM (31 ) }, - {"omap-mcbsp.1" ,"rx" ,SDMA_FILTER_PARAM (32 ) }, - {"omap-mcbsp.2" ,"tx" ,SDMA_FILTER_PARAM (33 ) }, - {"omap-mcbsp.2" ,"rx" ,SDMA_FILTER_PARAM (34 ) }, - {"omap2_mcspi.0" ,"tx0" ,SDMA_FILTER_PARAM (35 ) }, - {"omap2_mcspi.0" ,"rx0" ,SDMA_FILTER_PARAM (36 ) }, - {"omap2_mcspi.0" ,"tx1" ,SDMA_FILTER_PARAM (37 ) }, - {"omap2_mcspi.0" ,"rx1" ,SDMA_FILTER_PARAM (38 ) }, - {"omap2_mcspi.0" ,"tx2" ,SDMA_FILTER_PARAM (39 ) }, - {"omap2_mcspi.0" ,"rx2" ,SDMA_FILTER_PARAM (40 ) }, - {"omap2_mcspi.0" ,"tx3" ,SDMA_FILTER_PARAM (41 ) }, - {"omap2_mcspi.0" ,"rx3" ,SDMA_FILTER_PARAM (42 ) }, - {"omap2_mcspi.1" ,"tx0" ,SDMA_FILTER_PARAM (43 ) }, - {"omap2_mcspi.1" ,"rx0" ,SDMA_FILTER_PARAM (44 ) }, - {"omap2_mcspi.1" ,"tx1" ,SDMA_FILTER_PARAM (45 ) }, - {"omap2_mcspi.1" ,"rx1" ,SDMA_FILTER_PARAM (46 ) }, - {"omap_hsmmc.1" ,"tx" ,SDMA_FILTER_PARAM (47 ) }, - {"omap_hsmmc.1" ,"rx" ,SDMA_FILTER_PARAM (48 ) }, - {"omap_uart.0" ,"tx" ,SDMA_FILTER_PARAM (49 ) }, - {"omap_uart.0" ,"rx" ,SDMA_FILTER_PARAM (50 ) }, - {"omap_uart.1" ,"tx" ,SDMA_FILTER_PARAM (51 ) }, - {"omap_uart.1" ,"rx" ,SDMA_FILTER_PARAM (52 ) }, - {"omap_uart.2" ,"tx" ,SDMA_FILTER_PARAM (53 ) }, - {"omap_uart.2" ,"rx" ,SDMA_FILTER_PARAM (54 ) }, - {"omap_hsmmc.0" ,"tx" ,SDMA_FILTER_PARAM (61 ) }, - {"omap_hsmmc.0" ,"rx" ,SDMA_FILTER_PARAM (62 ) }, -}; - -static const struct dma_slave_map omap3xxx_sdma_map[] = { - {"omap-gpmc" ,"rxtx" ,SDMA_FILTER_PARAM (4 ) }, - {"omap2_mcspi.2" ,"tx0" ,SDMA_FILTER_PARAM (15 ) }, - {"omap2_mcspi.2" ,"rx0" ,SDMA_FILTER_PARAM (16 ) }, - {"omap-mcbsp.3" ,"tx" ,SDMA_FILTER_PARAM (17 ) }, - {"omap-mcbsp.3" ,"rx" ,SDMA_FILTER_PARAM (18 ) }, - {"omap-mcbsp.4" ,"tx" ,SDMA_FILTER_PARAM (19 ) }, - {"omap-mcbsp.4" ,"rx" ,SDMA_FILTER_PARAM (20 ) }, - {"omap-mcbsp.5" ,"tx" ,SDMA_FILTER_PARAM (21 ) }, - {"omap-mcbsp.5" ,"rx" ,SDMA_FILTER_PARAM (22 ) }, - {"omap2_mcspi.2" ,"tx1" ,SDMA_FILTER_PARAM (23 ) }, - {"omap2_mcspi.2" ,"rx1" ,SDMA_FILTER_PARAM (24 ) }, - {"omap_i2c.3" ,"tx" ,SDMA_FILTER_PARAM (25 ) }, - {"omap_i2c.3" ,"rx" ,SDMA_FILTER_PARAM (26 ) }, - {"omap_i2c.1" ,"tx" ,SDMA_FILTER_PARAM (27 ) }, - {"omap_i2c.1" ,"rx" ,SDMA_FILTER_PARAM (28 ) }, - {"omap_i2c.2" ,"tx" ,SDMA_FILTER_PARAM (29 ) }, - {"omap_i2c.2" ,"rx" ,SDMA_FILTER_PARAM (30 ) }, - {"omap-mcbsp.1" ,"tx" ,SDMA_FILTER_PARAM (31 ) }, - {"omap-mcbsp.1" ,"rx" ,SDMA_FILTER_PARAM (32 ) }, - {"omap-mcbsp.2" ,"tx" ,SDMA_FILTER_PARAM (33 ) }, - {"omap-mcbsp.2" ,"rx" ,SDMA_FILTER_PARAM (34 ) }, - {"omap2_mcspi.0" ,"tx0" ,SDMA_FILTER_PARAM (35 ) }, - {"omap2_mcspi.0" ,"rx0" ,SDMA_FILTER_PARAM (36 ) }, - {"omap2_mcspi.0" ,"tx1" ,SDMA_FILTER_PARAM (37 ) }, - {"omap2_mcspi.0" ,"rx1" ,SDMA_FILTER_PARAM (38 ) }, - {"omap2_mcspi.0" ,"tx2" ,SDMA_FILTER_PARAM (39 ) }, - {"omap2_mcspi.0" ,"rx2" ,SDMA_FILTER_PARAM (40 ) }, - {"omap2_mcspi.0" ,"tx3" ,SDMA_FILTER_PARAM (41 ) }, - {"omap2_mcspi.0" ,"rx3" ,SDMA_FILTER_PARAM (42 ) }, - {"omap2_mcspi.1" ,"tx0" ,SDMA_FILTER_PARAM (43 ) }, - {"omap2_mcspi.1" ,"rx0" ,SDMA_FILTER_PARAM (44 ) }, - {"omap2_mcspi.1" ,"tx1" ,SDMA_FILTER_PARAM (45 ) }, - {"omap2_mcspi.1" ,"rx1" ,SDMA_FILTER_PARAM (46 ) }, - {"omap_hsmmc.1" ,"tx" ,SDMA_FILTER_PARAM (47 ) }, - {"omap_hsmmc.1" ,"rx" ,SDMA_FILTER_PARAM (48 ) }, - {"omap_uart.0" ,"tx" ,SDMA_FILTER_PARAM (49 ) }, - {"omap_uart.0" ,"rx" ,SDMA_FILTER_PARAM (50 ) }, - {"omap_uart.1" ,"tx" ,SDMA_FILTER_PARAM (51 ) }, - {"omap_uart.1" ,"rx" ,SDMA_FILTER_PARAM (52 ) }, - {"omap_uart.2" ,"tx" ,SDMA_FILTER_PARAM (53 ) }, - {"omap_uart.2" ,"rx" ,SDMA_FILTER_PARAM (54 ) }, - {"omap_hsmmc.0" ,"tx" ,SDMA_FILTER_PARAM (61 ) }, - {"omap_hsmmc.0" ,"rx" ,SDMA_FILTER_PARAM (62 ) }, - {"omap-aes" ,"tx" ,SDMA_FILTER_PARAM (65 ) }, - {"omap-aes" ,"rx" ,SDMA_FILTER_PARAM (66 ) }, - {"omap-sham" ,"rx" ,SDMA_FILTER_PARAM (69 ) }, - {"omap2_mcspi.3" ,"tx0" ,SDMA_FILTER_PARAM (70 ) }, - {"omap2_mcspi.3" ,"rx0" ,SDMA_FILTER_PARAM (71 ) }, - {"omap_hsmmc.2" ,"tx" ,SDMA_FILTER_PARAM (77 ) }, - {"omap_hsmmc.2" ,"rx" ,SDMA_FILTER_PARAM (78 ) }, - {"omap_uart.3" ,"tx" ,SDMA_FILTER_PARAM (81 ) }, - {"omap_uart.3" ,"rx" ,SDMA_FILTER_PARAM (82 ) }, -}; -static struct omap_system_dma_plat_info dma_plat_info__initdata = { .reg_map = reg_map, .channel_stride =0x60 ,
@@ -334,14 +232,9 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; p.errata =configure_dma_errata (); +/* REVISIT: Remove after v4.13 with a follow-up patch */ if (!of_have_populated_dt ()) {if (soc_is_omap24xx ()) { - p.slave_map = omap24xx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap24xx_sdma_map); - }else if (soc_is_omap34xx () ||soc_is_omap3630 ()) { - p.slave_map = omap3xxx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap3xxx_sdma_map); - }else {pr_err ("%s: The legacy DMA map is not provided!\n" , __func__);return -ENODEV ;
@@ -389,21 +282,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)static int __init omap2_system_dma_init (void ) { -struct platform_device *pdev; -int res; - - res =omap_hwmod_for_each_by_class ("dma" , +return omap_hwmod_for_each_by_class ("dma" , omap2_system_dma_init_dev,NULL ); -if (res) -return res; - -if (of_have_populated_dt ()) -return res; - - pdev =platform_device_register_full (&omap_dma_dev_info); -if (IS_ERR (pdev)) -return PTR_ERR (pdev); - -return res; }omap_arch_initcall (omap2_system_dma_init);
Signature · 1 line
2.13.0
PATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Tony,
Quoted 28 lines · Tony Lindgren
Quoted 6 lines · Tony Lindgren
Quoted 4 lines · Peter Ujfalusi
This will conflict with the changes introduced by the tusb6010 DMAengine conversion:
https://patchwork.kernel.org/patch/9734219/Quoted 8 lines
Oops forgot about that one. I'll take a look if it makes sense to leave the braces for now to avoid a merge conflict.
Quoted 3 lines
with this patch I think the
omap24xx_sdma_mapandomap3xxx_sdma_mapcan also be removed, but we need to keep theomap24xx_sdma_dt_mapfor now till we have proper DT support for tusb.OK good point, will check.
Here's this one updated.
Regards,
Tony
8< ------------------
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Wed, 31 May 2017 15:51:35 -0700
Subject: [PATCH] ARM: OMAP2+: Remove unused legacy code for DMA
Quoted 8 lines
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now.Let's leave the dummy
omap2_system_dma_init_dev()check in place for now to avoid a pointless merge conflict with tusb6010 dmaengine conversion as pointed out by Peter Ujfalusi <[email protected]>.
unfortunately we still have conflict as the
https://patchwork.kernel.org/patch/9734219/
adds entries to omap24xx_sdma_map[] for - back then - valid non DT boot support.
I have rebased and reworked my patch locally on top of your v1, but things must go in in a certain order to avoid conflict.
The tsub conversion series in not yet in linux-next, but afaik Bin already applied it to somewhere.
Leave the mach-omap2/dma.c cleanup for -rc1?
Quoted 148 lines
Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/dma.c | 125 +--------------------------------------------- 1 file changed, 2 insertions(+), 123 deletions(-)arch/arm/mach-omap2/dma.c +2
-115@@ -204,108 +204,6 @@ static unsigned configure_dma_errata(void)return errata; } -static const struct dma_slave_map omap24xx_sdma_map[] = { - {"omap-gpmc" ,"rxtx" ,SDMA_FILTER_PARAM (4 ) }, - {"omap-aes" ,"tx" ,SDMA_FILTER_PARAM (9 ) }, - {"omap-aes" ,"rx" ,SDMA_FILTER_PARAM (10 ) }, - {"omap-sham" ,"rx" ,SDMA_FILTER_PARAM (13 ) }, - {"omap2_mcspi.2" ,"tx0" ,SDMA_FILTER_PARAM (15 ) }, - {"omap2_mcspi.2" ,"rx0" ,SDMA_FILTER_PARAM (16 ) }, - {"omap-mcbsp.3" ,"tx" ,SDMA_FILTER_PARAM (17 ) }, - {"omap-mcbsp.3" ,"rx" ,SDMA_FILTER_PARAM (18 ) }, - {"omap-mcbsp.4" ,"tx" ,SDMA_FILTER_PARAM (19 ) }, - {"omap-mcbsp.4" ,"rx" ,SDMA_FILTER_PARAM (20 ) }, - {"omap-mcbsp.5" ,"tx" ,SDMA_FILTER_PARAM (21 ) }, - {"omap-mcbsp.5" ,"rx" ,SDMA_FILTER_PARAM (22 ) }, - {"omap2_mcspi.2" ,"tx1" ,SDMA_FILTER_PARAM (23 ) }, - {"omap2_mcspi.2" ,"rx1" ,SDMA_FILTER_PARAM (24 ) }, - {"omap_i2c.1" ,"tx" ,SDMA_FILTER_PARAM (27 ) }, - {"omap_i2c.1" ,"rx" ,SDMA_FILTER_PARAM (28 ) }, - {"omap_i2c.2" ,"tx" ,SDMA_FILTER_PARAM (29 ) }, - {"omap_i2c.2" ,"rx" ,SDMA_FILTER_PARAM (30 ) }, - {"omap-mcbsp.1" ,"tx" ,SDMA_FILTER_PARAM (31 ) }, - {"omap-mcbsp.1" ,"rx" ,SDMA_FILTER_PARAM (32 ) }, - {"omap-mcbsp.2" ,"tx" ,SDMA_FILTER_PARAM (33 ) }, - {"omap-mcbsp.2" ,"rx" ,SDMA_FILTER_PARAM (34 ) }, - {"omap2_mcspi.0" ,"tx0" ,SDMA_FILTER_PARAM (35 ) }, - {"omap2_mcspi.0" ,"rx0" ,SDMA_FILTER_PARAM (36 ) }, - {"omap2_mcspi.0" ,"tx1" ,SDMA_FILTER_PARAM (37 ) }, - {"omap2_mcspi.0" ,"rx1" ,SDMA_FILTER_PARAM (38 ) }, - {"omap2_mcspi.0" ,"tx2" ,SDMA_FILTER_PARAM (39 ) }, - {"omap2_mcspi.0" ,"rx2" ,SDMA_FILTER_PARAM (40 ) }, - {"omap2_mcspi.0" ,"tx3" ,SDMA_FILTER_PARAM (41 ) }, - {"omap2_mcspi.0" ,"rx3" ,SDMA_FILTER_PARAM (42 ) }, - {"omap2_mcspi.1" ,"tx0" ,SDMA_FILTER_PARAM (43 ) }, - {"omap2_mcspi.1" ,"rx0" ,SDMA_FILTER_PARAM (44 ) }, - {"omap2_mcspi.1" ,"tx1" ,SDMA_FILTER_PARAM (45 ) }, - {"omap2_mcspi.1" ,"rx1" ,SDMA_FILTER_PARAM (46 ) }, - {"omap_hsmmc.1" ,"tx" ,SDMA_FILTER_PARAM (47 ) }, - {"omap_hsmmc.1" ,"rx" ,SDMA_FILTER_PARAM (48 ) }, - {"omap_uart.0" ,"tx" ,SDMA_FILTER_PARAM (49 ) }, - {"omap_uart.0" ,"rx" ,SDMA_FILTER_PARAM (50 ) }, - {"omap_uart.1" ,"tx" ,SDMA_FILTER_PARAM (51 ) }, - {"omap_uart.1" ,"rx" ,SDMA_FILTER_PARAM (52 ) }, - {"omap_uart.2" ,"tx" ,SDMA_FILTER_PARAM (53 ) }, - {"omap_uart.2" ,"rx" ,SDMA_FILTER_PARAM (54 ) }, - {"omap_hsmmc.0" ,"tx" ,SDMA_FILTER_PARAM (61 ) }, - {"omap_hsmmc.0" ,"rx" ,SDMA_FILTER_PARAM (62 ) }, -}; - -static const struct dma_slave_map omap3xxx_sdma_map[] = { - {"omap-gpmc" ,"rxtx" ,SDMA_FILTER_PARAM (4 ) }, - {"omap2_mcspi.2" ,"tx0" ,SDMA_FILTER_PARAM (15 ) }, - {"omap2_mcspi.2" ,"rx0" ,SDMA_FILTER_PARAM (16 ) }, - {"omap-mcbsp.3" ,"tx" ,SDMA_FILTER_PARAM (17 ) }, - {"omap-mcbsp.3" ,"rx" ,SDMA_FILTER_PARAM (18 ) }, - {"omap-mcbsp.4" ,"tx" ,SDMA_FILTER_PARAM (19 ) }, - {"omap-mcbsp.4" ,"rx" ,SDMA_FILTER_PARAM (20 ) }, - {"omap-mcbsp.5" ,"tx" ,SDMA_FILTER_PARAM (21 ) }, - {"omap-mcbsp.5" ,"rx" ,SDMA_FILTER_PARAM (22 ) }, - {"omap2_mcspi.2" ,"tx1" ,SDMA_FILTER_PARAM (23 ) }, - {"omap2_mcspi.2" ,"rx1" ,SDMA_FILTER_PARAM (24 ) }, - {"omap_i2c.3" ,"tx" ,SDMA_FILTER_PARAM (25 ) }, - {"omap_i2c.3" ,"rx" ,SDMA_FILTER_PARAM (26 ) }, - {"omap_i2c.1" ,"tx" ,SDMA_FILTER_PARAM (27 ) }, - {"omap_i2c.1" ,"rx" ,SDMA_FILTER_PARAM (28 ) }, - {"omap_i2c.2" ,"tx" ,SDMA_FILTER_PARAM (29 ) }, - {"omap_i2c.2" ,"rx" ,SDMA_FILTER_PARAM (30 ) }, - {"omap-mcbsp.1" ,"tx" ,SDMA_FILTER_PARAM (31 ) }, - {"omap-mcbsp.1" ,"rx" ,SDMA_FILTER_PARAM (32 ) }, - {"omap-mcbsp.2" ,"tx" ,SDMA_FILTER_PARAM (33 ) }, - {"omap-mcbsp.2" ,"rx" ,SDMA_FILTER_PARAM (34 ) }, - {"omap2_mcspi.0" ,"tx0" ,SDMA_FILTER_PARAM (35 ) }, - {"omap2_mcspi.0" ,"rx0" ,SDMA_FILTER_PARAM (36 ) }, - {"omap2_mcspi.0" ,"tx1" ,SDMA_FILTER_PARAM (37 ) }, - {"omap2_mcspi.0" ,"rx1" ,SDMA_FILTER_PARAM (38 ) }, - {"omap2_mcspi.0" ,"tx2" ,SDMA_FILTER_PARAM (39 ) }, - {"omap2_mcspi.0" ,"rx2" ,SDMA_FILTER_PARAM (40 ) }, - {"omap2_mcspi.0" ,"tx3" ,SDMA_FILTER_PARAM (41 ) }, - {"omap2_mcspi.0" ,"rx3" ,SDMA_FILTER_PARAM (42 ) }, - {"omap2_mcspi.1" ,"tx0" ,SDMA_FILTER_PARAM (43 ) }, - {"omap2_mcspi.1" ,"rx0" ,SDMA_FILTER_PARAM (44 ) }, - {"omap2_mcspi.1" ,"tx1" ,SDMA_FILTER_PARAM (45 ) }, - {"omap2_mcspi.1" ,"rx1" ,SDMA_FILTER_PARAM (46 ) }, - {"omap_hsmmc.1" ,"tx" ,SDMA_FILTER_PARAM (47 ) }, - {"omap_hsmmc.1" ,"rx" ,SDMA_FILTER_PARAM (48 ) }, - {"omap_uart.0" ,"tx" ,SDMA_FILTER_PARAM (49 ) }, - {"omap_uart.0" ,"rx" ,SDMA_FILTER_PARAM (50 ) }, - {"omap_uart.1" ,"tx" ,SDMA_FILTER_PARAM (51 ) }, - {"omap_uart.1" ,"rx" ,SDMA_FILTER_PARAM (52 ) }, - {"omap_uart.2" ,"tx" ,SDMA_FILTER_PARAM (53 ) }, - {"omap_uart.2" ,"rx" ,SDMA_FILTER_PARAM (54 ) }, - {"omap_hsmmc.0" ,"tx" ,SDMA_FILTER_PARAM (61 ) }, - {"omap_hsmmc.0" ,"rx" ,SDMA_FILTER_PARAM (62 ) }, - {"omap-aes" ,"tx" ,SDMA_FILTER_PARAM (65 ) }, - {"omap-aes" ,"rx" ,SDMA_FILTER_PARAM (66 ) }, - {"omap-sham" ,"rx" ,SDMA_FILTER_PARAM (69 ) }, - {"omap2_mcspi.3" ,"tx0" ,SDMA_FILTER_PARAM (70 ) }, - {"omap2_mcspi.3" ,"rx0" ,SDMA_FILTER_PARAM (71 ) }, - {"omap_hsmmc.2" ,"tx" ,SDMA_FILTER_PARAM (77 ) }, - {"omap_hsmmc.2" ,"rx" ,SDMA_FILTER_PARAM (78 ) }, - {"omap_uart.3" ,"tx" ,SDMA_FILTER_PARAM (81 ) }, - {"omap_uart.3" ,"rx" ,SDMA_FILTER_PARAM (82 ) }, -}; -static struct omap_system_dma_plat_info dma_plat_info__initdata = { .reg_map = reg_map, .channel_stride =0x60 ,@@ -334,14 +232,9 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; p.errata =configure_dma_errata (); +/* REVISIT: Remove after v4.13 with a follow-up patch */ if (!of_have_populated_dt ()) {if (soc_is_omap24xx ()) { - p.slave_map = omap24xx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap24xx_sdma_map); - }else if (soc_is_omap34xx () ||soc_is_omap3630 ()) { - p.slave_map = omap3xxx_sdma_map; - p.slavecnt =ARRAY_SIZE (omap3xxx_sdma_map); - }else {pr_err ("%s: The legacy DMA map is not provided!\n" , __func__);return -ENODEV ;@@ -389,21 +282,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)static int __init omap2_system_dma_init (void ) { -struct platform_device *pdev; -int res; - - res =omap_hwmod_for_each_by_class ("dma" , +return omap_hwmod_for_each_by_class ("dma" , omap2_system_dma_init_dev,NULL ); -if (res) -return res; -
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 288
Quoted 10 lines
arch/arm/mach-omap2/dma.c +0
-8-if (of_have_populated_dt ()) -return res; - - pdev =platform_device_register_full (&omap_dma_dev_info); -if (IS_ERR (pdev)) -return PTR_ERR (pdev); - -return res; }omap_arch_initcall (omap2_system_dma_init);
- P?ter
Tony Lindgren
maintainerPATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Quoted 11 lines · Peter Ujfalusi
unfortunately we still have conflict as the
https://patchwork.kernel.org/patch/9734219/
adds entries to omap24xx_sdma_map[] for - back then - valid non DT boot support.I have rebased and reworked my patch locally on top of your v1, but things must go in in a certain order to avoid conflict.
The tsub conversion series in not yet in linux-next, but afaik Bin already applied it to somewhere.
Leave themach-omap2/dma.ccleanup for -rc1?
OK I'll save this for later then.
Regards,
Tony
PATCH 7/11 ARM: OMAP2+: Remove unused legacy code for DMA
Quoted 11 lines · Tony Lindgren
Quoted 10 lines · Peter Ujfalusi
unfortunately we still have conflict as the
https://patchwork.kernel.org/patch/9734219/
adds entries to omap24xx_sdma_map[] for - back then - valid non DT boot support.I have rebased and reworked my patch locally on top of your v1, but things must go in in a certain order to avoid conflict.
The tsub conversion series in not yet in linux-next, but afaik Bin already applied it to somewhere.
Yes, the series is in my local tree which is not public available. I plan to send them to GregKH next week.
Quoted 7 lines
Quoted 1 line
Leave the
mach-omap2/dma.ccleanup for -rc1?OK I'll save this for later then.
Regards,
Tony
Regards,
-Bin.
Tony Lindgren
maintainerPATCH 8/11 ARM: OMAP2+: Remove unused legacy code for PRM
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/prm3xxx.c | 17 +++++------- arch/arm/mach-omap2/prm44xx.c | 59 ---------------------------------------- arch/arm/mach-omap2/prm_common.c | 9 ++---- 3 files changed, 10 insertions(+), 75 deletions(-)
arch/arm/mach-omap2/prm3xxx.c +7 -10
@@ -690,6 +690,8 @@ static const struct of_device_id omap3_prm_dt_match_table[] = {static int omap3xxx_prm_late_init (void ) { +struct device_node *np; +int irq_num;int ret;if (!(prm_features &PRM_HAS_IO_WAKEUP ))
@@ -702,16 +704,11 @@ static int omap3xxx_prm_late_init(void) omap3_prcm_irq_setup.reconfigure_io_chain = omap3430_pre_es3_1_reconfigure_io_chain; -if (of_have_populated_dt ()) { -struct device_node *np; -int irq_num; - - np =of_find_matching_node (NULL , omap3_prm_dt_match_table); -if (np) { - irq_num =of_irq_get (np,0 ); -if (irq_num >=0 ) - omap3_prcm_irq_setup.irq = irq_num; - } + np =of_find_matching_node (NULL , omap3_prm_dt_match_table); +if (np) { + irq_num =of_irq_get (np,0 ); +if (irq_num >=0 ) + omap3_prcm_irq_setup.irq = irq_num; }omap3xxx_prm_enable_io_wakeup ();
arch/arm/mach-omap2/prm44xx.c +0 -59
83 lines not on this page · raw message
arch/arm/mach-omap2/prm_common.c +3 -6
@@ -267,10 +267,9 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup) {int nr_regs;u32 mask[OMAP_PRCM_MAX_NR_PENDING_REG ]; -int offset, i; +int offset, i, irq;struct irq_chip_generic *gc;struct irq_chip_type *ct; -unsigned int irq;if (!irq_setup)return -EINVAL ;
@@ -344,10 +343,8 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup) prcm_irq_chips[i] = gc; } -if (of_have_populated_dt ()) { -int irq =omap_prcm_event_to_irq ("io" ); -omap_pcs_legacy_init (irq, irq_setup->reconfigure_io_chain); - } + irq =omap_prcm_event_to_irq ("io" ); +omap_pcs_legacy_init (irq, irq_setup->reconfigure_io_chain);return 0 ;
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 8/11 ARM: OMAP2+: Remove unused legacy code for PRM
Quoted 3 lines · Tony Lindgren
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now.
...
Quoted 3 lines
arch/arm/mach-omap2/prm44xx.c +0
-0
...
arch/arm/mach-omap2/prm44xx.c
Quoted 10 lines
arch/arm/mach-omap2/prm44xx.c +0
-10-static int omap44xx_prm_late_init (void ) -{ -int irq_num; - -if (!(prm_features &PRM_HAS_IO_WAKEUP )) -return 0 ; - -/* OMAP4+ is DT only now */ -if (!of_have_populated_dt ()) -return 0 ;
Turns out I misread the above and this code is still needed for omap4 PRM interrupts, so applying a partial revert below to fix it.
Regards,
Tony
8< ----------------------
Quoted 1 line
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Fri, 30 Jun 2017 03:37:03 -0700
Subject: [PATCH] ARM: OMAP4: Fix legacy code clean-up regression
Commit 2a26d31b1bae ("ARM: OMAP2+: Remove unused legacy code for PRM") removed PRM platform init code that I thought is unused. Turns out omap4 still needs this code, so let's do a partial revert to add it back.
I probably missed this earlier as the comments used to say "OMAP4+ is DT only now" for !of_have_populated_dt() to exit early and missed the negative test. Let's not add those lines back as they are confusing and no longer needed as we only boot in device tree mode.
Without things things can mysterious fail for i2c, for example LM75 I2C temperature sensor can stop working as the PRM interrupts won't work.
--- arch/arm/mach-omap2/prm44xx.c | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+)
arch/arm/mach-omap2/prm44xx.c +55 -0
@@ -337,6 +337,27 @@ static void omap44xx_prm_reconfigure_io_chain(void) }/** +* omap44xx_prm_enable_io_wakeup - enable wakeup events from I/O wakeup latches +* +* Activates the I/O wakeup event latches and allows events logged by +* those latches to signal a wakeup event to the PRCM. For I/O wakeups +* to occur, WAKEUPENABLE bits must be set in the pad mux registers, and +* omap44xx_prm_reconfigure_io_chain() must be called. No return value. +*/ +static void __init omap44xx_prm_enable_io_wakeup (void ) +{ +s32 inst =omap4_prmst_get_prm_dev_inst (); + +if (inst ==PRM_INSTANCE_UNKNOWN ) +return ; + +omap4_prm_rmw_inst_reg_bits (OMAP4430_GLOBAL_WUEN_MASK , +OMAP4430_GLOBAL_WUEN_MASK , + inst, + omap4_prcm_irq_setup.pm_ctrl); +} + +/** * omap44xx_prm_read_reset_sources - return the last SoC reset source * * Return a u32 representing the last reset sources of the SoC. The
@@ -668,6 +689,8 @@ struct pwrdm_ops omap4_pwrdm_operations = { .pwrdm_has_voltdm = omap4_check_vcvp, }; +static int omap44xx_prm_late_init (void ); +/* * XXX document */
@@ -675,6 +698,7 @@ static struct prm_ll_data omap44xx_prm_ll_data = { .read_reset_sources = &omap44xx_prm_read_reset_sources, .was_any_context_lost_old = &omap44xx_prm_was_any_context_lost_old, .clear_context_loss_flags_old = &omap44xx_prm_clear_context_loss_flags_old, + .late_init = &omap44xx_prm_late_init, .assert_hardreset = omap4_prminst_assert_hardreset, .deassert_hardreset = omap4_prminst_deassert_hardreset, .is_hardreset_asserted = omap4_prminst_is_hardreset_asserted,
@@ -711,6 +735,37 @@ int __init omap44xx_prm_init(const struct omap_prcm_init_data *data)return prm_register (&omap44xx_prm_ll_data); } +static int omap44xx_prm_late_init (void ) +{ +int irq_num; + +if (!(prm_features &PRM_HAS_IO_WAKEUP )) +return 0 ; + + irq_num =of_irq_get (prm_init_data->np,0 ); +/* +* Already have OMAP4 IRQ num. For all other platforms, we need +* IRQ numbers from DT +*/ +if (irq_num <0 && !(prm_init_data->flags &PRM_IRQ_DEFAULT )) { +if (irq_num == -EPROBE_DEFER ) +return irq_num; + +/* Have nothing to do */ +return 0 ; + } + +/* Once OMAP4 DT is filled as well */ +if (irq_num >=0 ) { + omap4_prcm_irq_setup.irq = irq_num; + omap4_prcm_irq_setup.xlate_irq =NULL ; + } + +omap44xx_prm_enable_io_wakeup (); + +return omap_prcm_register_chain_handler (&omap4_prcm_irq_setup); +} + static void __exit omap44xx_prm_exit(void) {prm_unregister (&omap44xx_prm_ll_data);
Signature · 1 line
2.13.1
PATCH 8/11 ARM: OMAP2+: Remove unused legacy code for PRM
Hi,
Quoted 11 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now....
Quoted 3 lines
arch/arm/mach-omap2/prm44xx.c +0
-0...
Quoted 13 lines
arch/arm/mach-omap2/prm44xx.c
Quoted 10 lines
arch/arm/mach-omap2/prm44xx.c +0
-10-static int omap44xx_prm_late_init (void ) -{ -int irq_num; - -if (!(prm_features &PRM_HAS_IO_WAKEUP )) -return 0 ; - -/* OMAP4+ is DT only now */ -if (!of_have_populated_dt ()) -return 0 ;Turns out I misread the above and this code is still needed for omap4 PRM interrupts, so applying a partial revert below to fix it.
I just spent a couple of hours to tracing this and now saw, that you already did so. Why was this not part of the pull request? :(
Quoted 6 lines
8< ----------------------
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Fri, 30 Jun 2017 03:37:03 -0700
Subject: [PATCH] ARM: OMAP4: Fix legacy code clean-up regression
Quoted 8 lines
Commit
2a26d31b1bae("ARM: OMAP2+: Remove unused legacy code for PRM") removed PRM platform init code that I thought is unused. Turns out omap4 still needs this code, so let's do a partial revert to add it back.I probably missed this earlier as the comments used to say "OMAP4+ is DT only now" for !of_have_populated_dt() to exit early and missed the negative test. Let's not add those lines back as they are confusing and no longer needed as we only boot in device tree mode.
haha, I came up with *exactly* the same patch and then noticed this mail when I checked for a Message-ID as reference :)
Quoted 2 lines
Without things things can mysterious fail for i2c, for example LM75 I2C temperature sensor can stop working as the PRM interrupts won't work.
Here is the demystification:
Without this fix omap4_pmx_core and omap4_pmx_wakeup will not register themself as interrupt controller, due to missing parent interrupt. This means, that any device referencing an interrupt in one of those controllers will fail their probe routine with -EPROBE_DEFER waiting for the interrupt controller to appear. At least for i2c this happens directly in the core, even before calling the driver's probe routine making this look quite mysterious.
TLDR: Fix "wakeup-source;" using devices on omap4.
Quoted 2 lines
Fixes 2a26d31b1bae ("ARM: OMAP2+: Remove unused legacy code for PRM")Signed-off-by Tony Lindgren <[email protected]>
-- Sebastian
Quoted 97 lines
--- arch/arm/mach-omap2/prm44xx.c | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+)arch/arm/mach-omap2/prm44xx.c +55
-0@@ -337,6 +337,27 @@ static void omap44xx_prm_reconfigure_io_chain(void) }/** +* omap44xx_prm_enable_io_wakeup - enable wakeup events from I/O wakeup latches +* +* Activates the I/O wakeup event latches and allows events logged by +* those latches to signal a wakeup event to the PRCM. For I/O wakeups +* to occur, WAKEUPENABLE bits must be set in the pad mux registers, and +* omap44xx_prm_reconfigure_io_chain() must be called. No return value. +*/ +static void __init omap44xx_prm_enable_io_wakeup (void ) +{ +s32 inst =omap4_prmst_get_prm_dev_inst (); + +if (inst ==PRM_INSTANCE_UNKNOWN ) +return ; + +omap4_prm_rmw_inst_reg_bits (OMAP4430_GLOBAL_WUEN_MASK , +OMAP4430_GLOBAL_WUEN_MASK , + inst, + omap4_prcm_irq_setup.pm_ctrl); +} + +/** * omap44xx_prm_read_reset_sources - return the last SoC reset source * * Return a u32 representing the last reset sources of the SoC. The @@ -668,6 +689,8 @@ struct pwrdm_ops omap4_pwrdm_operations = { .pwrdm_has_voltdm = omap4_check_vcvp, }; +static int omap44xx_prm_late_init (void ); +/* * XXX document */ @@ -675,6 +698,7 @@ static struct prm_ll_data omap44xx_prm_ll_data = { .read_reset_sources = &omap44xx_prm_read_reset_sources, .was_any_context_lost_old = &omap44xx_prm_was_any_context_lost_old, .clear_context_loss_flags_old = &omap44xx_prm_clear_context_loss_flags_old, + .late_init = &omap44xx_prm_late_init, .assert_hardreset = omap4_prminst_assert_hardreset, .deassert_hardreset = omap4_prminst_deassert_hardreset, .is_hardreset_asserted = omap4_prminst_is_hardreset_asserted,@@ -711,6 +735,37 @@ int __init omap44xx_prm_init(const struct omap_prcm_init_data *data)return prm_register (&omap44xx_prm_ll_data); } +static int omap44xx_prm_late_init (void ) +{ +int irq_num; + +if (!(prm_features &PRM_HAS_IO_WAKEUP )) +return 0 ; + + irq_num =of_irq_get (prm_init_data->np,0 ); +/* +* Already have OMAP4 IRQ num. For all other platforms, we need +* IRQ numbers from DT +*/ +if (irq_num <0 && !(prm_init_data->flags &PRM_IRQ_DEFAULT )) { +if (irq_num == -EPROBE_DEFER ) +return irq_num; + +/* Have nothing to do */ +return 0 ; + } + +/* Once OMAP4 DT is filled as well */ +if (irq_num >=0 ) { + omap4_prcm_irq_setup.irq = irq_num; + omap4_prcm_irq_setup.xlate_irq =NULL ; + } + +omap44xx_prm_enable_io_wakeup (); + +return omap_prcm_register_chain_handler (&omap4_prcm_irq_setup); +} + static void __exit omap44xx_prm_exit(void) {prm_unregister (&omap44xx_prm_ll_data);Signature · 6 lines
2.13.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170720/174866bc/attachment.sig>
Tony Lindgren
maintainerPATCH 8/11 ARM: OMAP2+: Remove unused legacy code for PRM
Quoted 28 lines · Sebastian Reichel
Hi,
Quoted 11 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren
We are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where
of_have_populated_dt()is not set is safe to remove now....
Quoted 3 lines
arch/arm/mach-omap2/prm44xx.c +0
-0...
Quoted 13 lines
arch/arm/mach-omap2/prm44xx.c
Quoted 10 lines
arch/arm/mach-omap2/prm44xx.c +0
-10-static int omap44xx_prm_late_init (void ) -{ -int irq_num; - -if (!(prm_features &PRM_HAS_IO_WAKEUP )) -return 0 ; - -/* OMAP4+ is DT only now */ -if (!of_have_populated_dt ()) -return 0 ;Turns out I misread the above and this code is still needed for omap4 PRM interrupts, so applying a partial revert below to fix it.
Quoted 2 lines
I just spent a couple of hours to tracing this and now saw, that you already did so. Why was this not part of the pull request? :(
Sorry I did not notice until I had sent out a pull request. I did send a pull request for this and few other fixes on the 6th that is still pending.
Quoted 7 lines
Quoted 4 lines
I probably missed this earlier as the comments used to say "OMAP4+ is DT only now" for !of_have_populated_dt() to exit early and missed the negative test. Let's not add those lines back as they are confusing and no longer needed as we only boot in device tree mode.
haha, I came up with *exactly* the same patch and then noticed this mail when I checked for a Message-ID as reference :)
Sorry to hear about the duplicate work.
Quoted 14 lines
Quoted 2 lines
Without things things can mysterious fail for i2c, for example LM75 I2C temperature sensor can stop working as the PRM interrupts won't work.
Here is the demystification:
Without this fix
omap4_pmx_coreandomap4_pmx_wakeupwill not register themself as interrupt controller, due to missing parent interrupt. This means, that any device referencing an interrupt in one of those controllers will fail their probe routine with -EPROBE_DEFER waiting for the interrupt controller to appear. At least for i2c this happens directly in the core, even before calling the driver's probe routine making this look quite mysterious.
Quoted 1 line
TLDR: Fix "wakeup-source;" using devices on omap4.
Yup.
Regards,
Tony
Tony Lindgren
maintainerPATCH 9/11 ARM: OMAP2+: Remove unused legacy code for interconnects
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/omap_device.c | 5 +---- arch/arm/mach-omap2/omap_hwmod.c | 23 ++++++++++------------- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3 +-- 3 files changed, 12 insertions(+), 19 deletions(-)
arch/arm/mach-omap2/omap_device.c +1 -4
@@ -65,7 +65,7 @@ static void _add_clkdev(struct omap_device *od, const char *clk_alias, r =clk_get_sys (NULL , clk_name); -if (IS_ERR (r) &&of_have_populated_dt ()) { +if (IS_ERR (r)) {struct of_phandle_args clkspec; clkspec.np =of_find_node_by_name (NULL , clk_name);
@@ -953,9 +953,6 @@ static int __init omap_device_late_init(void) {bus_for_each_dev (&platform_bus_type,NULL ,NULL , omap_device_late_idle); -WARN (!of_have_populated_dt (), -"legacy booting deprecated, please update to boot with .dts\n" ); -return 0 ; }omap_late_initcall_sync (omap_device_late_init);
arch/arm/mach-omap2/omap_hwmod.c +10 -13
@@ -2336,24 +2336,21 @@ static int __init _init(struct omap_hwmod *oh, void *data) {int r, index;struct device_node *np =NULL ; +struct device_node *bus;if (oh->_state != _HWMOD_STATE_REGISTERED)return 0 ; -if (of_have_populated_dt ()) { -struct device_node *bus; - - bus =of_find_node_by_name (NULL ,"ocp" ); -if (!bus) -return -ENODEV ; + bus =of_find_node_by_name (NULL ,"ocp" ); +if (!bus) +return -ENODEV ; - r =of_dev_hwmod_lookup (bus, oh, &index, &np); -if (r) -pr_debug ("omap_hwmod: %s missing dt data\n" , oh->name); -else if (np && index) -pr_warn ("omap_hwmod: %s using broken dt data from %s\n" , - oh->name, np->name); - } + r =of_dev_hwmod_lookup (bus, oh, &index, &np); +if (r) +pr_debug ("omap_hwmod: %s missing dt data\n" , oh->name); +else if (np && index) +pr_warn ("omap_hwmod: %s using broken dt data from %s\n" , + oh->name, np->name); r =_init_mpu_rt_base (oh,NULL , index, np);if (r <0 ) {
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +1 -2
@@ -3204,8 +3204,7 @@ int __init omap3xxx_hwmod_init(void)* If DT information is missing, enable them only for GP devices. */ -if (of_have_populated_dt ()) - bus =of_find_node_by_name (NULL ,"ocp" ); + bus =of_find_node_by_name (NULL ,"ocp" );if (h_sham &&omap3xxx_hwmod_is_hs_ip_block_usable (bus,"sham" )) { r =omap_hwmod_register_links (h_sham);
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 10/11 ARM: OMAP2+: Remove unused legacy code for watchdog
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/wd_timer.c | 28 ---------------------------- 1 file changed, 28 deletions(-)
arch/arm/mach-omap2/wd_timer.c +0 -28
@@ -102,31 +102,3 @@ int omap2_wd_timer_reset(struct omap_hwmod *oh)return (c ==MAX_MODULE_SOFTRESET_WAIT ) ? -ETIMEDOUT :omap2_wd_timer_disable (oh); } - -static int __init omap_init_wdt (void ) -{ -int id =-1 ; -struct platform_device *pdev; -struct omap_hwmod *oh; -char *oh_name ="wd_timer2" ; -char *dev_name ="omap_wdt" ; -struct omap_wd_timer_platform_data pdata; - -if (!cpu_class_is_omap2 () ||of_have_populated_dt ()) -return 0 ; - - oh =omap_hwmod_lookup (oh_name); -if (!oh) { -pr_err ("Could not look up wd_timer%d hwmod\n" , id); -return -EINVAL ; - } - - pdata.read_reset_sources = prm_read_reset_sources; - - pdev =omap_device_build (dev_name, id, oh, &pdata, -sizeof (struct omap_wd_timer_platform_data )); -WARN (IS_ERR (pdev),"Can't build omap_device for %s:%s.\n" , - dev_name, oh->name); -return 0 ; -} -omap_subsys_initcall (omap_init_wdt);
Signature · 1 line
2.13.0
Tony Lindgren
maintainerPATCH 11/11 ARM: OMAP2+: Remove unused legacy code for n8x0
In reply to Tony LindgrenWe are now booting all mach-omap2 in device tree only mode. Any code that is only called in legacy boot mode where of_have_populated_dt() is not set is safe to remove now.
--- arch/arm/mach-omap2/board-n8x0.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
arch/arm/mach-omap2/board-n8x0.c +6 -8
@@ -47,14 +47,12 @@ static u32 board_caps;static void board_check_revision (void ) { -if (of_have_populated_dt ()) { -if (of_machine_is_compatible ("nokia,n800" )) - board_caps =NOKIA_N800 ; -else if (of_machine_is_compatible ("nokia,n810" )) - board_caps =NOKIA_N810 ; -else if (of_machine_is_compatible ("nokia,n810-wimax" )) - board_caps =NOKIA_N810_WIMAX ; - } +if (of_machine_is_compatible ("nokia,n800" )) + board_caps =NOKIA_N800 ; +else if (of_machine_is_compatible ("nokia,n810" )) + board_caps =NOKIA_N810 ; +else if (of_machine_is_compatible ("nokia,n810-wimax" )) + board_caps =NOKIA_N810_WIMAX ;if (!board_caps)pr_err ("Unknown board\n" );
Signature · 1 line
2.13.0
cover Remove unused omap legacy code
In reply to Tony LindgrenHi,
Quoted 3 lines · Tony Lindgren
We can now remove quite a bit of clutter with legacy booting gone. Basically anything with
of_have_populated_dt()not set can now go.
Except for the comment on patch 4 the series is
-- Sebastian
Quoted 26 lines
Tony Lindgren (11):
ARM: OMAP2+: Remove unused legacy code for opp
ARM: OMAP2+: Remove unused legacy code for timer
ARM: OMAP2+: Remove unused legacy code for PMU
ARM: OMAP2+: Remove unused legacy code for device init
ARM: OMAP2+: Remove unused legacy code for McBSP
ARM: OMAP2+: Remove unused legacy code forio.c
ARM: OMAP2+: Remove unused legacy code for DMA
ARM: OMAP2+: Remove unused legacy code for PRM
ARM: OMAP2+: Remove unused legacy code for interconnects
ARM: OMAP2+: Remove unused legacy code for watchdog
ARM: OMAP2+: Remove unused legacy code for n8x0arch/arm/mach-omap2/Makefile | 4 - arch/arm/mach-omap2/board-n8x0.c | 14 +-- arch/arm/mach-omap2/devices.c | 163 --------------------------- arch/arm/mach-omap2/dma.c | 30 +---- arch/arm/mach-omap2/io.c | 59 +++------- arch/arm/mach-omap2/mcbsp.c | 70 ------------ arch/arm/mach-omap2/omap_device.c | 5 +- arch/arm/mach-omap2/omap_hwmod.c | 23 ++-- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3 +- arch/arm/mach-omap2/opp.c | 104 ----------------- arch/arm/mach-omap2/opp3xxx_data.c | 86 --------------- arch/arm/mach-omap2/opp4xxx_data.c | 79 ------------- arch/arm/mach-omap2/pmu.c | 97 ----------------
Quoted 8 lines
arch/arm/mach-omap2/prm3xxx.c | 17 ++- arch/arm/mach-omap2/prm44xx.c | 59 ---------- arch/arm/mach-omap2/prm_common.c | 9 +- arch/arm/mach-omap2/timer.c | 172 ++++------------------------- arch/arm/mach-omap2/wd_timer.c | 28 ----- 18 files changed, 63 insertions(+), 959 deletions(-) delete mode 100644 arch/arm/mach-omap2/opp.c delete mode 100644 arch/arm/mach-omap2/pmu.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170608/2c037f41/attachment-0001.sig>