From: Kevin Hilman <khilman@ti.com>
To: linux-omap@vger.kernel.org
Subject: [PATCH/RFC 02/13] OMAP3+ VP: replace transaction done check/clear with VP ops
Date: Fri, 1 Apr 2011 16:41:00 -0700 [thread overview]
Message-ID: <1301701271-22096-3-git-send-email-khilman@ti.com> (raw)
In-Reply-To: <1301701271-22096-1-git-send-email-khilman@ti.com>
Replace the VP tranxdone check/clear with helper functions from the
PRM layer.
In the process, remove prm_irqst_* voltage structure fields for IRQ
status checking which are no longer needed.
Since these reads/writes of the IRQ status bits were the only PRM
accesses that were not to VC/VP registers, this allows the rest of the
register accesses in the VC/VP code to use VC/VP specific register
access functions (done in the following patch.)
Signed-off-by: Kevin Hilman <khilman@ti.com>
---
arch/arm/mach-omap2/voltage.h | 2 --
arch/arm/mach-omap2/voltagedomains3xxx_data.c | 4 ----
arch/arm/mach-omap2/voltagedomains44xx_data.c | 6 ------
arch/arm/mach-omap2/vp.c | 16 +++++-----------
4 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h
index 65c5b81..a3e7d73 100644
--- a/arch/arm/mach-omap2/voltage.h
+++ b/arch/arm/mach-omap2/voltage.h
@@ -147,8 +147,6 @@ struct omap_vdd_info {
u32 curr_volt;
bool vp_enabled;
- s16 prm_irqst_mod;
- u8 prm_irqst_reg;
u32 (*read_reg) (u16 mod, u8 offset);
void (*write_reg) (u32 val, u16 mod, u8 offset);
int (*volt_scale) (struct voltagedomain *voltdm,
diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
index 7cb27ec..ad8f05b 100644
--- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
@@ -38,8 +38,6 @@ static const struct omap_vfsm_instance_data omap3_vdd1_vfsm_data = {
};
static struct omap_vdd_info omap3_vdd1_info = {
- .prm_irqst_mod = OCP_MOD,
- .prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
.vp_data = &omap3_vp1_data,
.vfsm = &omap3_vdd1_vfsm_data,
};
@@ -51,8 +49,6 @@ static const struct omap_vfsm_instance_data omap3_vdd2_vfsm_data = {
};
static struct omap_vdd_info omap3_vdd2_info = {
- .prm_irqst_mod = OCP_MOD,
- .prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
.vp_data = &omap3_vp2_data,
.vfsm = &omap3_vdd2_vfsm_data,
};
diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
index a05d90a..43e1d38 100644
--- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
@@ -37,8 +37,6 @@ static const struct omap_vfsm_instance_data omap4_vdd_mpu_vfsm_data = {
};
static struct omap_vdd_info omap4_vdd_mpu_info = {
- .prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
- .prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
.vp_data = &omap4_vp_mpu_data,
.vfsm = &omap4_vdd_mpu_vfsm_data,
};
@@ -48,8 +46,6 @@ static const struct omap_vfsm_instance_data omap4_vdd_iva_vfsm_data = {
};
static struct omap_vdd_info omap4_vdd_iva_info = {
- .prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
- .prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
.vp_data = &omap4_vp_iva_data,
.vfsm = &omap4_vdd_iva_vfsm_data,
};
@@ -59,8 +55,6 @@ static const struct omap_vfsm_instance_data omap4_vdd_core_vfsm_data = {
};
static struct omap_vdd_info omap4_vdd_core_info = {
- .prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
- .prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
.vp_data = &omap4_vp_core_data,
.vfsm = &omap4_vdd_core_vfsm_data,
};
diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
index f3503de..113c839 100644
--- a/arch/arm/mach-omap2/vp.c
+++ b/arch/arm/mach-omap2/vp.c
@@ -111,10 +111,8 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
* is <3us
*/
while (timeout++ < VP_TRANXDONE_TIMEOUT) {
- vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
- vdd->prm_irqst_mod, vdd->prm_irqst_reg);
- if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd->prm_irqst_reg) &
- vp->prm_irqst_data->tranxdone_status))
+ vp->vp_common->ops->clear_txdone(vp->id);
+ if (!vp->vp_common->ops->check_txdone(vp->id))
break;
udelay(1);
}
@@ -146,9 +144,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
* Depends on SMPSWAITTIMEMIN/MAX and voltage change
*/
timeout = 0;
- omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
- vdd->prm_irqst_reg) &
- vp->prm_irqst_data->tranxdone_status),
+ omap_test_timeout(vp->vp_common->ops->check_txdone(vp->id),
VP_TRANXDONE_TIMEOUT, timeout);
if (timeout >= VP_TRANXDONE_TIMEOUT)
pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
@@ -163,10 +159,8 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
*/
timeout = 0;
while (timeout++ < VP_TRANXDONE_TIMEOUT) {
- vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
- vdd->prm_irqst_mod, vdd->prm_irqst_reg);
- if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd->prm_irqst_reg) &
- vp->prm_irqst_data->tranxdone_status))
+ vp->vp_common->ops->clear_txdone(vp->id);
+ if (!vp->vp_common->ops->check_txdone(vp->id))
break;
udelay(1);
}
--
1.7.4
next prev parent reply other threads:[~2011-04-01 23:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-01 23:40 [PATCH/RFC 00/13] OMAP: voltage layer cleanup and restructure: part 2 Kevin Hilman
2011-04-01 23:40 ` [PATCH/RFC 01/13] OMAP3+: add PRM VP functions for checking/clearing VP TX done status Kevin Hilman
2011-04-01 23:41 ` Kevin Hilman [this message]
2011-04-01 23:41 ` [PATCH/RFC 03/13] OMAP3+: PRM: add register access functions for VC/VP Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 04/13] OMAP3+: voltage: convert to PRM register access functions Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 05/13] OMAP3+: VC: cleanup i2c slave address configuration Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 06/13] OMAP3+: VC: cleanup PMIC register " Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 07/13] OMAP3+: VC bypass: use fields from VC struct instead of PMIC info Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 08/13] OMAP3+: VC: cleanup voltage setup time configuration Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 09/13] OMAP3+: VC: move on/onlp/ret/off command configuration into common init Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 10/13] OMAP3+: VC: abstract out channel configuration Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 11/13] OMAP4: PRM: VC: rename I2C configuration register: s/INSTE/MODE/ Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 12/13] OMAP3+: voltage domain: move PMIC struct from vdd_info into struct voltagedomain Kevin Hilman
2011-04-01 23:41 ` [PATCH/RFC 13/13] OMAP3+: VC: make I2C config programmable with PMIC-specific settings Kevin Hilman
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=1301701271-22096-3-git-send-email-khilman@ti.com \
--to=khilman@ti.com \
--cc=linux-omap@vger.kernel.org \
/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).