[oe-commits] org.oe.dev merge of '002eda28acb76c39ae5920ebf07cf3756277bd37'

florian commit oe at amethyst.openembedded.net
Fri Jun 6 14:27:29 UTC 2008


merge of '002eda28acb76c39ae5920ebf07cf3756277bd37'
     and '7cdf64b464cc0539a2bd9f5642023ac33825ebc5'

Author: florian at openembedded.org
Branch: org.openembedded.dev
Revision: 032b986959813efab3fbef3ac58254ea62417eea
ViewMTN: http://monotone.openembedded.org/revision/info/032b986959813efab3fbef3ac58254ea62417eea
Files:
1
packages/gpe-login/gpe-login_0.93.bb
packages/linux/linux-omap2-git/beagleboard/0002-ARM-OMAP-SmartReflex-driver.patch
packages/linux/linux-omap2-git/beagleboard/0003-ARM-OMAP-SmartReflex-driver.patch
packages/linux/linux-omap2_git.bb
packages/zlib/zlib_1.2.3.bb
Diffs:

#
# mt diff -r002eda28acb76c39ae5920ebf07cf3756277bd37 -r032b986959813efab3fbef3ac58254ea62417eea
#
#
#
# add_file "packages/gpe-login/gpe-login_0.93.bb"
#  content [37a976053be7e397317ee38072b254e3fac7a435]
#
============================================================
--- packages/gpe-login/gpe-login_0.93.bb	37a976053be7e397317ee38072b254e3fac7a435
+++ packages/gpe-login/gpe-login_0.93.bb	37a976053be7e397317ee38072b254e3fac7a435
@@ -0,0 +1,24 @@
+DESCRIPTION = "GPE user login screen"
+SECTION = "gpe"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
+RDEPENDS = "xkbd gpe-theme-clearlooks"
+RPROVIDES_${PN} = "gpe-session-starter"
+PR = "r0"
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+GPE_TARBALL_SUFFIX = "bz2"
+
+inherit gpe autotools pkgconfig
+
+
+SRC_URI += "file://removeblue-fontsize8.patch;patch=1"
+SRC_URI += " file://chvt-keylaunch.patch;patch=1 "
+SRC_URI += " file://c-locale.patch;patch=1 "
+
+SRC_URI_append_spitz = "file://brightness-adjust-keyluanchrc.patch;patch=1"
+SRC_URI_append_akita = "file://brightness-adjust-keyluanchrc.patch;patch=1"
+SRC_URI_append_c7x0 = "file://brightness-adjust-keyluanchrc.patch;patch=1"
+


#
# mt diff -r7cdf64b464cc0539a2bd9f5642023ac33825ebc5 -r032b986959813efab3fbef3ac58254ea62417eea
#
#
#
# patch "packages/linux/linux-omap2-git/beagleboard/0002-ARM-OMAP-SmartReflex-driver.patch"
#  from [f607feeebbd16cdd656e679bd16c7c86a930485f]
#    to [60a4cfc3baeb42717cd3d587170266fde55853f5]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/0003-ARM-OMAP-SmartReflex-driver.patch"
#  from [fd4898e49e30b7e445b457d50fdb9e359f7acd9d]
#    to [c217e7265da8f9240d101a9d29fde6d43fa4435e]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [ecb7cdb5198df6553fd08189f0dbb14396e42319]
#    to [bd91b3c4445c1e2d79946495f640cce338977b64]
# 
# patch "packages/zlib/zlib_1.2.3.bb"
#  from [29e47c464b402bc8f8366f8f3bba8bf991d595f6]
#    to [5b7396f7a9126e153751bf2083c858125b44e365]
#
============================================================
--- packages/linux/linux-omap2-git/beagleboard/0002-ARM-OMAP-SmartReflex-driver.patch	f607feeebbd16cdd656e679bd16c7c86a930485f
+++ packages/linux/linux-omap2-git/beagleboard/0002-ARM-OMAP-SmartReflex-driver.patch	60a4cfc3baeb42717cd3d587170266fde55853f5
@@ -2,19 +2,19 @@ Subject: [PATCH 2/3] ARM: OMAP: SmartRef
 To: linux-omap at vger.kernel.org
 Cc: Kalle Jokiniemi <ext-kalle.jokiniemi at nokia.com>
 Subject: [PATCH 2/3] ARM: OMAP: SmartReflex driver: added required register and bit definitions.
-Date: 	Fri, 30 May 2008 17:12:26 +0300
+Date: 	Fri,  6 Jun 2008 12:49:48 +0300
 
 Added new register and bit definitions to enable Smartreflex driver integration.
 Also PRM_VC_SMPS_SA bit definitions' naming was changed to match the naming of
 other similar bit definitions.
 
-
 Signed-off-by: Kalle Jokiniemi <ext-kalle.jokiniemi at nokia.com>
 ---
  arch/arm/mach-omap2/prm-regbits-34xx.h |   27 ++++++--
  arch/arm/mach-omap2/smartreflex.h      |  124 ++++++++++++++++++++++++++++++-
+ include/asm-arm/arch-omap/control.h    |   19 +++++
  include/asm-arm/arch-omap/omap34xx.h   |    2 +
- 3 files changed, 144 insertions(+), 9 deletions(-)
+ 4 files changed, 163 insertions(+), 9 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/prm-regbits-34xx.h b/arch/arm/mach-omap2/prm-regbits-34xx.h
 index c6a7940..f82b5a7 100644
@@ -224,6 +224,43 @@ index 62907ef..2091a15 100644
 +#endif
 +
  
+diff --git a/include/asm-arm/arch-omap/control.h b/include/asm-arm/arch-omap/control.h
+index 12bc22a..6e64fe7 100644
+--- a/include/asm-arm/arch-omap/control.h
++++ b/include/asm-arm/arch-omap/control.h
+@@ -138,6 +138,15 @@
+ #define OMAP343X_CONTROL_TEST_KEY_11	(OMAP2_CONTROL_GENERAL + 0x00f4)
+ #define OMAP343X_CONTROL_TEST_KEY_12	(OMAP2_CONTROL_GENERAL + 0x00f8)
+ #define OMAP343X_CONTROL_TEST_KEY_13	(OMAP2_CONTROL_GENERAL + 0x00fc)
++#define OMAP343X_CONTROL_FUSE_OPP1_VDD1	(OMAP2_CONTROL_GENERAL + 0x0110)
++#define OMAP343X_CONTROL_FUSE_OPP2_VDD1	(OMAP2_CONTROL_GENERAL + 0x0114)
++#define OMAP343X_CONTROL_FUSE_OPP3_VDD1	(OMAP2_CONTROL_GENERAL + 0x0118)
++#define OMAP343X_CONTROL_FUSE_OPP4_VDD1	(OMAP2_CONTROL_GENERAL + 0x011c)
++#define OMAP343X_CONTROL_FUSE_OPP5_VDD1	(OMAP2_CONTROL_GENERAL + 0x0120)
++#define OMAP343X_CONTROL_FUSE_OPP1_VDD2	(OMAP2_CONTROL_GENERAL + 0x0124)
++#define OMAP343X_CONTROL_FUSE_OPP2_VDD2	(OMAP2_CONTROL_GENERAL + 0x0128)
++#define OMAP343X_CONTROL_FUSE_OPP3_VDD2	(OMAP2_CONTROL_GENERAL + 0x012c)
++#define OMAP343X_CONTROL_FUSE_SR	(OMAP2_CONTROL_GENERAL + 0x0130)
+ #define OMAP343X_CONTROL_IVA2_BOOTADDR	(OMAP2_CONTROL_GENERAL + 0x0190)
+ #define OMAP343X_CONTROL_IVA2_BOOTMOD	(OMAP2_CONTROL_GENERAL + 0x0194)
+ #define OMAP343X_CONTROL_TEMP_SENSOR	(OMAP2_CONTROL_GENERAL + 0x02b4)
+@@ -172,6 +181,16 @@
+ #define OMAP2_SYSBOOT_1_MASK		(1 << 1)
+ #define OMAP2_SYSBOOT_0_MASK		(1 << 0)
+ 
++/* CONTROL_FUSE_SR bits */
++#define OMAP343X_SR2_SENNENABLE_MASK	(0x3 << 10)
++#define OMAP343X_SR2_SENNENABLE_SHIFT	10
++#define OMAP343X_SR2_SENPENABLE_MASK	(0x3 << 8)
++#define OMAP343X_SR2_SENPENABLE_SHIFT	8
++#define OMAP343X_SR1_SENNENABLE_MASK	(0x3 << 2)
++#define OMAP343X_SR1_SENNENABLE_SHIFT	2
++#define OMAP343X_SR1_SENPENABLE_MASK	(0x3 << 0)
++#define OMAP343X_SR1_SENPENABLE_SHIFT	0
++
+ #ifndef __ASSEMBLY__
+ #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
+ extern void __iomem *omap_ctrl_base_get(void);
 diff --git a/include/asm-arm/arch-omap/omap34xx.h b/include/asm-arm/arch-omap/omap34xx.h
 index 6a0459a..3667fd6 100644
 --- a/include/asm-arm/arch-omap/omap34xx.h
@@ -239,4 +276,3 @@ 1.5.4.3
  #if defined(CONFIG_ARCH_OMAP3430)
 -- 
 1.5.4.3
-
============================================================
--- packages/linux/linux-omap2-git/beagleboard/0003-ARM-OMAP-SmartReflex-driver.patch	fd4898e49e30b7e445b457d50fdb9e359f7acd9d
+++ packages/linux/linux-omap2-git/beagleboard/0003-ARM-OMAP-SmartReflex-driver.patch	c217e7265da8f9240d101a9d29fde6d43fa4435e
@@ -2,7 +2,8 @@ Subject: [PATCH 3/3] ARM: OMAP: SmartRef
 To: linux-omap at vger.kernel.org
 Cc: Kalle Jokiniemi <ext-kalle.jokiniemi at nokia.com>
 Subject: [PATCH 3/3] ARM: OMAP: SmartReflex driver: integration to linux-omap
-Date: 	Mon,  2 Jun 2008 14:30:14 +0300
+Date: 	Fri,  6 Jun 2008 12:49:49 +0300
+Message-Id: <1212745789-13926-3-git-send-email-ext-kalle.jokiniemi at nokia.com>
 
 - Changed register accesses to use prm_{read,write}_mod_reg and
   prm_{set,clear,rmw}_mod_reg_bits() functions instread of
@@ -12,21 +13,24 @@ Date: 	Mon,  2 Jun 2008 14:30:14 +0300
 
 - replaced cpu-related #ifdefs with if (cpu_is_xxxx()) calls.
 
-- removed EFUSE related ifdefs
+- Added E-fuse support: Use silicon characteristics parameters from E-fuse
 
 - added smartreflex_disable/enable calls to pm34xx.c suspend function.
 
 - Added "SmartReflex support" entry into Kconfig under "System type->TI OMAP
   Implementations". It depends on ARCH_OMAP34XX and TWL4030_CORE.
 
+- Added "SmartReflex testing support" Kconfig option for using hard coded
+  software parameters instead of E-fuse parameters.
+
 Signed-off-by: Kalle Jokiniemi <ext-kalle.jokiniemi at nokia.com>
 ---
  arch/arm/mach-omap2/Makefile      |    3 +
  arch/arm/mach-omap2/pm34xx.c      |    9 +
- arch/arm/mach-omap2/smartreflex.c |  457 ++++++++++++++++++++++---------------
- arch/arm/mach-omap2/smartreflex.h |    2 +-
- arch/arm/plat-omap/Kconfig        |   17 ++
- 5 files changed, 302 insertions(+), 186 deletions(-)
+ arch/arm/mach-omap2/smartreflex.c |  531 +++++++++++++++++++++++--------------
+ arch/arm/mach-omap2/smartreflex.h |    9 +-
+ arch/arm/plat-omap/Kconfig        |   31 +++
+ 5 files changed, 385 insertions(+), 198 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
 index 50c6657..f645b6e 100644
@@ -77,7 +81,7 @@ diff --git a/arch/arm/mach-omap2/smartre
  }
  
 diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
-index dae7460..253369b 100644
+index dae7460..0b10a5d 100644
 --- a/arch/arm/mach-omap2/smartreflex.c
 +++ b/arch/arm/mach-omap2/smartreflex.c
 @@ -3,6 +3,9 @@
@@ -90,7 +94,7 @@ index dae7460..253369b 100644
   * Copyright (C) 2007 Texas Instruments, Inc.
   * Lesly A M <x0080970 at ti.com>
   *
-@@ -20,13 +23,15 @@
+@@ -20,13 +23,16 @@
  #include <linux/err.h>
  #include <linux/clk.h>
  #include <linux/sysfs.h>
@@ -103,6 +107,7 @@ index dae7460..253369b 100644
  
 -#include "prcm-regs.h"
 +#include <asm/arch/omap34xx.h>
++#include <asm/arch/control.h>
 +
 +#include "prm.h"
  #include "smartreflex.h"
@@ -110,7 +115,7 @@ index dae7460..253369b 100644
  
  
  /* #define DEBUG_SR 1 */
-@@ -37,11 +42,16 @@
+@@ -37,11 +43,16 @@
  #  define DPRINTK(fmt, args...)
  #endif
  
@@ -127,7 +132,7 @@ index dae7460..253369b 100644
  	u32 req_opp_no;
  	u32 opp1_nvalue, opp2_nvalue, opp3_nvalue, opp4_nvalue, opp5_nvalue;
  	u32 senp_mod, senn_mod;
-@@ -53,6 +63,7 @@ static struct omap_sr sr1 = {
+@@ -53,6 +64,7 @@ static struct omap_sr sr1 = {
  	.srid = SR1,
  	.is_sr_reset = 1,
  	.is_autocomp_active = 0,
@@ -135,7 +140,7 @@ index dae7460..253369b 100644
  	.srbase_addr = OMAP34XX_SR1_BASE,
  };
  
-@@ -60,6 +71,7 @@ static struct omap_sr sr2 = {
+@@ -60,6 +72,7 @@ static struct omap_sr sr2 = {
  	.srid = SR2,
  	.is_sr_reset = 1,
  	.is_autocomp_active = 0,
@@ -143,7 +148,7 @@ index dae7460..253369b 100644
  	.srbase_addr = OMAP34XX_SR2_BASE,
  };
  
-@@ -85,8 +97,6 @@ static inline u32 sr_read_reg(struct omap_sr *sr, int offset)
+@@ -85,8 +98,6 @@ static inline u32 sr_read_reg(struct omap_sr *sr, int offset)
  	return omap_readl(sr->srbase_addr + offset);
  }
  
@@ -152,7 +157,7 @@ index dae7460..253369b 100644
  static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen)
  {
  	u32 gn, rn, mul;
-@@ -100,7 +110,21 @@ static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen)
+@@ -100,7 +111,21 @@ static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen)
  		}
  	}
  }
@@ -175,10 +180,11 @@ index dae7460..253369b 100644
  
  static int sr_clk_enable(struct omap_sr *sr)
  {
-@@ -131,20 +155,48 @@ static int sr_clk_disable(struct omap_sr *sr)
+@@ -131,22 +156,86 @@ static int sr_clk_disable(struct omap_sr *sr)
  	return 0;
  }
  
+-static void sr_set_nvalues(struct omap_sr *sr)
 +static void sr_set_clk_length(struct omap_sr *sr)
 +{
 +	struct clk *osc_sys_ck;
@@ -210,11 +216,47 @@ index dae7460..253369b 100644
 +	}
 +}
 +
-+/*
-+ * TODO: once EFUSE is available, it should be used instead of these
-+ * pre-calculated values.
-+ */
- static void sr_set_nvalues(struct omap_sr *sr)
++static void sr_set_efuse_nvalues(struct omap_sr *sr)
++{
++	if (sr->srid == SR1) {
++		sr->senn_mod = (omap_ctrl_readl(OMAP343X_CONTROL_FUSE_SR) &
++					OMAP343X_SR1_SENNENABLE_MASK) >>
++					OMAP343X_SR1_SENNENABLE_SHIFT;
++
++		sr->senp_mod = (omap_ctrl_readl(OMAP343X_CONTROL_FUSE_SR) &
++					OMAP343X_SR1_SENPENABLE_MASK) >>
++					OMAP343X_SR1_SENPENABLE_SHIFT;
++
++		sr->opp5_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP5_VDD1);
++		sr->opp4_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP4_VDD1);
++		sr->opp3_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP3_VDD1);
++		sr->opp2_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP2_VDD1);
++		sr->opp1_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP1_VDD1);
++	} else if (sr->srid == SR2) {
++		sr->senn_mod = (omap_ctrl_readl(OMAP343X_CONTROL_FUSE_SR) &
++					OMAP343X_SR2_SENNENABLE_MASK) >>
++					OMAP343X_SR2_SENNENABLE_SHIFT;
++
++		sr->senp_mod = (omap_ctrl_readl(OMAP343X_CONTROL_FUSE_SR) &
++					OMAP343X_SR2_SENPENABLE_MASK) >>
++					OMAP343X_SR2_SENPENABLE_SHIFT;
++
++		sr->opp3_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP3_VDD2);
++		sr->opp2_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP2_VDD2);
++		sr->opp1_nvalue = omap_ctrl_readl(
++					OMAP343X_CONTROL_FUSE_OPP1_VDD2);
++	}
++}
++
++/* Hard coded nvalues for testing purposes, may cause device to hang! */
++static void sr_set_testing_nvalues(struct omap_sr *sr)
  {
 -#ifdef USE_EFUSE_VALUES
 -	u32 n1, n2;
@@ -228,10 +270,14 @@ index dae7460..253369b 100644
 -#ifdef USE_EFUSE_VALUES
 -		/* Read values for VDD1 from EFUSE */
 -#else
- 		/* since E-Fuse Values are not available, calculating the
- 		 * reciprocal of the SenN and SenP values for SR1
+-		/* since E-Fuse Values are not available, calculating the
+-		 * reciprocal of the SenN and SenP values for SR1
++		/* Calculating the reciprocal of the SenN and SenP values
++		 * for SR1
  		 */
-@@ -216,15 +268,16 @@ static void sr_set_nvalues(struct omap_sr *sr)
+ 		sr->senp_mod = 0x03;        /* SenN-M5 enabled */
+ 		sr->senn_mod = 0x03;
+@@ -216,15 +305,16 @@ static void sr_set_nvalues(struct omap_sr *sr)
  				(rnsenp << NVALUERECIPROCAL_RNSENP_SHIFT) |
  				(rnsenn << NVALUERECIPROCAL_RNSENN_SHIFT));
  
@@ -252,7 +298,7 @@ index dae7460..253369b 100644
  		/* since E-Fuse Values are not available, calculating the
  		 * reciprocal of the SenN and SenP values for SR2
  		 */
-@@ -269,8 +322,6 @@ static void sr_set_nvalues(struct omap_sr *sr)
+@@ -269,134 +359,163 @@ static void sr_set_nvalues(struct omap_sr *sr)
  				(senngain << NVALUERECIPROCAL_SENNGAIN_SHIFT) |
  				(rnsenp << NVALUERECIPROCAL_RNSENP_SHIFT) |
  				(rnsenn << NVALUERECIPROCAL_RNSENN_SHIFT));
@@ -261,8 +307,19 @@ index dae7460..253369b 100644
  	}
  
  }
-@@ -281,122 +332,145 @@ static void sr_configure_vp(int srid)
  
++static void sr_set_nvalues(struct omap_sr *sr)
++{
++	if (SR_TESTING_NVALUES)
++		sr_set_testing_nvalues(sr);
++	else
++		sr_set_efuse_nvalues(sr);
++}
++
+ static void sr_configure_vp(int srid)
+ {
+ 	u32 vpconfig;
+ 
  	if (srid == SR1) {
  		vpconfig = PRM_VP1_CONFIG_ERROROFFSET | PRM_VP1_CONFIG_ERRORGAIN
 -			| PRM_VP1_CONFIG_INITVOLTAGE | PRM_VP1_CONFIG_TIMEOUTEN;
@@ -492,7 +549,7 @@ index dae7460..253369b 100644
  		sr_write_reg(sr, SRCONFIG, sr_config);
  
  		sr_write_reg(sr, AVGWEIGHT, SR1_AVGWEIGHT_SENPAVGWEIGHT |
-@@ -408,18 +482,18 @@ static void sr_configure(struct omap_sr *sr)
+@@ -408,18 +527,18 @@ static void sr_configure(struct omap_sr *sr)
  
  	} else if (sr->srid == SR2) {
  		sr_config = SR2_SRCONFIG_ACCUMDATA |
@@ -514,15 +571,35 @@ index dae7460..253369b 100644
  		sr_modify_reg(sr, ERRCONFIG, (SR_ERRWEIGHT_MASK |
  			SR_ERRMAXLIMIT_MASK | SR_ERRMINLIMIT_MASK),
  			(SR2_ERRWEIGHT | SR2_ERRMAXLIMIT | SR2_ERRMINLIMIT));
-@@ -476,7 +550,6 @@ static void sr_enable(struct omap_sr *sr, u32 target_opp_no)
+@@ -428,9 +547,9 @@ static void sr_configure(struct omap_sr *sr)
+ 	sr->is_sr_reset = 0;
+ }
  
- 	if (current_nvalue == nvalue_reciprocal) {
- 		DPRINTK("System is already at the desired voltage level\n");
+-static void sr_enable(struct omap_sr *sr, u32 target_opp_no)
++static int sr_enable(struct omap_sr *sr, u32 target_opp_no)
+ {
+-	u32 nvalue_reciprocal, current_nvalue;
++	u32 nvalue_reciprocal;
+ 
+ 	sr->req_opp_no = target_opp_no;
+ 
+@@ -472,11 +591,10 @@ static void sr_enable(struct omap_sr *sr, u32 target_opp_no)
+ 		}
+ 	}
+ 
+-	current_nvalue = sr_read_reg(sr, NVALUERECIPROCAL);
+-
+-	if (current_nvalue == nvalue_reciprocal) {
+-		DPRINTK("System is already at the desired voltage level\n");
 -		return;
++	if (nvalue_reciprocal == 0) {
++		printk(KERN_NOTICE "OPP%d doesn't support SmartReflex\n",
++								target_opp_no);
++		return SR_FALSE;
  	}
  
  	sr_write_reg(sr, NVALUERECIPROCAL, nvalue_reciprocal);
-@@ -485,18 +558,18 @@ static void sr_enable(struct omap_sr *sr, u32 target_opp_no)
+@@ -485,18 +603,19 @@ static void sr_enable(struct omap_sr *sr, u32 target_opp_no)
  	sr_modify_reg(sr, ERRCONFIG,
  			(ERRCONFIG_VPBOUNDINTEN | ERRCONFIG_VPBOUNDINTST),
  			(ERRCONFIG_VPBOUNDINTEN | ERRCONFIG_VPBOUNDINTST));
@@ -542,10 +619,11 @@ index dae7460..253369b 100644
  	/* SRCONFIG - enable SR */
  	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE, SRCONFIG_SRENABLE);
 -
++	return SR_TRUE;
  }
  
  static void sr_disable(struct omap_sr *sr)
-@@ -507,11 +580,13 @@ static void sr_disable(struct omap_sr *sr)
+@@ -507,11 +626,13 @@ static void sr_disable(struct omap_sr *sr)
  	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE, ~SRCONFIG_SRENABLE);
  
  	if (sr->srid == SR1) {
@@ -563,8 +641,22 @@ index dae7460..253369b 100644
  	}
  }
  
-@@ -574,16 +649,13 @@ void enable_smartreflex(int srid)
+@@ -535,7 +656,12 @@ void sr_start_vddautocomap(int srid, u32 target_opp_no)
+ 									srid);
  
+ 	sr->is_autocomp_active = 1;
+-	sr_enable(sr, target_opp_no);
++	if (!sr_enable(sr, target_opp_no)) {
++		printk(KERN_WARNING "SR%d: VDD autocomp not activated\n", srid);
++		sr->is_autocomp_active = 0;
++		if (sr->is_sr_reset == 1)
++			sr_clk_disable(sr);
++	}
+ }
+ EXPORT_SYMBOL(sr_start_vddautocomap);
+ 
+@@ -574,20 +700,18 @@ void enable_smartreflex(int srid)
+ 
  	if (sr->is_autocomp_active == 1) {
  		if (sr->is_sr_reset == 1) {
 -			if (srid == SR1) {
@@ -585,7 +677,13 @@ index dae7460..253369b 100644
  
  			sr_configure(sr);
  
-@@ -602,15 +674,6 @@ void disable_smartreflex(int srid)
+-			sr_enable(sr, target_opp_no);
++			if (!sr_enable(sr, target_opp_no))
++				sr_clk_disable(sr);
+ 		}
+ 	}
+ }
+@@ -602,15 +726,6 @@ void disable_smartreflex(int srid)
  		sr = &sr2;
  
  	if (sr->is_autocomp_active == 1) {
@@ -601,7 +699,7 @@ index dae7460..253369b 100644
  		if (sr->is_sr_reset == 0) {
  
  			sr->is_sr_reset = 1;
-@@ -618,17 +681,18 @@ void disable_smartreflex(int srid)
+@@ -618,17 +733,18 @@ void disable_smartreflex(int srid)
  			sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
  							~SRCONFIG_SRENABLE);
  
@@ -629,7 +727,7 @@ index dae7460..253369b 100644
  			}
  		}
  	}
-@@ -638,7 +702,6 @@ void disable_smartreflex(int srid%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list