Commit Graph
14725 Commits
Author SHA1 Message Date
Alan Cox 2ec7df0457 [PATCH] libata: rework legacy handling to remove much of the cruft
Kill host_set->next
Fix simplex support
Allow per platform setting of IDE legacy bases

Some of this can be tidied further later on, in particular all the
legacy port gunge belongs as a PCI quirk/PCI header decode to understand
the special legacy IDE rules in the PCI spec.

Longer term Jeff also wants to move the request_irq/free_irq out of core
which will make this even cleaner.

tj: folded in three followup patches - ata_piix-fix, broken-arch-fix
and fix-new-legacy-handling, and separated per-dev xfermask into
separate patch preceding this one.  Folded in fixes are...

* ata_piix-fix: fix build failure due to host_set->next removal
* broken-arch-fix: add missing include/asm-*/libata-portmap.h
* fix-new-legacy-handling:
	* In ata_pci_init_legacy_port(), probe_num was incorrectly
          incremented during initialization of the secondary port and
          probe_ent->n_ports was incorrectly fixed to 1.

	* Both legacy ports ended up having the same hard_port_no.

	* When printing port information, both legacy ports printed
	  the first irq.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
2006-08-10 16:59:10 +09:00
Tejun Heo 37deecb513 [PATCH] libata: implement per-dev xfermask
Implement per-dev xfermask.  libata used to determine xfermask
per-port - the fastest mode of the slowest device on the port.  This
patch enables per-dev xfermask.

Original patch is from Alan Cox <[email protected]>.  The following
changes are made by me.

* simplex warning message is added
* remove disabled device handling code which is never invoked
  (originally for choosing port-wide lowest PIO mode)

Cc: Alan Cox <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
2006-08-10 16:59:07 +09:00
Jeff Garzik 6d0500df5b [PATCH] [libata] Kill 'count' var in ata_device_add()
Eliminate redundant loop variable 'count'

Signed-off-by: Jeff Garzik <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
2006-08-10 16:59:05 +09:00
Jeff Garzik 996139f1ce [PATCH] [libata] some function renaming
s/ata_host_add/ata_port_add/
s/ata_host_init/ata_port_init/

libata naming got stuck in the middle of a Great Renaming:

	ata_host -> ata_port
	ata_host_set -> ata_host

To eliminate confusion, let's just give up for now, and simply ensure
that things are internally consistent.

Signed-off-by: Jeff Garzik <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
2006-08-10 16:59:03 +09:00
Tejun Heo 4608c16085 [PATCH] libata: update ata_host_init() and rename it to ata_port_init_shost()
Update ata_host_init() such that it only initializes SCSI host related
stuff and doesn't call into ata_port_init(), and rename it to
ata_port_init_shost().

Signed-off-by: Tejun Heo <[email protected]>
2006-08-10 16:59:01 +09:00
Alan Cox 79860a9a79 [PATCH] PATCH: 2.6.18 oops on boot fix for IDE
When the IDE fix for Jmicron went in one piece went walking somewhere
(send log shows my end somehow). Without this sometimes you get an oops
on boot.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-08-09 15:43:27 -07:00
Greg Kroah-Hartman a465714109 Merge [email protected]:/pub/scm/linux/kernel/git/davem/net-2.6 2006-08-09 11:49:13 -07:00
Greg Kroah-Hartman 54f58d6c4f Merge branch 'upstream-greg' of [email protected]:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-08-09 11:46:30 -07:00
Greg Kroah-Hartman 897e11a40b Merge branch 'upstream-greg' of [email protected]:/pub/scm/linux/kernel/git/jgarzik/libata-dev 2006-08-09 11:45:59 -07:00
Horst Hummel ebc4599990 [S390] dasd set offline kernel bug.
The request queue flush function of the dasd driver has to dequeue
the requests first and then call the end request function. Otherwise
a kernel bug in ll_rw_block.c might get triggered.

Signed-off-by: Horst Hummel <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
2006-08-09 10:30:22 +02:00
Jeff Garzik 3f06688759 Merge branch 'upstream-fixes' into upstream 2006-08-09 01:19:18 -04:00
Tejun Heo 22aac0896b [PATCH] libata: clear sdev->locked on door lock failure
SCSI EH locks door if sdev->locked is set.  Sometimes door lock
command fails continuously (e.g. when medium is not present) and as
libata uses EH to acquire sense data, this easily creates a loop where
a failed lock door invokes EH and EH issues lock door on completion.

This patch clears sdev->locked on door lock failure to break this
loop.  This problem has been spotted and diagnosed by Unicorn Chang
<[email protected]>.

Signed-off-by: Tejun Heo <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 01:16:27 -04:00
Keith Owens 85455dd342 [PATCH] Fix compile problem when sata debugging is on
Fix a sata debug print statement that still uses an old variable name.

Signed-off-by: Keith Owens <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 01:16:27 -04:00
Tejun Heo f4b5cc8741 [PATCH] ahci: remove IRQ mask clearing from init_controller()
Initial IRQ mask clearing is done by libata-core by freezing all ports
prior to requesting IRQ.  Remove redundant IRQ clearing from
init_controller().

Signed-off-by: Tejun Heo <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:13:28 -04:00
Brice Goglin 013b68bf7c [PATCH] myri10ge: always re-enable dummy rdmas in myri10ge_resume
Dummy RDMA are always enabled on device startup since commit
9a71db721a (to work around buggy
PCIe chipsets which do not implement resending properly). But,
we also need to always re-enable them when resuming the device.

Signed-off-by: Brice Goglin <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:12:47 -04:00
Brian King 80289167fd [PATCH] libata: Add support for SATA attachment to SAS adapters
The following patch enhances libata to allow SAS device drivers
to utilize libata to talk to SATA devices. It introduces some
new APIs which allow libata to be used without allocating a
virtual scsi host.

New APIs:

ata_sas_port_alloc - Allocate an ata_port
ata_sas_port_init - Initialize an ata_port (probe device, etc)
ata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc
ata_sas_slave_configure - configure scsi device
ata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand

These new APIs can be used either directly by a SAS LLDD or could be used
by the SAS transport class.

Possible usage for a SAS LLDD would be:

scsi_scan_host
	target_alloc
		ata_sas_port_alloc
	slave_alloc
		ata_sas_port_init
	slave_configure
		ata_sas_slave_configure

Commands received by the LLDD for SATA devices would call ata_sas_queuecmd.

Device teardown would occur with:

slave_destroy
	port_disable
target_destroy
	ata_sas_port_destroy

Signed-off-by: Brian King <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:08:39 -04:00
Brian King f6d950e2a5 [PATCH] libata: Move ata_probe_ent_alloc to libata_core
Move ata_probe_ent_alloc to libata-core. It will also be used by
future SAS/SATA integration patches.

Signed-off-by: Brian King <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:08:38 -04:00
Brian King 155a8a9c8f [PATCH] libata: Add ata_port_init
Separate out the ata_port initialization from ata_host_init
so that it can be used in future SAS patches.

Signed-off-by: Brian King <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:08:38 -04:00
Brian King b03732f006 [PATCH] libata: Add ata_host_set_init
Add ata_host_set_init in preparation for SAS attached SATA.

Signed-off-by: Brian King <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-08-09 00:08:38 -04:00
Jeff Garzik c256e95f7d Merge branch 'upstream-fixes' into upstream 2006-08-08 23:59:55 -04:00
Jeff Garzik c71d6be54e Merge branch 'tj-upstream-fixes' of git://htj.dyndns.org/libata-tj into upstream-fixes 2006-08-08 23:59:39 -04:00
Greg Kroah-Hartman ad552692a4 Merge [email protected]:/pub/scm/linux/kernel/git/mchehab/v4l-dvb 2006-08-08 14:19:23 -07:00
Yeasah Pell 0851fb4848 V4L/DVB (4431): Add several error checks to dst
Signed-off-by: Yeasah Pell <[email protected]>
Signed-off-by: Manu Abraham <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:04 -03:00
Diego Calleja eafa98177a V4L/DVB (4430): Quickcam_messenger compilation fix
In bugzilla #6943, Maxim Britov reported:
"I can enable Logitech quickcam support in .config, but it want be compile.
I have to add into drivers/media/video/Makefile:
obj-$(CONFIG_USB_QUICKCAM_MESSENGER)    += usbvideo/"
He's right, just enable that driver as module while disabling every other
driver that gets into that directory, nothing will get compiled.
This patch fixes the Makefile.

Signed-off-by: Diego Calleja <[email protected]>
Acked-by: Michael Krufky <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:04 -03:00
Mauro Carvalho Chehab 8a016dcc83 V4L/DVB (4427): Fix V4L1 Compat for VIDIOCGPICT ioctl
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:04 -03:00
Hans Verkuil 43c560fa59 V4L/DVB (4419): Turn on the Low Noise Amplifier of the Samsung tuners.
Without the LNA these tuners perform very poorly (read 'unwatchable') when
the signal is weak.

Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:04 -03:00
Hans Verkuil e335fada5a V4L/DVB (4418): Fix broken msp3400 module option 'standard'
Due to a wrong statement order the 'standard' module option didn't
work for 'G' model chips.

Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:03 -03:00
Hans Verkuil 17531c168c V4L/DVB (4416): Cx25840_read4 has wrong endianness.
cx25840_read4 assembled the bytes in the wrong order.

Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:03 -03:00
Trent Piepho b02dc51591 V4L/DVB (4411): Fix minor errors in build files
In pwc Kconfig, change 'depends' to 'depends on'
In dvb-core Makefile, change '=' to ':='

Signed-off-by: Trent Piepho <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:53:03 -03:00
Mauro Carvalho Chehab 7fb6529762 V4L/DVB (4407): Driver dsbr100 is a radio device, not a video one!
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 15:52:52 -03:00
Mauro Carvalho Chehab 0dfa9abd6b V4L/DVB (4399): Fix a typo that caused some compat stuff to not work
Config option typo:
-#ifdef CONFIG_V4L1_COMPAT
+#ifdef CONFIG_VIDEO_V4L1_COMPAT

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 13:55:07 -03:00
Luc Van Oostenryck 3cdc0f263b V4L/DVB (4395): Restore compat_ioctl in pwc driver
The compat_ioctl support of the pwc driver was dropped during the last update of the driver.
I suppose it was by mistake. If yes here is the patch to restore the support.

Signed-off-by: Luc Van Oostenryck <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 13:55:05 -03:00
Mauro Carvalho Chehab 5bdd6cc330 V4L/DVB (4371a): Fix V4L1 dependencies on compat_ioctl32
Compat32 should be able to handle V4L1 ioctls if the old API support were
selected.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-08-08 13:55:01 -03:00
Michael Chan 1b2a720506 [TG3]: Fix tx race condition
Fix a subtle race condition between tg3_start_xmit() and tg3_tx()
discovered by Herbert Xu <[email protected]>:

CPU0					CPU1
tg3_start_xmit()
	if (tx_ring_full) {
		tx_lock
					tg3_tx()
						if (!netif_queue_stopped)
		netif_stop_queue()
		if (!tx_ring_full)
						update_tx_ring 
			netif_wake_queue()
		tx_unlock
	}

Even though tx_ring is updated before the if statement in tg3_tx() in
program order, it can be re-ordered by the CPU as shown above.  This
scenario can cause the tx queue to be stopped forever if tg3_tx() has
just freed up the entire tx_ring.  The possibility of this happening
should be very rare though.

The following changes are made:

1. Add memory barrier to fix the above race condition.

2. Eliminate the private tx_lock altogether and rely solely on
netif_tx_lock.  This eliminates one spinlock in tg3_start_xmit()
when the ring is full.

3. Because of 2, use netif_tx_lock in tg3_tx() before calling
netif_wake_queue().

4. Change TX_BUFFS_AVAIL to an inline function with a memory barrier.
Herbert and David suggested using the memory barrier instead of
volatile.

5. Check for the full wake queue condition before getting
netif_tx_lock in tg3_tx().  This reduces the number of unnecessary
spinlocks when the tx ring is full in a steady-state condition.

6. Update version to 3.65.

Signed-off-by: Michael Chan <[email protected]>
Acked-by: Herbert Xu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-08-07 21:46:02 -07:00
Christoph Hellwig d14cc9a342 [TG3]: skb->dev assignment is done by netdev_alloc_skb
All caller of netdev_alloc_skb need to assign skb->dev shortly
afterwards.  Move it into common code.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-08-07 16:11:48 -07:00
Martin Schwidefsky 37ab46a3f4 [S390] xpram system device class.
Remove system device class for xpram. It creates the directory hierarchy
under /sys/devices/system/xpram/xpram0. The xpram0 directory is empty and
it is always created while xpram1 and following devices are always missing,
independent if the devices exist or not. Since the xpram devices are
listed in /proc/partitions and /sys/block/ as slram<x> the system device
class for xpram is meaningless.

Signed-off-by: Martin Schwidefsky <[email protected]>
2006-08-07 18:13:06 +02:00
Peter Oberparleiter 65200c291c [S390] lost interrupt after chpid vary off/on cycle.
I/O on a CCW device may stall if a channel path to that device is
logicaly varied off/on. A user I/O interrupt can get misinterpreted
as interrupt for an internal path verification operation due to a
missing check and is therefore never reported to the device driver.

Correct check for pending interruptions before starting path
verification.

Signed-off-by: Peter Oberparleiter <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
2006-08-07 17:00:33 +02:00
Cornelia Huck 4bc0c4f9e7 [S390] retry after deferred condition code.
Do a retry of read device characteristics / read configuration
data when a deferred condition code 1 is encountered in
ccw_device_wake_up().

Signed-off-by: Cornelia Huck <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
2006-08-07 17:00:30 +02:00
Heiko Carstens 25a2001a28 [S390] tape class return value handling.
Without this patch register_tape_dev() will always fail, but might
return a value that is not an error number. This will lead to accesses
to already freed memory areas...

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
2006-08-07 17:00:28 +02:00
Pierre Ossman dd2c609c59 [MMC] Another stray 'io' reference
Another misuse of the global 'io' variable instead of the local 'base'.

Signed-off-by: Pierre Ossman <[email protected]>
Signed-off-by: Russell King <[email protected]>
2006-08-07 14:47:54 +01:00
Jeff Garzik 38ebb1e0ed Merge branch 'master' into upstream 2006-08-07 06:43:17 -04:00
Pierre Ossman 916f3ac680 [MMC] Fix base address configuration in wbsd
There were some confusion about base I/O variables in the wbsd driver.
Seems like things have been working on shear luck so far. The global 'io'
variable (used when manually configuring the resources) was used instead of
the local 'base' variable.

Signed-off-by: Pierre Ossman <[email protected]>
Signed-off-by: Russell King <[email protected]>
2006-08-06 21:44:48 +01:00
Russell King 574dc0abab [ARM] Fix Acorn platform SCSI driver build failures
SCSI folk forgot to fix up all the uses of 'buffer' before deleting
this struct member.  Do it for them to rescue the resulting build
failures.

Signed-off-by: Russell King <[email protected]>
2006-08-06 20:55:33 +01:00
Russell King ca8c100a00 [ARM] Fix NCR5380-based SCSI card build
The NCR5380-based SCSI cards need the SCSI SPI transport selected
to build correctly.

Signed-off-by: Russell King <[email protected]>
2006-08-06 20:53:40 +01:00
Linus Torvalds 6e1e63259b Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (24 commits)
  Input: ati_remote - use msec instead of jiffies
  Input: ati_remote - add missing input_sync()
  Input: ati_remote - relax permissions sysfs module parameters
  Input: ati_remote - make filter time a module parameter
  Input: atkbd - restore repeat rate when resuming
  Input: trackpoint - activate protocol when resuming
  Input: logips2pp - fix button mapping for MX300
  Input: keyboard - change to use kzalloc
  Input: serio/gameport - check whether driver core calls succeeded
  Input: spaceball - make 4000FLX Lefty work
  Input: keyboard - simplify emulate_raw() implementation
  Input: keyboard - remove static variable and clean up initialization
  Input: hiddev - use standard list implementation
  Input: add missing handler->start() call
  Input: HID - fix potential out-of-bound array access
  Input: fix list iteration in input_release_device()
  Input: iforce - add Trust Force Feedback Race Master support
  Input: iforce - check array bounds before accessing elements
  Input: libps2 - warn instead of oopsing when passed bad arguments
  Input: fm801-gp - fix use after free
  ...
2006-08-06 09:12:49 -07:00
David Woodhouse 3e3183bab0 [PATCH] SCX200_ACB: eliminate spurious timeout errors
While busy-waiting for completion, check the hardware after scheduling;
don't schedule and then immediately check the _timeout_.  If the yield()
took a long time (as it does on my OLPC prototype board when it's busy),
we'd report a timeout even though the hardware was now ready.

This fixes it, and also switches the yield() for a cond_resched() because
we don't actually want to be _that_ nice about it.  I see nice
tightly-packed SMBus transactions now, rather than waiting for milliseconds
between successive phases.

Actually, we shouldn't be busy-waiting here at all.  We should be using
interrupts.  That's an exercise for another day though.

Signed-off-by: David Woodhouse <[email protected]>
Cc: Christer Weinigel <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-08-06 08:57:49 -07:00
matthieu castet 2b8de5f50e [PATCH] pnpacpi: reject ACPI_PRODUCER resources
A patch in -mm kernel correct the parsing of "address resources" of pnpacpi.
Before we assumed it was memory only, but it could be also IO.

But this change show an hidden bug : some resources could be producer type
that are not handled by pnp layer.  So we should ignore the producer
resources.

This patch fixes bug 6292 (http://bugzilla.kernel.org/show_bug.cgi?id=6292).
Some devices like PNP0A03 have 0xd00-0xffff and 0x0-0xcf7 as IO producer
resources.

Before correcting "address resources" parsing, it was seen as memory and was
harmless, because nobody tried to reserve this memory range as it should be
IO.

With the correction it become IO resources, and make failed all others device
that want to register IO in this range and use pnp layer (like a ISA sound
card).

The solution is to ignore producer resources

Signed-off-by: Matthieu CASTET <[email protected]>
Signed-off-by: Uwe Bugla <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Adam Belay <[email protected]>
Cc: "Brown, Len" <[email protected]>
Acked-by: Shaohua Li <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-08-06 08:57:49 -07:00
KAMEZAWA Hiroyuki 5d2870faaa [PATCH] memory hotadd fixes: avoid registering res twice
both of acpi_memory_enable_device() and acpi_memory_add_device() may evaluate
_CRS method.

We should avoid evaluate device's resource twice if we could get it
successfully in past.

Signed-off-by: KAMEZWA Hiroyuki <[email protected]>
Cc: Keith Mannthey <[email protected]>
Cc: Yasunori Goto <[email protected]>
Cc: Dave Hansen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-08-06 08:57:49 -07:00
KAMEZAWA Hiroyuki fa25d8d6d3 [PATCH] memory hotadd fixes: avoid check in acpi
add_memory() does all necessary check to avoid collision.  then, acpi layer
doesn't have to check region by itself.

(*) pfn_valid() just returns page struct is valid or not. It returns 0
    if a section has been already added even is ioresource is not added.
    ioresource collision check in mm/memory_hotplug.c can do more precise
    collistion check.
    added enabled bit check just for sanity check..

Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
Cc: Keith Mannthey <[email protected]>
Cc: Yasunori Goto <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: "Brown, Len" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-08-06 08:57:49 -07:00
Stefan Richter e31f59ce59 [PATCH] ieee1394: sbp2: enable auto spin-up for Maxtor disks
At least Maxtor OneTouch III require a "start stop unit" command after auto
spin-down before the next access can proceed.  This patch activates the
responsible code in scsi_mod for all Maxtor SBP-2 disks.
https://bugzilla.novell.com/show_bug.cgi?id=183011

Maybe that should be done for all SBP-2 disks, but better be cautious.

Signed-off-by: Stefan Richter <[email protected]>
Cc: Jody McIntyre <[email protected]>
Cc: Ben Collins <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-08-06 08:57:48 -07:00