Re: [PATCH v2] Enable DMA for Ricoh reader on Lenovo laptops

Vasily Khoruzhick
2010-02-15T16:21:03Z

[-- Attachment #1.1: Type: Text/Plain, Size: 686 bytes --]

В сообщении от 15 февраля 2010 17:58:24 автор Maxim Levitsky написал:
> Not sure if I need the SDHCI_QUIRK_CLOCK_BEFORE_RESET.

Driver sometimes doesn't detect card without this quirk for me.

> What I don't get is why DMA capability isn't advertised?
>
> Since xD and memstick portions do support DMA, I can't belive that they
> don't use DMA in SD/SDHCI portion.
>
> Ah, I forgot that SDHCI is handled by microsoft driver.... Maybe it
> doesn't test the DMA bits.
>
> If we were to follow the way MS driver works, we wouldn't need the
> quirks, right?

We need generic quirk for ricoh readers, see attached patch

Regards
Vasily

[-- Attachment #1.2: 0001-Enable-DMA-on-Ricoh-sdhci-reader-by-default.patch --]
[-- Type: text/x-patch, Size: 1336 bytes --]

From 9cbd6c6667d8a2fce583e1e2e7c253b75ec1b675 Mon Sep 17 00:00:00 2001
From: Vasily Khoruzhick <anarsoul@gmail.com>
Date: Mon, 15 Feb 2010 18:10:41 +0200
Subject: [PATCH] Enable DMA on Ricoh sdhci reader by default

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
drivers/mmc/host/sdhci-pci.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index 5c3a176..12f5b09 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -80,9 +80,6 @@ struct sdhci_pci_chip {

static int ricoh_probe(struct sdhci_pci_chip *chip)
{
- if (chip->pdev->subsystem_vendor == PCI_VENDOR_ID_IBM)
- chip->quirks |= SDHCI_QUIRK_CLOCK_BEFORE_RESET;
-
if (chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG ||
chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SONY)
chip->quirks |= SDHCI_QUIRK_NO_CARD_NO_RESET;
@@ -92,7 +89,9 @@ static int ricoh_probe(struct sdhci_pci_chip *chip)

static const struct sdhci_pci_fixes sdhci_ricoh = {
.probe = ricoh_probe,
- .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR,
+ .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR |
+ SDHCI_QUIRK_FORCE_DMA |
+ SDHCI_QUIRK_CLOCK_BEFORE_RESET,
};

static const struct sdhci_pci_fixes sdhci_ene_712 = {
--
1.6.6.1