[RFC PATCH 30/34] msm: clock: Add EBI1 voter clocks for ADM on SoCs without them

From: David Brown
Date: Wed Nov 02 2011 - 14:37:48 EST


From: Matt Wagantall <mattw@xxxxxxxxxxxxxx>

The ADM driver wishes to vote for EBI1 clock rates during ADM
transfers. Add voter clocks for this purpose.

On msm8960, this also requires the creation of an EBI voter clock
for the msm_bus driver, since it was previously using the clock
directly.

Signed-off-by: Matt Wagantall <mattw@xxxxxxxxxxxxxx>
Signed-off-by: David Brown <davidb@xxxxxxxxxxxxxx>
---
arch/arm/mach-msm/clock-7x30.c | 2 ++
arch/arm/mach-msm/clock-pcom-lookup.c | 4 ++++
2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index d917942..019fdea 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2373,6 +2373,7 @@ static DEFINE_CLK_VOTER(ebi_mddi_clk, &pbus_clk.c);
static DEFINE_CLK_VOTER(ebi_tv_clk, &pbus_clk.c);
static DEFINE_CLK_VOTER(ebi_vcd_clk, &pbus_clk.c);
static DEFINE_CLK_VOTER(ebi_vfe_clk, &pbus_clk.c);
+static DEFINE_CLK_VOTER(ebi_adm_clk, &pbus_clk.c);

/*
* SoC-specific functions required by clock-local driver
@@ -2757,6 +2758,7 @@ static struct clk_local_ownership {
{ CLK_LOOKUP("ebi1_tv_clk", ebi_tv_clk.c, NULL) },
{ CLK_LOOKUP("ebi1_vcd_clk", ebi_vcd_clk.c, NULL) },
{ CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL) },
+ { CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov") },

/*
* This is a many-to-one mapping because we don't know how the remote
diff --git a/arch/arm/mach-msm/clock-pcom-lookup.c b/arch/arm/mach-msm/clock-pcom-lookup.c
index 9d83cba..e74a556 100644
--- a/arch/arm/mach-msm/clock-pcom-lookup.c
+++ b/arch/arm/mach-msm/clock-pcom-lookup.c
@@ -139,6 +139,7 @@ static DEFINE_CLK_VOTER(ebi_mddi_clk, &ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_tv_clk, &ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_usb_clk, &ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_vfe_clk, &ebi1_clk.c);
+static DEFINE_CLK_VOTER(ebi_adm_clk, &ebi1_clk.c);

struct clk_lookup msm_clocks_7x01a[] = {
CLK_LOOKUP("adm_clk", adm_clk.c, NULL),
@@ -236,6 +237,7 @@ struct clk_lookup msm_clocks_7x27[] = {
CLK_LOOKUP("ebi1_mddi_clk", ebi_mddi_clk.c, NULL),
CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
+ CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov"),
};
unsigned msm_num_clocks_7x27 = ARRAY_SIZE(msm_clocks_7x27);

@@ -307,6 +309,7 @@ struct clk_lookup msm_clocks_7x27a[] = {
CLK_LOOKUP("ebi1_mddi_clk", ebi_mddi_clk.c, NULL),
CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
+ CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov"),
};
unsigned msm_num_clocks_7x27a = ARRAY_SIZE(msm_clocks_7x27a);

@@ -371,6 +374,7 @@ struct clk_lookup msm_clocks_8x50[] = {
CLK_LOOKUP("ebi1_tv_clk", ebi_tv_clk.c, NULL),
CLK_LOOKUP("ebi1_usb_clk", ebi_usb_clk.c, NULL),
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
+ CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov"),

CLK_LOOKUP("grp_pclk", grp_3d_p_clk.c, NULL),
CLK_LOOKUP("grp_2d_clk", grp_2d_clk.c, NULL),
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/