ARM: OMAP: hsmmc: add max_freq field
Subsystems (5)
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
External circuitry like level shifters may limit the maximum operation speed of the hsmmc controller. Add a field to struct omap2_hsmmc_info so boards can adjust the setting on demand.
--- arch/arm/mach-omap2/hsmmc.c | 1 + arch/arm/mach-omap2/hsmmc.h | 2 ++ drivers/mmc/host/omap_hsmmc.c | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/hsmmc.c +1 -0
@@ -298,6 +298,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, mmc->slots[0 ].caps = c->caps; mmc->slots[0 ].internal_clock = !c->ext_clock; mmc->dma_mask =0xffffffff ; + mmc->max_freq = c->max_freq;if (cpu_is_omap44xx ()) mmc->reg_offset =OMAP4_MMC_REG_OFFSET ;else
arch/arm/mach-omap2/hsmmc.h +2 -0
@@ -25,6 +25,8 @@ struct omap2_hsmmc_info {char *name;/* or NULL for default */ struct device *dev;/* returned: pointer to mmc adapter */ int ocr_mask;/* temporary HACK */ +int max_freq;/* maximum clock, if constrained by external +* circuitry, or 0 for default */ /* Remux (pad configuration) when powering on/off */ void (*remux)(struct device *dev,int slot,int power_on);/* init some special card */
drivers/mmc/host/omap_hsmmc.c +6 -2
@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)if (mmc_slot (host).vcc_aux_disable_is_sleep)mmc_slot (host).no_off =1 ; - mmc->f_min =OMAP_MMC_MIN_CLOCK ; - mmc->f_max =OMAP_MMC_MAX_CLOCK ; + mmc->f_min =OMAP_MMC_MIN_CLOCK ; + +if (pdata->max_freq >0 ) + mmc->f_max = pdata->max_freq; +else + mmc->f_max =OMAP_MMC_MAX_CLOCK ;spin_lock_init (&host->irq_lock);
Signature · 1 line
1.7.7.4
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
Quoted 6 lines · Daniel Mack
External circuitry like level shifters may limit the maximum operation speed of the hsmmc controller. Add a field to struct
omap2_hsmmc_infoso boards can adjust the setting on demand.Signed-off-by Daniel Mack <[email protected]>Cc Tony Lindgren <[email protected]>
Quoted 53 lines
--- arch/arm/mach-omap2/hsmmc.c | 1 + arch/arm/mach-omap2/hsmmc.h | 2 ++ drivers/mmc/host/omap_hsmmc.c | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-)arch/arm/mach-omap2/hsmmc.c +1
-0@@ -298,6 +298,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, mmc->slots[0 ].caps = c->caps; mmc->slots[0 ].internal_clock = !c->ext_clock; mmc->dma_mask =0xffffffff ; + mmc->max_freq = c->max_freq;if (cpu_is_omap44xx ()) mmc->reg_offset =OMAP4_MMC_REG_OFFSET ;else arch/arm/mach-omap2/hsmmc.h +2
-0@@ -25,6 +25,8 @@ struct omap2_hsmmc_info {char *name;/* or NULL for default */ struct device *dev;/* returned: pointer to mmc adapter */ int ocr_mask;/* temporary HACK */ +int max_freq;/* maximum clock, if constrained by external +* circuitry, or 0 for default */ /* Remux (pad configuration) when powering on/off */ void (*remux)(struct device *dev,int slot,int power_on);/* init some special card */ drivers/mmc/host/omap_hsmmc.c +6
-2@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)if (mmc_slot (host).vcc_aux_disable_is_sleep)mmc_slot (host).no_off =1 ; - mmc->f_min =OMAP_MMC_MIN_CLOCK ; - mmc->f_max =OMAP_MMC_MAX_CLOCK ; + mmc->f_min =OMAP_MMC_MIN_CLOCK ; + +if (pdata->max_freq >0 ) + mmc->f_max = pdata->max_freq; +else + mmc->f_max =OMAP_MMC_MAX_CLOCK ;spin_lock_init (&host->irq_lock);Signature · 1 line
1.7.7.4
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
In reply to Daniel MackQuoted 42 lines · Daniel Mack
External circuitry like level shifters may limit the maximum operation speed of the hsmmc controller. Add a field to struct
omap2_hsmmc_infoso boards can adjust the setting on demand.Signed-off-by Daniel Mack <[email protected]>Cc Tony Lindgren <[email protected]>---
?arch/arm/mach-omap2/hsmmc.c ? | ? ?1 + ?arch/arm/mach-omap2/hsmmc.h ? | ? ?2 ++ ?drivers/mmc/host/omap_hsmmc.c | ? ?8 ++++++--?3 files changed, 9 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/hsmmc.c +1
-0@@ -298,6 +298,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, ? ? ? ?mmc->slots[0].caps = c->caps; ? ? ? ?mmc->slots[0].internal_clock = !c->ext_clock; ? ? ? ?mmc->dma_mask = 0xffffffff; + ? ? ? mmc->max_freq = c->max_freq; ? ? ? ?if (cpu_is_omap44xx()) ? ? ? ? ? ? ? ?mmc->reg_offset = OMAP4_MMC_REG_OFFSET;? ? ? ?else
arch/arm/mach-omap2/hsmmc.h +0
-0@@ -25,6 +25,8 @@ struct omap2_hsmmc_info {? ? ? ?char ? ?*name; ? ? ? ? ?/* or NULL for default */
? ? ? ?struct device *dev; ? ? /* returned: pointer to mmc adapter */ ? ? ? ?int ? ?ocr_mask; ? ? ? /* temporary HACK */
+ ? ? ? int ? ?max_freq; ? ? ? /* maximum clock, if constrained by external
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?* circuitry, or 0 for default */ ? ? ? ?/* Remux (pad configuration) when powering on/off */
? ? ? ?void (*remux)(struct device *dev, int slot, intpower_on); ? ? ? ?/* init some special card */drivers/mmc/host/omap_hsmmc.c +0
-0
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1932
Quoted 8 lines
drivers/mmc/host/omap_hsmmc.c +3
-2@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1; - ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK; + + ? ? ? if (pdata->max_freq > 0)
What about having check as below:
if (pdata->max_freq > 0 && pdata->max_freq < OMAP_MMC_MAX_CLOCK)
Quoted 13 lines
drivers/mmc/host/omap_hsmmc.c +3
-1+ ? ? ? ? ? ? ? mmc->f_max = pdata->max_freq; + ? ? ? else + ? ? ? ? ? ? ? mmc->f_max = OMAP_MMC_MAX_CLOCK; ? ? ? ?spin_lock_init(&host->irq_lock); --1.7.7.4
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
Quoted 46 lines · Kishore Kadiyala
Quoted 45 lines · Daniel Mack
External circuitry like level shifters may limit the maximum operation speed of the hsmmc controller. Add a field to struct
omap2_hsmmc_infoso boards can adjust the setting on demand.Signed-off-by Daniel Mack <[email protected]>Cc Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/hsmmc.c | 1 + arch/arm/mach-omap2/hsmmc.h | 2 ++ drivers/mmc/host/omap_hsmmc.c | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-)arch/arm/mach-omap2/hsmmc.c +1
-0@@ -298,6 +298,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, mmc->slots[0 ].caps = c->caps; mmc->slots[0 ].internal_clock = !c->ext_clock; mmc->dma_mask =0xffffffff ; + mmc->max_freq = c->max_freq;if (cpu_is_omap44xx ()) mmc->reg_offset =OMAP4_MMC_REG_OFFSET ;else arch/arm/mach-omap2/hsmmc.h +2
-0@@ -25,6 +25,8 @@ struct omap2_hsmmc_info {char *name;/* or NULL for default */ struct device *dev;/* returned: pointer to mmc adapter */ int ocr_mask;/* temporary HACK */ +int max_freq;/* maximum clock, if constrained by external +* circuitry, or 0 for default */ /* Remux (pad configuration) when powering on/off */ void (*remux)(struct device *dev,int slot,int power_on);/* init some special card */ drivers/mmc/host/omap_hsmmc.c +0
-0@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)if (mmc_slot (host).vcc_aux_disable_is_sleep)mmc_slot (host).no_off =1 ;
Quoted 8 lines
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1932
Quoted 5 lines
drivers/mmc/host/omap_hsmmc.c +3
-2- mmc->f_min =OMAP_MMC_MIN_CLOCK ; - mmc->f_max =OMAP_MMC_MAX_CLOCK ; + mmc->f_min =OMAP_MMC_MIN_CLOCK ; + +if (pdata->max_freq >0 )What about having check as below:
if (pdata->max_freq> 0 &&pdata->max_freq<OMAP_MMC_MAX_CLOCK)
I can quickly do that if Tony agrees on it. Any opinions?
Thanks,
Daniel
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
In reply to Daniel Mackdrivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 11 lines · Daniel Mack
drivers/mmc/host/omap_hsmmc.c +1
-2@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1; - ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK;
Stray change for f_min ?
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
Quoted 9 lines · Balaji
Quoted 8 lines · Daniel Mack
drivers/mmc/host/omap_hsmmc.c +0
-0@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)if (mmc_slot (host).vcc_aux_disable_is_sleep)mmc_slot (host).no_off =1 ;
Quoted 5 lines
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 3 lines
drivers/mmc/host/omap_hsmmc.c +1
-2- mmc->f_min =OMAP_MMC_MIN_CLOCK ; - mmc->f_max =OMAP_MMC_MAX_CLOCK ; + mmc->f_min =OMAP_MMC_MIN_CLOCK ;Stray change for
f_min?
No, this was intended. The indentation doesn't make sense anymore when not grouped with the f_max assignment.
Other than that, what is necessary to get this picked? Tony? :)
Thanks,
Daniel
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
ping? Could anyone care for queueing this please?
Quoted 24 lines · Daniel Mack
Quoted 9 lines · Balaji
Quoted 8 lines · Daniel Mack
drivers/mmc/host/omap_hsmmc.c +0
-0@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1;Quoted 5 lines
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 3 lines
drivers/mmc/host/omap_hsmmc.c +1
-2- ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK;Stray change for
f_min?No, this was intended. The indentation doesn't make sense anymore when not grouped with the
f_maxassignment.Other than that, what is necessary to get this picked? Tony? :)
Thanks,
Daniel
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
Quoted 1 line · Daniel Mack
ping? Could anyone care for queueing this please?
There is no OMAP HSMMC dedicated maintainer anymore so I guess you should ping Chris Ball <[email protected]>.
Regards,
Benoit
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
In reply to Daniel MackHi,
Quoted 1 line · Daniel Mack
ping? Could anyone care for queueing this please?
I suggest Rajendra queue up omap_hsmmc.c patches as he's already patching it.
Regards,
Tony
Quoted 25 lines · Daniel Mack
Quoted 24 lines · Balaji
Quoted 9 lines · Daniel Mack
Quoted 8 lines
drivers/mmc/host/omap_hsmmc.c +0
-0@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1;Quoted 5 lines
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 3 lines
drivers/mmc/host/omap_hsmmc.c +1
-2- ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK;Stray change for
f_min?No, this was intended. The indentation doesn't make sense anymore when not grouped with the
f_maxassignment.Other than that, what is necessary to get this picked? Tony? :)
Thanks,
Daniel
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
+Chris queues all MMC patches including omap_hsmmc. Ping ?
Quoted 42 lines · Tony Lindgren
Hi,
Quoted 1 line · Daniel Mack
ping? Could anyone care for queueing this please?
I suggest Rajendra queue up
omap_hsmmc.cpatches as he's already patching it.Regards,
Tony
Quoted 17 lines · Daniel Mack
Quoted 16 lines · Balaji
Quoted 14 lines · Daniel Mack
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 11 lines
drivers/mmc/host/omap_hsmmc.c +1
-2@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1; - ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK;Stray change for
f_min?Quoted 8 lines
Quoted 8 lines
No, this was intended. The indentation doesn't make sense anymore when not grouped with the
f_maxassignment.Other than that, what is necessary to get this picked? Tony? :)
Thanks,
Daniel--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html
PATCH 1/1 ARM: OMAP: hsmmc: add max_freq field
Quoted 3 lines · Venkatraman
+Chris queues all MMC patches including
omap_hsmmc. Ping ?
Just realized that it's already queued in mmc-next
http://git.kernel.org/?p=linux/kernel/git/cjb/mmc.git;a=commitdiff;h=25d6ba8171995230b3757c78c7470fa76a931b98
Quoted 44 lines · Tony Lindgren
Quoted 42 lines
Hi,
Quoted 1 line · Daniel Mack
ping? Could anyone care for queueing this please?
I suggest Rajendra queue up
omap_hsmmc.cpatches as he's already patching it.Regards,
Tony
Quoted 17 lines · Daniel Mack
Quoted 16 lines · Balaji
Quoted 14 lines · Daniel Mack
drivers/mmc/host/omap_hsmmc.c static int __init omap_hsmmc_probe(struct platform_device *pdev) · line 1930
Quoted 11 lines
drivers/mmc/host/omap_hsmmc.c +1
-2@@ -1927,8 +1927,12 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ? ? ? ?if (mmc_slot(host).vcc_aux_disable_is_sleep) ? ? ? ? ? ? ? ?mmc_slot(host).no_off = 1; - ? ? ? mmc->f_min ? ? ?= OMAP_MMC_MIN_CLOCK; - ? ? ? mmc->f_max ? ? ?= OMAP_MMC_MAX_CLOCK; + ? ? ? mmc->f_min = OMAP_MMC_MIN_CLOCK;Stray change for
f_min?Quoted 8 lines
Quoted 8 lines
No, this was intended. The indentation doesn't make sense anymore when not grouped with the
f_maxassignment.Other than that, what is necessary to get this picked? Tony? :)
Thanks,
Daniel--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html