Hi Ulf,

On 15-11-06 12:14 AM, Ulf Hansson wrote:
On 5 November 2015 at 23:39, Al Cooper <alcoop...@gmail.com> wrote:
Add quirk to disable SDR50 mode for controllers/boards that have
problems with this mode.

No thanks! No more quirks please!


I'm fine with not having this quirk added (I don't need this one but use multiple of the other quirks in the driver) But, what if I also needed it in my driver? When do we determine when a quirk should be added to sdhci.c or not. What about existing quirks - should the current ones be moved to multiple existing drivers?
Kind regards
Uffe


Signed-off-by: Al Cooper <alcoop...@gmail.com>
---
  drivers/mmc/host/sdhci.c | 3 +++
  drivers/mmc/host/sdhci.h | 2 ++
  2 files changed, 5 insertions(+)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index b48565e..71067c7 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3176,6 +3176,9 @@ int sdhci_add_host(struct sdhci_host *host)
         } else if (caps[1] & SDHCI_SUPPORT_SDR50)
                 mmc->caps |= MMC_CAP_UHS_SDR50;

+       if (host->quirks2 & SDHCI_QUIRK2_BROKEN_SDR50)
+               mmc->caps &= ~MMC_CAP_UHS_SDR50;
+
Perhaps a lot of these quirks can be solved by having a generic mechanism to override any of the values in the caps registers rather than adding all these quirks?

         if (host->quirks2 & SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 &&
             (caps[1] & SDHCI_SUPPORT_HS400))
                 mmc->caps2 |= MMC_CAP2_HS400;
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 9d4aa31..0941c94 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -412,6 +412,8 @@ struct sdhci_host {
  #define SDHCI_QUIRK2_ACMD23_BROKEN                     (1<<14)
  /* Broken Clock divider zero in controller */
  #define SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN             (1<<15)
+/* Controller does not support SDR50 */
+#define SDHCI_QUIRK2_BROKEN_SDR50                      (1<<16)
  /*
   * When internal clock is disabled, a delay is needed before modifying the
   * SD clock frequency or enabling back the internal clock.
--
1.9.0.138.g2de3478


Regards,
 Scott
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to