RE: [PATCH 0/8] OMAP3: Adding Smartreflex and Voltage driver support
-Original Message- From: Kevin Hilman [mailto:khil...@deeprootsystems.com] Sent: Friday, June 25, 2010 4:55 AM To: Gopinath, Thara Cc: linux-omap@vger.kernel.org; p...@pwsan.com; Cousson, Benoit; Sripathy, Vishwanath; Sawant, Anand Subject: Re: [PATCH 0/8] OMAP3: Adding Smartreflex and Voltage driver support Thara Gopinath th...@ti.com writes: This patch series introduces smartreflex and voltage driver support for OMAP3430 and OMAP3630. SmartReflex modules do adaptive voltage control for real-time voltage adjustments. Originally all the functionalities introduced in this patch were present in arch/arm/mach-omap2/smartreflex.c file in Kevin's pm tree. This patch series does a major rewrite of this file and introduces a separate voltage driver. Major contributors to the original driver are I just noticed that one thing missing from this series compared to what was in the previous PM branch is the disable/enable of SR in the idle path, so SR is not getting exercised during idle anymore in the current PM branch. Could you rememdy that please with another patch on top of this series (the new pm-sr branch?) Kevin Hello Kevin, This was intentional as there is not voltage scaling happening in the idle thread in pm-sr branch. Smartreflex needs to be disabled only if a voltage scaling is done during retention/off. I had submitted a patch for addressing this and removing all voltage refrences in pm34xx.c against origin/pm branch the link to which is below https://patchwork.kernel.org/patch/103086/ Regards Thara -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 0/8] OMAP3: Adding Smartreflex and Voltage driver support
Thara Gopinath th...@ti.com writes: This patch series introduces smartreflex and voltage driver support for OMAP3430 and OMAP3630. SmartReflex modules do adaptive voltage control for real-time voltage adjustments. Originally all the functionalities introduced in this patch were present in arch/arm/mach-omap2/smartreflex.c file in Kevin's pm tree. This patch series does a major rewrite of this file and introduces a separate voltage driver. Major contributors to the original driver are I just noticed that one thing missing from this series compared to what was in the previous PM branch is the disable/enable of SR in the idle path, so SR is not getting exercised during idle anymore in the current PM branch. Could you rememdy that please with another patch on top of this series (the new pm-sr branch?) Kevin Eduardo Valentin (1): OMAP3: PM: SmartReflex: Fix scheduled while atomic problem Kalle Jokiniemi (1): OMAP3: PM: SmartReflex driver integration Kevin Hilman (2): temp: SR: IO_ADDRESS conversion OMAP: SR: OPP interfaces removed from OMAP PM layer Nishanth Menon (1): omap3: pm: sr: replace get_opp with freq_to_opp Paul Walmsley (2): OMAP SR: use opp_find_opp_by_opp_id() OMAP SR: use OPP API for OPP ID, remove direct access Phil Carmody (2): OMAP3: PM: Don't do unnecessary searches in omap_sr_vdd*_autocomp_store OMAP3: PM: Early exit on invalid parameters Rajendra Nayak (9): OMAP3: SR: Fix init voltage on OPP change OMAP3: SR: Update VDD1/2 voltages at boot OMAP3: SR: Use sysclk for SR CLKLENGTH calc OMAP3: SR: Reset voltage level on SR disable OMAP3: SR: Replace printk's with pr_* calls OMAP3: SR: Remove redundant defines OMAP3: SR: Fix SR driver to check for omap-pm return values OMAP3: PM: Put optimal SMPS stabilization delay OMAP3: SR: Wait for VP idle before a VP disable Roger Quadros (4): OMAP3: PM: Fix Smartreflex when used with PM_NOOP layer OMAP3: PM: Make Smartreflex driver independent of SRF OMAP3: PM: Do not Enable SmartReflex if OPP tables not defined OMAP3: PM: Smartreflex: Fix VDD2 OPP determining logic Romit Dasgupta (1): omap: pm: SR: use enum for OPP types Teerth Reddy (1): OMAP3: SR: Replace SR_PASS/FAIL,SR_TRUE/FALSE Tero Kristo (1): Smartreflex: Avoid unnecessary spam This patch series is based against origin/opp branch off Kevin's pm tree which in turn is based off lo-master. This series will apply against lo-master also but will break compilation due to lack of opp framework support on lo-master. This patch series has been tested on OMAP3430 SDP, OMAP3630 SDP and ZOOM3 with the following menuconfig options enabled. System type - TI OMAP Implementations - Smartreflex Support System type - TI OMAP Implementations - Class 3 mode of Smartreflex Implementation Device Drivers - Multifunction device drivers - Support power resources on TWL4030 family chips Thara Gopinath (8): OMAP3: PM: Adding voltage driver support for OMAP3 OMAP3: PM: Adding smartreflex driver support. OMAP3: PM: Adding smartreflex device file. OMAP3: PM: Adding smartreflex hwmod data OMAP3: PM: Adding smartreflex class3 driver OMAP3: PM: Adding T2 enabling of smartreflex support OMAP: PM: Allowing an early init of pm debugfs driver. OMAP3: PM: Adding debug support to Voltage and Smartreflex drivers arch/arm/mach-omap2/Makefile |5 +- arch/arm/mach-omap2/board-3430sdp.c |2 + arch/arm/mach-omap2/board-3630sdp.c |2 + arch/arm/mach-omap2/board-zoom3.c |2 + arch/arm/mach-omap2/omap_hwmod_3xxx_data.c| 209 +- arch/arm/mach-omap2/pm-debug.c| 18 +- arch/arm/mach-omap2/smartreflex-class3.c | 62 ++ arch/arm/mach-omap2/smartreflex-class3.h | 23 + arch/arm/mach-omap2/smartreflex.c | 969 arch/arm/mach-omap2/sr_device.c | 177 arch/arm/mach-omap2/voltage.c | 1199 + arch/arm/mach-omap2/voltage.h | 126 +++ arch/arm/plat-omap/Kconfig| 41 + arch/arm/plat-omap/include/plat/control.h | 27 + arch/arm/plat-omap/include/plat/smartreflex.h | 273 ++ drivers/mfd/twl-core.c|7 +- drivers/mfd/twl4030-power.c | 29 + include/linux/i2c/twl.h |1 + 18 files changed, 3166 insertions(+), 6 deletions(-) create mode 100644 arch/arm/mach-omap2/smartreflex-class3.c create mode 100644 arch/arm/mach-omap2/smartreflex-class3.h create mode 100644 arch/arm/mach-omap2/smartreflex.c create mode 100644 arch/arm/mach-omap2/sr_device.c create mode 100644 arch/arm/mach-omap2/voltage.c create mode 100644
Re: [PATCH 0/8] OMAP3: Adding Smartreflex and Voltage driver support
Thara Gopinath th...@ti.com writes: This patch series introduces smartreflex and voltage driver support for OMAP3430 and OMAP3630. SmartReflex modules do adaptive voltage control for real-time voltage adjustments. Originally all the functionalities introduced in this patch were present in arch/arm/mach-omap2/smartreflex.c file in Kevin's pm tree. This patch series does a major rewrite of this file and introduces a separate voltage driver. Major contributors to the original driver are This is excellent, thanks for the rebase/reorg/compress. While not yet get getting to a full review of this series, I'd like it to get some broader testing. To that end, I've replaced the pm-sr branch in my pm tree with this series, and rebuilt a new PM branch using it. Note that it is also based on top of a new pm-opp branch which is Nishanth's condensed version which is also upstream bound for the next merge window. I had to do a couple minor fixes to apply against v2.6.35-rc1 (mainly fixing usage of #defines that were renamed to have a _MASK suffix.) It currently boots fine on OMAP3EVM (no efuse values, so no SR) but when I try it on Zoom3, I get repeated errors: Wake up daisy chain activation failed. I haven't fully isolated the root cause yet, but it looks like it might be because omap3_enable_io_chain() seems confused about whether it should be writing PM_WKEN or PM_WKST reg. The patch below (on top of new PM branch) seems to have fixed that problem for Zoom3. Kevin diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index e531621..207905d 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -115,7 +115,7 @@ static void omap3_enable_io_chain(void) /* Do a readback to assure write has been done */ prm_read_mod_reg(WKUP_MOD, PM_WKEN); - while (!(prm_read_mod_reg(WKUP_MOD, PM_WKST) + while (!(prm_read_mod_reg(WKUP_MOD, PM_WKEN) OMAP3430_ST_IO_CHAIN_MASK)) { timeout++; if (timeout 1000) { @@ -124,7 +124,7 @@ static void omap3_enable_io_chain(void) return; } prm_set_mod_reg_bits(OMAP3430_ST_IO_CHAIN_MASK, -WKUP_MOD, PM_WKST); +WKUP_MOD, PM_WKEN); } } } -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html