linux-mips
[Top] [All Lists]

Re: ALCHEMY: Add SD support to AU1200 MMC/SD driver

To: Jordan Crouse <jordan.crouse@amd.com>
Subject: Re: ALCHEMY: Add SD support to AU1200 MMC/SD driver
From: Pierre Ossman <drzeus@drzeus.cx>
Date: Fri, 02 Dec 2005 23:05:46 +0100
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org, Russell King <rmk+lkml@arm.linux.org.uk>
In-reply-to: <20051202211709.GL28227@cosmic.amd.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20051202190108.GF28227@cosmic.amd.com> <4390A38A.1010907@drzeus.cx> <20051202211709.GL28227@cosmic.amd.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mail/News 1.5 (X11/20051129)
Jordan Crouse wrote:
> On 02/12/05 20:42 +0100, Pierre Ossman wrote:
>> Jordan Crouse wrote:
>>> @@ -196,7 +207,11 @@ static int au1xmmc_send_command(struct a
>>>  
>>>     switch(cmd->flags) {
>>>     case MMC_RSP_R1:
>>> -           mmccmd |= SD_CMD_RT_1;
>>> +           if (cmd->opcode == 0x03 && host->mmc->mode == MMC_MODE_SD)
>>> +                   mmccmd |= SD_CMD_RT_6;
>>> +           else
>>> +                   mmccmd |= SD_CMD_RT_1;
>>> +
>>>             break;
>>>     case MMC_RSP_R1B:
>>>             mmccmd |= SD_CMD_RT_1B;
>> No, no, no! Even if this wasn't already fixed in the current kernel you
>> never hack around bugs in other parts of the kernel, you fix them!
> 
> As of a git pull about 30 minutes ago, both MMC_RSP_R1 and MMC_RSP_R6 resolve
> to (MMC_RSP_SHORT|MMC_RSP_CRC).  Now, I really wouldn't call that a 
> bug in the subsystem, because it is technically correct, but the Au1200
> needs us to specifically specify if the required response is an R1 or
> an R6, thus the specified logic.  
> 

Point, but then you should figure out the distinction and why the
controller requires it (I assume you have tried giving the controller
"incorrect" settings). At that point the MMC layer can be extended to
handle this in a general manner instead of hacks in every other driver.
Judging from your email address you seem to be at a good position to
find out what the problem is.

Rgds
Pierre


<Prev in Thread] Current Thread [Next in Thread>