drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer
PATCH 1/1 drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer
On the SH7723, these settings improve PIO reads from 4MB/s to 13MB/s and writes from 1MB/s to 4.1MB/s
--- drivers/mfd/sh_mobile_sdhi.c | 9 +++++++++ drivers/mmc/host/tmio_mmc.c | 14 ++++++++++++++ include/linux/mfd/tmio.h | 9 +++++++++ 3 files changed, 32 insertions(+), 0 deletions(-)
drivers/mfd/sh_mobile_sdhi.c +9 -0
@@ -107,6 +107,15 @@ static int __init sh_mobile_sdhi_probe(struct platform_device *pdev) mmc_data->hclk =clk_get_rate (priv->clk); mmc_data->set_pwr = sh_mobile_sdhi_set_pwr; mmc_data->capabilities =MMC_CAP_MMC_HIGHSPEED ; + +/* values are taken from the firmware based sh_sdhi.c driver */ + mmc_data->max_hw_segs =32 ; + mmc_data->max_phys_segs =32 ; + mmc_data->max_blk_count =65535 ;/* actually it's 65536, but the value 65536 is handled differently and we want to keep the code simple */ + mmc_data->max_req_size =131072 ; + mmc_data->max_seg_size = mmc_data->max_req_size; + mmc_data->max_blk_size = mmc_data->max_blk_size; +if (p) { mmc_data->flags = p->tmio_flags; mmc_data->ocr_mask = p->tmio_ocr_mask;
drivers/mmc/host/tmio_mmc.c +14 -0
@@ -847,6 +847,20 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) mmc->caps |= pdata->capabilities; mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max /512 ; + +if (pdata->max_hw_segs) + mmc->max_hw_segs = pdata->max_hw_segs; +if (pdata->max_phys_segs) + mmc->max_phys_segs = pdata->max_phys_segs; +if (pdata->max_seg_size) + mmc->max_seg_size = pdata->max_seg_size; +if (pdata->max_req_size) + mmc->max_req_size = pdata->max_req_size; +if (pdata->max_blk_size) + mmc->max_blk_size = pdata->max_blk_size; +if (pdata->max_blk_count) + mmc->max_blk_count = pdata->max_blk_count; +if (pdata->ocr_mask) mmc->ocr_avail = pdata->ocr_mask;else
include/linux/mfd/tmio.h +9 -0
@@ -71,6 +71,15 @@ struct tmio_mmc_data {unsigned long capabilities;unsigned long flags;u32 ocr_mask;/* available voltages */ + +/* overrides for "struct mmc_host" variables */ +unsigned int max_seg_size; +unsigned short max_hw_segs; +unsigned short max_phys_segs; +unsigned int max_req_size; +unsigned int max_blk_size; +unsigned int max_blk_count; +struct tmio_mmc_dma *dma;void (*set_pwr)(struct platform_device *host,int state);void (*set_clk_div)(struct platform_device *host,int state);
--
1.7.0.4
_____________________________________
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________
Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information.
- If you have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited.
- Please inform us immediately and destroy the original transmittal.
Thank you for your cooperation.
Re: [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block
Hi Markus
I tried the test of this patch.
However, I was not able to apply a patch.
Is this patch a patch for which kernel(commit number)?
cheers,
Goda
Quoted 96 lines · Markus Pietrek
On the SH7723, these settings improve PIO reads from 4MB/s to 13MB/s and writes from 1MB/s to 4.1MB/s
Signed-off-by Markus Pietrek <[email protected]>--- drivers/mfd/sh_mobile_sdhi.c | 9 +++++++++ drivers/mmc/host/tmio_mmc.c | 14 ++++++++++++++ include/linux/mfd/tmio.h | 9 +++++++++ 3 files changed, 32 insertions(+), 0 deletions(-)drivers/mfd/sh_mobile_sdhi.c +9
-0@@ -107,6 +107,15 @@ static int __init sh_mobile_sdhi_probe(struct platform_device *pdev) mmc_data->hclk =clk_get_rate (priv->clk); mmc_data->set_pwr = sh_mobile_sdhi_set_pwr; mmc_data->capabilities =MMC_CAP_MMC_HIGHSPEED ; + +/* values are taken from the firmware based sh_sdhi.c driver */ + mmc_data->max_hw_segs =32 ; + mmc_data->max_phys_segs =32 ; + mmc_data->max_blk_count =65535 ;/* actually it's 65536, but the value 65536 is handled differently and we want to keep the code simple */ + mmc_data->max_req_size =131072 ; + mmc_data->max_seg_size = mmc_data->max_req_size; + mmc_data->max_blk_size = mmc_data->max_blk_size; +if (p) { mmc_data->flags = p->tmio_flags; mmc_data->ocr_mask = p->tmio_ocr_mask;drivers/mmc/host/tmio_mmc.c +14
-0@@ -847,6 +847,20 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) mmc->caps |= pdata->capabilities; mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max /512 ; + +if (pdata->max_hw_segs) + mmc->max_hw_segs = pdata->max_hw_segs; +if (pdata->max_phys_segs) + mmc->max_phys_segs = pdata->max_phys_segs; +if (pdata->max_seg_size) + mmc->max_seg_size = pdata->max_seg_size; +if (pdata->max_req_size) + mmc->max_req_size = pdata->max_req_size; +if (pdata->max_blk_size) + mmc->max_blk_size = pdata->max_blk_size; +if (pdata->max_blk_count) + mmc->max_blk_count = pdata->max_blk_count; +if (pdata->ocr_mask) mmc->ocr_avail = pdata->ocr_mask;else include/linux/mfd/tmio.h +9
-1@@ -71,6 +71,15 @@ struct tmio_mmc_data {unsigned long capabilities;unsigned long flags;u32 ocr_mask;/* available voltages */ + +/* overrides for "struct mmc_host" variables */ +unsigned int max_seg_size; +unsigned short max_hw_segs; +unsigned short max_phys_segs; +unsigned int max_req_size; +unsigned int max_blk_size; +unsigned int max_blk_count; +struct tmio_mmc_dma *dma;void (*set_pwr)(struct platform_device *host,int state);void (*set_clk_div)(struct platform_device *host,int state); --1.7.0.4
_____________________________________
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information.
- If you have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited.
- Please inform us immediately and destroy the original transmittal.Thank you for your cooperation.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
AW: [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block
In reply to Markus PietrekHello Yusuke,
I did pull the kernel from sh-2.6.git on 13.07.10
The latest commits were9b0d8f82dd4d4ae53050a800e4ce5dd2b1828ad7 "sound/soc/sh/siu: Fixed undefined dma_length of scatter gather list" 36239c6704b71da7fb8e2a9429e159a84d0c5a3e "sh: add sh7757lcr board support"
Bye,
Markus
Quoted 115 lines
-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]]
Gesendet: Dienstag, 20. Juli 2010 08:33
An: Pietrek, Markus
Cc: [email protected]; [email protected]
Betreff: Re: [PATCH]drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer settings for improved performanceHi Markus
I tried the test of this patch.
However, I was not able to apply a patch.
Is this patch a patch for which kernel(commit number)?cheers,
GodaQuoted 1 line · Markus Pietrek
On the SH7723, these settings improve PIO reads from 4MB/s to 13MB/s
and writes from 1MB/s to 4.1MB/s
Review
Quoted 9 lines
Signed-off-by Markus Pietrek <[email protected]>--- drivers/mfd/sh_mobile_sdhi.c | 9 +++++++++ drivers/mmc/host/tmio_mmc.c | 14 ++++++++++++++ include/linux/mfd/tmio.h | 9 +++++++++ 3 files changed, 32 insertions(+), 0 deletions(-)(quoted diff) +0
-0
b/drivers/mfd/sh_mobile_sdhi.cdrivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct
Quoted 4 lines
index cd16459..0bd80a3 100644
drivers/mfd/sh_mobile_sdhi.c +0
-0@@ -107,6 +107,15 @@ static int __init sh_mobile_sdhi_probe(struct
platform_device*pdev)drivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct platform_device *pdev)
Quoted 5 lines
drivers/mfd/sh_mobile_sdhi.c +2
-0mmc_data->hclk =clk_get_rate (priv->clk); mmc_data->set_pwr = sh_mobile_sdhi_set_pwr; mmc_data->capabilities =MMC_CAP_MMC_HIGHSPEED ; + +/* values are taken from the firmware based sh_sdhi.c driver */
drivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct platform_device *pdev)
Quoted 3 lines
drivers/mfd/sh_mobile_sdhi.c +3
-0+ mmc_data->max_hw_segs =32 ; + mmc_data->max_phys_segs =32 ; + mmc_data->max_blk_count =65535 ;/* actually it's 65536, but the value 65536 is handled differently and we want to keep the code simple */
Review
Quoted 8 lines
drivers/mfd/sh_mobile_sdhi.c +4
-0+ mmc_data->max_req_size =131072 ; + mmc_data->max_seg_size = mmc_data->max_req_size; + mmc_data->max_blk_size = mmc_data->max_blk_size; +if (p) { mmc_data->flags = p->tmio_flags; mmc_data->ocr_mask = p->tmio_ocr_mask;(quoted diff) +0
-0
b/drivers/mmc/host/tmio_mmc.cdrivers/mmc/host/tmio_mmc.c static int __devinit tmio_mmc_probe(struct
Quoted 4 lines
index ee7d0a5..cdb3a6a 100644
drivers/mmc/host/tmio_mmc.c +0
-0@@ -847,6 +847,20 @@ static int __devinit tmio_mmc_probe(struct
platform_device*dev)Quoted 25 lines
drivers/mmc/host/tmio_mmc.c +14
-0mmc->caps |= pdata->capabilities; mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max /512 ; + +if (pdata->max_hw_segs) + mmc->max_hw_segs = pdata->max_hw_segs; +if (pdata->max_phys_segs) + mmc->max_phys_segs = pdata->max_phys_segs; +if (pdata->max_seg_size) + mmc->max_seg_size = pdata->max_seg_size; +if (pdata->max_req_size) + mmc->max_req_size = pdata->max_req_size; +if (pdata->max_blk_size) + mmc->max_blk_size = pdata->max_blk_size; +if (pdata->max_blk_count) + mmc->max_blk_count = pdata->max_blk_count; +if (pdata->ocr_mask) mmc->ocr_avail = pdata->ocr_mask;else include/linux/mfd/tmio.h +0
-0include/linux/mfd/tmio.h struct tmio_mmc_data { · line 73
Quoted 3 lines
include/linux/mfd/tmio.h +0
-0@@ -71,6 +71,15 @@ struct tmio_mmc_data {unsigned long capabilities;unsigned long flags;u32 ocr_mask;/* available voltages */
Quoted 18 lines
include/linux/mfd/tmio.h +9
-1+ +/* overrides for "struct mmc_host" variables */ +unsigned int max_seg_size; +unsigned short max_hw_segs; +unsigned short max_phys_segs; +unsigned int max_req_size; +unsigned int max_blk_size; +unsigned int max_blk_count; +struct tmio_mmc_dma *dma;void (*set_pwr)(struct platform_device *host,int state);void (*set_clk_div)(struct platform_device *host,int state); --1.7.0.4
_____________________________________
Quoted 7 lines
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed orotherwise confidential information.
Quoted 11 lines
Quoted 1 line
- If you have received this e-mail in error, you are hereby notified
that any review, copying or distribution of it is strictly prohibited.
Quoted 5 lines
- Please inform us immediately and destroy the original transmittal.
Thank you for your cooperation.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh"in
Quoted 3 lines
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
_____________________________________
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________
Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information.
- If you have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited.
- Please inform us immediately and destroy the original transmittal.
Thank you for your cooperation.
Re: AW: [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block
In reply to Markus PietrekHi Markus
As for your patch, all tabs are converted into the space.
Refer to : Documentation/email-clients.txt
cheers,
Goda
Quoted 152 lines · Markus
Hello Yusuke,
I did pull the kernel from sh-2.6.git on 13.07.10
The latest commits were
9b0d8f82dd4d4ae53050a800e4ce5dd2b1828ad7"sound/soc/sh/siu: Fixed undefineddma_lengthof scatter gather list"36239c6704b71da7fb8e2a9429e159a84d0c5a3e"sh: add sh7757lcr board support"Bye,
MarkusQuoted 114 lines
-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]]
Gesendet: Dienstag, 20. Juli 2010 08:33
An: Pietrek, Markus
Cc: [email protected]; [email protected]
Betreff: Re: [PATCH]drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer settings for improved performanceHi Markus
I tried the test of this patch.
However, I was not able to apply a patch.
Is this patch a patch for which kernel(commit number)?cheers,
GodaQuoted 1 line · Markus Pietrek
On the SH7723, these settings improve PIO reads from 4MB/s to 13MB/s
and writes from 1MB/s to 4.1MB/s
Review
Quoted 8 lines
Signed-off-by Markus Pietrek <[email protected]>--- drivers/mfd/sh_mobile_sdhi.c | 9 +++++++++ drivers/mmc/host/tmio_mmc.c | 14 ++++++++++++++ include/linux/mfd/tmio.h | 9 +++++++++ 3 files changed, 32 insertions(+), 0 deletions(-)(quoted diff) +0
-0
b/drivers/mfd/sh_mobile_sdhi.cdrivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct
Quoted 4 lines
index cd16459..0bd80a3 100644
drivers/mfd/sh_mobile_sdhi.c +0
-0@@ -107,6 +107,15 @@ static int __init sh_mobile_sdhi_probe(struct
platform_device*pdev)drivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct platform_device *pdev)
Quoted 5 lines
drivers/mfd/sh_mobile_sdhi.c +2
-0mmc_data->hclk =clk_get_rate (priv->clk); mmc_data->set_pwr = sh_mobile_sdhi_set_pwr; mmc_data->capabilities =MMC_CAP_MMC_HIGHSPEED ; + +/* values are taken from the firmware based sh_sdhi.c driver */
drivers/mfd/sh_mobile_sdhi.c static int __init sh_mobile_sdhi_probe(struct platform_device *pdev)
Quoted 3 lines
drivers/mfd/sh_mobile_sdhi.c +3
-0+ mmc_data->max_hw_segs =32 ; + mmc_data->max_phys_segs =32 ; + mmc_data->max_blk_count =65535 ;/* actually it's 65536, but the value 65536 is handled differently and we want to keep the code simple */
Review
Quoted 8 lines
drivers/mfd/sh_mobile_sdhi.c +4
-0+ mmc_data->max_req_size =131072 ; + mmc_data->max_seg_size = mmc_data->max_req_size; + mmc_data->max_blk_size = mmc_data->max_blk_size; +if (p) { mmc_data->flags = p->tmio_flags; mmc_data->ocr_mask = p->tmio_ocr_mask;(quoted diff) +0
-0
b/drivers/mmc/host/tmio_mmc.cdrivers/mmc/host/tmio_mmc.c static int __devinit tmio_mmc_probe(struct
Quoted 4 lines
index ee7d0a5..cdb3a6a 100644
drivers/mmc/host/tmio_mmc.c +0
-0@@ -847,6 +847,20 @@ static int __devinit tmio_mmc_probe(struct
platform_device*dev)Quoted 25 lines
drivers/mmc/host/tmio_mmc.c +14
-0mmc->caps |= pdata->capabilities; mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max /512 ; + +if (pdata->max_hw_segs) + mmc->max_hw_segs = pdata->max_hw_segs; +if (pdata->max_phys_segs) + mmc->max_phys_segs = pdata->max_phys_segs; +if (pdata->max_seg_size) + mmc->max_seg_size = pdata->max_seg_size; +if (pdata->max_req_size) + mmc->max_req_size = pdata->max_req_size; +if (pdata->max_blk_size) + mmc->max_blk_size = pdata->max_blk_size; +if (pdata->max_blk_count) + mmc->max_blk_count = pdata->max_blk_count; +if (pdata->ocr_mask) mmc->ocr_avail = pdata->ocr_mask;else include/linux/mfd/tmio.h +0
-0include/linux/mfd/tmio.h struct tmio_mmc_data { · line 73
Quoted 3 lines
include/linux/mfd/tmio.h +0
-0@@ -71,6 +71,15 @@ struct tmio_mmc_data {unsigned long capabilities;unsigned long flags;u32 ocr_mask;/* available voltages */
Quoted 18 lines
include/linux/mfd/tmio.h +9
-1+ +/* overrides for "struct mmc_host" variables */ +unsigned int max_seg_size; +unsigned short max_hw_segs; +unsigned short max_phys_segs; +unsigned int max_req_size; +unsigned int max_blk_size; +unsigned int max_blk_count; +struct tmio_mmc_dma *dma;void (*set_pwr)(struct platform_device *host,int state);void (*set_clk_div)(struct platform_device *host,int state); --1.7.0.4
_____________________________________
Quoted 7 lines
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed orotherwise confidential information.
Quoted 11 lines
Quoted 1 line
- If you have received this e-mail in error, you are hereby notified
that any review, copying or distribution of it is strictly prohibited.
Quoted 5 lines
- Please inform us immediately and destroy the original transmittal.
Thank you for your cooperation.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh"in
Quoted 3 lines
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html_____________________________________
Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information.
- If you have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited.
- Please inform us immediately and destroy the original transmittal.Thank you for your cooperation.