Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Scott Branden

Hi Chris,

We'll finish off cleaning up our driver that uses this patch for review 
then.


Thanks,
 Scott

On 14-12-17 11:48 AM, Chris Ball wrote:

Hi Scott, sorry for the delay,

On Fri, Dec 05 2014, Scott Branden wrote:

Add quirk to handle broken auto-CMD23.
Some controllers do not respond after the first auto-CMD23 is issued.

This allows CMD23 to still work (mandatory for the faster UHS-I mode)
rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

Signed-off by: Corneliu Doban 
Signed-off-by: Scott Branden 
---
  drivers/mmc/host/sdhci.c  | 3 ++-
  include/linux/mmc/sdhci.h | 2 ++
  2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ada1a3e..b37331f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
/* Auto-CMD23 stuff only works in ADMA or PIO. */
if ((host->version >= SDHCI_SPEC_300) &&
((host->flags & SDHCI_USE_ADMA) ||
-!(host->flags & SDHCI_USE_SDMA))) {
+!(host->flags & SDHCI_USE_SDMA)) &&
+!(host->quirks2 & SDHCI_QUIRK2_ACMD23_BROKEN)) {
host->flags |= SDHCI_AUTO_CMD23;
DBG("%s: Auto-CMD23 available\n", mmc_hostname(mmc));
} else {
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
index dba793e..d979cf9 100644
--- a/include/linux/mmc/sdhci.h
+++ b/include/linux/mmc/sdhci.h
@@ -100,6 +100,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_BROKEN_DDR50 (1<<7)
  /* Stop command (CMD12) can set Transfer Complete when not using MMC_RSP_BUSY 
*/
  #define SDHCI_QUIRK2_STOP_WITH_TC (1<<8)
+/* Controller broken with using ACMD23 */
+#define SDHCI_QUIRK2_ACMD23_BROKEN (1<<9)

int irq;/* Device IRQ */
void __iomem *ioaddr;   /* Mapped address */


This patch doesn't apply the quirk to any chipsets, so the patch
doesn't actually change any behavior when run on a mainline kernel.
Do you have a patch to apply the quirk to your chipset too?  We don't
typically accept patches that "don't do anything" for mainline users,
so that's why we'd like to see the chipset patch too.

Thanks,

- Chris.



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


Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Chris Ball
Hi Scott, sorry for the delay,

On Fri, Dec 05 2014, Scott Branden wrote:
> Add quirk to handle broken auto-CMD23.
> Some controllers do not respond after the first auto-CMD23 is issued.
>
> This allows CMD23 to still work (mandatory for the faster UHS-I mode)
> rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.
>
> Signed-off by: Corneliu Doban 
> Signed-off-by: Scott Branden 
> ---
>  drivers/mmc/host/sdhci.c  | 3 ++-
>  include/linux/mmc/sdhci.h | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index ada1a3e..b37331f 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
>   /* Auto-CMD23 stuff only works in ADMA or PIO. */
>   if ((host->version >= SDHCI_SPEC_300) &&
>   ((host->flags & SDHCI_USE_ADMA) ||
> -  !(host->flags & SDHCI_USE_SDMA))) {
> +  !(host->flags & SDHCI_USE_SDMA)) &&
> +  !(host->quirks2 & SDHCI_QUIRK2_ACMD23_BROKEN)) {
>   host->flags |= SDHCI_AUTO_CMD23;
>   DBG("%s: Auto-CMD23 available\n", mmc_hostname(mmc));
>   } else {
> diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
> index dba793e..d979cf9 100644
> --- a/include/linux/mmc/sdhci.h
> +++ b/include/linux/mmc/sdhci.h
> @@ -100,6 +100,8 @@ struct sdhci_host {
>  #define SDHCI_QUIRK2_BROKEN_DDR50(1<<7)
>  /* Stop command (CMD12) can set Transfer Complete when not using 
> MMC_RSP_BUSY */
>  #define SDHCI_QUIRK2_STOP_WITH_TC(1<<8)
> +/* Controller broken with using ACMD23 */
> +#define SDHCI_QUIRK2_ACMD23_BROKEN   (1<<9)
>  
>   int irq;/* Device IRQ */
>   void __iomem *ioaddr;   /* Mapped address */

This patch doesn't apply the quirk to any chipsets, so the patch
doesn't actually change any behavior when run on a mainline kernel.
Do you have a patch to apply the quirk to your chipset too?  We don't
typically accept patches that "don't do anything" for mainline users,
so that's why we'd like to see the chipset patch too.

Thanks,

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


Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Scott Branden

Hi Chris,

I have not received any feedback on this patch for the SDHCI controller. 
 Anything I can do to help get this accepted into the codebase?


Thanks,
 Scott

On 14-12-04 04:16 PM, Scott Branden wrote:

Add quirk to handle broken auto-CMD23.
Some controllers do not respond after the first auto-CMD23 is issued.

This allows CMD23 to still work (mandatory for the faster UHS-I mode)
rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

Signed-off by: Corneliu Doban 
Signed-off-by: Scott Branden 
---
  drivers/mmc/host/sdhci.c  | 3 ++-
  include/linux/mmc/sdhci.h | 2 ++
  2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ada1a3e..b37331f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
/* Auto-CMD23 stuff only works in ADMA or PIO. */
if ((host->version >= SDHCI_SPEC_300) &&
((host->flags & SDHCI_USE_ADMA) ||
-!(host->flags & SDHCI_USE_SDMA))) {
+!(host->flags & SDHCI_USE_SDMA)) &&
+!(host->quirks2 & SDHCI_QUIRK2_ACMD23_BROKEN)) {
host->flags |= SDHCI_AUTO_CMD23;
DBG("%s: Auto-CMD23 available\n", mmc_hostname(mmc));
} else {
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
index dba793e..d979cf9 100644
--- a/include/linux/mmc/sdhci.h
+++ b/include/linux/mmc/sdhci.h
@@ -100,6 +100,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_BROKEN_DDR50 (1<<7)
  /* Stop command (CMD12) can set Transfer Complete when not using MMC_RSP_BUSY 
*/
  #define SDHCI_QUIRK2_STOP_WITH_TC (1<<8)
+/* Controller broken with using ACMD23 */
+#define SDHCI_QUIRK2_ACMD23_BROKEN (1<<9)

int irq;/* Device IRQ */
void __iomem *ioaddr;   /* Mapped address */




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


Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Scott Branden

Hi Chris,

I have not received any feedback on this patch for the SDHCI controller. 
 Anything I can do to help get this accepted into the codebase?


Thanks,
 Scott

On 14-12-04 04:16 PM, Scott Branden wrote:

Add quirk to handle broken auto-CMD23.
Some controllers do not respond after the first auto-CMD23 is issued.

This allows CMD23 to still work (mandatory for the faster UHS-I mode)
rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

Signed-off by: Corneliu Doban cdo...@broadcom.com
Signed-off-by: Scott Branden sbran...@broadcom.com
---
  drivers/mmc/host/sdhci.c  | 3 ++-
  include/linux/mmc/sdhci.h | 2 ++
  2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ada1a3e..b37331f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
/* Auto-CMD23 stuff only works in ADMA or PIO. */
if ((host-version = SDHCI_SPEC_300) 
((host-flags  SDHCI_USE_ADMA) ||
-!(host-flags  SDHCI_USE_SDMA))) {
+!(host-flags  SDHCI_USE_SDMA)) 
+!(host-quirks2  SDHCI_QUIRK2_ACMD23_BROKEN)) {
host-flags |= SDHCI_AUTO_CMD23;
DBG(%s: Auto-CMD23 available\n, mmc_hostname(mmc));
} else {
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
index dba793e..d979cf9 100644
--- a/include/linux/mmc/sdhci.h
+++ b/include/linux/mmc/sdhci.h
@@ -100,6 +100,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_BROKEN_DDR50 (17)
  /* Stop command (CMD12) can set Transfer Complete when not using MMC_RSP_BUSY 
*/
  #define SDHCI_QUIRK2_STOP_WITH_TC (18)
+/* Controller broken with using ACMD23 */
+#define SDHCI_QUIRK2_ACMD23_BROKEN (19)

int irq;/* Device IRQ */
void __iomem *ioaddr;   /* Mapped address */




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


Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Chris Ball
Hi Scott, sorry for the delay,

On Fri, Dec 05 2014, Scott Branden wrote:
 Add quirk to handle broken auto-CMD23.
 Some controllers do not respond after the first auto-CMD23 is issued.

 This allows CMD23 to still work (mandatory for the faster UHS-I mode)
 rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

 Signed-off by: Corneliu Doban cdo...@broadcom.com
 Signed-off-by: Scott Branden sbran...@broadcom.com
 ---
  drivers/mmc/host/sdhci.c  | 3 ++-
  include/linux/mmc/sdhci.h | 2 ++
  2 files changed, 4 insertions(+), 1 deletion(-)

 diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
 index ada1a3e..b37331f 100644
 --- a/drivers/mmc/host/sdhci.c
 +++ b/drivers/mmc/host/sdhci.c
 @@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
   /* Auto-CMD23 stuff only works in ADMA or PIO. */
   if ((host-version = SDHCI_SPEC_300) 
   ((host-flags  SDHCI_USE_ADMA) ||
 -  !(host-flags  SDHCI_USE_SDMA))) {
 +  !(host-flags  SDHCI_USE_SDMA)) 
 +  !(host-quirks2  SDHCI_QUIRK2_ACMD23_BROKEN)) {
   host-flags |= SDHCI_AUTO_CMD23;
   DBG(%s: Auto-CMD23 available\n, mmc_hostname(mmc));
   } else {
 diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
 index dba793e..d979cf9 100644
 --- a/include/linux/mmc/sdhci.h
 +++ b/include/linux/mmc/sdhci.h
 @@ -100,6 +100,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_BROKEN_DDR50(17)
  /* Stop command (CMD12) can set Transfer Complete when not using 
 MMC_RSP_BUSY */
  #define SDHCI_QUIRK2_STOP_WITH_TC(18)
 +/* Controller broken with using ACMD23 */
 +#define SDHCI_QUIRK2_ACMD23_BROKEN   (19)
  
   int irq;/* Device IRQ */
   void __iomem *ioaddr;   /* Mapped address */

This patch doesn't apply the quirk to any chipsets, so the patch
doesn't actually change any behavior when run on a mainline kernel.
Do you have a patch to apply the quirk to your chipset too?  We don't
typically accept patches that don't do anything for mainline users,
so that's why we'd like to see the chipset patch too.

Thanks,

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


Re: [PATCH v2] mmc: sdhci: add quirk for ACMD23 broken

2014-12-17 Thread Scott Branden

Hi Chris,

We'll finish off cleaning up our driver that uses this patch for review 
then.


Thanks,
 Scott

On 14-12-17 11:48 AM, Chris Ball wrote:

Hi Scott, sorry for the delay,

On Fri, Dec 05 2014, Scott Branden wrote:

Add quirk to handle broken auto-CMD23.
Some controllers do not respond after the first auto-CMD23 is issued.

This allows CMD23 to still work (mandatory for the faster UHS-I mode)
rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

Signed-off by: Corneliu Doban cdo...@broadcom.com
Signed-off-by: Scott Branden sbran...@broadcom.com
---
  drivers/mmc/host/sdhci.c  | 3 ++-
  include/linux/mmc/sdhci.h | 2 ++
  2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ada1a3e..b37331f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2985,7 +2985,8 @@ int sdhci_add_host(struct sdhci_host *host)
/* Auto-CMD23 stuff only works in ADMA or PIO. */
if ((host-version = SDHCI_SPEC_300) 
((host-flags  SDHCI_USE_ADMA) ||
-!(host-flags  SDHCI_USE_SDMA))) {
+!(host-flags  SDHCI_USE_SDMA)) 
+!(host-quirks2  SDHCI_QUIRK2_ACMD23_BROKEN)) {
host-flags |= SDHCI_AUTO_CMD23;
DBG(%s: Auto-CMD23 available\n, mmc_hostname(mmc));
} else {
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
index dba793e..d979cf9 100644
--- a/include/linux/mmc/sdhci.h
+++ b/include/linux/mmc/sdhci.h
@@ -100,6 +100,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_BROKEN_DDR50 (17)
  /* Stop command (CMD12) can set Transfer Complete when not using MMC_RSP_BUSY 
*/
  #define SDHCI_QUIRK2_STOP_WITH_TC (18)
+/* Controller broken with using ACMD23 */
+#define SDHCI_QUIRK2_ACMD23_BROKEN (19)

int irq;/* Device IRQ */
void __iomem *ioaddr;   /* Mapped address */


This patch doesn't apply the quirk to any chipsets, so the patch
doesn't actually change any behavior when run on a mainline kernel.
Do you have a patch to apply the quirk to your chipset too?  We don't
typically accept patches that don't do anything for mainline users,
so that's why we'd like to see the chipset patch too.

Thanks,

- Chris.



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