linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nishanth Menon <menon.nishanth@gmail.com>
To: Sanjeev Premi <premi@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCHv1 1/1] omap3: pm: Delink opp layer and cpufreq
Date: Mon, 31 May 2010 20:29:07 +0300	[thread overview]
Message-ID: <4C03F1E3.9030202@gmail.com> (raw)
In-Reply-To: <1275309542-26004-1-git-send-email-premi@ti.com>

On 05/31/2010 03:39 PM, Sanjeev Premi wrote:
> The OPP layer was contained in the CONFIG_CPU_FREQ.
> This patch removes this containment relation.
>
> Signed-off-by: Sanjeev Premi<premi@ti.com>
> ---
>   arch/arm/mach-omap2/Makefile          |    6 +-
>   arch/arm/mach-omap2/board-omap3evm.c  |    2 +-
you sure this is the only board file having "omap3-opp.h" ? anyway.. the 
need for board files to use opp_init is gone with my patch
http://marc.info/?l=linux-omap&m=127507237109393&w=2
so I wont harp on it, I would rather post a cleanup patch for all board 
files once the patch is in..(or mebbe kevin could drop the patch that 
adds opp_init_table to board files ;) )..

>   arch/arm/mach-omap2/cpufreq34xx.c     |  164 --------------------------------
>   arch/arm/mach-omap2/omap3-opp.h       |   20 ----
>   arch/arm/mach-omap2/opp34xx_data.c    |  166 +++++++++++++++++++++++++++++++++
>   arch/arm/mach-omap2/pm34xx.c          |    1 -
>   arch/arm/plat-omap/Makefile           |    7 +-
>   arch/arm/plat-omap/cpu-omap.c         |   47 +++++++++
>   arch/arm/plat-omap/include/plat/opp.h |   82 +---------------
>   arch/arm/plat-omap/opp.c              |   46 ---------
>   10 files changed, 225 insertions(+), 316 deletions(-)
>   delete mode 100644 arch/arm/mach-omap2/cpufreq34xx.c
>   delete mode 100644 arch/arm/mach-omap2/omap3-opp.h
>   create mode 100644 arch/arm/mach-omap2/opp34xx_data.c
>
> diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
> index ac08f99..4e51a99 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -55,10 +55,8 @@ AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a
>
>   endif
>
> -# CPU Frequency
> -ifeq ($(CONFIG_CPU_FREQ),y)
> -obj-$(CONFIG_ARCH_OMAP3)		+= cpufreq34xx.o
> -endif
> +# OPP definitions for OMAP3
> +obj-$(CONFIG_ARCH_OMAP3)		+= opp34xx_data.o
>
>   # PRCM
>   obj-$(CONFIG_ARCH_OMAP2)		+= cm.o
> diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
> index 0a3f5b6..cb97c5d 100644
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -50,11 +50,11 @@
>   #include<plat/common.h>
>   #include<plat/mcspi.h>
>   #include<plat/display.h>
> +#include<plat/opp.h>
>
>   #include "mux.h"
>   #include "sdram-micron-mt46h32m32lf-6.h"
>   #include "hsmmc.h"
> -#include "omap3-opp.h"
>
>   #define GPMC_CS0_BASE  0x60
>   #define GPMC_CS_SIZE   0x30
> diff --git a/arch/arm/mach-omap2/cpufreq34xx.c b/arch/arm/mach-omap2/cpufreq34xx.c
> deleted file mode 100644
> index 8747dd6..0000000
> --- a/arch/arm/mach-omap2/cpufreq34xx.c
> +++ /dev/null
> @@ -1,164 +0,0 @@
> -/*
> - * arch/arm/mach-omap2/cpufreq34xx.c
> - * OMAP3 resource init/change_level/validate_level functions
> - *
> - * Copyright (C) 2009 - 2010 Texas Instruments Incorporated.
> - *	Nishanth Menon
> - * Copyright (C) 2009 - 2010 Deep Root Systems, LLC.
> - *	Kevin Hilman
> - * Copyright (C) 2010 Nokia Corporation.
> - *      Eduardo Valentin
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - * History:
> - *
> - */
> -
> -#include<linux/module.h>
> -#include<linux/err.h>
> -
> -#include<plat/opp.h>
> -#include<plat/cpu.h>
> -#include "omap3-opp.h"
> -
> -static struct omap_opp_def __initdata omap34xx_mpu_rate_table[] = {
> -	/* OPP1 */
> -	OMAP_OPP_DEF(true, 125000000, 975000),
> -	/* OPP2 */
> -	OMAP_OPP_DEF(true, 250000000, 1075000),
> -	/* OPP3 */
> -	OMAP_OPP_DEF(true, 500000000, 1200000),
> -	/* OPP4 */
> -	OMAP_OPP_DEF(true, 550000000, 1270000),
> -	/* OPP5 */
> -	OMAP_OPP_DEF(true, 600000000, 1350000),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -static struct omap_opp_def __initdata omap34xx_l3_rate_table[] = {
> -	/*
> -	 * OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is
> -	 * almost the same than the one at 83MHz thus providing very little
> -	 * gain for the power point of view. In term of energy it will even
> -	 * increase the consumption due to the very negative performance
> -	 * impact that frequency will do to the MPU and the whole system in
> -	 * general.
> -	 */
> -	OMAP_OPP_DEF(false, 41500000, 975000),
> -	/* OPP2 */
> -	OMAP_OPP_DEF(true, 83000000, 1050000),
> -	/* OPP3 */
> -	OMAP_OPP_DEF(true, 166000000, 1150000),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -static struct omap_opp_def __initdata omap34xx_dsp_rate_table[] = {
> -	/* OPP1 */
> -	OMAP_OPP_DEF(true, 90000000, 975000),
> -	/* OPP2 */
> -	OMAP_OPP_DEF(true, 180000000, 1075000),
> -	/* OPP3 */
> -	OMAP_OPP_DEF(true, 360000000, 1200000),
> -	/* OPP4 */
> -	OMAP_OPP_DEF(true, 400000000, 1270000),
> -	/* OPP5 */
> -	OMAP_OPP_DEF(true, 430000000, 1350000),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -static struct omap_opp_def __initdata omap36xx_mpu_rate_table[] = {
> -	/* OPP1 - OPP50 */
> -	OMAP_OPP_DEF(true,  300000000, 930000),
> -	/* OPP2 - OPP100 */
> -	OMAP_OPP_DEF(true,  600000000, 1100000),
> -	/* OPP3 - OPP-Turbo */
> -	OMAP_OPP_DEF(false, 800000000, 1260000),
> -	/* OPP4 - OPP-SB */
> -	OMAP_OPP_DEF(false, 1000000000, 1350000),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -static struct omap_opp_def __initdata omap36xx_l3_rate_table[] = {
> -	/* OPP1 - OPP50 */
> -	OMAP_OPP_DEF(true, 100000000, 930000),
> -	/* OPP2 - OPP100, OPP-Turbo, OPP-SB */
> -	OMAP_OPP_DEF(true, 200000000, 1137500),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -static struct omap_opp_def __initdata omap36xx_dsp_rate_table[] = {
> -	/* OPP1 - OPP50 */
> -	OMAP_OPP_DEF(true,  260000000, 930000),
> -	/* OPP2 - OPP100 */
> -	OMAP_OPP_DEF(true,  520000000, 1100000),
> -	/* OPP3 - OPP-Turbo */
> -	OMAP_OPP_DEF(false, 660000000, 1260000),
> -	/* OPP4 - OPP-SB */
> -	OMAP_OPP_DEF(false, 800000000, 1350000),
> -	/* Terminator */
> -	OMAP_OPP_DEF(0, 0, 0)
> -};
> -
> -int __init omap3_pm_init_opp_table(void)
> -{
> -	int i, r;
> -	struct omap_opp_def **omap3_opp_def_list;
> -	struct omap_opp_def *omap34xx_opp_def_list[] = {
> -		omap34xx_mpu_rate_table,
> -		omap34xx_l3_rate_table,
> -		omap34xx_dsp_rate_table
> -	};
> -	struct omap_opp_def *omap36xx_opp_def_list[] = {
> -		omap36xx_mpu_rate_table,
> -		omap36xx_l3_rate_table,
> -		omap36xx_dsp_rate_table
> -	};
> -	enum opp_t omap3_opps[] = {
> -		OPP_MPU,
> -		OPP_L3,
> -		OPP_DSP
> -	};
> -
> -	omap3_opp_def_list = cpu_is_omap3630() ? omap36xx_opp_def_list :
> -				omap34xx_opp_def_list;
> -
> -	for (i = 0; i<  ARRAY_SIZE(omap3_opps); i++) {
> -		r = opp_init_list(omap3_opps[i], omap3_opp_def_list[i]);
> -		if (r)
> -			break;
> -	}
> -	if (!r)
> -		return 0;
> -
> -	/* Cascading error handling - disable all enabled OPPs */
> -	pr_err("%s: Failed to register %d OPP type\n", __func__,
> -		omap3_opps[i]);
> -	i--;
> -	while (i != -1) {
> -		struct omap_opp *opp;
> -		unsigned long freq = 0;
> -
> -		do {
> -			opp = opp_find_freq_ceil(omap3_opps[i],&freq);
> -			if (IS_ERR(opp))
> -				break;
> -			opp_disable(opp);
> -			freq++;
> -		} while (1);
> -		i--;
> -	}
> -
> -	return r;
> -}
> -
> diff --git a/arch/arm/mach-omap2/omap3-opp.h b/arch/arm/mach-omap2/omap3-opp.h
> deleted file mode 100644
> index 16d9e5b..0000000
> --- a/arch/arm/mach-omap2/omap3-opp.h
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -#ifndef __OMAP3_OPP_H_
> -#define __OMAP3_OPP_H_
> -
> -#include<plat/omap-pm.h>
> -
> -/**
> - * omap3_pm_init_opp_table - OMAP opp table lookup called after cpu is detected.
> - * Initialize the basic opp table here, board files could choose to modify opp
> - * table after the basic initialization
> - */
> -#ifdef CONFIG_CPU_FREQ
> -extern int omap3_pm_init_opp_table(void);
> -#else
> -static inline int omap3_pm_init_opp_table(void)
> -{
> -	return -EINVAL;
> -}
> -#endif
> -
> -#endif

finding it difficult to align with this change, you introduce 
omap3_pm_init_opp_table later into plat/opp.h which defeats generic 
nature of opp.h - as it was supposed to be used for other omaps as well..

> diff --git a/arch/arm/mach-omap2/opp34xx_data.c b/arch/arm/mach-omap2/opp34xx_data.c
> new file mode 100644
> index 0000000..7017d6d
> --- /dev/null
> +++ b/arch/arm/mach-omap2/opp34xx_data.c
> @@ -0,0 +1,166 @@
> +/*
> + * arch/arm/mach-omap2/cpufreq34xx.c
one more reason why i think i prefer not to have file names in comment 
headers ;) they get forgotten to be modified..

> + * OMAP3 resource init/change_level/validate_level functions
> + *
> + * Copyright (C) 2009 - 2010 Texas Instruments Incorporated.
> + *	Nishanth Menon
> + * Copyright (C) 2009 - 2010 Deep Root Systems, LLC.
> + *	Kevin Hilman
> + * Copyright (C) 2010 Nokia Corporation.
> + *      Eduardo Valentin
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> + * History:
> + *
> + */
> +
> +#include<linux/module.h>
> +#include<linux/err.h>
> +
> +#include<plat/opp.h>
> +#include<plat/cpu.h>
> +
> +static struct omap_opp_def __initdata omap34xx_mpu_rate_table[] = {
> +	/* OPP1 */
> +	OMAP_OPP_DEF(true, 125000000, 975000),
> +	/* OPP2 */
> +	OMAP_OPP_DEF(true, 250000000, 1075000),
> +	/* OPP3 */
> +	OMAP_OPP_DEF(true, 500000000, 1200000),
> +	/* OPP4 */
> +	OMAP_OPP_DEF(true, 550000000, 1270000),
> +	/* OPP5 */
> +	OMAP_OPP_DEF(true, 600000000, 1350000),
> +	/* OPP6 */
> +	OMAP_OPP_DEF(true, 720000000, 1350000),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +static struct omap_opp_def __initdata omap34xx_l3_rate_table[] = {
> +	/*
> +	 * OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is
> +	 * almost the same than the one at 83MHz thus providing very little
> +	 * gain for the power point of view. In term of energy it will even
> +	 * increase the consumption due to the very negative performance
> +	 * impact that frequency will do to the MPU and the whole system in
> +	 * general.
> +	 */
> +	OMAP_OPP_DEF(false, 41500000, 975000),
> +	/* OPP2 */
> +	OMAP_OPP_DEF(true, 83000000, 1050000),
> +	/* OPP3 */
> +	OMAP_OPP_DEF(true, 166000000, 1150000),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +static struct omap_opp_def __initdata omap34xx_dsp_rate_table[] = {
> +	/* OPP1 */
> +	OMAP_OPP_DEF(true, 90000000, 975000),
> +	/* OPP2 */
> +	OMAP_OPP_DEF(true, 180000000, 1075000),
> +	/* OPP3 */
> +	OMAP_OPP_DEF(true, 360000000, 1200000),
> +	/* OPP4 */
> +	OMAP_OPP_DEF(true, 400000000, 1270000),
> +	/* OPP5 */
> +	OMAP_OPP_DEF(true, 430000000, 1350000),
> +	/* OPP6 */
> +	OMAP_OPP_DEF(true, 520000000, 1350000),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +static struct omap_opp_def __initdata omap36xx_mpu_rate_table[] = {
> +	/* OPP1 - OPP50 */
> +	OMAP_OPP_DEF(true,  300000000, 930000),
> +	/* OPP2 - OPP100 */
> +	OMAP_OPP_DEF(true,  600000000, 1100000),
> +	/* OPP3 - OPP-Turbo */
> +	OMAP_OPP_DEF(false, 800000000, 1260000),
> +	/* OPP4 - OPP-SB */
> +	OMAP_OPP_DEF(false, 1000000000, 1350000),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +static struct omap_opp_def __initdata omap36xx_l3_rate_table[] = {
> +	/* OPP1 - OPP50 */
> +	OMAP_OPP_DEF(true, 100000000, 930000),
> +	/* OPP2 - OPP100, OPP-Turbo, OPP-SB */
> +	OMAP_OPP_DEF(true, 200000000, 1137500),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +static struct omap_opp_def __initdata omap36xx_dsp_rate_table[] = {
> +	/* OPP1 - OPP50 */
> +	OMAP_OPP_DEF(true,  260000000, 930000),
> +	/* OPP2 - OPP100 */
> +	OMAP_OPP_DEF(true,  520000000, 1100000),
> +	/* OPP3 - OPP-Turbo */
> +	OMAP_OPP_DEF(false, 660000000, 1260000),
> +	/* OPP4 - OPP-SB */
> +	OMAP_OPP_DEF(false, 800000000, 1350000),
> +	/* Terminator */
> +	OMAP_OPP_DEF(0, 0, 0)
> +};
> +
> +int __init omap3_pm_init_opp_table(void)
> +{
> +	int i, r;
> +	struct omap_opp_def **omap3_opp_def_list;
> +	struct omap_opp_def *omap34xx_opp_def_list[] = {
> +		omap34xx_mpu_rate_table,
> +		omap34xx_l3_rate_table,
> +		omap34xx_dsp_rate_table
> +	};
> +	struct omap_opp_def *omap36xx_opp_def_list[] = {
> +		omap36xx_mpu_rate_table,
> +		omap36xx_l3_rate_table,
> +		omap36xx_dsp_rate_table
> +	};
> +	enum opp_t omap3_opps[] = {
> +		OPP_MPU,
> +		OPP_L3,
> +		OPP_DSP
> +	};
> +
> +	omap3_opp_def_list = cpu_is_omap3630() ? omap36xx_opp_def_list :
> +				omap34xx_opp_def_list;
> +
> +	for (i = 0; i<  ARRAY_SIZE(omap3_opps); i++) {
> +		r = opp_init_list(omap3_opps[i], omap3_opp_def_list[i]);
> +		if (r)
> +			break;
> +	}
> +	if (!r)
> +		return 0;
> +
> +	/* Cascading error handling - disable all enabled OPPs */
> +	pr_err("%s: Failed to register %d OPP type\n", __func__,
> +		omap3_opps[i]);
> +	i--;
> +	while (i != -1) {
> +		struct omap_opp *opp;
> +		unsigned long freq = 0;
> +
> +		do {
> +			opp = opp_find_freq_ceil(omap3_opps[i],&freq);
> +			if (IS_ERR(opp))
> +				break;
> +			opp_disable(opp);
> +			freq++;
> +		} while (1);
> +		i--;
> +	}
> +
> +	return r;
> +}
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index 48857a4..271d49f 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -53,7 +53,6 @@
>   #include "prm.h"
>   #include "pm.h"
>   #include "sdrc.h"
> -#include "omap3-opp.h"
>
>   #ifdef CONFIG_SUSPEND
>   static suspend_state_t suspend_state = PM_SUSPEND_ON;
> diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
> index 2b9ebf0..ee79885 100644
> --- a/arch/arm/plat-omap/Makefile
> +++ b/arch/arm/plat-omap/Makefile
> @@ -13,10 +13,9 @@ obj-  :=
>   obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
>
>   # OPP support in (OMAP3+ only at the moment)
> -# XXX The OPP TWL/TPS code should only be included when a TWL/TPS
> -# PMIC is selected.
> -ifdef CONFIG_CPU_FREQ
> -obj-$(CONFIG_ARCH_OMAP3) += opp.o opp_twl_tps.o
> +ifdef CONFIG_ARCH_OMAP3
> +obj-y				+= opp.o
> +obj-$(CONFIG_TWL4030_POWER)	+= opp_twl_tps.o
NAK. you just need TWL4030_CORE not power here. any reason to retain 
power? it has no dependency on power..

>   endif
>
>   # omap_device support (OMAP2+ only at the moment)
> diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
> index 0674405..d46b8d0 100644
> --- a/arch/arm/plat-omap/cpu-omap.c
> +++ b/arch/arm/plat-omap/cpu-omap.c
> @@ -121,6 +121,53 @@ static int omap_target(struct cpufreq_policy *policy,
>   	return ret;
>   }
>
> +#ifdef CONFIG_ARCH_OMAP3
> +void opp_init_cpufreq_table(enum opp_t opp_type,
> +			    struct cpufreq_frequency_table **table)
> +{
> +	int i = 0, j;
> +	int opp_num;
> +	struct cpufreq_frequency_table *freq_table;
> +	struct omap_opp *opp;
> +
> +	if (opp_type>= OPP_TYPES_MAX) {
> +		pr_warning("%s: failed to initialize frequency"
> +				"table\n", __func__);
> +		return;
> +	}
> +
> +	opp_num = opp_get_opp_count(opp_type);
> +	if (opp_num<  0) {
> +		pr_err("%s: no opp table?\n", __func__);
> +		return;
> +	}
> +
> +	freq_table = kmalloc(sizeof(struct cpufreq_frequency_table) *
> +			     (opp_num + 1), GFP_ATOMIC);
> +	if (!freq_table) {
> +		pr_warning("%s: failed to allocate frequency"
> +				"table\n", __func__);
> +		return;
> +	}
> +
> +	opp = _opp_list[opp_type];
> +	opp += opp_num;
> +	for (j = opp_num; j>= 0; j--) {
> +		if (opp->enabled) {
> +			freq_table[i].index = i;
> +			freq_table[i].frequency = opp->rate / 1000;
> +			i++;
> +		}
> +		opp--;
> +	}
> +
> +	freq_table[i].index = i;
> +	freq_table[i].frequency = CPUFREQ_TABLE_END;
> +
> +	*table =&freq_table[0];
> +}
> +#endif
> +
errrr.... why? it used to be here and was moved to opp.c - see
http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=commit;h=9a6b00f70e9f4bce30ad4f8fab41a24bd3706dbd
you are essentially reverting that patch!

>   static int __init omap_cpu_init(struct cpufreq_policy *policy)
>   {
>   	int result = 0;
> diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
> index 7d16a46..51b1776 100644
> --- a/arch/arm/plat-omap/include/plat/opp.h
> +++ b/arch/arm/plat-omap/include/plat/opp.h
> @@ -15,7 +15,6 @@
>   #define __ASM_ARM_OMAP_OPP_H
>
>   #include<linux/err.h>
> -#include<linux/cpufreq.h>
>
>   #ifdef CONFIG_ARCH_OMAP3
>   enum opp_t {
> @@ -66,7 +65,6 @@ struct omap_opp_def {
>
>   struct omap_opp;
>
> -#ifdef CONFIG_CPU_FREQ
>
>   /**
>    * opp_get_voltage() - Gets the voltage corresponding to an opp
> @@ -233,79 +231,11 @@ struct omap_opp * __deprecated opp_find_by_opp_id(enum opp_t opp_type,
>   						  u8 opp_id);
>   u8 __deprecated opp_get_opp_id(struct omap_opp *opp);
>
> -void opp_init_cpufreq_table(enum opp_t opp_type,
> -			    struct cpufreq_frequency_table **table);
> -#else
> -static inline unsigned long opp_get_voltage(const struct omap_opp *opp)
> -{
> -	return 0;
> -}
> -
> -static inline unsigned long opp_get_freq(const struct omap_opp *opp)
> -{
> -	return 0;
> -}
> -
> -static inline int opp_get_opp_count(struct omap_opp *oppl)
> -{
> -	return 0;
> -}
> -
> -static inline struct omap_opp *opp_find_freq_exact(struct omap_opp *oppl,
> -				     unsigned long freq, bool enabled)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline struct omap_opp *opp_find_freq_floor(struct omap_opp *oppl,
> -				     unsigned long *freq)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline struct omap_opp *opp_find_freq_ceil(struct omap_opp *oppl,
> -					unsigned long *freq)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline
> -struct omap_opp __init *opp_init_list(const struct omap_opp_def *opp_defs)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline struct omap_opp *opp_add(struct omap_opp *oppl,
> -			 const struct omap_opp_def *opp_def)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline int opp_enable(struct omap_opp *opp)
> -{
> -	return 0;
> -}
> -
> -static inline int opp_disable(struct omap_opp *opp)
> -{
> -	return 0;
> -}
> -
> -static inline struct omap_opp * __deprecated
> -opp_find_by_opp_id(struct omap_opp *opps, u8 opp_id)
> -{
> -	return ERR_PTR(-EINVAL);
> -}
> -
> -static inline u8 __deprecated opp_get_opp_id(struct omap_opp *opp)
> -{
> -	return 0;
> -}
> -
> -static inline void opp_init_cpufreq_table(struct omap_opp *opps,
> -			    struct cpufreq_frequency_table **table)
> -{
> -}
> +/**
> + * omap3_pm_init_opp_table() - Initialize the OPP table for OMAP3 devices.
> + *
> + * Initializes the OPP table for the current OMAP3 device.
> + */
> +int __init omap3_pm_init_opp_table(void);
NAK. opp. is meant to be used by omap2, OMAP4 etc..
when you removed from omap3-opp.h, it kinda needed you to have it here, 
which breaks the generic nature of this header.

>
> -#endif		/* CONFIG_CPU_FREQ */
>   #endif		/* __ASM_ARM_OMAP_OPP_H */
> diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
> index 13da451..3ed3ec1 100644
> --- a/arch/arm/plat-omap/opp.c
> +++ b/arch/arm/plat-omap/opp.c
> @@ -351,49 +351,3 @@ int opp_disable(struct omap_opp *opp)
>   	opp->enabled = false;
>   	return 0;
>   }
> -
> -/* XXX document */
> -void opp_init_cpufreq_table(enum opp_t opp_type,
> -			    struct cpufreq_frequency_table **table)
> -{
> -	int i = 0, j;
> -	int opp_num;
> -	struct cpufreq_frequency_table *freq_table;
> -	struct omap_opp *opp;
> -
> -	if (opp_type>= OPP_TYPES_MAX) {
> -		pr_warning("%s: failed to initialize frequency"
> -				"table\n", __func__);
> -		return;
> -	}
> -
> -	opp_num = opp_get_opp_count(opp_type);
> -	if (opp_num<  0) {
> -		pr_err("%s: no opp table?\n", __func__);
> -		return;
> -	}
> -
> -	freq_table = kmalloc(sizeof(struct cpufreq_frequency_table) *
> -			     (opp_num + 1), GFP_ATOMIC);
> -	if (!freq_table) {
> -		pr_warning("%s: failed to allocate frequency"
> -				"table\n", __func__);
> -		return;
> -	}
> -
> -	opp = _opp_list[opp_type];
> -	opp += opp_num;
> -	for (j = opp_num; j>= 0; j--) {
> -		if (opp->enabled) {
> -			freq_table[i].index = i;
> -			freq_table[i].frequency = opp->rate / 1000;
> -			i++;
> -		}
> -		opp--;
> -	}
> -
> -	freq_table[i].index = i;
> -	freq_table[i].frequency = CPUFREQ_TABLE_END;
> -
> -	*table =&freq_table[0];
> -}
not sure why you removed this..

  reply	other threads:[~2010-05-31 17:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-31 12:39 [PATCHv1 1/1] omap3: pm: Delink opp layer and cpufreq Sanjeev Premi
2010-05-31 17:29 ` Nishanth Menon [this message]
2010-06-01 12:01   ` Premi, Sanjeev
2010-06-02  4:36     ` Nishanth Menon
2010-07-26 15:35       ` Premi, Sanjeev
2010-07-26 15:41         ` Nishanth Menon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C03F1E3.9030202@gmail.com \
    --to=menon.nishanth@gmail.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=premi@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).