Re: [RFC][PATCH 2/2] OMAP3:PM:SR: SmartReflex Refactor Rev2.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nishanth Menon <nm@xxxxxx> writes:

> Refactor the smart reflex implementation.

One other request for this refactor.

Can you remove the usage of OMAP2_IO_ADDRESS (now gone from l-o master)
in favor of ioremap().

Here's a totally untested first pass and converting the version
currently in PM branch.  Could probably use some better error
detection though, and I didn't look up exactly what size
should be ioremap'd.

Kevin


diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
index 1407783..bf57b21 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -48,6 +48,7 @@ struct omap_sr {
 	u32		opp1_nvalue, opp2_nvalue, opp3_nvalue, opp4_nvalue;
 	u32		opp5_nvalue;
 	u32		senp_mod, senn_mod;
+	u32		srbase_phys;
 	void __iomem	*srbase_addr;
 	void __iomem	*vpbase_addr;
 };
@@ -105,7 +106,7 @@ static struct omap_sr sr1 = {
 	.is_sr_reset		= 1,
 	.is_autocomp_active	= 0,
 	.clk_length		= 0,
-	.srbase_addr		= OMAP2_IO_ADDRESS(OMAP34XX_SR1_BASE),
+	.srbase_phys		= OMAP34XX_SR1_BASE,
 };
 
 static struct omap_sr sr2 = {
@@ -113,7 +114,7 @@ static struct omap_sr sr2 = {
 	.is_sr_reset		= 1,
 	.is_autocomp_active	= 0,
 	.clk_length		= 0,
-	.srbase_addr		= OMAP2_IO_ADDRESS(OMAP34XX_SR2_BASE),
+	.srbase_phys		= OMAP34XX_SR2_BASE,
 };
 
 static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen)
@@ -987,6 +988,11 @@ static int __init omap3_sr_init(void)
 		return -ENODEV;
         }
 
+	sr1.srbase_addr = ioremap(sr1.srbase_phys, SZ_4K);
+	sr2.srbase_addr = ioremap(sr2.srbase_phys, SZ_4K);
+	if (WARN_ON(!sr1.srbase_addr) || WARN_ON(!sr2.srbase_addr))
+		return;
+
 	/* Enable SR on T2 */
 	ret = twl4030_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &RdReg,
 					R_DCDC_GLOBAL_CFG);
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux