LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [GIT PULL] MMC updates
@ 2007-05-01 15:22 Pierre Ossman
2007-05-05 4:24 ` Pierre Ossman
2007-05-09 18:56 ` Russell King
0 siblings, 2 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-01 15:22 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/misc/tifm_7xx1.c | 332 +++----
drivers/misc/tifm_core.c | 305 +++--
drivers/mmc/Kconfig | 106 +--
drivers/mmc/Makefile | 33 +-
drivers/mmc/card/Kconfig | 17 +
drivers/mmc/card/Makefile | 11 +
drivers/mmc/{mmc_block.c => card/block.c} | 55 +-
drivers/mmc/{mmc_queue.c => card/queue.c} | 12 +-
drivers/mmc/{mmc_queue.h => card/queue.h} | 0
drivers/mmc/core/Kconfig | 17 +
drivers/mmc/core/Makefile | 11 +
drivers/mmc/core/core.c | 727 ++++++++++++
drivers/mmc/core/core.h | 70 ++
drivers/mmc/core/mmc.c | 537 +++++++++
drivers/mmc/core/mmc_ops.c | 276 +++++
drivers/mmc/core/mmc_ops.h | 27 +
drivers/mmc/core/sd.c | 587 ++++++++++
drivers/mmc/core/sd_ops.c | 316 ++++++
drivers/mmc/core/sd_ops.h | 25 +
drivers/mmc/{mmc_sysfs.c => core/sysfs.c} | 11 +-
drivers/mmc/{mmc.h => core/sysfs.h} | 10 +-
drivers/mmc/host/Kconfig | 103 ++
drivers/mmc/host/Makefile | 18 +
drivers/mmc/{ => host}/at91_mci.c | 1 -
drivers/mmc/{ => host}/au1xmmc.c | 1 -
drivers/mmc/{ => host}/au1xmmc.h | 0
drivers/mmc/{ => host}/imxmmc.c | 1 -
drivers/mmc/{ => host}/imxmmc.h | 0
drivers/mmc/{ => host}/mmci.c | 1 -
drivers/mmc/{ => host}/mmci.h | 0
drivers/mmc/{ => host}/omap.c | 56 +-
drivers/mmc/{ => host}/pxamci.c | 1 -
drivers/mmc/{ => host}/pxamci.h | 0
drivers/mmc/{ => host}/sdhci.c | 43 +-
drivers/mmc/{ => host}/sdhci.h | 4 +-
drivers/mmc/host/tifm_sd.c | 1102 ++++++++++++++++++
drivers/mmc/{ => host}/wbsd.c | 205 +---
drivers/mmc/{ => host}/wbsd.h | 9 +-
drivers/mmc/mmc.c | 1724 -----------------------------
drivers/mmc/tifm_sd.c | 987 -----------------
include/asm-arm/arch-imx/mmc.h | 2 +-
include/asm-arm/arch-pxa/mmc.h | 2 +-
include/asm-arm/mach/mmc.h | 2 +-
include/linux/mmc/card.h | 32 +-
include/linux/mmc/core.h | 112 ++
include/linux/mmc/host.h | 59 +-
include/linux/mmc/mmc.h | 322 ++++--
include/linux/mmc/protocol.h | 327 ------
include/linux/mmc/sd.h | 83 ++
include/linux/tifm.h | 117 +-
50 files changed, 4858 insertions(+), 3941 deletions(-)
Adrian Bunk (1):
mmc: make tifm_sd_set_dma_data() static
Alex Dubov (18):
mmc: cull sg list to match mmc request size
tifm: hide details of interrupt processing from socket drivers
tifm: use bus methods to handle probe/remove instead of driver ones.
tifm: simplify bus match and uevent handlers
tifm: replace per-adapter kthread with freezeable workqueue
tifm_7xx1: improve card detection routine
tifm: move common adapter management tasks from tifm_7xx1 to tifm_core
tifm: move common device management tasks from tifm_7xx1 to tifm_core
tifm_7xx1: fix adapter resume function
tifm: add sysfs attribute for tifm devices
tifm_sd: remove tifm_sd_terminate function
tifm_sd: remove wait for power off on remove
tifm_sd: separate command flags, socket flags and register bit masks
tifm_sd: merge dma and pio request processing paths
tifm_sd: replace command completion state machine with full checking
tifm_sd: fix resume handler
tifm_sd: implement software scatter-gather
tifm: layout fixes, small changes to comments and printfs
Andrew Morton (1):
tifm: add missing include for DMA_32BIT_MASK
Arnaud Patard (1):
mmc-omap: add missing '\n'
Philip Langdale (2):
MMC: Consolidate voltage definitions
MMC: Fix handling of low-voltage cards
Pierre Ossman (21):
mmc: enforce correct sg list
wbsd: remove block crc test
mmc: use right timing mode constant
mmc: MMC sector based cards
mmc: add type field to cards
mmc: Move OCR bit defines
mmc: Move "present" marking
mmc: Move queue functions to mmc_block
mmc: Move host and card drivers to subdirs
mmc: Flush pending detects on host removal
mmc: allow suspended block driver to be removed
mmc: remove card upon suspend
mmc: deprecate mmc bus topology
mmc: Move core functions to subdir
mmc: Separate out protocol ops
wbsd: check for data opcode earlier
mmc: add bus handler
mmc: break apart switch function
mmc: separate out reading EXT_CSD
mmc: support unsafe resume of cards
mmc: remove old card states
Tony Lindgren (2):
mmc-omap: Fix omap to use MMC_POWER_ON
mmc-omap: Clean up omap set_ios and make MMC_POWER_ON work
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-01 15:22 [GIT PULL] MMC updates Pierre Ossman
@ 2007-05-05 4:24 ` Pierre Ossman
2007-05-05 4:45 ` Linus Torvalds
2007-05-09 18:56 ` Russell King
1 sibling, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-05 4:24 UTC (permalink / raw)
To: Linus Torvalds, LKML
Pierre Ossman wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
*ping*
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-05 4:24 ` Pierre Ossman
@ 2007-05-05 4:45 ` Linus Torvalds
0 siblings, 0 replies; 59+ messages in thread
From: Linus Torvalds @ 2007-05-05 4:45 UTC (permalink / raw)
To: Pierre Ossman; +Cc: LKML
On Sat, 5 May 2007, Pierre Ossman wrote:
> Pierre Ossman wrote:
> > Linus, please pull from
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
> >
>
> *ping*
*pong*.
Thanks for reminding me. I was away for a couple of days, missed some
emails, just pulled and pushed out.
Linus
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-01 15:22 [GIT PULL] MMC updates Pierre Ossman
2007-05-05 4:24 ` Pierre Ossman
@ 2007-05-09 18:56 ` Russell King
2007-05-09 19:06 ` Pierre Ossman
1 sibling, 1 reply; 59+ messages in thread
From: Russell King @ 2007-05-09 18:56 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
On Tue, May 01, 2007 at 05:22:00PM +0200, Pierre Ossman wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
> to receive the following updates:
Dug out from the ARM kautobuild...
drivers/mmc/host/pxamci.c: In function 'pxamci_cmd_done':
drivers/mmc/host/pxamci.c:236: error: 'MMC_ALL_SEND_CID' undeclared (first use in this function)
drivers/mmc/host/pxamci.c:236: error: (Each undeclared identifier is reported only once
drivers/mmc/host/pxamci.c:236: error: for each function it appears in.)
drivers/mmc/host/pxamci.c:237: error: 'MMC_SEND_CSD' undeclared (first use in this function)
drivers/mmc/host/pxamci.c:238: error: 'MMC_SEND_CID' undeclared (first use in this function)
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 18:56 ` Russell King
@ 2007-05-09 19:06 ` Pierre Ossman
2007-05-09 22:12 ` Russell King
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-09 19:06 UTC (permalink / raw)
To: Pierre Ossman, Linus Torvalds, LKML
Russell King wrote:
> Dug out from the ARM kautobuild...
>
> drivers/mmc/host/pxamci.c: In function 'pxamci_cmd_done':
> drivers/mmc/host/pxamci.c:236: error: 'MMC_ALL_SEND_CID' undeclared (first use in this function)
> drivers/mmc/host/pxamci.c:236: error: (Each undeclared identifier is reported only once
> drivers/mmc/host/pxamci.c:236: error: for each function it appears in.)
> drivers/mmc/host/pxamci.c:237: error: 'MMC_SEND_CSD' undeclared (first use in this function)
> drivers/mmc/host/pxamci.c:238: error: 'MMC_SEND_CID' undeclared (first use in this function)
>
>
What are opcode defines doing in the driver?
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 19:06 ` Pierre Ossman
@ 2007-05-09 22:12 ` Russell King
2007-05-10 5:44 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Russell King @ 2007-05-09 22:12 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
On Wed, May 09, 2007 at 09:06:29PM +0200, Pierre Ossman wrote:
> Russell King wrote:
> > Dug out from the ARM kautobuild...
> >
> > drivers/mmc/host/pxamci.c: In function 'pxamci_cmd_done':
> > drivers/mmc/host/pxamci.c:236: error: 'MMC_ALL_SEND_CID' undeclared (first use in this function)
> > drivers/mmc/host/pxamci.c:236: error: (Each undeclared identifier is reported only once
> > drivers/mmc/host/pxamci.c:236: error: for each function it appears in.)
> > drivers/mmc/host/pxamci.c:237: error: 'MMC_SEND_CSD' undeclared (first use in this function)
> > drivers/mmc/host/pxamci.c:238: error: 'MMC_SEND_CID' undeclared (first use in this function)
> >
> >
>
> What are opcode defines doing in the driver?
See the comments immediately above and below its use.
Welcome to buggy hardware.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 22:12 ` Russell King
@ 2007-05-10 5:44 ` Pierre Ossman
2007-05-10 7:51 ` Russell King
2007-05-10 13:58 ` Pierre Ossman
0 siblings, 2 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-10 5:44 UTC (permalink / raw)
To: Pierre Ossman, Linus Torvalds, LKML
Russell King wrote:
> See the comments immediately above and below its use.
>
> Welcome to buggy hardware.
>
>
I've read through the erratum, and to me it seems like the bug affects
all long replies, not just these codes. So I think the code should be
fixed to look at the response flag, not the opcode.
Do you have hardware so that you can test such a change?
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-10 5:44 ` Pierre Ossman
@ 2007-05-10 7:51 ` Russell King
2007-05-10 13:58 ` Pierre Ossman
1 sibling, 0 replies; 59+ messages in thread
From: Russell King @ 2007-05-10 7:51 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
On Thu, May 10, 2007 at 07:44:02AM +0200, Pierre Ossman wrote:
> Russell King wrote:
> > See the comments immediately above and below its use.
> >
> > Welcome to buggy hardware.
>
> I've read through the erratum, and to me it seems like the bug affects
> all long replies, not just these codes. So I think the code should be
> fixed to look at the response flag, not the opcode.
>
> Do you have hardware so that you can test such a change?
Nope. Suggest checking the git logs and contacting those who authored
the change.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-10 5:44 ` Pierre Ossman
2007-05-10 7:51 ` Russell King
@ 2007-05-10 13:58 ` Pierre Ossman
2007-05-10 14:52 ` Nicolas Pitre
1 sibling, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-10 13:58 UTC (permalink / raw)
To: Nicolas Pitre, LKML
Hi Nicolas,
You seem to be the source of this workaround, and also the maintainer of
PXA. So I guess this falls into your lap either way. Highlights from my
discussion with Russell:
Pierre Ossman wrote:
> Russell King wrote:
>
>> > Dug out from the ARM kautobuild...
>> >
>> > drivers/mmc/host/pxamci.c: In function 'pxamci_cmd_done':
>> > drivers/mmc/host/pxamci.c:236: error: 'MMC_ALL_SEND_CID' undeclared (first use in this function)
>> > drivers/mmc/host/pxamci.c:236: error: (Each undeclared identifier is reported only once
>> > drivers/mmc/host/pxamci.c:236: error: for each function it appears in.)
>> > drivers/mmc/host/pxamci.c:237: error: 'MMC_SEND_CSD' undeclared (first use in this function)
>> > drivers/mmc/host/pxamci.c:238: error: 'MMC_SEND_CID' undeclared (first use in this function)
>> >
>> >
>>
>
> What are opcode defines doing in the driver?
Pierre Ossman wrote:
> Russell King wrote:
>
>> See the comments immediately above and below its use.
>>
>> Welcome to buggy hardware.
>>
>>
>>
>
> I've read through the erratum, and to me it seems like the bug affects
> all long replies, not just these codes. So I think the code should be
> fixed to look at the response flag, not the opcode.
>
> Do you have hardware so that you can test such a change?
>
>
I guess the same question goes to you. :)
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-10 13:58 ` Pierre Ossman
@ 2007-05-10 14:52 ` Nicolas Pitre
2007-05-12 15:38 ` Nicolas Pitre
0 siblings, 1 reply; 59+ messages in thread
From: Nicolas Pitre @ 2007-05-10 14:52 UTC (permalink / raw)
To: Pierre Ossman; +Cc: LKML
On Thu, 10 May 2007, Pierre Ossman wrote:
> You seem to be the source of this workaround, and also the maintainer of
> PXA.
Well... I used to.
But the only MMC capable PXA hardware in working conditions I have
access to at the moment is PXA255 based which doesn't suffer from this
erratum.
> Pierre Ossman wrote:
> > Russell King wrote:
> >
> >> See the comments immediately above and below its use.
> >>
> >> Welcome to buggy hardware.
> >>
> >>
> >>
> >
> > I've read through the erratum, and to me it seems like the bug affects
> > all long replies, not just these codes. So I think the code should be
> > fixed to look at the response flag, not the opcode.
> >
> > Do you have hardware so that you can test such a change?
> >
> >
>
> I guess the same question goes to you. :)
People in better position than I currently do to test a fix are most
likely to be found on lak.
Nicolas
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-10 14:52 ` Nicolas Pitre
@ 2007-05-12 15:38 ` Nicolas Pitre
2007-05-12 16:12 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Nicolas Pitre @ 2007-05-12 15:38 UTC (permalink / raw)
To: Pierre Ossman; +Cc: LKML
On Thu, 10 May 2007, Nicolas Pitre wrote:
> On Thu, 10 May 2007, Pierre Ossman wrote:
>
> > You seem to be the source of this workaround, and also the maintainer of
> > PXA.
>
> Well... I used to.
Actually, I'm not the author of this workaround. And looking at it
closer, the current workaround is utterly buggy as it completely inhibit
CRC error reporting for everything but the listed commands when the MSB
of the response is a zero.
> But the only MMC capable PXA hardware in working conditions I have
> access to at the moment is PXA255 based which doesn't suffer from this
> erratum.
>
> > Pierre Ossman wrote:
> > > I've read through the erratum, and to me it seems like the bug affects
> > > all long replies, not just these codes. So I think the code should be
> > > fixed to look at the response flag, not the opcode.
Indeed.
Please apply the following patch. It is compile tested only as I don't
have PXA27x hardware with MMC at the moment, but it just cannot be worse
than the current code even when it was compiling.
----- >8
Subject: fix PXA27x MMC workaround for bad CRC on R2 response erratum
... and make it depend on the response flag rather than the command type.
Signed-off-by: Nicolas Pitre <nico@cam.org>
---
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index d97d386..8240609 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -232,20 +232,15 @@ static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat)
/*
* workaround for erratum #42:
* Intel PXA27x Family Processor Specification Update Rev 001
+ * A bogus CRC error can appear if the msb of a R2 response
+ * is a one.
*/
- if (cmd->opcode == MMC_ALL_SEND_CID ||
- cmd->opcode == MMC_SEND_CSD ||
- cmd->opcode == MMC_SEND_CID) {
- /* a bogus CRC error can appear if the msb of
- the 15 byte response is a one */
- if ((cmd->resp[0] & 0x80000000) == 0)
- cmd->error = MMC_ERR_BADCRC;
- } else {
- pr_debug("ignoring CRC from command %d - *risky*\n",cmd->opcode);
- }
-#else
- cmd->error = MMC_ERR_BADCRC;
+ if (RSP_TYPE(mmc_resp_type(cmd)) == RSP_TYPE(MMC_RSP_R2) &&
+ (cmd->resp[0] & 0x80000000)) {
+ pr_debug("ignoring CRC from command %d - *risky*\n", cmd->opcode);
+ } else
#endif
+ cmd->error = MMC_ERR_BADCRC;
}
pxamci_disable_irq(host, END_CMD_RES);
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-12 15:38 ` Nicolas Pitre
@ 2007-05-12 16:12 ` Pierre Ossman
2007-05-12 16:22 ` Russell King
2007-05-13 3:13 ` [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response Nicolas Pitre
0 siblings, 2 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-12 16:12 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: LKML
Nicolas Pitre wrote:
> Actually, I'm not the author of this workaround. And looking at it
> closer, the current workaround is utterly buggy as it completely inhibit
> CRC error reporting for everything but the listed commands when the MSB
> of the response is a zero.
>
>
Your name popped up on the commit for this, but as that was during the
bk days the information was severely lacking.
> Please apply the following patch. It is compile tested only as I don't
> have PXA27x hardware with MMC at the moment, but it just cannot be worse
> than the current code even when it was compiling.
>
>
I would think that it would be better to look at just MMC_RSP_136 and
MMC_RSP_CRC in case we get future variations.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-12 16:12 ` Pierre Ossman
@ 2007-05-12 16:22 ` Russell King
2007-05-12 17:55 ` Nicolas Pitre
2007-05-13 3:13 ` [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response Nicolas Pitre
1 sibling, 1 reply; 59+ messages in thread
From: Russell King @ 2007-05-12 16:22 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Nicolas Pitre, LKML
On Sat, May 12, 2007 at 06:12:27PM +0200, Pierre Ossman wrote:
> Nicolas Pitre wrote:
> > Actually, I'm not the author of this workaround. And looking at it
> > closer, the current workaround is utterly buggy as it completely inhibit
> > CRC error reporting for everything but the listed commands when the MSB
> > of the response is a zero.
> >
> >
>
> Your name popped up on the commit for this, but as that was during the
> bk days the information was severely lacking.
That's not correct. Just as today, it's entirely trackable. We've had
the sign-off thing for quite a long time, and we've also had the ARM
patch system for ages. That's what the "2271/3" number means.
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=2271%2F1
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=2271%2F3
First submitted on 22 November 2004 by Nicolas. Went through a couple
of revisions until 2271/3 which was committed on 27 November 2004. No
indication that the code was done by anyone other than Nicolas, though
maybe Nico didn't add appropriate creditation to the real authors.
Slap Wrist if we're missing the proper creditation!
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-12 16:22 ` Russell King
@ 2007-05-12 17:55 ` Nicolas Pitre
0 siblings, 0 replies; 59+ messages in thread
From: Nicolas Pitre @ 2007-05-12 17:55 UTC (permalink / raw)
To: Russell King; +Cc: Pierre Ossman, LKML
On Sat, 12 May 2007, Russell King wrote:
> First submitted on 22 November 2004 by Nicolas. Went through a couple
> of revisions until 2271/3 which was committed on 27 November 2004. No
> indication that the code was done by anyone other than Nicolas, though
> maybe Nico didn't add appropriate creditation to the real authors.
> Slap Wrist if we're missing the proper creditation!
Whatever happened, I certainly knew nothing about MMC back then, and I
did a less than appropriate job at reviewing the patch.
I'm getting far more involved with MMC/SD/SDIO now so this issue will
get properly resolved.
Nicolas
^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response
2007-05-12 16:12 ` Pierre Ossman
2007-05-12 16:22 ` Russell King
@ 2007-05-13 3:13 ` Nicolas Pitre
2007-05-13 15:59 ` Pierre Ossman
1 sibling, 1 reply; 59+ messages in thread
From: Nicolas Pitre @ 2007-05-13 3:13 UTC (permalink / raw)
To: Pierre Ossman; +Cc: LKML
... and make it depend on the response flag instead of the command type.
Signed-off-by: Nicolas Pitre <npitre@mvista.com>
---
On Sat, 12 May 2007, Pierre Ossman wrote:
> Nicolas Pitre wrote:
> > Please apply the following patch. It is compile tested only as I don't
> > have PXA27x hardware with MMC at the moment, but it just cannot be worse
> > than the current code even when it was compiling.
> >
> >
>
> I would think that it would be better to look at just MMC_RSP_136 and
> MMC_RSP_CRC in case we get future variations.
Makes sense.
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index d97d386..f8985c5 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -232,20 +232,14 @@ static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat)
/*
* workaround for erratum #42:
* Intel PXA27x Family Processor Specification Update Rev 001
+ * A bogus CRC error can appear if the msb of a 136 bit
+ * response is a one.
*/
- if (cmd->opcode == MMC_ALL_SEND_CID ||
- cmd->opcode == MMC_SEND_CSD ||
- cmd->opcode == MMC_SEND_CID) {
- /* a bogus CRC error can appear if the msb of
- the 15 byte response is a one */
- if ((cmd->resp[0] & 0x80000000) == 0)
- cmd->error = MMC_ERR_BADCRC;
- } else {
- pr_debug("ignoring CRC from command %d - *risky*\n",cmd->opcode);
- }
-#else
- cmd->error = MMC_ERR_BADCRC;
+ if (cmd->flags & MMC_RSP_136 && cmd->resp[0] & 0x80000000) {
+ pr_debug("ignoring CRC from command %d - *risky*\n", cmd->opcode);
+ } else
#endif
+ cmd->error = MMC_ERR_BADCRC;
}
pxamci_disable_irq(host, END_CMD_RES);
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response
2007-05-13 3:13 ` [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response Nicolas Pitre
@ 2007-05-13 15:59 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-13 15:59 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: LKML
Nicolas Pitre wrote:
> ... and make it depend on the response flag instead of the command type.
>
> Signed-off-by: Nicolas Pitre <npitre@mvista.com>
> ---
>
Fantastic. Applied.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2008-04-19 7:28 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2008-04-19 7:28 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/core/core.c | 6 +-
drivers/mmc/core/core.h | 4 +
drivers/mmc/core/host.c | 39 +-
drivers/mmc/core/sdio_irq.c | 4 +-
drivers/mmc/core/sdio_ops.c | 1 +
drivers/mmc/host/omap.c | 995 ++++++++++++++++++++++++++-------------
drivers/mmc/host/sdhci.c | 123 +++--
drivers/mmc/host/sdhci.h | 9 +-
include/asm-arm/arch-omap/mmc.h | 2 +
9 files changed, 787 insertions(+), 396 deletions(-)
Adrian Bunk (3):
mmc: make __mmc_release_bus() static
mmc: proper prototypes for mmc_attach_*()
mmc: sdio_ops.c should #include "sdio_ops.h"
Carlos Eduardo Aguiar (2):
MMC: OMAP: Remove some opcodes from host driver
MMC: OMAP: Using setup_timer instead of init_timer
Francisco Alecrim (1):
MMC: OMAP: Fix the BYTEBLOCK capability removal
Jarkko Lavinen (6):
MMC: OMAP: Abort stuck commands
MMC: OMAP: Use tasklet instead of workqueue for cover switch notification
MMC: OMAP: Move failing command abortion to workqueue
MMC: OMAP: Lazy clock shutdown
MMC: OMAP: Start new commands from work queue instead of irq
MMC: OMAP: Do not busy wait for end of command for ever
Juha Yrjola (6):
MMC: OMAP: Introduce new multislot structure and change driver to use it
MMC: OMAP: Add back cover switch support
MMC: OMAP: New release dma and abort xfer functions
MMC: OMAP: Fix timeout calculation for MMC multislot support
MMC: OMAP: Power functions modified to MMC multislot support
MMC: OMAP: General cleanup for MMC multislot support
Kyungmin Park (1):
MMC: OMAP: Check the get_cover_state function pointer if not set
Pierre Ossman (5):
mmc: set controller name early
sdhci: remove custom controller name
sdhci: allow led to be controlled freely
sdhci: improve no card, no reset quirk
sdhci: don't check block count for progress
Robert P. J. Day (1):
mmc: use shorter, equivalent set_current_state()
Tony Lindgren (2):
MMC: OMAP: Remove extra divisor increase
MMC: OMAP: Remove cover switch handling to allow adding multislot support
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2008-02-09 9:50 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2008-02-09 9:50 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
MAINTAINERS | 3 -
drivers/mmc/host/Kconfig | 8 +-
drivers/mmc/host/at91_mci.c | 114 +++++++++++++++++++++---------
drivers/mmc/host/ricoh_mmc.c | 162 ++++++++++++++++++++++++++++++++++-------
drivers/mmc/host/sdhci.c | 13 +++-
drivers/mmc/host/sdhci.h | 1 +
6 files changed, 231 insertions(+), 70 deletions(-)
David Brownell (1):
at91_mci: use generic GPIO calls
Feng Tang (1):
sdhci: add num index for multi controllers case
Frank Seidel (1):
mmc: extend ricoh_mmc to support Ricoh RL5c476
Philip Langdale (1):
mmc: Handle suspend/resume in Ricoh MMC disabler
Pierre Ossman (2):
mmc: remove sdhci and mmc_spi experimental markers
MAINTAINERS: remove non-existant URLs
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-12-12 19:12 Pierre Ossman
@ 2007-12-18 7:57 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-12-18 7:57 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML
On Wed, 12 Dec 2007 20:12:47 +0100
Pierre Ossman <drzeus-list@drzeus.cx> wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
*ping*
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-12-12 19:12 Pierre Ossman
2007-12-18 7:57 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-12-12 19:12 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/host/sdhci.c | 63 ++++++++++++++++++++++++++++++++++++++++++---
drivers/mmc/host/sdhci.h | 3 +-
include/linux/mmc/host.h | 4 ---
include/linux/pci_ids.h | 1 +
4 files changed, 61 insertions(+), 10 deletions(-)
Nicolas Pitre (1):
mmc: remove unused 'mode' from the mmc_host structure
Pierre Ossman (4):
sdhci: describe quirks
sdhci: don't warn about sdhci 2.0 controllers
sdhci: use PIO when DMA can't satisfy the request
sdhci: support JMicron JMB38x chips
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-11-21 17:56 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-11-21 17:56 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/card/block.c | 22 +++++++++++++---------
drivers/mmc/host/tifm_sd.c | 18 +++++++-----------
2 files changed, 20 insertions(+), 20 deletions(-)
Alex Dubov (1):
tifm_sd: handle non-power-of-2 block sizes
David Woodhouse (1):
mmc: Avoid re-using minor numbers before the original device is closed.
Pierre Ossman (1):
mmc_block: check card state after write
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-17 20:44 Pierre Ossman
@ 2007-10-17 20:48 ` Dan Williams
0 siblings, 0 replies; 59+ messages in thread
From: Dan Williams @ 2007-10-17 20:48 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
On Wed, 2007-10-17 at 22:44 +0200, Pierre Ossman wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
> The set includes one rare memory leak and some cleanup. It also includes a new frontend for the libertas driver. It is going via my tree because of interdependencies between my tree and the libertas/netdev tree.
>
> drivers/mmc/core/mmc.c | 3 +-
> drivers/mmc/host/at91_mci.c | 4 +-
> drivers/net/wireless/Kconfig | 6 +
> drivers/net/wireless/libertas/Makefile | 2 +
> drivers/net/wireless/libertas/defs.h | 2 +
> drivers/net/wireless/libertas/if_sdio.c | 1072 +++++++++++++++++++++++++++++++
> drivers/net/wireless/libertas/if_sdio.h | 45 ++
Libertas bits:
Acked-by: Dan Williams <dcbw@redhat.com>
> include/linux/mmc/sdio_ids.h | 6 +
> 8 files changed, 1136 insertions(+), 4 deletions(-)
>
> Andrew Victor (1):
> mmc: at91_mci: cleanup: use MCI_ERRORS
>
> Florin Malita (1):
> mmc: possible leak in mmc_read_ext_csd
>
> Pierre Ossman (1):
> net: libertas sdio driver
>
> Rgds
>
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-10-17 20:44 Pierre Ossman
2007-10-17 20:48 ` Dan Williams
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-10-17 20:44 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, Dan Williams
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
The set includes one rare memory leak and some cleanup. It also includes a new frontend for the libertas driver. It is going via my tree because of interdependencies between my tree and the libertas/netdev tree.
drivers/mmc/core/mmc.c | 3 +-
drivers/mmc/host/at91_mci.c | 4 +-
drivers/net/wireless/Kconfig | 6 +
drivers/net/wireless/libertas/Makefile | 2 +
drivers/net/wireless/libertas/defs.h | 2 +
drivers/net/wireless/libertas/if_sdio.c | 1072 +++++++++++++++++++++++++++++++
drivers/net/wireless/libertas/if_sdio.h | 45 ++
include/linux/mmc/sdio_ids.h | 6 +
8 files changed, 1136 insertions(+), 4 deletions(-)
Andrew Victor (1):
mmc: at91_mci: cleanup: use MCI_ERRORS
Florin Malita (1):
mmc: possible leak in mmc_read_ext_csd
Pierre Ossman (1):
net: libertas sdio driver
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-13 5:29 ` Randy Dunlap
@ 2007-10-13 7:03 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-10-13 7:03 UTC (permalink / raw)
To: Randy Dunlap; +Cc: Linus Torvalds, Nicolas Pitre, LKML, Marcel Holtmann
On Fri, 12 Oct 2007 22:29:29 -0700
Randy Dunlap <randy.dunlap@oracle.com> wrote:
>
> Patch doesn't apply cleanly due to spaces instead of tabs.
> Copy-and-paste ?
>
Yeah, gnome-terminal damage. But you need to git it from the repo to
get the full commit info anyway.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 21:00 ` Pierre Ossman
@ 2007-10-13 5:29 ` Randy Dunlap
2007-10-13 7:03 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Randy Dunlap @ 2007-10-13 5:29 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, Nicolas Pitre, LKML, Marcel Holtmann
On Fri, 12 Oct 2007 23:00:27 +0200 Pierre Ossman wrote:
> Ok, let's see if we can finally sort this out.
>
> Please pull/cherry-pick from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
> to receive the following update:
>
> drivers/mmc/core/host.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> Pierre Ossman (1):
> mmc: use correct unregister function for led trigger
>
> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
> index 64fbc97..c65d203 100644
> --- a/drivers/mmc/core/host.c
> +++ b/drivers/mmc/core/host.c
> @@ -143,7 +143,7 @@ void mmc_remove_host(struct mmc_host *host)
>
> device_del(&host->class_dev);
>
> - led_trigger_unregister(host->led);
> + led_trigger_unregister_simple(host->led);
>
> spin_lock(&mmc_host_lock);
> idr_remove(&mmc_host_idr, host->index);
Patch doesn't apply cleanly due to spaces instead of tabs.
Copy-and-paste ?
---
~Randy
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 20:05 ` Nicolas Pitre
2007-10-12 20:35 ` Pierre Ossman
@ 2007-10-12 21:00 ` Pierre Ossman
2007-10-13 5:29 ` Randy Dunlap
1 sibling, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-10-12 21:00 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Nicolas Pitre, LKML, Marcel Holtmann
Ok, let's see if we can finally sort this out.
Please pull/cherry-pick from:
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following update:
drivers/mmc/core/host.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Pierre Ossman (1):
mmc: use correct unregister function for led trigger
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index 64fbc97..c65d203 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -143,7 +143,7 @@ void mmc_remove_host(struct mmc_host *host)
device_del(&host->class_dev);
- led_trigger_unregister(host->led);
+ led_trigger_unregister_simple(host->led);
spin_lock(&mmc_host_lock);
idr_remove(&mmc_host_idr, host->index);
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 20:05 ` Nicolas Pitre
@ 2007-10-12 20:35 ` Pierre Ossman
2007-10-12 21:00 ` Pierre Ossman
1 sibling, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-10-12 20:35 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Linus Torvalds, LKML, Marcel Holtmann
On Fri, 12 Oct 2007 16:05:38 -0400 (EDT)
Nicolas Pitre <nico@cam.org> wrote:
>
> It is too late for a repull. Linus' main branch already contains
> your previous incarnation, so you must publish a fix separately to go
> on top.
>
*gnnn*
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 19:55 ` Pierre Ossman
@ 2007-10-12 20:05 ` Nicolas Pitre
2007-10-12 20:35 ` Pierre Ossman
2007-10-12 21:00 ` Pierre Ossman
0 siblings, 2 replies; 59+ messages in thread
From: Nicolas Pitre @ 2007-10-12 20:05 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML, Marcel Holtmann
On Fri, 12 Oct 2007, Pierre Ossman wrote:
> On Thu, 11 Oct 2007 22:30:41 -0700 (PDT)
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> >
> > There seems to be some breakage here:
> >
>
> Breakage repaired (and some new git voodoo learned. woot!). I even
> threw in a few randconfig for good measure. So repull and things should
> be peachy.
It is too late for a repull. Linus' main branch already contains your
previous incarnation, so you must publish a fix separately to go on top.
Nicolas
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 5:30 ` Linus Torvalds
2007-10-12 5:45 ` Pierre Ossman
@ 2007-10-12 19:55 ` Pierre Ossman
2007-10-12 20:05 ` Nicolas Pitre
1 sibling, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-10-12 19:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, Marcel Holtmann
On Thu, 11 Oct 2007 22:30:41 -0700 (PDT)
Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> There seems to be some breakage here:
>
Breakage repaired (and some new git voodoo learned. woot!). I even
threw in a few randconfig for good measure. So repull and things should
be peachy.
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 12:18 ` Kay Sievers
@ 2007-10-12 13:53 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-10-12 13:53 UTC (permalink / raw)
To: Kay Sievers; +Cc: Linus Torvalds, LKML, Marcel Holtmann
On Fri, 12 Oct 2007 14:18:26 +0200
"Kay Sievers" <kay.sievers@vrfy.org> wrote:
>
> I see the same here. MMC needs a dependency on LEDS_TRIGGERS, I guess.
>
I'd rather not, and I thought I avoided it. I must have missed
ifdef:ing some references.
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 5:45 ` Pierre Ossman
@ 2007-10-12 12:18 ` Kay Sievers
2007-10-12 13:53 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Kay Sievers @ 2007-10-12 12:18 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML, Marcel Holtmann
On 10/12/07, Pierre Ossman <drzeus-list@drzeus.cx> wrote:
> On Thu, 11 Oct 2007 22:30:41 -0700 (PDT)
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> >
> > There seems to be some breakage here:
> >
> > drivers/mmc/core/host.c: In function 'mmc_remove_host':
> > drivers/mmc/core/host.c:146: error: implicit declaration of
> > function 'led_trigger_unregister' drivers/mmc/core/host.c:146: error:
> > 'struct mmc_host' has no member named 'led'
> >
> > this was after doing a few "make randconfig" runs, a habit I'm trying
> > to encourage (and do myself occasionally too).
> >
>
> How embarrassing. I'll have a look at it and reping you when I've
> solved it.
I see the same here. MMC needs a dependency on LEDS_TRIGGERS, I guess.
Kay
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-12 5:30 ` Linus Torvalds
@ 2007-10-12 5:45 ` Pierre Ossman
2007-10-12 12:18 ` Kay Sievers
2007-10-12 19:55 ` Pierre Ossman
1 sibling, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-10-12 5:45 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, Marcel Holtmann
On Thu, 11 Oct 2007 22:30:41 -0700 (PDT)
Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> There seems to be some breakage here:
>
> drivers/mmc/core/host.c: In function ‘mmc_remove_host’:
> drivers/mmc/core/host.c:146: error: implicit declaration of
> function ‘led_trigger_unregister’ drivers/mmc/core/host.c:146: error:
> ‘struct mmc_host’ has no member named ‘led’
>
> this was after doing a few "make randconfig" runs, a habit I'm trying
> to encourage (and do myself occasionally too).
>
How embarrassing. I'll have a look at it and reping you when I've
solved it.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-10-10 19:21 Pierre Ossman
@ 2007-10-12 5:30 ` Linus Torvalds
2007-10-12 5:45 ` Pierre Ossman
2007-10-12 19:55 ` Pierre Ossman
0 siblings, 2 replies; 59+ messages in thread
From: Linus Torvalds @ 2007-10-12 5:30 UTC (permalink / raw)
To: Pierre Ossman; +Cc: LKML, Marcel Holtmann
On Wed, 10 Oct 2007, Pierre Ossman wrote:
>
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
> Lot's of changes in here.
There seems to be some breakage here:
drivers/mmc/core/host.c: In function ‘mmc_remove_host’:
drivers/mmc/core/host.c:146: error: implicit declaration of function ‘led_trigger_unregister’
drivers/mmc/core/host.c:146: error: ‘struct mmc_host’ has no member named ‘led’
this was after doing a few "make randconfig" runs, a habit I'm trying to
encourage (and do myself occasionally too).
Linus
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-10-10 19:21 Pierre Ossman
2007-10-12 5:30 ` Linus Torvalds
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-10-10 19:21 UTC (permalink / raw)
To: Linus Torvalds, LKML; +Cc: Marcel Holtmann
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
Lot's of changes in here. Mostly it is SDIO and SPI support, although there are things like removal of MMC layer specific error codes.
diffstat:
MAINTAINERS | 8 +-
arch/arm/mach-imx/mx1ads.c | 2 +-
drivers/mmc/card/Kconfig | 7 +
drivers/mmc/card/Makefile | 2 +
drivers/mmc/card/block.c | 30 +-
drivers/mmc/card/sdio_uart.c | 1158 ++++++++++++++++++++++++++++++++
drivers/mmc/core/Makefile | 4 +-
drivers/mmc/core/bus.c | 67 ++-
drivers/mmc/core/core.c | 167 ++++--
drivers/mmc/core/core.h | 2 +
drivers/mmc/core/host.c | 8 +
drivers/mmc/core/mmc.c | 134 +++--
drivers/mmc/core/mmc_ops.c | 200 +++++--
drivers/mmc/core/mmc_ops.h | 3 +
drivers/mmc/core/sd.c | 126 +++--
drivers/mmc/core/sd_ops.c | 107 ++-
drivers/mmc/core/sdio.c | 395 +++++++++++
drivers/mmc/core/sdio_bus.c | 270 ++++++++
drivers/mmc/core/sdio_bus.h | 22 +
drivers/mmc/core/sdio_cis.c | 346 ++++++++++
drivers/mmc/core/sdio_cis.h | 23 +
drivers/mmc/core/sdio_io.c | 548 +++++++++++++++
drivers/mmc/core/sdio_irq.c | 267 ++++++++
drivers/mmc/core/sdio_ops.c | 176 +++++
drivers/mmc/core/sdio_ops.h | 22 +
drivers/mmc/host/Kconfig | 30 +
drivers/mmc/host/Makefile | 2 +
drivers/mmc/host/at91_mci.c | 25 +-
drivers/mmc/host/au1xmmc.c | 58 +-
drivers/mmc/host/imxmmc.c | 32 +-
drivers/mmc/host/mmc_spi.c | 1408 +++++++++++++++++++++++++++++++++++++++
drivers/mmc/host/mmci.c | 20 +-
drivers/mmc/host/omap.c | 12 +-
drivers/mmc/host/pxamci.c | 71 ++-
drivers/mmc/host/pxamci.h | 2 +
drivers/mmc/host/ricoh_mmc.c | 151 +++++
drivers/mmc/host/sdhci.c | 127 +++--
drivers/mmc/host/sdhci.h | 2 +-
drivers/mmc/host/tifm_sd.c | 31 +-
drivers/mmc/host/wbsd.c | 43 +-
include/asm-arm/arch-imx/mmc.h | 5 +-
include/linux/mmc/card.h | 32 +
include/linux/mmc/core.h | 63 ++-
include/linux/mmc/host.h | 39 +-
include/linux/mmc/mmc.h | 39 +-
include/linux/mmc/sdio.h | 159 +++++
include/linux/mmc/sdio_func.h | 153 +++++
include/linux/mmc/sdio_ids.h | 23 +
include/linux/mod_devicetable.h | 11 +
include/linux/pci_ids.h | 2 +
include/linux/spi/mmc_spi.h | 33 +
scripts/mod/file2alias.c | 20 +
52 files changed, 6257 insertions(+), 430 deletions(-)
Adrian Bunk (1):
make struct sdio_dev_attrs[] static
Bridge Wu (3):
mmc: pxamci: better pending IRQ determination
mmc: pxamci: set proper buswidth capabilities according to PXA flavor
mmc: pxamci: add SDIO card interrupt reporting capability
David Brownell (4):
MMC headers learn about SPI
MMC/SD card driver learns SPI
MMC core learns about SPI
mmc_spi host driver
David Vrabel (4):
sdio: add SDIO_FBR_BASE(f) macro
sdio: set the functions' block size
sdio: extend sdio_readsb() and friends to handle any length of buffer
sdio: add sdio_f0_readb() and sdio_f0_writeb()
Feng Tang (2):
sdhci: remove DMA capability check from controller's PCI Class reg
sdhci: add SDHCI_QUIRK_BROKEN_DMA quirk
Marc Pignat (1):
mmc: at91_mci: disable handling of blocks with size not multiple of 4 bytes
Mariusz Kozlowski (1):
sdio: kmalloc + memset conversion to kzalloc
Nicolas Pitre (16):
sdio: initial CIS parsing code
sdio: link unknown CIS tuples to the sdio_func structure
mmc: initialize mmc subsystem with subsys_initcall()
sdio: defines for some standard interface types
sdio: allow for mmc_claim_host to be aborted
sdio: core support for SDIO function interrupt
sdio: UART/GPS driver
sdio: add /proc interface to sdio_uart driver
sdio: add interface for host side SDIO interrupt reporting
sdio: add default c_ispeed/c_ospeed values to sdio_uart driver
sdio: fix recursion issues between sdio-uart driver and tty layer
mmc: pxamci: set proper block capabilities according to PXA flavor
sdhci: fix a typo
sdio: fix IRQ diagnostic message
sdio: make the IRQ thread more resilient in the presence of bad states
pxamci: support arbitrary block size
Pavel Pisa (1):
arm: i.MX/MX1 SDHC implements SD cards read-only switch read-back
Philip Langdale (1):
mmc: Disabler for Ricoh MMC controller
Pierre Ossman (32):
mmc: remove custom error codes
mmc: improve error code feedback
mmc: read ext_csd version number
mmc: mmc_set_data_timeout() parameter write is redundant
mmc: remove BYTEBLOCK capability
mmc: remove confusing flag
mmc: add missing printk levels
mmc: detect SDIO cards
mmc: implement SDIO IO_RW_DIRECT operation
mmc: basic SDIO device model
mmc: add SDIO driver handling
mmc: add basic SDIO I/O operations
mmc: enable/disable functions for SDIO
sdio: read and decode interesting parts of the CCCR
sdio: basic parsing of FBR
sdio: split up common and function CIS parsing
sdio: add device id table and matching
mmc: whip bus uevent handler into shape
sdio: add modalias support
sdio: add basic sysfs attributes
sdio: support IO_RW_EXTENDED
sdio: change clock speed
sdio: enable wide bus mode
mmc: fix incorrect divisor in debug output
mmc: fix sdio timeout calculation
mmc: replace BUG_ON with WARN_ON
sdhci: sdio interrupt support
mmc: increase power up delay
sdio: store vendor strings
mmc: add led trigger
sdio: adaptive interrupt polling
sdhci: remove old dma module params
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-09-11 15:26 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-09-11 15:26 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/host/at91_mci.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Anti Sullin (1):
bug in AT91 MCI suspend routines
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index bfebd2f..955ea60 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -941,7 +941,7 @@ static int __exit at91_mci_remove(struct platform_device *pdev)
host = mmc_priv(mmc);
- if (host->present != -1) {
+ if (host->board->det_pin) {
device_init_wakeup(&pdev->dev, 0);
free_irq(host->board->det_pin, host);
cancel_delayed_work(&host->mmc->detect);
@@ -972,7 +972,7 @@ static int at91_mci_suspend(struct platform_device *pdev, pm_message_t state)
struct at91mci_host *host = mmc_priv(mmc);
int ret = 0;
- if (device_may_wakeup(&pdev->dev))
+ if (host->board->det_pin && device_may_wakeup(&pdev->dev))
enable_irq_wake(host->board->det_pin);
if (mmc)
@@ -987,7 +987,7 @@ static int at91_mci_resume(struct platform_device *pdev)
struct at91mci_host *host = mmc_priv(mmc);
int ret = 0;
- if (device_may_wakeup(&pdev->dev))
+ if (host->board->det_pin && device_may_wakeup(&pdev->dev))
disable_irq_wake(host->board->det_pin);
if (mmc)
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-08-23 5:18 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-08-23 5:18 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/core/bus.c | 4 +--
drivers/mmc/core/host.c | 4 +--
drivers/mmc/host/sdhci.c | 53 ++++++++++++++++++++++++++++-----------------
drivers/mmc/host/sdhci.h | 1 +
4 files changed, 36 insertions(+), 26 deletions(-)
David Vrabel (1):
mmc: ignore bad max block size in sdhci
Mariusz Kozlowski (2):
drivers/mmc/core/bus.c: kmalloc + memset conversion to kzalloc
drivers/mmc/core/host.c: kmalloc + memset conversion to kzalloc
Pierre Ossman (3):
sdhci: be more cautious about block count register
sdhci: handle data interrupts during command
sdhci: tell which spurious interrupt we got
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-08-09 14:34 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-08-09 14:34 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/card/queue.c | 14 +++++++-------
drivers/mmc/host/at91_mci.c | 8 ++++----
drivers/mmc/host/wbsd.c | 10 +++++-----
3 files changed, 16 insertions(+), 16 deletions(-)
Gabriel C (1):
wbsd: fix section mismatch warnings
Nicolas Ferre (1):
mmc: at91_mci: remove whitespace at the end of lines
Pierre Ossman (1):
mmc: reorganize bounce buffer init
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-07-26 13:15 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-07-26 13:15 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/card/queue.c | 2 +-
drivers/mmc/core/bus.c | 23 +++++++
drivers/mmc/core/core.c | 144 ++++++++++++++++++++++++++++++-------------
drivers/mmc/core/core.h | 22 -------
drivers/mmc/core/host.c | 7 ++-
drivers/mmc/core/mmc.c | 26 +++++---
drivers/mmc/core/mmc_ops.c | 2 +-
drivers/mmc/core/mmc_ops.h | 2 +-
drivers/mmc/core/sd.c | 36 ++++++-----
drivers/mmc/core/sd_ops.c | 62 +++++++++---------
drivers/mmc/core/sd_ops.h | 3 +-
drivers/mmc/host/at91_mci.c | 2 +-
drivers/mmc/host/au1xmmc.c | 2 +-
drivers/mmc/host/imxmmc.c | 2 +-
drivers/mmc/host/mmci.c | 2 +-
drivers/mmc/host/mmci.h | 2 +-
drivers/mmc/host/omap.c | 2 +-
drivers/mmc/host/pxamci.c | 2 +-
drivers/mmc/host/sdhci.c | 63 +++++++++++--------
drivers/mmc/host/sdhci.h | 2 +-
drivers/mmc/host/wbsd.c | 15 +----
drivers/mmc/host/wbsd.h | 2 +-
include/linux/mmc/core.h | 2 +-
include/linux/pci_ids.h | 2 +
24 files changed, 253 insertions(+), 176 deletions(-)
Adrian Bunk (1):
drivers/mmc/core/: make 3 functions static
Leandro Dorileo (1):
sdhci: add support to ENE-CB714
Pierre Ossman (9):
mmc: check error bits before command completion
mmc: update header file paths
mmc: update kerneldoc
mmc: add a might_sleep() to mmc_claim_host()
mmc: Don't hold lock when releasing an added card
mmc: be more verbose about card insertions/removal
mmc: proper debugging output in core
mmc: remove redundant debug information from sdhci and wbsd
mmc: add missing printk levels
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-07-21 0:36 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-07-21 0:36 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
MAINTAINERS | 7 ++++++-
drivers/mmc/host/at91_mci.c | 13 ++++++++++++-
drivers/mmc/host/sdhci.c | 2 ++
drivers/mmc/host/sdhci.h | 1 +
4 files changed, 21 insertions(+), 2 deletions(-)
Marc Pignat (1):
mmc: at91_mci: wakeup on card insertion (or removal)
Pierre Ossman (2):
mmc: add maintainer for at91
sdhci: make sure to clear the error interrupt
diff --git a/MAINTAINERS b/MAINTAINERS
index fbe0dca..c9fab2b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -645,7 +645,12 @@ W: http://linux-atm.sourceforge.net
S: Maintained
ATMEL AT91 MCI DRIVER
-S: Orphan
+P: Nicolas Ferre
+M: nicolas.ferre@rfo.atmel.com
+L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+W: http://www.atmel.com/products/AT91/
+W: http://www.at91.com/
+S: Maintained
ATMEL MACB ETHERNET DRIVER
P: Haavard Skinnemoen
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 28c8818..15aab37 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -903,8 +903,10 @@ static int __init at91_mci_probe(struct platform_device *pdev)
/*
* Add host to MMC layer
*/
- if (host->board->det_pin)
+ if (host->board->det_pin) {
host->present = !at91_get_gpio_value(host->board->det_pin);
+ device_init_wakeup(&pdev->dev, 1);
+ }
else
host->present = -1;
@@ -940,6 +942,7 @@ static int __exit at91_mci_remove(struct platform_device *pdev)
host = mmc_priv(mmc);
if (host->present != -1) {
+ device_init_wakeup(&pdev->dev, 0);
free_irq(host->board->det_pin, host);
cancel_delayed_work(&host->mmc->detect);
}
@@ -966,8 +969,12 @@ static int __exit at91_mci_remove(struct platform_device *pdev)
static int at91_mci_suspend(struct platform_device *pdev, pm_message_t state)
{
struct mmc_host *mmc = platform_get_drvdata(pdev);
+ struct at91mci_host *host = mmc_priv(mmc);
int ret = 0;
+ if (device_may_wakeup(&pdev->dev))
+ enable_irq_wake(host->board->det_pin);
+
if (mmc)
ret = mmc_suspend_host(mmc, state);
@@ -977,8 +984,12 @@ static int at91_mci_suspend(struct platform_device *pdev, pm_message_t state)
static int at91_mci_resume(struct platform_device *pdev)
{
struct mmc_host *mmc = platform_get_drvdata(pdev);
+ struct at91mci_host *host = mmc_priv(mmc);
int ret = 0;
+ if (device_may_wakeup(&pdev->dev))
+ disable_irq_wake(host->board->det_pin);
+
if (mmc)
ret = mmc_resume_host(mmc);
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 10d15c3..4a24db0 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1024,6 +1024,8 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id)
intmask &= ~(SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK);
+ intmask &= ~SDHCI_INT_ERROR;
+
if (intmask & SDHCI_INT_BUS_POWER) {
printk(KERN_ERR "%s: Card is consuming too much power!\n",
mmc_hostname(host->mmc));
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 7400f4b..a6c8704 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -107,6 +107,7 @@
#define SDHCI_INT_CARD_INSERT 0x00000040
#define SDHCI_INT_CARD_REMOVE 0x00000080
#define SDHCI_INT_CARD_INT 0x00000100
+#define SDHCI_INT_ERROR 0x00008000
#define SDHCI_INT_TIMEOUT 0x00010000
#define SDHCI_INT_CRC 0x00020000
#define SDHCI_INT_END_BIT 0x00040000
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-07-10 20:43 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-07-10 20:43 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/card/Kconfig | 18 +++
drivers/mmc/card/block.c | 7 +-
drivers/mmc/card/queue.c | 191 ++++++++++++++++++++++--
drivers/mmc/card/queue.h | 7 +
drivers/mmc/core/Makefile | 3 +-
drivers/mmc/core/bus.c | 253 +++++++++++++++++++++++++++++++
drivers/mmc/core/bus.h | 22 +++
drivers/mmc/core/core.c | 147 +++++++------------
drivers/mmc/core/core.h | 8 +-
drivers/mmc/core/host.c | 156 +++++++++++++++++++
drivers/mmc/core/host.h | 18 +++
drivers/mmc/core/mmc.c | 65 +++++++-
drivers/mmc/core/sd.c | 63 +++++++-
drivers/mmc/core/sysfs.c | 347 ++-----------------------------------------
drivers/mmc/core/sysfs.h | 19 +--
drivers/mmc/host/at91_mci.c | 217 +++++++++++++++-------------
drivers/mmc/host/sdhci.c | 10 +-
include/linux/pci_ids.h | 1 +
18 files changed, 980 insertions(+), 572 deletions(-)
Milko Krachounov (1):
sdhci: add ene controller id
Nicolas Ferre (2):
mmc: at91_mci typo
mmc: at91_mci: fix hanging and rework to match flowcharts
Pierre Ossman (5):
mmc: bounce requests for simple hosts
mmc: refactor bus operations
mmc: refactor host class handling
mmc: move layer init and workqueue to core file
mmc: fix silly copy-and-paste error
Rolf Eike Beer (1):
sdhci: Fix "Unexpected interrupt" handling
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-06-13 17:24 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-06-13 17:24 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/core/sd.c | 15 +++++++++++++++
drivers/mmc/host/omap.c | 24 +++---------------------
2 files changed, 18 insertions(+), 21 deletions(-)
Pierre Ossman (1):
mmc: get back read-only switch function
Ragner Magalhaes (1):
mmc-omap: fix sd response type 6 vs. 1
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index 41bfb5d..918477c 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -427,6 +427,21 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
}
+ /*
+ * Check if read-only switch is active.
+ */
+ if (!oldcard) {
+ if (!host->ops->get_ro) {
+ printk(KERN_WARNING "%s: host does not "
+ "support reading read-only "
+ "switch. assuming write-enable.\n",
+ mmc_hostname(host));
+ } else {
+ if (host->ops->get_ro(host))
+ mmc_card_set_readonly(card);
+ }
+ }
+
if (!oldcard)
host->card = card;
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index 1914e65..b0824a3 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -522,28 +522,10 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
}
if (status & OMAP_MMC_STAT_CARD_ERR) {
- if (host->cmd && host->cmd->opcode ==
MMC_STOP_TRANSMISSION) {
- u32 response = OMAP_MMC_READ(host, RSP6)
- | (OMAP_MMC_READ(host, RSP7) << 16);
- /* STOP sometimes sets must-ignore bits */
- if (!(response & (R1_CC_ERROR
- | R1_ILLEGAL_COMMAND
- |
R1_COM_CRC_ERROR))) {
- end_command = 1;
- continue;
- }
- }
-
- dev_dbg(mmc_dev(host->mmc), "card status error (CMD%d)\n",
+ dev_dbg(mmc_dev(host->mmc),
+ "ignoring card status error (CMD%d)\n",
host->cmd->opcode);
- if (host->cmd) {
- host->cmd->error = MMC_ERR_FAILED;
- end_command = 1;
- }
- if (host->data) {
- host->data->error = MMC_ERR_FAILED;
- transfer_error = 1;
- }
+ end_command = 1;
}
/*
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-06-08 8:09 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-06-08 8:09 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/core/sd.c | 26 +++++++++++++++++++++-----
drivers/mmc/host/at91_mci.c | 5 ++---
drivers/mmc/host/au1xmmc.c | 3 +--
3 files changed, 24 insertions(+), 10 deletions(-)
Marc Pignat (1):
mmc-atmel: remove linux/mmc/protocol.h dependencies
Pierre Ossman (2):
mmc: fix broken if clause
mmc: don't call switch on old cards
Robert P. J. Day (1):
au1xmmc: Replace C code with call to ARRAY_SIZE() macro.
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-05-24 5:46 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-24 5:46 UTC (permalink / raw)
To: LKML, Linus Torvalds
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
MAINTAINERS | 29 +++++++++++++++++++++++++++++
drivers/mmc/card/block.c | 18 ------------------
drivers/mmc/card/queue.c | 35 ++++++++---------------------------
drivers/mmc/card/queue.h | 8 --------
4 files changed, 37 insertions(+), 53 deletions(-)
Pavel Pisa (1):
mmc: add maintainer for iMX MMC interface
Pierre Ossman (2):
mmc: clean up unused parts of block driver
mmc: mark unmaintained drivers
Russell King (1):
mmc: add maintainer for ARM Primecell controller
Syed Khasim (1):
mmc: Add maintainers for TI OMAP MMC interface
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-05-14 16:55 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-14 16:55 UTC (permalink / raw)
To: LKML, Linus Torvalds
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/card/block.c | 17 ++++-------------
drivers/mmc/host/au1xmmc.c | 35 ++++++++++++++---------------------
drivers/mmc/host/pxamci.c | 18 ++++++------------
drivers/mmc/host/sdhci.c | 9 +++++++++
include/linux/major.h | 2 ++
5 files changed, 35 insertions(+), 46 deletions(-)
Nicolas Pitre (1):
pxamci: fix PXA27x MMC workaround for bad CRC with 136 bit response
Pierre Ossman (2):
sdhci: handle dma boundary interrupts
mmc: use assigned major for block device
Yoichi Yuasa (1):
mmc: au1xmmc command types check from data flags
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 9:11 ` Stefan Richter
@ 2007-05-09 15:44 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-09 15:44 UTC (permalink / raw)
To: Stefan Richter; +Cc: Nick Piggin, Linus Torvalds, LKML
Stefan Richter wrote:
> Sounds to me like either struct xyz_host { atomic_t removed; } would do
> the job, or that actually wider regions of mmc_host_remove() and
> mmc_detect_change() need to be serialized.
>
AFAIK, an atomic_t doesn't guarantee any ordering, just atomicity. So an
atomic_t with a barrier would be sufficient. But barriers are mostly
voodoo that few people understand ;)
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 7:51 ` Pierre Ossman
2007-05-09 8:05 ` Nick Piggin
@ 2007-05-09 9:11 ` Stefan Richter
2007-05-09 15:44 ` Pierre Ossman
1 sibling, 1 reply; 59+ messages in thread
From: Stefan Richter @ 2007-05-09 9:11 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Nick Piggin, Linus Torvalds, LKML
Pierre Ossman wrote:
> The host->removed member is only used for this simple test. It is set in
> mmc_host_remove() to indicate that the removal process has begun. At
> this point it is invalid to call mmc_detect_change() (the place this
> patch fixes). So the spinlocks are mostly there so that things are
> properly ordered when we go SMP. Some creative barriers would probably
> work as well, but I find spinlocks more "normal" and hence more readable.
Sounds to me like either struct xyz_host { atomic_t removed; } would do
the job, or that actually wider regions of mmc_host_remove() and
mmc_detect_change() need to be serialized.
--
Stefan Richter
-=====-=-=== -=-= -=--=
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 7:51 ` Pierre Ossman
@ 2007-05-09 8:05 ` Nick Piggin
2007-05-09 9:11 ` Stefan Richter
1 sibling, 0 replies; 59+ messages in thread
From: Nick Piggin @ 2007-05-09 8:05 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
Pierre Ossman wrote:
> Nick Piggin wrote:
>
>>If you want to ensure you always only modify host->removed from under
>>the spinlock, it would be enforcable by introducing an accessor function
>>and doing a BUG_ON(!spin_is_locked()) in there.
>>
>>If you just want to ensure that host->removed is 0 at this point, you
>>shouldn't need any spinlocks AFAIKS... that way you can probably afford
>>to move it out from CONFIG_MMC_DEBUG and get wider testing.
>>
>
>
> The host->removed member is only used for this simple test. It is set in
> mmc_host_remove() to indicate that the removal process has begun. At
> this point it is invalid to call mmc_detect_change() (the place this
> patch fixes). So the spinlocks are mostly there so that things are
> properly ordered when we go SMP. Some creative barriers would probably
> work as well, but I find spinlocks more "normal" and hence more readable.
Fair enough. No big deal :)
--
SUSE Labs, Novell Inc.
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 6:35 ` Nick Piggin
@ 2007-05-09 7:51 ` Pierre Ossman
2007-05-09 8:05 ` Nick Piggin
2007-05-09 9:11 ` Stefan Richter
0 siblings, 2 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-05-09 7:51 UTC (permalink / raw)
To: Nick Piggin; +Cc: Linus Torvalds, LKML
Nick Piggin wrote:
>
> If you want to ensure you always only modify host->removed from under
> the spinlock, it would be enforcable by introducing an accessor function
> and doing a BUG_ON(!spin_is_locked()) in there.
>
> If you just want to ensure that host->removed is 0 at this point, you
> shouldn't need any spinlocks AFAIKS... that way you can probably afford
> to move it out from CONFIG_MMC_DEBUG and get wider testing.
>
The host->removed member is only used for this simple test. It is set in
mmc_host_remove() to indicate that the removal process has begun. At
this point it is invalid to call mmc_detect_change() (the place this
patch fixes). So the spinlocks are mostly there so that things are
properly ordered when we go SMP. Some creative barriers would probably
work as well, but I find spinlocks more "normal" and hence more readable.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 6:27 ` Pierre Ossman
@ 2007-05-09 6:35 ` Nick Piggin
2007-05-09 7:51 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Nick Piggin @ 2007-05-09 6:35 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
Pierre Ossman wrote:
> Nick Piggin wrote:
>
>>>@@ -501,9 +501,9 @@ void mmc_detect_change(struct mmc_host *host,
>>>unsigned long delay)
>>> {
>>> #ifdef CONFIG_MMC_DEBUG
>>> unsigned long flags;
>>>- spin_lock_irqsave(host->lock, flags);
>>>+ spin_lock_irqsave(&host->lock, flags);
>>> BUG_ON(host->removed);
>>>- spin_unlock_irqrestore(host->lock, flags);
>>>+ spin_unlock_irqrestore(&host->lock, flags);
>>> #endif
>>
>>Do you actually need the lock there at all? What is it protecting?
>>
>
>
> It makes sure we don't have any race when it comes to modifying
> host->removed.
If you want to ensure you always only modify host->removed from under
the spinlock, it would be enforcable by introducing an accessor function
and doing a BUG_ON(!spin_is_locked()) in there.
If you just want to ensure that host->removed is 0 at this point, you
shouldn't need any spinlocks AFAIKS... that way you can probably afford
to move it out from CONFIG_MMC_DEBUG and get wider testing.
--
SUSE Labs, Novell Inc.
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 6:03 ` Nick Piggin
@ 2007-05-09 6:27 ` Pierre Ossman
2007-05-09 6:35 ` Nick Piggin
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-09 6:27 UTC (permalink / raw)
To: Nick Piggin; +Cc: Linus Torvalds, LKML
Nick Piggin wrote:
>> @@ -501,9 +501,9 @@ void mmc_detect_change(struct mmc_host *host,
>> unsigned long delay)
>> {
>> #ifdef CONFIG_MMC_DEBUG
>> unsigned long flags;
>> - spin_lock_irqsave(host->lock, flags);
>> + spin_lock_irqsave(&host->lock, flags);
>> BUG_ON(host->removed);
>> - spin_unlock_irqrestore(host->lock, flags);
>> + spin_unlock_irqrestore(&host->lock, flags);
>> #endif
>
> Do you actually need the lock there at all? What is it protecting?
>
It makes sure we don't have any race when it comes to modifying
host->removed. We had some problems where controllers reported card
insertion events even after they'd signaled to be removed, causing all
kind of odd problems. This check was added to easier spot it should it
arise again.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-09 5:55 ` Pierre Ossman
@ 2007-05-09 6:03 ` Nick Piggin
2007-05-09 6:27 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Nick Piggin @ 2007-05-09 6:03 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linus Torvalds, LKML
Pierre Ossman wrote:
> Pierre Ossman wrote:
>
>>Linus, please pull from
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>>
>
>
> fsck! I pushed the wrong branch :/
>
> This fix should have been in the last commit.
>
> Sorry,
>
>
> ------------------------------------------------------------------------
>
> commit 3b9a6d78eb439016728c598a1373b50328f5e9fe
> Author: Pierre Ossman <drzeus@drzeus.cx>
> Date: Wed May 9 07:53:28 2007 +0200
>
> mmc: fix wrong call to spinlock
>
> Fix silly typo in spinlock calls.
>
> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index b6c1670..7385acf 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -501,9 +501,9 @@ void mmc_detect_change(struct mmc_host *host, unsigned long delay)
> {
> #ifdef CONFIG_MMC_DEBUG
> unsigned long flags;
> - spin_lock_irqsave(host->lock, flags);
> + spin_lock_irqsave(&host->lock, flags);
> BUG_ON(host->removed);
> - spin_unlock_irqrestore(host->lock, flags);
> + spin_unlock_irqrestore(&host->lock, flags);
> #endif
Do you actually need the lock there at all? What is it protecting?
--
SUSE Labs, Novell Inc.
^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-05-08 20:45 Pierre Ossman
@ 2007-05-09 5:55 ` Pierre Ossman
2007-05-09 6:03 ` Nick Piggin
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-09 5:55 UTC (permalink / raw)
To: Linus Torvalds, LKML
[-- Attachment #1: Type: text/plain, Size: 432 bytes --]
Pierre Ossman wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
fsck! I pushed the wrong branch :/
This fix should have been in the last commit.
Sorry,
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
[-- Attachment #2: spinfix.patch --]
[-- Type: text/x-patch, Size: 814 bytes --]
commit 3b9a6d78eb439016728c598a1373b50328f5e9fe
Author: Pierre Ossman <drzeus@drzeus.cx>
Date: Wed May 9 07:53:28 2007 +0200
mmc: fix wrong call to spinlock
Fix silly typo in spinlock calls.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index b6c1670..7385acf 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -501,9 +501,9 @@ void mmc_detect_change(struct mmc_host *host, unsigned long delay)
{
#ifdef CONFIG_MMC_DEBUG
unsigned long flags;
- spin_lock_irqsave(host->lock, flags);
+ spin_lock_irqsave(&host->lock, flags);
BUG_ON(host->removed);
- spin_unlock_irqrestore(host->lock, flags);
+ spin_unlock_irqrestore(&host->lock, flags);
#endif
mmc_schedule_delayed_work(&host->detect, delay);
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-05-08 20:45 Pierre Ossman
2007-05-09 5:55 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-05-08 20:45 UTC (permalink / raw)
To: Linus Torvalds, LKML
[-- Attachment #1: Type: text/plain, Size: 802 bytes --]
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/misc/tifm_7xx1.c | 27 ++++++++++++++++++++++++---
drivers/mmc/Kconfig | 10 +++++-----
drivers/mmc/card/Kconfig | 3 +--
drivers/mmc/core/Kconfig | 1 -
drivers/mmc/core/core.c | 10 ++++++----
drivers/mmc/host/Kconfig | 19 +++++++++----------
drivers/mmc/host/tifm_sd.c | 13 +------------
include/linux/tifm.h | 1 +
8 files changed, 47 insertions(+), 37 deletions(-)
Alex Dubov (1):
disable socket power in adapter driver instead of media one
Jan Engelhardt (1):
mmc: Use menuconfig objects
Pierre Ossman (1):
mmc: use lock instead of claim in debug check
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 251 bytes --]
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-02-11 15:33 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-02-11 15:33 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/sdhci.c | 40 ++++++++++++----------------------------
drivers/mmc/tifm_sd.c | 11 ++++-------
drivers/mmc/wbsd.c | 6 +-----
3 files changed, 17 insertions(+), 40 deletions(-)
Alex Dubov (1):
tifm_sd: treat "status error" as normal command completion
Pierre Ossman (4):
mmc: wbsd: Remove driver version
mmc: sdhci: Remove driver version
mmc: sdhci: Stop asking for mail
mmc: wbsd: Remove stray kunmap_atomic()
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-02-04 20:11 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-02-04 20:11 UTC (permalink / raw)
To: Linus Torvalds, LKML
Yay! First post!
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
MAINTAINERS | 2 +-
drivers/misc/tifm_7xx1.c | 402 ++++++++++++++++++----------------
drivers/misc/tifm_core.c | 65 +++++--
drivers/mmc/at91_mci.c | 3 +
drivers/mmc/au1xmmc.c | 13 +-
drivers/mmc/imxmmc.c | 4 +-
drivers/mmc/mmc.c | 182 ++++++++++++----
drivers/mmc/mmc_block.c | 15 +-
drivers/mmc/mmc_queue.c | 2 +-
drivers/mmc/mmc_sysfs.c | 2 +-
drivers/mmc/mmci.c | 15 +-
drivers/mmc/omap.c | 6 +-
drivers/mmc/pxamci.c | 10 +
drivers/mmc/sdhci.c | 91 +++++----
drivers/mmc/sdhci.h | 2 -
drivers/mmc/tifm_sd.c | 487 +++++++++++++++++++---------------
drivers/mmc/wbsd.c | 102 ++++++---
drivers/mmc/wbsd.h | 1 -
include/linux/mmc/card.h | 3 +
include/linux/mmc/host.h | 10 +-
include/linux/mmc/mmc.h | 1 +
include/linux/mmc/protocol.h | 13 +-
include/linux/pci_ids.h | 4 +
include/linux/tifm.h | 35 ++--
24 files changed, 891 insertions(+), 579 deletions(-)
Alex Dubov (15):
tifm_sd: alter order of the states in the command handler
tifm_sd: use kmap_atomic instead of kmap for PIO data buffer
tifm_sd: Switch software timeout handler from work_struct to timer
tifm_sd: fix hardware timeout setup
tifm_sd: restructure initialization, removal and command handling
tifm_sd: prettify
Remove unused return value from signal_irq callback
Add dummy_signal_irq function to save check in ISR
tifm_7xx1: simplify eject function
tifm_7xx1: Merge media insert and media remove functions
tifm_7xx1: switch from workqueue to kthread
tifm_7xx1: recognize device 0xac8f as supported
tifm_7xx1: prettify
tifm_core: add suspend/resume infrastructure for tifm devices
tifm_sd: add suspend and resume functionality
Darren Salt (1):
mmc: Power quirk for ENE controllers
Manuel Lauss (2):
mmc: au1xmmc: implement proper ro switch detection
mmc: au1xmmc: return errors for unknown response types
Philip Langdale (1):
mmc: Add support for SDHC cards
Pierre Ossman (13):
mmc: replace host->card_busy
mmc: let host be parent of cards
mmc: Allow host drivers to specify a max block size
mmc: Allow host drivers to specify max block count
mmc: Handle wbsd's stupid command list
mmc: Graceful fallback for fancy features
mmc: change wbsd mailing list
mmc: Proper unclaim in mmc_block
mmc: handle pci_enable_device() return value in sdhci
mmc: wbsd: replace kmap with page_address
mmc: sdhci: replace kmap with page_address
mmc: sdhci: fix voltage ocr
mmc: tifm: replace kmap with page_address
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-01-15 5:46 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-01-15 5:46 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git
for-linus
to receive the following updates:
drivers/mmc/imxmmc.c | 3 ---
drivers/mmc/omap.c | 15 +++++++++------
drivers/mmc/pxamci.c | 2 +-
drivers/mmc/tifm_sd.c | 3 ---
include/linux/mmc/mmc.h | 2 +-
5 files changed, 11 insertions(+), 14 deletions(-)
Carlos Eduardo Aguiar (1):
omap: Update MMC response types
Philip Langdale (1):
mmc: Correct definition of R6
diff --git a/drivers/mmc/imxmmc.c b/drivers/mmc/imxmmc.c
index 06e7fcd..bfb9ff6 100644
--- a/drivers/mmc/imxmmc.c
+++ b/drivers/mmc/imxmmc.c
@@ -351,9 +351,6 @@ static void imxmci_start_cmd(struct imxmci_host
*host, struct mmc_command *cmd,
case MMC_RSP_R3: /* short */
cmdat |= CMD_DAT_CONT_RESPONSE_FORMAT_R3;
break;
- case MMC_RSP_R6: /* short CRC */
- cmdat |= CMD_DAT_CONT_RESPONSE_FORMAT_R6;
- break;
default:
break;
}
diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c
index 9488408..d30540b 100644
--- a/drivers/mmc/omap.c
+++ b/drivers/mmc/omap.c
@@ -91,7 +91,6 @@
#define DRIVER_NAME "mmci-omap"
-#define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE))
/* Specifies how often in millisecs to poll for card status changes
* when the cover switch is open */
@@ -204,18 +203,22 @@ mmc_omap_start_command(struct mmc_omap_host *host,
struct mmc_command *cmd)
cmdtype = 0;
/* Our hardware needs to know exact type */
- switch (RSP_TYPE(mmc_resp_type(cmd))) {
- case RSP_TYPE(MMC_RSP_R1):
- /* resp 1, resp 1b */
+ switch (mmc_resp_type(cmd)) {
+ case MMC_RSP_NONE:
+ break;
+ case MMC_RSP_R1:
+ case MMC_RSP_R1B:
+ /* resp 1, 1b, 6, 7 */
resptype = 1;
break;
- case RSP_TYPE(MMC_RSP_R2):
+ case MMC_RSP_R2:
resptype = 2;
break;
- case RSP_TYPE(MMC_RSP_R3):
+ case MMC_RSP_R3:
resptype = 3;
break;
default:
+ dev_err(mmc_dev(host->mmc), "Invalid response type:
%04x\n", mmc_resp_type(cmd));
break;
}
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c
index 45a9283..6073d99 100644
--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -171,7 +171,7 @@ static void pxamci_start_cmd(struct pxamci_host
*host, struct mmc_command *cmd,
#define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE))
switch (RSP_TYPE(mmc_resp_type(cmd))) {
- case RSP_TYPE(MMC_RSP_R1): /* r1, r1b, r6 */
+ case RSP_TYPE(MMC_RSP_R1): /* r1, r1b, r6, r7 */
cmdat |= CMDAT_RESP_SHORT;
break;
case RSP_TYPE(MMC_RSP_R3):
diff --git a/drivers/mmc/tifm_sd.c b/drivers/mmc/tifm_sd.c
index f18ad99..fa4a528 100644
--- a/drivers/mmc/tifm_sd.c
+++ b/drivers/mmc/tifm_sd.c
@@ -173,9 +173,6 @@ static unsigned int tifm_sd_op_flags(struct
mmc_command *cmd)
case MMC_RSP_R3:
rc |= TIFM_MMCSD_RSP_R3;
break;
- case MMC_RSP_R6:
- rc |= TIFM_MMCSD_RSP_R6;
- break;
default:
BUG();
}
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index a3594df..bcf2490 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -42,7 +42,7 @@ struct mmc_command {
#define MMC_RSP_R1B
(MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY)
#define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC)
#define MMC_RSP_R3 (MMC_RSP_PRESENT)
-#define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC)
+#define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
#define mmc_resp_type(cmd) ((cmd)->flags &
(MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE))
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: [GIT PULL] MMC updates
2007-01-04 12:49 Pierre Ossman
@ 2007-01-10 19:51 ` Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2007-01-10 19:51 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML
Ping!
Pierre Ossman wrote:
> Linus, please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
>
> to receive the following updates:
>
> drivers/mmc/at91_mci.c | 11 +++++------
> drivers/mmc/omap.c | 6 +++---
> 2 files changed, 8 insertions(+), 9 deletions(-)
>
> David Brownell (1):
> MMC: at91 mmc linkage updates
>
> Kyungmin Park (1):
> ARM: OMAP: fix MMC workqueue changes
>
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2007-01-04 12:49 Pierre Ossman
2007-01-10 19:51 ` Pierre Ossman
0 siblings, 1 reply; 59+ messages in thread
From: Pierre Ossman @ 2007-01-04 12:49 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/at91_mci.c | 11 +++++------
drivers/mmc/omap.c | 6 +++---
2 files changed, 8 insertions(+), 9 deletions(-)
David Brownell (1):
MMC: at91 mmc linkage updates
Kyungmin Park (1):
ARM: OMAP: fix MMC workqueue changes
diff --git a/drivers/mmc/at91_mci.c b/drivers/mmc/at91_mci.c
index 08a33c3..aa152f3 100644
--- a/drivers/mmc/at91_mci.c
+++ b/drivers/mmc/at91_mci.c
@@ -768,7 +768,7 @@ static irqreturn_t at91_mmc_det_irq(int irq, void *_host)
return IRQ_HANDLED;
}
-int at91_mci_get_ro(struct mmc_host *mmc)
+static int at91_mci_get_ro(struct mmc_host *mmc)
{
int read_only = 0;
struct at91mci_host *host = mmc_priv(mmc);
@@ -794,7 +794,7 @@ static const struct mmc_host_ops at91_mci_ops = {
/*
* Probe for the device
*/
-static int at91_mci_probe(struct platform_device *pdev)
+static int __init at91_mci_probe(struct platform_device *pdev)
{
struct mmc_host *mmc;
struct at91mci_host *host;
@@ -910,7 +910,7 @@ static int at91_mci_probe(struct platform_device *pdev)
/*
* Remove a device
*/
-static int at91_mci_remove(struct platform_device *pdev)
+static int __exit at91_mci_remove(struct platform_device *pdev)
{
struct mmc_host *mmc = platform_get_drvdata(pdev);
struct at91mci_host *host;
@@ -972,8 +972,7 @@ static int at91_mci_resume(struct platform_device *pdev)
#endif
static struct platform_driver at91_mci_driver = {
- .probe = at91_mci_probe,
- .remove = at91_mci_remove,
+ .remove = __exit_p(at91_mci_remove),
.suspend = at91_mci_suspend,
.resume = at91_mci_resume,
.driver = {
@@ -984,7 +983,7 @@ static struct platform_driver at91_mci_driver = {
static int __init at91_mci_init(void)
{
- return platform_driver_register(&at91_mci_driver);
+ return platform_driver_probe(&at91_mci_driver, at91_mci_probe);
}
static void __exit at91_mci_exit(void)
diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c
index 435d331..9488408 100644
--- a/drivers/mmc/omap.c
+++ b/drivers/mmc/omap.c
@@ -581,9 +581,9 @@ static void mmc_omap_switch_timer(unsigned long arg)
schedule_work(&host->switch_work);
}
-static void mmc_omap_switch_handler(void *data)
+static void mmc_omap_switch_handler(struct work_struct *work)
{
- struct mmc_omap_host *host = (struct mmc_omap_host *) data;
+ struct mmc_omap_host *host = container_of(work, struct mmc_omap_host, switch_work);
struct mmc_card *card;
static int complained = 0;
int cards = 0, cover_open;
@@ -1116,7 +1116,7 @@ static int __init mmc_omap_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, host);
if (host->switch_pin >= 0) {
- INIT_WORK(&host->switch_work, mmc_omap_switch_handler, host);
+ INIT_WORK(&host->switch_work, mmc_omap_switch_handler);
init_timer(&host->switch_timer);
host->switch_timer.function = mmc_omap_switch_timer;
host->switch_timer.data = (unsigned long) host;
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply related [flat|nested] 59+ messages in thread
* [GIT PULL] MMC updates
@ 2006-12-11 11:45 Pierre Ossman
0 siblings, 0 replies; 59+ messages in thread
From: Pierre Ossman @ 2006-12-11 11:45 UTC (permalink / raw)
To: Linus Torvalds, LKML
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/at91_mci.c | 346 +++++++++++++++++++++++++----------------------
drivers/mmc/mmc_queue.c | 4 -
drivers/mmc/sdhci.c | 4 -
3 files changed, 190 insertions(+), 164 deletions(-)
Andrew Victor:
AT91 MMC 1: Pass host structure.
AT91 MMC 2 : Use platform resources
AT91 MMC 3 : Move global mci_clk variable
AT91 MMC 4 : Interrupt handler cleanup
AT91 MMC 5 : Minor cleanups
AT91 MMC update for 2.6.19
Pierre Ossman:
mmc: Change SDHCI iomem error to a warning
Vitaly Wool:
mmc: fix "prev->state: 2 != TASK_RUNNING??" problem on SD/MMC card removal
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
^ permalink raw reply [flat|nested] 59+ messages in thread
end of thread, other threads:[~2008-04-19 7:30 UTC | newest]
Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-01 15:22 [GIT PULL] MMC updates Pierre Ossman
2007-05-05 4:24 ` Pierre Ossman
2007-05-05 4:45 ` Linus Torvalds
2007-05-09 18:56 ` Russell King
2007-05-09 19:06 ` Pierre Ossman
2007-05-09 22:12 ` Russell King
2007-05-10 5:44 ` Pierre Ossman
2007-05-10 7:51 ` Russell King
2007-05-10 13:58 ` Pierre Ossman
2007-05-10 14:52 ` Nicolas Pitre
2007-05-12 15:38 ` Nicolas Pitre
2007-05-12 16:12 ` Pierre Ossman
2007-05-12 16:22 ` Russell King
2007-05-12 17:55 ` Nicolas Pitre
2007-05-13 3:13 ` [PATCH] fix PXA27x MMC workaround for bad CRC with 136 bit response Nicolas Pitre
2007-05-13 15:59 ` Pierre Ossman
-- strict thread matches above, loose matches on Subject: below --
2008-04-19 7:28 [GIT PULL] MMC updates Pierre Ossman
2008-02-09 9:50 Pierre Ossman
2007-12-12 19:12 Pierre Ossman
2007-12-18 7:57 ` Pierre Ossman
2007-11-21 17:56 Pierre Ossman
2007-10-17 20:44 Pierre Ossman
2007-10-17 20:48 ` Dan Williams
2007-10-10 19:21 Pierre Ossman
2007-10-12 5:30 ` Linus Torvalds
2007-10-12 5:45 ` Pierre Ossman
2007-10-12 12:18 ` Kay Sievers
2007-10-12 13:53 ` Pierre Ossman
2007-10-12 19:55 ` Pierre Ossman
2007-10-12 20:05 ` Nicolas Pitre
2007-10-12 20:35 ` Pierre Ossman
2007-10-12 21:00 ` Pierre Ossman
2007-10-13 5:29 ` Randy Dunlap
2007-10-13 7:03 ` Pierre Ossman
2007-09-11 15:26 Pierre Ossman
2007-08-23 5:18 Pierre Ossman
2007-08-09 14:34 Pierre Ossman
2007-07-26 13:15 Pierre Ossman
2007-07-21 0:36 Pierre Ossman
2007-07-10 20:43 Pierre Ossman
2007-06-13 17:24 Pierre Ossman
2007-06-08 8:09 Pierre Ossman
2007-05-24 5:46 Pierre Ossman
2007-05-14 16:55 Pierre Ossman
2007-05-08 20:45 Pierre Ossman
2007-05-09 5:55 ` Pierre Ossman
2007-05-09 6:03 ` Nick Piggin
2007-05-09 6:27 ` Pierre Ossman
2007-05-09 6:35 ` Nick Piggin
2007-05-09 7:51 ` Pierre Ossman
2007-05-09 8:05 ` Nick Piggin
2007-05-09 9:11 ` Stefan Richter
2007-05-09 15:44 ` Pierre Ossman
2007-02-11 15:33 Pierre Ossman
2007-02-04 20:11 Pierre Ossman
2007-01-15 5:46 Pierre Ossman
2007-01-04 12:49 Pierre Ossman
2007-01-10 19:51 ` Pierre Ossman
2006-12-11 11:45 Pierre Ossman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).