diff mbox series

[01/16] ARM: OMAP2+: Drop unused pm-noop

Message ID 20180423174549.57412-2-tony@atomide.com
State New
Headers show
Series ti-sysc driver changes to support more devices | expand

Commit Message

Tony Lindgren April 23, 2018, 5:45 p.m. UTC
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

Comments

Mauro Carvalho Chehab April 30, 2018, 6:57 p.m. UTC | #1
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 mbox series

Patch

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