All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC
@ 2011-07-12  8:30 Jaehoon Chung
  2011-07-13  4:13 ` Seungwon Jeon
  2011-07-28 22:28 ` Chris Ball
  0 siblings, 2 replies; 4+ messages in thread
From: Jaehoon Chung @ 2011-07-12  8:30 UTC (permalink / raw)
  To: linux-mmc; +Cc: Chris Ball, Ben Dooks, Kyungmin Park

This patch is added the quirk for Samsung SoCs.

Samsung SoCs need to set QUIRK_BROKEN_ADMA_ZEROLEN_DESC.
(If ADMA operation is more than 65535, maybe set by zero.)

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/mmc/host/sdhci-s3c.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 460ffaf..03da44a 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -502,6 +502,9 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 	/* This host supports the Auto CMD12 */
 	host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12;
 
+	/* Samsung SoCs need BROKEN_ADMA_ZEROLEN_DESC */
+	host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC;
+
 	if (pdata->cd_type == S3C_SDHCI_CD_NONE ||
 	    pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
 		host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC
  2011-07-12  8:30 [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC Jaehoon Chung
@ 2011-07-13  4:13 ` Seungwon Jeon
  2011-07-13  4:18   ` Philip Rakity
  2011-07-28 22:28 ` Chris Ball
  1 sibling, 1 reply; 4+ messages in thread
From: Seungwon Jeon @ 2011-07-13  4:13 UTC (permalink / raw)
  To: 'Jaehoon Chung', linux-mmc
  Cc: 'Chris Ball', 'Ben Dooks', 'Kyungmin Park'

Hi,

I don't know meaning of QUIRK_BROKEN_ADMA_ZEROLEN_DESC exactly.
Is there any problem in ADMA descriptors?
Could you explain for this?

The following table is for ADMA length field from Host controller spec.
The maximum data length descriptor line is less than 64KiB.
Samsung also conforms this.
----------------------------------
Length Field  | Value of Length
----------------------------------
0000h		| 65536 bytes
0001h		| 1 byte
0002h		| 2bytes
... 		| ...
FFFFh		| 65535 bytes
----------------------------------

Best regards,
Seungwon Jeon.

Jaehoon Chung wrote: 
> This patch is added the quirk for Samsung SoCs.
> 
> Samsung SoCs need to set QUIRK_BROKEN_ADMA_ZEROLEN_DESC.
> (If ADMA operation is more than 65535, maybe set by zero.)
> 
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  drivers/mmc/host/sdhci-s3c.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 460ffaf..03da44a 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -502,6 +502,9 @@ static int __devinit sdhci_s3c_probe(struct
> platform_device *pdev)
>  	/* This host supports the Auto CMD12 */
>  	host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12;
> 
> +	/* Samsung SoCs need BROKEN_ADMA_ZEROLEN_DESC */
> +	host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC;
> +
>  	if (pdata->cd_type == S3C_SDHCI_CD_NONE ||
>  	    pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
>  		host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC
  2011-07-13  4:13 ` Seungwon Jeon
@ 2011-07-13  4:18   ` Philip Rakity
  0 siblings, 0 replies; 4+ messages in thread
From: Philip Rakity @ 2011-07-13  4:18 UTC (permalink / raw)
  To: Seungwon Jeon
  Cc: Jaehoon Chung, linux-mmc, Chris Ball, Ben Dooks, Kyungmin Park



One use for this is as follows:

Without the QUIRK
imagine there is one SG descriptor passed in and it is properly aligned etc.  The prepare_data function (and friends) will 
change this to 2 ADMA descriptors.  The first descriptor will point to the data / length passed in via the SG descriptor.  The
second descriptor will say END OF CHAIN.

With the Quirk
Only one ADMA descriptor will be used.  It will contain the pointer to the data/length and be marked END OF CHAIN.

The quirk save a needless fetch.

Philip

On Jul 12, 2011, at 9:13 PM, Seungwon Jeon wrote:

> Hi,
> 
> I don't know meaning of QUIRK_BROKEN_ADMA_ZEROLEN_DESC exactly.
> Is there any problem in ADMA descriptors?
> Could you explain for this?
> 
> The following table is for ADMA length field from Host controller spec.
> The maximum data length descriptor line is less than 64KiB.
> Samsung also conforms this.
> ----------------------------------
> Length Field  | Value of Length
> ----------------------------------
> 0000h		| 65536 bytes
> 0001h		| 1 byte
> 0002h		| 2bytes
> ... 		| ...
> FFFFh		| 65535 bytes
> ----------------------------------
> 
> Best regards,
> Seungwon Jeon.
> 
> Jaehoon Chung wrote: 
>> This patch is added the quirk for Samsung SoCs.
>> 
>> Samsung SoCs need to set QUIRK_BROKEN_ADMA_ZEROLEN_DESC.
>> (If ADMA operation is more than 65535, maybe set by zero.)
>> 
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> ---
>> drivers/mmc/host/sdhci-s3c.c |    3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>> 
>> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
>> index 460ffaf..03da44a 100644
>> --- a/drivers/mmc/host/sdhci-s3c.c
>> +++ b/drivers/mmc/host/sdhci-s3c.c
>> @@ -502,6 +502,9 @@ static int __devinit sdhci_s3c_probe(struct
>> platform_device *pdev)
>> 	/* This host supports the Auto CMD12 */
>> 	host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12;
>> 
>> +	/* Samsung SoCs need BROKEN_ADMA_ZEROLEN_DESC */
>> +	host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC;
>> +
>> 	if (pdata->cd_type == S3C_SDHCI_CD_NONE ||
>> 	    pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
>> 		host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC
  2011-07-12  8:30 [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC Jaehoon Chung
  2011-07-13  4:13 ` Seungwon Jeon
@ 2011-07-28 22:28 ` Chris Ball
  1 sibling, 0 replies; 4+ messages in thread
From: Chris Ball @ 2011-07-28 22:28 UTC (permalink / raw)
  To: Jaehoon Chung; +Cc: linux-mmc, Ben Dooks, Kyungmin Park

Hi Jaehoon,

On Tue, Jul 12 2011, Jaehoon Chung wrote:
> This patch is added the quirk for Samsung SoCs.
>
> Samsung SoCs need to set QUIRK_BROKEN_ADMA_ZEROLEN_DESC.
> (If ADMA operation is more than 65535, maybe set by zero.)
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  drivers/mmc/host/sdhci-s3c.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 460ffaf..03da44a 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -502,6 +502,9 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
>  	/* This host supports the Auto CMD12 */
>  	host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12;
>  
> +	/* Samsung SoCs need BROKEN_ADMA_ZEROLEN_DESC */
> +	host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC;
> +
>  	if (pdata->cd_type == S3C_SDHCI_CD_NONE ||
>  	    pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
>  		host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;

Pushed to mmc-next for 3.1, thanks.

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-28 22:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-12  8:30 [PATCH] mmc: sdhci-s3c: add quirk about BROKEN_ADMA_ZEROLEN_DESC Jaehoon Chung
2011-07-13  4:13 ` Seungwon Jeon
2011-07-13  4:18   ` Philip Rakity
2011-07-28 22:28 ` Chris Ball

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.