Commit graph android_kernel_sony_sdm845/drivers/mmc
Message SHA1
[MMC] sdhci truncated pointer fix
On 64-bit machines, we just lost the uppermost 32 bits.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Andrew Morton   authored and   Russell King   commited 2006-06-12 22:10:22 +01:00
e474c66b1c
[MMC] Prevent au1xmmc.c breakage on non-Au1200 Alchemy
The driver is selectable on other than Au1200 Alchemy systems but won't
build nor work - there is no MMC hw.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Ralf Baechle   authored and   Russell King   commited 2006-06-04 17:40:58 +01:00
092d01e260
[MMC] Fix premature use of md->disk
md->disk was being used in a debug message before it was allocated.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Pierre Ossman   authored and   Linus Torvalds   commited 2006-05-24 08:35:31 -07:00
51c4032740
[ARM] 3531/1: i.MX/MX1 SD/MMC ensure, that clock are stopped before new command and cleanups
Patch from Pavel Pisa

There has been problems that for some paths that clock are not stopped
during new command programming and initiation. Result is issuing
of incorrect command to the card. Some other problems are cleaned too.
Noisy report of known ERRATUM #4 has been suppressed.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pavel Pisa   authored and   Russell King   commited 2006-05-19 21:48:03 +01:00
2c171bf134
[MMC] Move set_ios debugging into mmc.c
Rather than having every driver duplicate the set_ios debugging,
provide a single version in mmc.c which can be expanded as we
add additional functionality.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-05-04 18:22:51 +01:00
920e70c5c6
[MMC] Correct mmc_request_done comments
mmc_request_done should be called at the end of handling a request, not
between the data and initial command parts of the request.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-05-04 13:51:45 +01:00
fe10c6abea
[MMC] PXA: reduce the number of lines PXAMCI debug uses
There's no reason for the PXAMCI debug code to print so many lines - it
causes the kernel buffer to overflow when trying to debug this driver.
Remove some debug messages which are duplicated by core code, and
combine other messages, resulting in fewer characters written to the
kernel log.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-05-02 20:18:53 +01:00
d78e9079af
[MMC] PXA and i.MX: don't avoid sending stop command on error
Always send a stop command at the end of a data transfer.  If we avoid
sending the stop command, some cards remain in data transfer mode, and
refuse to accept further read/write commands.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-05-02 20:02:39 +01:00
58741e8b36
[MMC] extend data timeout for writes
The CSD contains a "read2write factor" which determines the multiplier to
be applied to the read timeout to obtain the write timeout.  We were
ignoring this parameter, resulting in the possibility for writes being
timed out too early.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-05-02 17:24:59 +01:00
37be4e7809
[ARM] 3485/1: i.MX: MX1 SD/MMC fix of unintentional double start possibility
Patch from Pavel Pisa

The clock starting imxmci_start_clock() function contains hardware
issue workaround, which repeats start attempt, if SDHC does not react on
the first trial. But the second start attempt can be taken even, if the
first succeed and test code misses time limited clock running phase
due to delay caused by schedule to other task or some another device
interrupt. This change enables to detect such situation.
The performance is not issue, because usually at full clock rate
only about six loops in delay cycle are needed.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pavel Pisa   authored and   Russell King   commited 2006-04-30 15:35:54 +01:00
81d38428df
[MMC] pxamci: fix data timeout calculation
The MMC layer gives us two parts for the timeout calculation - a fixed
timeout in nanoseconds, and a card clock-speed dependent part.

The PXA MMC hardware allows for a timeout based on the fixed host clock
speed only.  This resulted in some cards being given a short timeout,
and therefore failing to work.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-04-24 11:27:02 +01:00
3d63abe56b
[ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1
Patch from Pavel Pisa

This patch adds support of i.MX/MX1 SD/MMC controller.
It has been significantly redesigned from the original Sascha Hauer's
version to support scatter-gather DMA, to conform to latest Pierre Ossman's
and Russell King's MMC-SD Linux 2.6.x infrastructure.
The handling of all events has been moved to the softirq context
and is designed with no busy-looping in mind. Unfortunately
some controller bugs has to be overcome by limited looping
about 2-20 usec but these are observed only for initial card
recognition phase.

There are still some missing/missed IRQs problems under heavy load.
Help of somebody with access to the full SDHC design information
is probably necessary.

Regenerated against 2.6.16-git-060402 to solve clash with other patches.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pavel Pisa   authored and   Russell King   commited 2006-04-02 19:27:07 +01:00
56ca904053
[ARM] 3456/1: AT91RM9200 support for 2.6 (MMC/SD driver)
Patch from Andrew Victor

This patch adds support for the MMC/SD card interface on the Atmel
AT91RM9200 processor.

Original driver was by Nick Randell, but a number of people have
subsequently worked on it. It's currently maintained by Malcolm Noyes.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Andrew Victor   authored and   Russell King   commited 2006-04-02 19:18:51 +01:00
65dbf34393
[MMC] Pass -DDEBUG on compiler command line if MMC_DEBUG selected
Rather than each driver test MMC_DEBUG itself, and define DEBUG,
pass it in via the makefile instead.

Fix drivers to use pr_debug() where appropriate, and avoid defining
a DEBUG() macro.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-03-29 09:30:20 +01:00
c65631781e
[MMC] Add OMAP MMC host driver
Adds OMAP MMC driver.

Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Carlos Aguiar <carlos.aguiar@indt.org.br>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Carlos Aguiar   authored and   Russell King   commited 2006-03-29 09:21:00 +01:00
730c9b7e66
[PATCH] Remove MODULE_PARM
MODULE_PARM was actually breaking: recent gcc version optimize them out as
unused.  It's time to replace the last users, which are generally in the
most unloved drivers anyway.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Rusty Russell   authored and   Linus Torvalds   commited 2006-03-25 08:22:52 -08:00
8d3b33f67f
[PATCH] mmc: Secure Digital Host Controller Interface driver
Driver for the Secure Digital Host Controller Interface specification.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Pierre Ossman   authored and   Linus Torvalds   commited 2006-03-24 07:33:27 -08:00
d129bceb1d
[PATCH] handle errors returned by platform_get_irq*()
platform_get_irq*() now returns on -ENXIO when the resource cannot be
found.  Ensure all users of platform_get_irq*() handle this error
appropriately.

Signed-off-by: David Vrabel <dvrabel@arcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

David Vrabel   authored and   Greg Kroah-Hartman   commited 2006-03-20 13:42:57 -08:00
489447380a
[MMC] au1xmmc: Fix a compilation warning ('status' is not used)
Fix a trivial compilation warning:

  CC      drivers/mmc/au1xmmc.o
drivers/mmc/au1xmmc.c: In function ‘au1xmmc_dma_callback’:
drivers/mmc/au1xmmc.c:743: warning: unused variable ‘status’

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Acked-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Martin Michlmayr   authored and   Russell King   commited 2006-03-04 23:02:10 +00:00
732b828860
[MMC] au1xmmc: Fix linking error because mmc_rsp_type doesn't exist
drivers/mmc/au1xmmc.c doesn't compile because commit
e92251762d introduced a typo and passes
the wrong argument to the mmc_resp_type macro.

Error because of the typo:

  CC      drivers/mmc/au1xmmc.o
drivers/mmc/au1xmmc.c: In function ‘au1xmmc_send_command’:
drivers/mmc/au1xmmc.c:197: warning: implicit declaration of function ‘mmc_rsp_type’
...
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `au1xmmc_request':au1xmmc.c:(.text+0x89504): undefined reference to `mmc_rsp_type'
:au1xmmc.c:(.text+0x8968c): undefined reference to `mmc_rsp_type'
make: *** [.tmp_vmlinux1] Error 1

Error because of the wrong argument:

  CC      drivers/mmc/au1xmmc.o
drivers/mmc/au1xmmc.c: In function ‘au1xmmc_send_command’:
drivers/mmc/au1xmmc.c:197: error: invalid type argument of ‘->’

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Martin Michlmayr   authored and   Russell King   commited 2006-03-04 23:01:39 +00:00
e142c24cf8
[MMC] au1xmmc: Fix compilation error by using platform_driver
drivers/mmc/au1xmmc.c currently doesn't compile; it needs to be
converted to use platform_driver.  I cannot test this change because
of lack of hardware but I followed the drivers this one is based on,
and the code is certainly not worse than before.

drivers/mmc/au1xmmc.c: At top level:
drivers/mmc/au1xmmc.c:1002: error: ‘platform_bus_type’ undeclared here (not in a function)
make[2]: *** [drivers/mmc/au1xmmc.o] Error 1

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Martin Michlmayr   authored and   Russell King   commited 2006-03-04 23:01:13 +00:00
b256f9df4a
[MMC] mmci: allow small data transfers
If a data transfer is small (less than a FIFO size) we would
hang waiting for the data to be read due to the PIO interrupt
not occuring.  We allowed for this in our PIO interrupt handler,
but not when setting up a data transfer.

Apply the "fix" when setting up a data transfer as well.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-02-16 16:48:31 +00:00
0425a14213
[MMC] Remove extra character in AU1XXX MMC Kconfig entry
An obvious vi fat finger on my part.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Jordan Crouse   authored and   Russell King   commited 2006-02-08 22:23:05 +00:00
be92cbb996
[MMC] Add MMC command type flags
Some hosts need to know the command type, so pass it via a set of
flags in cmd->flags.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-02-02 12:23:12 +00:00
e92251762d
Merge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds   commited 2006-01-14 19:44:01 -08:00
150a631fc5
[MMC] mmc_blk_probe() warning fix
drivers/mmc/mmc_block.c: In function `mmc_blk_probe':
drivers/mmc/mmc_block.c:467: warning: long unsigned int format, different type arg (arg 5)

We don't know what size sector_t is - cast it.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Andrew Morton   authored and   Russell King   commited 2006-01-13 21:44:18 +00:00
51828abc17
[PATCH] Add mmc_bus_type probe and remove methods
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Russell King   authored and   Greg Kroah-Hartman   commited 2006-01-13 11:26:08 -08:00
4d0b653cdf
[MMC+MFD] Convert mmc to mutexes
convert mfd and mmc to mutexes

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Arjan van de Ven   authored and   Russell King   commited 2006-01-12 18:43:35 +00:00
a621aaed69
Merge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds   commited 2006-01-09 15:08:33 -08:00
8e9c238c38
[MMC] Add DATA_MULTI flag
Some hosts need to know that a transfer will be multi-block.
Add a data flag to indicate multiple data block transfers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-09 21:12:17 +00:00
788ee7b098
[PATCH] Add block_device_operations.getgeo block device method
HDIO_GETGEO is implemented in most block drivers, and all of them have to
duplicate the code to copy the structure to userspace, as well as getting
the start sector.  This patch moves that to common code [1] and adds a
->getgeo method to fill out the raw kernel hd_geometry structure.  For many
drivers this means ->ioctl can go away now.

[1] the s390 block drivers are odd in this respect.  xpram sets ->start
    to 4 always which seems more than odd, and the dasd driver shifts
    the start offset around, probably because of it's non-standard
    sector size.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Jens Axboe <axboe@suse.de>
Cc: <mike.miller@hp.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Christoph Hellwig   authored and   Linus Torvalds   commited 2006-01-08 20:13:54 -08:00
a885c8c431
[MMC] Lindent wbsd driver
Fix the coding style in the wbsd driver once and for all.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pierre Ossman   authored and   Russell King   commited 2006-01-08 18:17:55 +00:00
cfa7f52164
[MMC] Support MMC version 4 cards
Version 4 of the MMC specification increased the version number of the
CID structure. None of the fields changed though so the only required
change is adding '4' to the approved list.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pierre Ossman   authored and   Russell King   commited 2006-01-08 14:23:02 +00:00
cb757b4eef
[MMC] wbsd pnp suspend
Allow the wbsd driver to use the new suspend/resume functions added to
the PnP layer.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pierre Ossman   authored and   Russell King   commited 2006-01-08 14:21:52 +00:00
5e68d95d15
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds   commited 2006-01-07 10:45:22 -08:00
8995b161eb
Merge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds   commited 2006-01-07 10:43:40 -08:00
f9c5d0451b
[ARM] Move asm/hardware/clock.h to linux/clk.h
This is needs to be visible to other architectures using the AMBA
bus and peripherals.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-07 16:15:52 +00:00
f8ce25476d
Merge with Linus' kernel.
Russell King   commited 2006-01-07 14:40:05 +00:00
123656d4cc
[ARM] Move AMBA include files to include/linux/amba/
Since the ARM AMBA bus is used on MIPS as well as ARM, we need
to make the bus available for other architectures to use.  Move
the AMBA include files from include/asm-arm/hardware/ to
include/linux/amba/

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-07 13:52:45 +00:00
a62c80e559
[BLOCK] add @uptodate to end_that_request_last() and @error to rq_end_io_fn()
add @uptodate argument to end_that_request_last() and @error
to rq_end_io_fn().  there's no generic way to pass error code
to request completion function, making generic error handling
of non-fs request difficult (rq->errors is driver-specific and
each driver uses it differently).  this patch adds @uptodate
to end_that_request_last() and @error to rq_end_io_fn().

for fs requests, this doesn't really matter, so just using the
same uptodate argument used in the last call to
end_that_request_first() should suffice.  imho, this can also
help the generic command-carrying request jens is working on.

Signed-off-by: tejun heo <htejun@gmail.com>
Signed-Off-By: Jens Axboe <axboe@suse.de>

Tejun Heo   authored and   Jens Axboe   commited 2006-01-06 09:49:03 +01:00
8ffdc6550c
[MMC] mmci: kunmap_atomic() unmaps virtual address, not page
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Evgeniy Polyakov   authored and   Russell King   commited 2006-01-05 10:31:23 +00:00
f3e2628bed
[PATCH] driver core: replace "hotplug" by "uevent"
Leave the overloaded "hotplug" word to susbsystems which are handling
real devices. The driver core does not "plug" anything, it just exports
the state to userspace and generates events.

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Kay Sievers   authored and   Greg Kroah-Hartman   commited 2006-01-04 16:18:08 -08:00
312c004d36
[MMC] mmci: add data cache coherency
Since MMCI currently uses PIO to read data, we have to take steps
to ensure data cache coherency on aliasing CPU caches.  Add the
necessary flush_dcache_page() calls.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-04 16:24:05 +00:00
e9c091b474
[MMC] wbsd: convert to the new platfrom device interface
platform_device_register_simple() is going away, switch to
using platfrom_device_alloc() + platform_device_add(). Also
make sure that wbsd_driver gets unregistered when wbsd_init
fails.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Pierre Ossman <drzeus@drzeus.cx>

Dmitry Torokhov   authored and   Russell King   commited 2006-01-03 22:57:35 +00:00
21500bb32a
[MMC] wbsd: make use of ARRAY_SIZE() macro
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Pierre Ossman <drzeus@drzeus.cx>

Dmitry Torokhov   authored and   Russell King   commited 2006-01-03 22:56:56 +00:00
63648fb5c0
[MMC] Improve MMC card block size selection
Select a block size for IO based on the read and write block size
combinations, and whether the card supports partial block reads
and/or partial block writes.

If we are able to satisfy block reads but not block writes, mark
the device read only.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-03 22:38:44 +00:00
a6f6c96b65
[ARM] Remove clk_use()/clk_unuse()
It seems that clk_use() and clk_unuse() are additional complexity
which isn't required anymore.  Remove them from the clock framework
to avoid the additional confusion which they cause, and update all
ARM machine types except for OMAP.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2006-01-03 18:41:37 +00:00
a8d3584a2d
[MMC] Set correct capacity for 1024-byte block cards
We were passing set_capacity() the capacity we calculated in terms of
the number of blocks on the card, which happened to be the right units
for 512-byte block cards.  However, with 1024-byte block cards, we
end up setting the capacity to half the number of blocks.  Fix this
by shifting by the appropriate amount.

Thanks to Todd Blumer for pointing this out.

Use get_capacity() to report the card capacity, rather than
recalculating it from the CSD information.

Finally, use our chosen IO block size for the SET_BLOCKLEN command
rather than the CSD read block size.  Currently these are equivalent,
but will not be in the future.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2005-12-22 23:21:38 +00:00
d2b1839425
[MMC] Explain the internals of mmc_power_up()
It seems that people get confused about what is happening in
mmc_power_up().  Add a comment to make it clear why we have
a two stage process.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Russell King   commited 2005-12-14 14:57:35 +00:00
45f8245b97
[MMC] Proper check of SCR error code
The routine reading the SCR wasn't paying proper attention to the
error codes returned from the driver.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Pierre Ossman   authored and   Russell King   commited 2005-12-05 10:00:50 +00:00
e781de4415