Message ID | 20180423174549.57412-2-tony@atomide.com |
---|---|
State | New |
Headers | show |
Series | ti-sysc driver changes to support more devices | expand |
Em Mon, 23 Apr 2018 10:45:34 -0700 Tony Lindgren <tony@atomide.com> escreveu: > Looks like these functions don't do anything in the mainline kernel so > we can just drop it. > > Note that we must now also remove ir-rx51 pdata as it relies on the dummy > platform data that does not do anything. And ir-rx51 is calling a pdata > callback that doesn't do anything without checking if it exists first. > > For configuring device specific minimal latencies, the interface to use > is pm_qos_add_request(). For an example, see what was done in commit > 9834ffd1ecc3 ("ASoC: omap-mcbsp: Add PM QoS support for McBSP to prevent > glitches"). I've added some comments to ir-rx51 so people using it can > add pm_qos support and test it. > > Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> > Cc: Kevin Hilman <khilman@kernel.org> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > arch/arm/mach-omap2/Makefile | 1 - > arch/arm/mach-omap2/display.c | 7 - > arch/arm/mach-omap2/hsmmc.c | 1 - > arch/arm/mach-omap2/i2c.c | 1 - > arch/arm/mach-omap2/io.c | 3 - > arch/arm/mach-omap2/omap-pm-noop.c | 176 -------------------- > arch/arm/mach-omap2/omap-pm.h | 161 ------------------ > arch/arm/mach-omap2/pdata-quirks.c | 15 -- > arch/arm/mach-omap2/pm-debug.c | 5 - > arch/arm/mach-omap2/pm.c | 10 +- > arch/arm/mach-omap2/timer.c | 1 - > arch/arm/plat-omap/Kconfig | 10 -- > drivers/media/rc/ir-rx51.c | 17 +- > include/linux/platform_data/media/ir-rx51.h | 9 - > 14 files changed, 4 insertions(+), 413 deletions(-) > delete mode 100644 arch/arm/mach-omap2/omap-pm-noop.c > delete mode 100644 arch/arm/mach-omap2/omap-pm.h > delete mode 100644 include/linux/platform_data/media/ir-rx51.h > > diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile > --- a/arch/arm/mach-omap2/Makefile > +++ b/arch/arm/mach-omap2/Makefile > @@ -78,7 +78,6 @@ endif > omap-4-5-pm-common = omap-mpuss-lowpower.o > obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-pm-common) > obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-pm-common) > -obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o > > ifeq ($(CONFIG_PM),y) > obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o > diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c > --- a/arch/arm/mach-omap2/display.c > +++ b/arch/arm/mach-omap2/display.c > @@ -32,7 +32,6 @@ > #include <linux/platform_data/omapdss.h> > #include "omap_hwmod.h" > #include "omap_device.h" > -#include "omap-pm.h" > #include "common.h" > > #include "soc.h" > @@ -126,11 +125,6 @@ static void omap_dsi_disable_pads(int dsi_id, unsigned lane_mask) > omap4_dsi_mux_pads(dsi_id, 0); > } > > -static int omap_dss_set_min_bus_tput(struct device *dev, unsigned long tput) > -{ > - return omap_pm_set_min_bus_tput(dev, OCP_INITIATOR_AGENT, tput); > -} > - > static enum omapdss_version __init omap_display_get_version(void) > { > if (cpu_is_omap24xx()) > @@ -169,7 +163,6 @@ static int __init omapdss_init_fbdev(void) > static struct omap_dss_board_info board_data = { > .dsi_enable_pads = omap_dsi_enable_pads, > .dsi_disable_pads = omap_dsi_disable_pads, > - .set_min_bus_tput = omap_dss_set_min_bus_tput, > }; > struct device_node *node; > int r; > diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c > --- a/arch/arm/mach-omap2/hsmmc.c > +++ b/arch/arm/mach-omap2/hsmmc.c > @@ -18,7 +18,6 @@ > > #include "soc.h" > #include "omap_device.h" > -#include "omap-pm.h" > > #include "hsmmc.h" > #include "control.h" > diff --git a/arch/arm/mach-omap2/i2c.c b/arch/arm/mach-omap2/i2c.c > --- a/arch/arm/mach-omap2/i2c.c > +++ b/arch/arm/mach-omap2/i2c.c > @@ -22,7 +22,6 @@ > #include "soc.h" > #include "omap_hwmod.h" > #include "omap_device.h" > -#include "omap-pm.h" > > #include "prm.h" > #include "common.h" > diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c > --- a/arch/arm/mach-omap2/io.c > +++ b/arch/arm/mach-omap2/io.c > @@ -37,7 +37,6 @@ > #include "clock.h" > #include "clock2xxx.h" > #include "clock3xxx.h" > -#include "omap-pm.h" > #include "sdrc.h" > #include "control.h" > #include "serial.h" > @@ -421,8 +420,6 @@ static void __init __maybe_unused omap_hwmod_init_postsetup(void) > postsetup_state = _HWMOD_STATE_ENABLED; > #endif > omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state); > - > - omap_pm_if_early_init(); > } > > static void __init __maybe_unused omap_common_late_init(void) > diff --git a/arch/arm/mach-omap2/omap-pm-noop.c b/arch/arm/mach-omap2/omap-pm-noop.c > deleted file mode 100644 > --- a/arch/arm/mach-omap2/omap-pm-noop.c > +++ /dev/null > @@ -1,176 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -/* > - * omap-pm-noop.c - OMAP power management interface - dummy version > - * > - * This code implements the OMAP power management interface to > - * drivers, CPUIdle, CPUFreq, and DSP Bridge. It is strictly for > - * debug/demonstration use, as it does nothing but printk() whenever a > - * function is called (when DEBUG is defined, below) > - * > - * Copyright (C) 2008-2009 Texas Instruments, Inc. > - * Copyright (C) 2008-2009 Nokia Corporation > - * Paul Walmsley > - * > - * Interface developed by (in alphabetical order): > - * Karthik Dasu, Tony Lindgren, Rajendra Nayak, Sakari Poussa, Veeramanikandan > - * Raju, Anand Sawant, Igor Stoppa, Paul Walmsley, Richard Woodruff > - */ > - > -#undef DEBUG > - > -#include <linux/init.h> > -#include <linux/cpufreq.h> > -#include <linux/device.h> > -#include <linux/platform_device.h> > - > -#include "omap_device.h" > -#include "omap-pm.h" > - > -static bool off_mode_enabled; > -static int dummy_context_loss_counter; > - > -/* > - * Device-driver-originated constraints (via board-*.c files) > - */ > - > -int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t) > -{ > - if (!dev || t < -1) { > - WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); > - return -EINVAL; > - } > - > - if (t == -1) > - pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", > - dev_name(dev)); > - else > - pr_debug("OMAP PM: add max MPU wakeup latency constraint: dev %s, t = %ld usec\n", > - dev_name(dev), t); > - > - /* > - * For current Linux, this needs to map the MPU to a > - * powerdomain, then go through the list of current max lat > - * constraints on the MPU and find the smallest. If > - * the latency constraint has changed, the code should > - * recompute the state to enter for the next powerdomain > - * state. > - * > - * TI CDP code can call constraint_set here. > - */ > - > - return 0; > -} > - > -int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r) > -{ > - if (!dev || (agent_id != OCP_INITIATOR_AGENT && > - agent_id != OCP_TARGET_AGENT)) { > - WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); > - return -EINVAL; > - } > - > - if (r == 0) > - pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", > - dev_name(dev), agent_id); > - else > - pr_debug("OMAP PM: add min bus tput constraint: dev %s for agent_id %d: rate %ld KiB\n", > - dev_name(dev), agent_id, r); > - > - /* > - * This code should model the interconnect and compute the > - * required clock frequency, convert that to a VDD2 OPP ID, then > - * set the VDD2 OPP appropriately. > - * > - * TI CDP code can call constraint_set here on the VDD2 OPP. > - */ > - > - return 0; > -} > - > -/* > - * DSP Bridge-specific constraints > - */ > - > - > -/** > - * omap_pm_enable_off_mode - notify OMAP PM that off-mode is enabled > - * > - * Intended for use only by OMAP PM core code to notify this layer > - * that off mode has been enabled. > - */ > -void omap_pm_enable_off_mode(void) > -{ > - off_mode_enabled = true; > -} > - > -/** > - * omap_pm_disable_off_mode - notify OMAP PM that off-mode is disabled > - * > - * Intended for use only by OMAP PM core code to notify this layer > - * that off mode has been disabled. > - */ > -void omap_pm_disable_off_mode(void) > -{ > - off_mode_enabled = false; > -} > - > -/* > - * Device context loss tracking > - */ > - > -#ifdef CONFIG_ARCH_OMAP2PLUS > - > -int omap_pm_get_dev_context_loss_count(struct device *dev) > -{ > - struct platform_device *pdev = to_platform_device(dev); > - int count; > - > - if (WARN_ON(!dev)) > - return -ENODEV; > - > - if (dev->pm_domain == &omap_device_pm_domain) { > - count = omap_device_get_context_loss_count(pdev); > - } else { > - WARN_ONCE(off_mode_enabled, "omap_pm: using dummy context loss counter; device %s should be converted to omap_device", > - dev_name(dev)); > - > - count = dummy_context_loss_counter; > - > - if (off_mode_enabled) { > - count++; > - /* > - * Context loss count has to be a non-negative value. > - * Clear the sign bit to get a value range from 0 to > - * INT_MAX. > - */ > - count &= INT_MAX; > - dummy_context_loss_counter = count; > - } > - } > - > - pr_debug("OMAP PM: context loss count for dev %s = %d\n", > - dev_name(dev), count); > - > - return count; > -} > - > -#else > - > -int omap_pm_get_dev_context_loss_count(struct device *dev) > -{ > - return dummy_context_loss_counter; > -} > - > -#endif > - > -/* Should be called before clk framework init */ > -int __init omap_pm_if_early_init(void) > -{ > - return 0; > -} > - > -/* Must be called after clock framework is initialized */ > -int __init omap_pm_if_init(void) > -{ > - return 0; > -} > diff --git a/arch/arm/mach-omap2/omap-pm.h b/arch/arm/mach-omap2/omap-pm.h > deleted file mode 100644 > --- a/arch/arm/mach-omap2/omap-pm.h > +++ /dev/null > @@ -1,161 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0 */ > -/* > - * omap-pm.h - OMAP power management interface > - * > - * Copyright (C) 2008-2010 Texas Instruments, Inc. > - * Copyright (C) 2008-2010 Nokia Corporation > - * Paul Walmsley > - * > - * Interface developed by (in alphabetical order): Karthik Dasu, Jouni > - * Högander, Tony Lindgren, Rajendra Nayak, Sakari Poussa, > - * Veeramanikandan Raju, Anand Sawant, Igor Stoppa, Paul Walmsley, > - * Richard Woodruff > - */ > - > -#ifndef ASM_ARM_ARCH_OMAP_OMAP_PM_H > -#define ASM_ARM_ARCH_OMAP_OMAP_PM_H > - > -#include <linux/device.h> > -#include <linux/cpufreq.h> > -#include <linux/clk.h> > -#include <linux/pm_opp.h> > - > -/* > - * agent_id values for use with omap_pm_set_min_bus_tput(): > - * > - * OCP_INITIATOR_AGENT is only valid for devices that can act as > - * initiators -- it represents the device's L3 interconnect > - * connection. OCP_TARGET_AGENT represents the device's L4 > - * interconnect connection. > - */ > -#define OCP_TARGET_AGENT 1 > -#define OCP_INITIATOR_AGENT 2 > - > -/** > - * omap_pm_if_early_init - OMAP PM init code called before clock fw init > - * @mpu_opp_table: array ptr to struct omap_opp for MPU > - * @dsp_opp_table: array ptr to struct omap_opp for DSP > - * @l3_opp_table : array ptr to struct omap_opp for CORE > - * > - * Initialize anything that must be configured before the clock > - * framework starts. The "_if_" is to avoid name collisions with the > - * PM idle-loop code. > - */ > -int __init omap_pm_if_early_init(void); > - > -/** > - * omap_pm_if_init - OMAP PM init code called after clock fw init > - * > - * The main initialization code. OPP tables are passed in here. The > - * "_if_" is to avoid name collisions with the PM idle-loop code. > - */ > -int __init omap_pm_if_init(void); > - > -/* > - * Device-driver-originated constraints (via board-*.c files, platform_data) > - */ > - > - > -/** > - * omap_pm_set_max_mpu_wakeup_lat - set the maximum MPU wakeup latency > - * @dev: struct device * requesting the constraint > - * @t: maximum MPU wakeup latency in microseconds > - * > - * Request that the maximum interrupt latency for the MPU to be no > - * greater than @t microseconds. "Interrupt latency" in this case is > - * defined as the elapsed time from the occurrence of a hardware or > - * timer interrupt to the time when the device driver's interrupt > - * service routine has been entered by the MPU. > - * > - * It is intended that underlying PM code will use this information to > - * determine what power state to put the MPU powerdomain into, and > - * possibly the CORE powerdomain as well, since interrupt handling > - * code currently runs from SDRAM. Advanced PM or board*.c code may > - * also configure interrupt controller priorities, OCP bus priorities, > - * CPU speed(s), etc. > - * > - * This function will not affect device wakeup latency, e.g., time > - * elapsed from when a device driver enables a hardware device with > - * clk_enable(), to when the device is ready for register access or > - * other use. To control this device wakeup latency, use > - * omap_pm_set_max_dev_wakeup_lat() > - * > - * Multiple calls to omap_pm_set_max_mpu_wakeup_lat() will replace the > - * previous t value. To remove the latency target for the MPU, call > - * with t = -1. > - * > - * XXX This constraint will be deprecated soon in favor of the more > - * general omap_pm_set_max_dev_wakeup_lat() > - * > - * Returns -EINVAL for an invalid argument, -ERANGE if the constraint > - * is not satisfiable, or 0 upon success. > - */ > -int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t); > - > - > -/** > - * omap_pm_set_min_bus_tput - set minimum bus throughput needed by device > - * @dev: struct device * requesting the constraint > - * @tbus_id: interconnect to operate on (OCP_{INITIATOR,TARGET}_AGENT) > - * @r: minimum throughput (in KiB/s) > - * > - * Request that the minimum data throughput on the OCP interconnect > - * attached to device @dev interconnect agent @tbus_id be no less > - * than @r KiB/s. > - * > - * It is expected that the OMAP PM or bus code will use this > - * information to set the interconnect clock to run at the lowest > - * possible speed that satisfies all current system users. The PM or > - * bus code will adjust the estimate based on its model of the bus, so > - * device driver authors should attempt to specify an accurate > - * quantity for their device use case, and let the PM or bus code > - * overestimate the numbers as necessary to handle request/response > - * latency, other competing users on the system, etc. On OMAP2/3, if > - * a driver requests a minimum L4 interconnect speed constraint, the > - * code will also need to add an minimum L3 interconnect speed > - * constraint, > - * > - * Multiple calls to omap_pm_set_min_bus_tput() will replace the > - * previous rate value for this device. To remove the interconnect > - * throughput restriction for this device, call with r = 0. > - * > - * Returns -EINVAL for an invalid argument, -ERANGE if the constraint > - * is not satisfiable, or 0 upon success. > - */ > -int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r); > - > - > -/* > - * CPUFreq-originated constraint > - * > - * In the future, this should be handled by custom OPP clocktype > - * functions. > - */ > - > - > -/* > - * Device context loss tracking > - */ > - > -/** > - * omap_pm_get_dev_context_loss_count - return count of times dev has lost ctx > - * @dev: struct device * > - * > - * This function returns the number of times that the device @dev has > - * lost its internal context. This generally occurs on a powerdomain > - * transition to OFF. Drivers use this as an optimization to avoid restoring > - * context if the device hasn't lost it. To use, drivers should initially > - * call this in their context save functions and store the result. Early in > - * the driver's context restore function, the driver should call this function > - * again, and compare the result to the stored counter. If they differ, the > - * driver must restore device context. If the number of context losses > - * exceeds the maximum positive integer, the function will wrap to 0 and > - * continue counting. Returns the number of context losses for this device, > - * or negative value upon error. > - */ > -int omap_pm_get_dev_context_loss_count(struct device *dev); > - > -void omap_pm_enable_off_mode(void); > -void omap_pm_disable_off_mode(void); > - > -#endif > diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c > --- a/arch/arm/mach-omap2/pdata-quirks.c > +++ b/arch/arm/mach-omap2/pdata-quirks.c > @@ -26,14 +26,12 @@ > #include <linux/platform_data/iommu-omap.h> > #include <linux/platform_data/ti-sysc.h> > #include <linux/platform_data/wkup_m3.h> > -#include <linux/platform_data/media/ir-rx51.h> > #include <linux/platform_data/asoc-ti-mcbsp.h> > > #include "common.h" > #include "common-board-devices.h" > #include "control.h" > #include "omap_device.h" > -#include "omap-pm.h" > #include "omap-secure.h" > #include "soc.h" > #include "hsmmc.h" > @@ -514,18 +512,6 @@ void omap_auxdata_legacy_init(struct device *dev) > dev->platform_data = &twl_gpio_auxdata; > } > > -static struct ir_rx51_platform_data __maybe_unused rx51_ir_data = { > - .set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat, > -}; > - > -static struct platform_device __maybe_unused rx51_ir_device = { > - .name = "ir_rx51", > - .id = -1, > - .dev = { > - .platform_data = &rx51_ir_data, > - }, > -}; > - > #if IS_ENABLED(CONFIG_SND_OMAP_SOC_MCBSP) > static struct omap_mcbsp_platform_data mcbsp_pdata; > static void __init omap3_mcbsp_init(void) > @@ -569,7 +555,6 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { > "480c9000.smartreflex", &omap_sr_pdata[OMAP_SR_MPU]), > OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x4809c000, "4809c000.mmc", &mmc_pdata[0]), > OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x480b4000, "480b4000.mmc", &mmc_pdata[1]), > - OF_DEV_AUXDATA("nokia,n900-ir", 0, "n900-ir", &rx51_ir_data), > /* Only on am3517 */ > OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), > OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", > diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c > --- a/arch/arm/mach-omap2/pm-debug.c > +++ b/arch/arm/mach-omap2/pm-debug.c > @@ -31,7 +31,6 @@ > #include "clock.h" > #include "powerdomain.h" > #include "clockdomain.h" > -#include "omap-pm.h" > > #include "soc.h" > #include "cm2xxx_3xxx.h" > @@ -240,10 +239,6 @@ static int option_set(void *data, u64 val) > *option = val; > > if (option == &enable_off_mode) { > - if (val) > - omap_pm_enable_off_mode(); > - else > - omap_pm_disable_off_mode(); > if (cpu_is_omap34xx()) > omap3_pm_off_mode_enable(val); > } > diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c > --- a/arch/arm/mach-omap2/pm.c > +++ b/arch/arm/mach-omap2/pm.c > @@ -16,11 +16,11 @@ > #include <linux/pm_opp.h> > #include <linux/export.h> > #include <linux/suspend.h> > +#include <linux/clk.h> > #include <linux/cpu.h> > > #include <asm/system_misc.h> > > -#include "omap-pm.h" > #include "omap_device.h" > #include "common.h" > > @@ -230,14 +230,6 @@ static void __init omap4_init_voltages(void) > omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", "iva"); > } > > -static int __init omap2_common_pm_init(void) > -{ > - omap_pm_if_init(); > - > - return 0; > -} > -omap_postcore_initcall(omap2_common_pm_init); > - > int __init omap2_common_pm_late_init(void) > { > /* Init the voltage layer */ > diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c > --- a/arch/arm/mach-omap2/timer.c > +++ b/arch/arm/mach-omap2/timer.c > @@ -50,7 +50,6 @@ > #include "omap_device.h" > #include <plat/counter-32k.h> > #include <clocksource/timer-ti-dm.h> > -#include "omap-pm.h" > > #include "soc.h" > #include "common.h" > diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig > --- a/arch/arm/plat-omap/Kconfig > +++ b/arch/arm/plat-omap/Kconfig > @@ -115,16 +115,6 @@ config OMAP_SERIAL_WAKE > to data on the serial RX line. This allows you to wake the > system from serial console. > > -choice > - prompt "OMAP PM layer selection" > - depends on ARCH_OMAP > - default OMAP_PM_NOOP > - > -config OMAP_PM_NOOP > - bool "No-op/debug PM layer" > - > -endchoice > - > endmenu > > endif > diff --git a/drivers/media/rc/ir-rx51.c b/drivers/media/rc/ir-rx51.c > --- a/drivers/media/rc/ir-rx51.c > +++ b/drivers/media/rc/ir-rx51.c > @@ -22,7 +22,6 @@ > #include <linux/hrtimer.h> > > #include <media/rc-core.h> > -#include <linux/platform_data/media/ir-rx51.h> > > #define WBUF_LEN 256 > > @@ -31,7 +30,6 @@ struct ir_rx51 { > struct pwm_device *pwm; > struct hrtimer timer; > struct device *dev; > - struct ir_rx51_platform_data *pdata; > wait_queue_head_t wqueue; > > unsigned int freq; /* carrier frequency */ > @@ -130,10 +128,9 @@ static int ir_rx51_tx(struct rc_dev *dev, unsigned int *buffer, > ir_rx51->wbuf[count] = -1; /* Insert termination mark */ > > /* > - * Adjust latency requirements so the device doesn't go in too > - * deep sleep states > + * REVISIT: Adjust latency requirements so the device doesn't go in too > + * deep sleep states with pm_qos_add_request(). > */ > - ir_rx51->pdata->set_max_mpu_wakeup_lat(ir_rx51->dev, 50); > > ir_rx51_on(ir_rx51); > ir_rx51->wbuf_index = 1; > @@ -146,8 +143,7 @@ static int ir_rx51_tx(struct rc_dev *dev, unsigned int *buffer, > */ > wait_event_interruptible(ir_rx51->wqueue, ir_rx51->wbuf_index < 0); > > - /* We can sleep again */ > - ir_rx51->pdata->set_max_mpu_wakeup_lat(ir_rx51->dev, -1); > + /* REVISIT: Remove pm_qos constraint, we can sleep again */ > > return count; > } > @@ -244,13 +240,6 @@ static int ir_rx51_probe(struct platform_device *dev) > struct pwm_device *pwm; > struct rc_dev *rcdev; > > - ir_rx51.pdata = dev->dev.platform_data; > - > - if (!ir_rx51.pdata) { > - dev_err(&dev->dev, "Platform Data is missing\n"); > - return -ENXIO; > - } > - > pwm = pwm_get(&dev->dev, NULL); > if (IS_ERR(pwm)) { > int err = PTR_ERR(pwm); > diff --git a/include/linux/platform_data/media/ir-rx51.h b/include/linux/platform_data/media/ir-rx51.h > deleted file mode 100644 > --- a/include/linux/platform_data/media/ir-rx51.h > +++ /dev/null > @@ -1,9 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0 */ > -#ifndef _IR_RX51_H > -#define _IR_RX51_H > - > -struct ir_rx51_platform_data { > - int(*set_max_mpu_wakeup_lat)(struct device *dev, long t); > -}; > - > -#endif Thanks, Mauro
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -78,7 +78,6 @@ endif omap-4-5-pm-common = omap-mpuss-lowpower.o obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-pm-common) obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-pm-common) -obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o ifeq ($(CONFIG_PM),y) obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c @@ -32,7 +32,6 @@ #include <linux/platform_data/omapdss.h> #include "omap_hwmod.h" #include "omap_device.h" -#include "omap-pm.h" #include "common.h" #include "soc.h" @@ -126,11 +125,6 @@ static void omap_dsi_disable_pads(int dsi_id, unsigned lane_mask) omap4_dsi_mux_pads(dsi_id, 0); } -static int omap_dss_set_min_bus_tput(struct device *dev, unsigned long tput) -{ - return omap_pm_set_min_bus_tput(dev, OCP_INITIATOR_AGENT, tput); -} - static enum omapdss_version __init omap_display_get_version(void) { if (cpu_is_omap24xx()) @@ -169,7 +163,6 @@ static int __init omapdss_init_fbdev(void) static struct omap_dss_board_info board_data = { .dsi_enable_pads = omap_dsi_enable_pads, .dsi_disable_pads = omap_dsi_disable_pads, - .set_min_bus_tput = omap_dss_set_min_bus_tput, }; struct device_node *node; int r; diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c @@ -18,7 +18,6 @@ #include "soc.h" #include "omap_device.h" -#include "omap-pm.h" #include "hsmmc.h" #include "control.h" diff --git a/arch/arm/mach-omap2/i2c.c b/arch/arm/mach-omap2/i2c.c --- a/arch/arm/mach-omap2/i2c.c +++ b/arch/arm/mach-omap2/i2c.c @@ -22,7 +22,6 @@ #include "soc.h" #include "omap_hwmod.h" #include "omap_device.h" -#include "omap-pm.h" #include "prm.h" #include "common.h" diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -37,7 +37,6 @@ #include "clock.h" #include "clock2xxx.h" #include "clock3xxx.h" -#include "omap-pm.h" #include "sdrc.h" #include "control.h" #include "serial.h" @@ -421,8 +420,6 @@ static void __init __maybe_unused omap_hwmod_init_postsetup(void) postsetup_state = _HWMOD_STATE_ENABLED; #endif omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state); - - omap_pm_if_early_init(); } static void __init __maybe_unused omap_common_late_init(void) diff --git a/arch/arm/mach-omap2/omap-pm-noop.c b/arch/arm/mach-omap2/omap-pm-noop.c deleted file mode 100644 --- a/arch/arm/mach-omap2/omap-pm-noop.c +++ /dev/null @@ -1,176 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * omap-pm-noop.c - OMAP power management interface - dummy version - * - * This code implements the OMAP power management interface to - * drivers, CPUIdle, CPUFreq, and DSP Bridge. It is strictly for - * debug/demonstration use, as it does nothing but printk() whenever a - * function is called (when DEBUG is defined, below) - * - * Copyright (C) 2008-2009 Texas Instruments, Inc. - * Copyright (C) 2008-2009 Nokia Corporation - * Paul Walmsley - * - * Interface developed by (in alphabetical order): - * Karthik Dasu, Tony Lindgren, Rajendra Nayak, Sakari Poussa, Veeramanikandan - * Raju, Anand Sawant, Igor Stoppa, Paul Walmsley, Richard Woodruff - */ - -#undef DEBUG - -#include <linux/init.h> -#include <linux/cpufreq.h> -#include <linux/device.h> -#include <linux/platform_device.h> - -#include "omap_device.h" -#include "omap-pm.h" - -static bool off_mode_enabled; -static int dummy_context_loss_counter; - -/* - * Device-driver-originated constraints (via board-*.c files) - */ - -int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t) -{ - if (!dev || t < -1) { - WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); - return -EINVAL; - } - - if (t == -1) - pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", - dev_name(dev)); - else - pr_debug("OMAP PM: add max MPU wakeup latency constraint: dev %s, t = %ld usec\n", - dev_name(dev), t); - - /* - * For current Linux, this needs to map the MPU to a - * powerdomain, then go through the list of current max lat - * constraints on the MPU and find the smallest. If - * the latency constraint has changed, the code should - * recompute the state to enter for the next powerdomain - * state. - * - * TI CDP code can call constraint_set here. - */ - - return 0; -} - -int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r) -{ - if (!dev || (agent_id != OCP_INITIATOR_AGENT && - agent_id != OCP_TARGET_AGENT)) { - WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); - return -EINVAL; - } - - if (r == 0) - pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", - dev_name(dev), agent_id); - else - pr_debug("OMAP PM: add min bus tput constraint: dev %s for agent_id %d: rate %ld KiB\n", - dev_name(dev), agent_id, r); - - /* - * This code should model the interconnect and compute the - * required clock frequency, convert that to a VDD2 OPP ID, then - * set the VDD2 OPP appropriately. - * - * TI CDP code can call constraint_set here on the VDD2 OPP. - */ - - return 0; -} - -/* - * DSP Bridge-specific constraints - */ - - -/** - * omap_pm_enable_off_mode - notify OMAP PM that off-mode is enabled - * - * Intended for use only by OMAP PM core code to notify this layer - * that off mode has been enabled. - */ -void omap_pm_enable_off_mode(void) -{ - off_mode_enabled = true; -} - -/** - * omap_pm_disable_off_mode - notify OMAP PM that off-mode is disabled - * - * Intended for use only by OMAP PM core code to notify this layer - * that off mode has been disabled. - */ -void omap_pm_disable_off_mode(void) -{ - off_mode_enabled = false; -} - -/* - * Device context loss tracking - */ - -#ifdef CONFIG_ARCH_OMAP2PLUS - -int omap_pm_get_dev_context_loss_count(struct device *dev) -{ - struct platform_device *pdev = to_platform_device(dev); - int count; - - if (WARN_ON(!dev)) - return -ENODEV; - - if (dev->pm_domain == &omap_device_pm_domain) { - count = omap_device_get_context_loss_count(pdev); - } else { - WARN_ONCE(off_mode_enabled, "omap_pm: using dummy context loss counter; device %s should be converted to omap_device", - dev_name(dev)); - - count = dummy_context_loss_counter; - - if (off_mode_enabled) { - count++; - /* - * Context loss count has to be a non-negative value. - * Clear the sign bit to get a value range from 0 to - * INT_MAX. - */ - count &= INT_MAX; - dummy_context_loss_counter = count; - } - } - - pr_debug("OMAP PM: context loss count for dev %s = %d\n", - dev_name(dev), count); - - return count; -} - -#else - -int omap_pm_get_dev_context_loss_count(struct device *dev) -{ - return dummy_context_loss_counter; -} - -#endif - -/* Should be called before clk framework init */ -int __init omap_pm_if_early_init(void) -{ - return 0; -} - -/* Must be called after clock framework is initialized */ -int __init omap_pm_if_init(void) -{ - return 0; -} diff --git a/arch/arm/mach-omap2/omap-pm.h b/arch/arm/mach-omap2/omap-pm.h deleted file mode 100644 --- a/arch/arm/mach-omap2/omap-pm.h +++ /dev/null @@ -1,161 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * omap-pm.h - OMAP power management interface - * - * Copyright (C) 2008-2010 Texas Instruments, Inc. - * Copyright (C) 2008-2010 Nokia Corporation - * Paul Walmsley - * - * Interface developed by (in alphabetical order): Karthik Dasu, Jouni - * Högander, Tony Lindgren, Rajendra Nayak, Sakari Poussa, - * Veeramanikandan Raju, Anand Sawant, Igor Stoppa, Paul Walmsley, - * Richard Woodruff - */ - -#ifndef ASM_ARM_ARCH_OMAP_OMAP_PM_H -#define ASM_ARM_ARCH_OMAP_OMAP_PM_H - -#include <linux/device.h> -#include <linux/cpufreq.h> -#include <linux/clk.h> -#include <linux/pm_opp.h> - -/* - * agent_id values for use with omap_pm_set_min_bus_tput(): - * - * OCP_INITIATOR_AGENT is only valid for devices that can act as - * initiators -- it represents the device's L3 interconnect - * connection. OCP_TARGET_AGENT represents the device's L4 - * interconnect connection. - */ -#define OCP_TARGET_AGENT 1 -#define OCP_INITIATOR_AGENT 2 - -/** - * omap_pm_if_early_init - OMAP PM init code called before clock fw init - * @mpu_opp_table: array ptr to struct omap_opp for MPU - * @dsp_opp_table: array ptr to struct omap_opp for DSP - * @l3_opp_table : array ptr to struct omap_opp for CORE - * - * Initialize anything that must be configured before the clock - * framework starts. The "_if_" is to avoid name collisions with the - * PM idle-loop code. - */ -int __init omap_pm_if_early_init(void); - -/** - * omap_pm_if_init - OMAP PM init code called after clock fw init - * - * The main initialization code. OPP tables are passed in here. The - * "_if_" is to avoid name collisions with the PM idle-loop code. - */ -int __init omap_pm_if_init(void); - -/* - * Device-driver-originated constraints (via board-*.c files, platform_data) - */ - - -/** - * omap_pm_set_max_mpu_wakeup_lat - set the maximum MPU wakeup latency - * @dev: struct device * requesting the constraint - * @t: maximum MPU wakeup latency in microseconds - * - * Request that the maximum interrupt latency for the MPU to be no - * greater than @t microseconds. "Interrupt latency" in this case is - * defined as the elapsed time from the occurrence of a hardware or - * timer interrupt to the time when the device driver's interrupt - * service routine has been entered by the MPU. - * - * It is intended that underlying PM code will use this information to - * determine what power state to put the MPU powerdomain into, and - * possibly the CORE powerdomain as well, since interrupt handling - * code currently runs from SDRAM. Advanced PM or board*.c code may - * also configure interrupt controller priorities, OCP bus priorities, - * CPU speed(s), etc. - * - * This function will not affect device wakeup latency, e.g., time - * elapsed from when a device driver enables a hardware device with - * clk_enable(), to when the device is ready for register access or - * other use. To control this device wakeup latency, use - * omap_pm_set_max_dev_wakeup_lat() - * - * Multiple calls to omap_pm_set_max_mpu_wakeup_lat() will replace the - * previous t value. To remove the latency target for the MPU, call - * with t = -1. - * - * XXX This constraint will be deprecated soon in favor of the more - * general omap_pm_set_max_dev_wakeup_lat() - * - * Returns -EINVAL for an invalid argument, -ERANGE if the constraint - * is not satisfiable, or 0 upon success. - */ -int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t); - - -/** - * omap_pm_set_min_bus_tput - set minimum bus throughput needed by device - * @dev: struct device * requesting the constraint - * @tbus_id: interconnect to operate on (OCP_{INITIATOR,TARGET}_AGENT) - * @r: minimum throughput (in KiB/s) - * - * Request that the minimum data throughput on the OCP interconnect - * attached to device @dev interconnect agent @tbus_id be no less - * than @r KiB/s. - * - * It is expected that the OMAP PM or bus code will use this - * information to set the interconnect clock to run at the lowest - * possible speed that satisfies all current system users. The PM or - * bus code will adjust the estimate based on its model of the bus, so - * device driver authors should attempt to specify an accurate - * quantity for their device use case, and let the PM or bus code - * overestimate the numbers as necessary to handle request/response - * latency, other competing users on the system, etc. On OMAP2/3, if - * a driver requests a minimum L4 interconnect speed constraint, the - * code will also need to add an minimum L3 interconnect speed - * constraint, - * - * Multiple calls to omap_pm_set_min_bus_tput() will replace the - * previous rate value for this device. To remove the interconnect - * throughput restriction for this device, call with r = 0. - * - * Returns -EINVAL for an invalid argument, -ERANGE if the constraint - * is not satisfiable, or 0 upon success. - */ -int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r); - - -/* - * CPUFreq-originated constraint - * - * In the future, this should be handled by custom OPP clocktype - * functions. - */ - - -/* - * Device context loss tracking - */ - -/** - * omap_pm_get_dev_context_loss_count - return count of times dev has lost ctx - * @dev: struct device * - * - * This function returns the number of times that the device @dev has - * lost its internal context. This generally occurs on a powerdomain - * transition to OFF. Drivers use this as an optimization to avoid restoring - * context if the device hasn't lost it. To use, drivers should initially - * call this in their context save functions and store the result. Early in - * the driver's context restore function, the driver should call this function - * again, and compare the result to the stored counter. If they differ, the - * driver must restore device context. If the number of context losses - * exceeds the maximum positive integer, the function will wrap to 0 and - * continue counting. Returns the number of context losses for this device, - * or negative value upon error. - */ -int omap_pm_get_dev_context_loss_count(struct device *dev); - -void omap_pm_enable_off_mode(void); -void omap_pm_disable_off_mode(void); - -#endif diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -26,14 +26,12 @@ #include <linux/platform_data/iommu-omap.h> #include <linux/platform_data/ti-sysc.h> #include <linux/platform_data/wkup_m3.h> -#include <linux/platform_data/media/ir-rx51.h> #include <linux/platform_data/asoc-ti-mcbsp.h> #include "common.h" #include "common-board-devices.h" #include "control.h" #include "omap_device.h" -#include "omap-pm.h" #include "omap-secure.h" #include "soc.h" #include "hsmmc.h" @@ -514,18 +512,6 @@ void omap_auxdata_legacy_init(struct device *dev) dev->platform_data = &twl_gpio_auxdata; } -static struct ir_rx51_platform_data __maybe_unused rx51_ir_data = { - .set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat, -}; - -static struct platform_device __maybe_unused rx51_ir_device = { - .name = "ir_rx51", - .id = -1, - .dev = { - .platform_data = &rx51_ir_data, - }, -}; - #if IS_ENABLED(CONFIG_SND_OMAP_SOC_MCBSP) static struct omap_mcbsp_platform_data mcbsp_pdata; static void __init omap3_mcbsp_init(void) @@ -569,7 +555,6 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { "480c9000.smartreflex", &omap_sr_pdata[OMAP_SR_MPU]), OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x4809c000, "4809c000.mmc", &mmc_pdata[0]), OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x480b4000, "480b4000.mmc", &mmc_pdata[1]), - OF_DEV_AUXDATA("nokia,n900-ir", 0, "n900-ir", &rx51_ir_data), /* Only on am3517 */ OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c @@ -31,7 +31,6 @@ #include "clock.h" #include "powerdomain.h" #include "clockdomain.h" -#include "omap-pm.h" #include "soc.h" #include "cm2xxx_3xxx.h" @@ -240,10 +239,6 @@ static int option_set(void *data, u64 val) *option = val; if (option == &enable_off_mode) { - if (val) - omap_pm_enable_off_mode(); - else - omap_pm_disable_off_mode(); if (cpu_is_omap34xx()) omap3_pm_off_mode_enable(val); } diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -16,11 +16,11 @@ #include <linux/pm_opp.h> #include <linux/export.h> #include <linux/suspend.h> +#include <linux/clk.h> #include <linux/cpu.h> #include <asm/system_misc.h> -#include "omap-pm.h" #include "omap_device.h" #include "common.h" @@ -230,14 +230,6 @@ static void __init omap4_init_voltages(void) omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", "iva"); } -static int __init omap2_common_pm_init(void) -{ - omap_pm_if_init(); - - return 0; -} -omap_postcore_initcall(omap2_common_pm_init); - int __init omap2_common_pm_late_init(void) { /* Init the voltage layer */ diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -50,7 +50,6 @@ #include "omap_device.h" #include <plat/counter-32k.h> #include <clocksource/timer-ti-dm.h> -#include "omap-pm.h" #include "soc.h" #include "common.h" diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig @@ -115,16 +115,6 @@ config OMAP_SERIAL_WAKE to data on the serial RX line. This allows you to wake the system from serial console. -choice - prompt "OMAP PM layer selection" - depends on ARCH_OMAP - default OMAP_PM_NOOP - -config OMAP_PM_NOOP - bool "No-op/debug PM layer" - -endchoice - endmenu endif diff --git a/drivers/media/rc/ir-rx51.c b/drivers/media/rc/ir-rx51.c --- a/drivers/media/rc/ir-rx51.c +++ b/drivers/media/rc/ir-rx51.c @@ -22,7 +22,6 @@ #include <linux/hrtimer.h> #include <media/rc-core.h> -#include <linux/platform_data/media/ir-rx51.h> #define WBUF_LEN 256 @@ -31,7 +30,6 @@ struct ir_rx51 { struct pwm_device *pwm; struct hrtimer timer; struct device *dev; - struct ir_rx51_platform_data *pdata; wait_queue_head_t wqueue; unsigned int freq; /* carrier frequency */ @@ -130,10 +128,9 @@ static int ir_rx51_tx(struct rc_dev *dev, unsigned int *buffer, ir_rx51->wbuf[count] = -1; /* Insert termination mark */ /* - * Adjust latency requirements so the device doesn't go in too - * deep sleep states + * REVISIT: Adjust latency requirements so the device doesn't go in too + * deep sleep states with pm_qos_add_request(). */ - ir_rx51->pdata->set_max_mpu_wakeup_lat(ir_rx51->dev, 50); ir_rx51_on(ir_rx51); ir_rx51->wbuf_index = 1; @@ -146,8 +143,7 @@ static int ir_rx51_tx(struct rc_dev *dev, unsigned int *buffer, */ wait_event_interruptible(ir_rx51->wqueue, ir_rx51->wbuf_index < 0); - /* We can sleep again */ - ir_rx51->pdata->set_max_mpu_wakeup_lat(ir_rx51->dev, -1); + /* REVISIT: Remove pm_qos constraint, we can sleep again */ return count; } @@ -244,13 +240,6 @@ static int ir_rx51_probe(struct platform_device *dev) struct pwm_device *pwm; struct rc_dev *rcdev; - ir_rx51.pdata = dev->dev.platform_data; - - if (!ir_rx51.pdata) { - dev_err(&dev->dev, "Platform Data is missing\n"); - return -ENXIO; - } - pwm = pwm_get(&dev->dev, NULL); if (IS_ERR(pwm)) { int err = PTR_ERR(pwm); diff --git a/include/linux/platform_data/media/ir-rx51.h b/include/linux/platform_data/media/ir-rx51.h deleted file mode 100644 --- a/include/linux/platform_data/media/ir-rx51.h +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _IR_RX51_H -#define _IR_RX51_H - -struct ir_rx51_platform_data { - int(*set_max_mpu_wakeup_lat)(struct device *dev, long t); -}; - -#endif
Looks like these functions don't do anything in the mainline kernel so we can just drop it. Note that we must now also remove ir-rx51 pdata as it relies on the dummy platform data that does not do anything. And ir-rx51 is calling a pdata callback that doesn't do anything without checking if it exists first. For configuring device specific minimal latencies, the interface to use is pm_qos_add_request(). For an example, see what was done in commit 9834ffd1ecc3 ("ASoC: omap-mcbsp: Add PM QoS support for McBSP to prevent glitches"). I've added some comments to ir-rx51 so people using it can add pm_qos support and test it. Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> Cc: Kevin Hilman <khilman@kernel.org> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> --- arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/display.c | 7 - arch/arm/mach-omap2/hsmmc.c | 1 - arch/arm/mach-omap2/i2c.c | 1 - arch/arm/mach-omap2/io.c | 3 - arch/arm/mach-omap2/omap-pm-noop.c | 176 -------------------- arch/arm/mach-omap2/omap-pm.h | 161 ------------------ arch/arm/mach-omap2/pdata-quirks.c | 15 -- arch/arm/mach-omap2/pm-debug.c | 5 - arch/arm/mach-omap2/pm.c | 10 +- arch/arm/mach-omap2/timer.c | 1 - arch/arm/plat-omap/Kconfig | 10 -- drivers/media/rc/ir-rx51.c | 17 +- include/linux/platform_data/media/ir-rx51.h | 9 - 14 files changed, 4 insertions(+), 413 deletions(-) delete mode 100644 arch/arm/mach-omap2/omap-pm-noop.c delete mode 100644 arch/arm/mach-omap2/omap-pm.h delete mode 100644 include/linux/platform_data/media/ir-rx51.h