From: Kevin Hilman <khilman@deeprootsystems.com>
To: Rajendra Nayak <rnayak@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH 01/08] OMAP3 SRF: Add CORE rate table param in OMAP-PM
Date: Tue, 11 Nov 2008 17:08:06 -0800 [thread overview]
Message-ID: <87fxlxn43t.fsf@deeprootsystems.com> (raw)
In-Reply-To: <00bf01c94327$61ac5800$LocalHost@wipultra1382> (Rajendra Nayak's message of "Mon\, 10 Nov 2008 16\:57\:57 +0530")
"Rajendra Nayak" <rnayak@ti.com> writes:
> This patch modifies the omap_pm_if_init API in OMAP-PM
> layer to take the L3 interconnect/CORE OPP table
> as an additional parameter.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Rajendra,
The current code does not handle well the case where board files pass
in NULL values for the various rate tables.
In the init code, there are a few places where you use the *_opps values
without checking if they are non-NULL, and this will trigger faults.
Can you test and fix the case where your board file passes in NULL for
all the OPP tables?
Kevin
> ---
> arch/arm/mach-omap2/io.c | 2 +-
> arch/arm/plat-omap/include/mach/omap-pm.h | 4 +++-
> arch/arm/plat-omap/omap-pm-noop.c | 5 ++++-
> arch/arm/plat-omap/omap-pm-srf.c | 5 ++++-
> 4 files changed, 12 insertions(+), 4 deletions(-)
>
> Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/omap-pm.h
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/omap-pm.h 2008-11-10 12:09:03.000000000 +0530
> +++ linux-omap-2.6/arch/arm/plat-omap/include/mach/omap-pm.h 2008-11-10 12:09:12.000000000 +0530
> @@ -57,12 +57,14 @@ int __init omap_pm_if_early_init(void);
> * omap_pm_if_init - OMAP PM init code called after 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
> *
> * 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(struct omap_opp *mpu_opp_table,
> - struct omap_opp *dsp_opp_table);
> + struct omap_opp *dsp_opp_table,
> + struct omap_opp *l3_opp_table);
>
> /**
> * omap_pm_if_exit - OMAP PM exit code
> Index: linux-omap-2.6/arch/arm/plat-omap/omap-pm-noop.c
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/plat-omap/omap-pm-noop.c 2008-11-10 12:09:03.000000000 +0530
> +++ linux-omap-2.6/arch/arm/plat-omap/omap-pm-noop.c 2008-11-10 12:09:12.000000000 +0530
> @@ -28,6 +28,7 @@
>
> static struct omap_opp *dsp_opps;
> static struct omap_opp *mpu_opps;
> +static struct omap_opp *l3_opps;
>
> /*
> * Device-driver-originated constraints (via board-*.c files)
> @@ -316,10 +317,12 @@ int __init omap_pm_if_early_init(void)
>
> /* Must be called after clock framework is initialized */
> int __init omap_pm_if_init(struct omap_opp *mpu_opp_table,
> - struct omap_opp *dsp_opp_table)
> + struct omap_opp *dsp_opp_table,
> + struct omap_opp *l3_opp_table)
> {
> mpu_opps = mpu_opp_table;
> dsp_opps = dsp_opp_table;
> + l3_opps = l3_opp_table;
> return 0;
> }
>
> Index: linux-omap-2.6/arch/arm/plat-omap/omap-pm-srf.c
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/plat-omap/omap-pm-srf.c 2008-11-10 12:09:03.000000000 +0530
> +++ linux-omap-2.6/arch/arm/plat-omap/omap-pm-srf.c 2008-11-10 12:09:12.000000000 +0530
> @@ -29,6 +29,7 @@
>
> static struct omap_opp *dsp_opps;
> static struct omap_opp *mpu_opps;
> +static struct omap_opp *l3_opps;
>
> #define LAT_RES_POSTAMBLE "_latency"
> #define MAX_LATENCY_RES_NAME 30
> @@ -346,10 +347,12 @@ int __init omap_pm_if_early_init(void)
>
> /* Must be called after clock framework is initialized */
> int __init omap_pm_if_init(struct omap_opp *mpu_opp_table,
> - struct omap_opp *dsp_opp_table)
> + struct omap_opp *dsp_opp_table,
> + struct omap_opp *l3_opp_table)
> {
> mpu_opps = mpu_opp_table;
> dsp_opps = dsp_opp_table;
> + l3_opps = l3_opp_table;
> resource_init(resources_omap);
> return 0;
> }
> Index: linux-omap-2.6/arch/arm/mach-omap2/io.c
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/mach-omap2/io.c 2008-11-10 12:09:03.000000000 +0530
> +++ linux-omap-2.6/arch/arm/mach-omap2/io.c 2008-11-10 12:09:12.000000000 +0530
> @@ -206,7 +206,7 @@ void __init omap2_init_common_hw(struct
> clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);
> omapdev_init(omapdevs);
> omap2_clk_init();
> - omap_pm_if_init(NULL, NULL);
> + omap_pm_if_init(NULL, NULL, NULL);
> omap2_sdrc_init(sp);
> gpmc_init();
> }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-11-12 1:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-10 11:27 [PATCH 01/08] OMAP3 SRF: Add CORE rate table param in OMAP-PM Rajendra Nayak
2008-11-12 1:08 ` Kevin Hilman [this message]
2008-11-12 4:59 ` Rajendra Nayak
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=87fxlxn43t.fsf@deeprootsystems.com \
--to=khilman@deeprootsystems.com \
--cc=linux-omap@vger.kernel.org \
--cc=rnayak@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.