| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Suspending MMC/SD cards (versus removing and readding them) is an
inherently unsafe operation and has even been broken for some time.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Make sure we don't deadlock when removing a suspended block
queue, something that might happen if the card is removed during
suspend.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
Make sure we kill of any pending detection runs when the host
is removed instead of when it is freed. Also add some debugging
to make sure the driver doesn't queue up more detection after it
has removed the host.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
Clean up the drivers/mmc directory by moving card and host drivers
into subdirectories.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
The mmc block queue functions are tailored for the mmc_block
driver, so move those functions into that module.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
The "present" state indicates that the card is a registered device, so
it is more clear to put it together with the actual registration.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
All host drivers were #include:ing mmc/protocol.h just to
get access to the OCR bit defines. Move these to host.h instead.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
Split out the type of card into its own field as it hardly
qualifies as a state.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
Support for MMC 4.2 sector based cards. This tweaks the init a
bit and reads a new field out of the EXT_CSD.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
| |
Fix copy-n-paste error.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
| |
sparc64:
drivers/misc/tifm_7xx1.c: In function `tifm_7xx1_probe':
drivers/misc/tifm_7xx1.c:294: error: `DMA_32BIT_MASK' undeclared
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
Cosmetic changes to the code.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
|
| |
It was found that delays associated with issue and completion of the commands
severely limit performance of the new, fast SD cards. To alleviate this issue
scatter-gather emulation in software is implemented for both dma and pio
transfer modes. Non-block aligned and high memory sg entries are accounted
for.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
Resume should not explicitly check for media type. Instead, it may relay
on success of socket initialization.
Small changes are introduced to tifm_sd_initialize to make it more robust.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
State machine used to to track mmc command state was found to be fragile
and unreliable, making many cards unusable. The safer solution is to perform
all needed checks at every card event.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
To allow for switching of trasfer mode (dma/pio) on a per-request basis,
pio and dma request issue and completion function are now merged.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
| |
host->flags variable was hosting a collection of bits with different
semantics. For clarity, hardware bit masks are now defined as macros,
socket flags represented as bit fields and flags (now cmd_flags) only
hosts command processing modifiers.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
This wait was needed because of the mmc layer failure to wait for completion
of all outstanding commands before host removal. It should be fixed now in
the mmc layer.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
tifm_sd_terminate can only lawfully be called on device removal so it can be
merged with tifm_sd_remove.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
| |
A sysfs attribute reflecting current media type is added.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
| |
Fixes to the adapter resume function to correctly handle all possible cases:
1. Card is removed during suspend
2. Card is inserted during suspend into previously empty socket
3. Card is replaced during suspend by same or different media type card.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Some details of the device management (create, add, remove) are really
belong to the tifm_core, as they are not hardware specific.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Some details of the adapter management (create, add, remove) are really
belong to the tifm_core, as they are not hardware specific.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Remove unneeded conditions and change a sleeping regime a little in the
card type detection routine.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
Freezeable workqueue makes sure that adapter work items (device insertions
and removals) would be handled after the system is fully resumed. Previously
this was achieved by explicit freezing of the kthread.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Remove code duplicating the kernel functionality and clean up data
structures involved in driver matching.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
| |
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
Instead of passing transformed value of adapter interrupt status to
socket drivers, implement two separate callbacks - one for card events
and another for dma events.
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
| |
Block completion interrupts occur faster than we can process
them, so just ignore them competely.
Commit also fixes up some incorrect register defines.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
| |
Now that we've fixed our only offender when it comes to strange sg
list, add a check so that future users keep the sg list proper with
regard to transfer size.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
|
|
| |
mmc layer may introduce additional (compared to block layer) limits on
request size. Culling of the sg list to match adjusted request size
simplifies the handling of such cases in the low level driver, allowing
it to skip block count checks while processing sg entries.
(fixes for wbsd and sdhci by Pierre Ossman)
Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Marvell IDE interface on my machine would hit a BUG_ON() in
lib/iomem.c because it was calling ata_pci_init_one() specifying just a
single port on the host, but that would actually end up trying to
initialize two ports, the second one with bogus information.
This fixes "ata_pci_init_one()" so that it actually passes down the
n_ports variable that it got from the low-level driver to the host
allocation routine ("ata_host_alloc_pinfo()"), which results in the ATA
layer actually having the correct port number information.
And in order to make it all work, I also needed to fix a few places that
had incorrectly hard-coded the fact that a host always had exactly two
ports (both ata_pci_init_bmdma() and ata_request_legacy_irqs() would
just always iterate over both ports).
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Almost all users of pm_ops only support mem sleep, don't check in .valid and
don't reject any others in .prepare so users can be confused if they check
/sys/power/state, especially when new states are added (these would then
result in s-t-r although they're supposed to be something different).
This patch implements a generic pm_valid_only_mem function that is then
exported for users and puts it to use in almost all existing pm_ops.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: David Brownell <david-b@pacbell.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: linux-pm@lists.linux-foundation.org
Cc: Len Brown <lenb@kernel.org>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Cc: Greg KH <greg@kroah.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (56 commits)
ieee1394: remove garbage from Kconfig
ieee1394: more help in Kconfig
ieee1394: ohci1394: Fix mistake in printk message.
ieee1394: ohci1394: remove unnecessary rcvPhyPkt bit flipping in LinkControl register
ieee1394: ohci1394: fix cosmetic problem in error logging
ieee1394: eth1394: send async streams at S100 on 1394b buses
ieee1394: eth1394: fix error path in module_init
ieee1394: eth1394: correct return codes in hard_start_xmit
ieee1394: eth1394: hard_start_xmit is called in atomic context
ieee1394: eth1394: some conditions are unlikely
ieee1394: eth1394: clean up fragment_overlap
ieee1394: eth1394: don't use alloc_etherdev
ieee1394: eth1394: omit useless set_mac_address callback
ieee1394: eth1394: CONFIG_INET is always defined
ieee1394: eth1394: allow MTU bigger than 1500
ieee1394: unexport highlevel_host_reset
ieee1394: eth1394: contain host reset
ieee1394: eth1394: shorter error messages
ieee1394: eth1394: correct a memset argument
ieee1394: eth1394: refactor .probe and .update
...
|
| |
| |
| |
| | |
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
- s/Device Drivers/Controllers/
- clarify who needs pcilynx
- don't recommend Y for raw1394; M is typically used
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fix the "attempting to setting" message in ohci1394.
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
register
Remove the unneeded code that clears, sets and again clears the
rcvPhyPkt bit in the ohci1394 LinkControl register in ohci_initialize().
Signed-off-by: Bernhard Kauer <kauer@os.inf.tu-dresden.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| | |
If posted write failed, an "Unhandled interrupt(s) 0x00000100" message
was logged by mistake.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| | |
eth1394 did not work on buses consisting of S100B...S400B hardware
because it attempted to send GASP packets at S800.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch fixes some error handlings in eth1394:
- check return value of kmem_cache_create()
- cleanup resources if hpsb_register_protocol() fails
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (whitespace)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch actually doesn't change anything because there was always 0
== NETDEV_TX_OK returned before.
TODO: Return NETDEV_TX_BUSY in error case and test in different error
conditions.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| | |
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| | |
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
offset > fi->offset + fi->len - 1 == !(offset < fi->offset + fi->len)
offset + len - 1 < fi->offset == !(offset + len > fi->offset)
!(A || B) == (!A && !B)
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| | |
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| | |
We can't reconfigure the MAC address, hence we don't need the callback.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| | |
because CONFIG_IEEE1394_ETH1394 depends on it.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
RFC 2734 says: "IP-capable nodes may operate with an MTU size larger
than the default [1500 octets], but the means by which a larger MTU is
configured are beyond the scope of this document."
Allow users to set an MTU bigger than 1500.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
| |
| |
| |
| |
| |
| |
| | |
highlevel_host_reset no longer has any modular users.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
|