Commit Graph
100 Commits
Author SHA1 Message Date
Alan Cox f834e49f1a libata: Add a host flag to indicate lack of IORDY capability
This is the first preparation to doing the !IORDY cases properly.  Further
diffs will then add the needed logic to do it right.

Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-15 18:04:01 -05:00
Alan 120fad7240 [PATCH] i386: Fix Cyrix MediaGX detection
The old Cyrix 5520 CPU detection code relied upon the PCI layer setup being
done earlier than the CPU setup, which is no longer true.  Fortunately we
know that if the processor is a MediaGX we can do type 1 pci config
accesses to check the companion chip.  We thus do those directly and from
this find the 5520 and implement the workarounds for the timer problem

Original report from [email protected], I sent a proposed patch which
Takara then corrected, tested and sent back to the list on 10th January.

Submitting for merging as it seems to have been missed

AK: Changed to use pci-direct.h and fix warning for !CONFIG_PCI (later
AK: originally from akpm)

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andi Kleen <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: <[email protected]>
Cc: Jordan Crouse <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
2007-02-13 13:26:26 +01:00
Alan 3aebbd8f92 [PATCH] pm3fb: kill pci_find_device usage
Signed-off-by: Alan Cox <[email protected]>
Acked-by: James Simmons <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-02-12 09:48:42 -08:00
Alan Cox 3f05044715 [PATCH] kernel: shut up the IRQ mismatch messages
The problem is various drivers legally validly and sensibly try to claim
IRQs but the kernel insists on vomiting forth a giant irrelevant debugging
spew when the types clash.

Edit kernel/irq/manage.c go down to mismatch: in setup_irq() and ifdef out
the if clause that checks for mismatches.  It'll then just do the right
thing and work sanely.

For the current -mm kernel this will do the trick (and moves it into shared
irq debugging as in debug mode the info spew is useful).  I've had a
variant of this in my private tree for some time as I got fed up on the
mess on boxes where old legacy IRQs get reused.

Signed-off-by: Alan Cox <[email protected]>
Cc: Arjan van de Ven <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: David Woodhouse <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-02-12 09:48:28 -08:00
Alan Cox 78137e3b34 [PATCH] tty: improve encode_baud_rate logic
Mostly so people can see the work in progress.  This enhances the encode
function which isn't currently used in the base tree but is when using some of
the testing tty patches.

This resolves a problem with some hardware where applications got confusing
information from the tty ioctls.  Correct but confusing.

In some situations asking for, say, 9600 baud actually gets you 9595 baud or
similar near-miss values.  With the old code this meant that a request for
B9600 got a return of BOTHER, 9595 which programs interpreted as a failure.

The new code now works on the following basis

- If you ask for specific rate via BOTHER, you get a precise return

- If you ask for a standard Bfoo rate and the result is close you get a Bfoo
  return

- If you ask for a standard Bfoo rate and get something way off you get a
  BOTHER/rate return

This seems to fix up the cases I've found where this broke compatibility.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-02-11 10:51:32 -08:00
Alan 11750a40ab libata: Early CFA adapters are not required to support mode setting
If we are doing a PIO setup for a CFA card and it blows up with a device
error then assume it is an older CFA card which doesn't support this
rather than failing the device out of existance.

Stands seperate to the quieting patch but that is obviously useful with
this change.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:40 -05:00
Alan 49554c1956 ata: Add defines for the iordy bits
IORDY and IORDY enable/disable flags.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:39 -05:00
Alan 2c7620d50c Kconfig: clarify ATA_PIIX description
People are getting confused about which drivers to enable for PATA PIIX
type devices. Change the ATA_PIIX line and help to make it clearer.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:39 -05:00
Alan 9b14dec5ad sata_sis: Support for PATA supports
This is quick rework of the patch Uwe proposed but using Kconfig not
ifdefs and user selection to sort out PATA support. Instead of ifdefs and
requiring the user to select both drivers the SATA driver selects the
PATA one.

For neatness I've also moved the extern into the function that uses it.

Signed-off-by: Alan Cox
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:34 -05:00
Alan 18d90deb07 libata: trivial stuff
Readability/typos etc

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:34 -05:00
Alan d2cdfc0db3 libata: PIIX3 support
This I believe completes the PIIX range of support for libata

This adds the table entries needed for the PIIX3, both a new PCI
identifier and a new mode list. It also fixes an erroneous access to PCI
configuration 0x48 on non UDMA capable chips.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:34 -05:00
Alan 904dbd1307 ahci: Remove jmicron fixup
The AHCI set up is handled properly along with the other bits in the
JMICRON quirk. Remove the code whacking it in ahci.c as its un-needed and
also blindly fiddles with bits it doesn't own.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:30 -05:00
Alan 4112e16a7c libata-sff: Don't try and activate channels which are not in use
An ATA controller in native mode may have one or more channels disabled
and not assigned resources. In that case the existing code crashes trying
to access I/O ports 0-7.

Add the neccessary check.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:30 -05:00
Alan d73f30e1c9 sata_via: PATA support
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:30 -05:00
Alan 9b13b682a6 [PATCH] pata_it8213: Add new driver for the IT8213 card
Add a driver for the IT8213 which is a single channel ICH-ish PATA
controller.  As it is very different to the IT8211/2 it gets its own
driver.  There is a legacy drivers/ide driver also available and I'll post
that once I get time to test it all out (probably early January).  If
anyone else needs the drivers/ide driver and wants to do the merge for
drivers/ide (Bart ??) then I'll forward it.

[[email protected]: add PCI ID, constify needed_pio[]]
Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-09 17:39:28 -05:00
Alan Cox 45d3ac4ec3 z85230: spinlock logic
At some point someone added a spin_lock(&dev->lock) to the IRQ handler for
the Z85230 driver.  This actually correctly fixes a bug but the necessary
changes to remove the chan->lock calls in the event handlers were not made
(c->lock is the same lock).

Simona Dascenzo reported the problem with the driver and this patch should
fix the problem he found.

Cc: "David S. Miller" <[email protected]>
Cc: Jeff Garzik <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-07 18:49:52 -05:00
Alan 0777721c9b libata: Fix ata_busy_wait() kernel docs
> Looks like you should use ata_busy_wait() here, rather than reproducing
> the same code again.

It waits in 10uS chunks while 1uS chunks were used in the workaround.
Could indeed do that once I know the fix is right. While I'm at it the
ata_busy_wait kerneldoc is borked so here's a fix

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-02 11:52:05 -05:00
Alan 05c39e502e pata_via: Correct missing comments
The 8237S was added to the chipsets but not to the comments. Fix this

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-02 11:52:05 -05:00
Alan 54494f3a83 pata_atiixp: propogate cable detection hack from drivers/ide to the new driver
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-02-02 11:52:05 -05:00
Alan c033a7e3d5 [MTD] ck804xrom: fix a pci_find_device
Going over the bugs and warnings I found this one left over. The other
changes have already been correctly done for this driver but the actual
switch to pci_get_device that they assume has not.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2007-01-31 17:26:02 +00:00
Alan 61dd08c6c8 libata-sff: Don't call bmdma_stop on non DMA capable controllers
Fixes bogus accesses to ports 0-15 with a non DMA capable controller.
This I think should go in for 2.6.20

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-01-25 18:27:16 -05:00
Alan b229a7b0ae libata: set_mode, Fix the FIXME
When set_mode() changed ->set_mode didn't adapt. This makes the needed
changes and removes the relevant FIXME case.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-01-24 19:55:16 -05:00
Alan a52865c239 libata hpt3xn: Hopefully sort out the DPLL logic versus the vendor code
Rather than ending up with two layers of negation jut rename the variable
and lose one.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-01-24 19:52:31 -05:00
Alan 6a40da02be libata cmd64x: whack into a shape that looks like the documentation
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-01-24 19:52:31 -05:00
Alan 6929da4427 [PATCH] hpt37x: Two important bug fixes
The HPT37x driver very carefully handles DMA completions and the needed
fixups are done on pci registers 0x50 and 0x52.  This is unfortunate
because the actual registers are 0x50 and 0x54.  Fixing this offset cures
the second channel problems reported.

Secondly there are some problems with the HPT370 and certain ATA drives.
The filter code however only filters ATAPI devices due to a reversed type
check.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-01-05 23:55:29 -08:00
Alan 6c5f8cc33e [PATCH] atiixp: Old drivers/ide layer driver for the ATIIXP hang fix
When the old IDE layer calls into methods in the driver during error
handling it is essentially random whether ide_lock is already held.  This
causes a deadlock in the atiixp driver which also uses ide_lock internally
for locking.

Switch to a private lock instead.

[[email protected]: cleanup]
Signed-off-by: Alan Cox <[email protected]>
Acked-by: Bartlomiej Zolnierkiewicz <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-01-05 23:55:22 -08:00
Alan dc3c3377f0 [PATCH] libata: fix combined mode
This is a slight variant on the patch I posted December 16th to fix
libata combined mode handling. The only real change is that we now
correctly also reserve BAR1,2,4. That is basically a neatness issue.

Jeff was unhappy about two things

1. That it didn't work in the case of one channel native one channel
legacy.

This is a silly complaint because the SFF layer in libata doesn't handle
this case yet anyway.

2. The case where combined mode is in use and IDE=n.

In this case the libata quirk code reserves the resources in question
correctly already.

Once the combined mode stuff is redone properly (2.6.21) then the entire
mess turns into a single pci_request_regions() for all cases and all the
ugly resource hackery goes away.

I'm sending this now rather than after running full test suites so that
it can get the maximal testing in a short time. I'll be running tests on
this after lunch.

Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Acked-by: Alessandro Suardi <[email protected]>
Acked-by: Theodore Tso <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-01-02 08:20:51 -08:00
Alan Cox 1597cacbe3 PCI: Fix multiple problems with VIA hardware
This patch is designed to fix:
- Disk eating corruptor on KT7 after resume from RAM
- VIA IRQ handling
- VIA fixups for bus lockups after resume from RAM

The core of this is to add a table of resume fixups run at resume time.
We need to do this for a variety of boards and features, but particularly
we need to do this to get various critical VIA fixups done on resume.

The second part of the problem is to handle VIA IRQ number rules which
are a bit odd and need special handling for PIC interrupts. Various
patches broke various boxes and while this one may not be perfect
(hopefully it is) it ensures the workaround is applied to the right
devices only.

From: Jean Delvare <[email protected]>

Now that PCI quirks are replayed on software resume, we can safely
re-enable the Asus SMBus unhiding quirk even when software suspend support
is enabled.

[[email protected]: fix const warning]
Signed-off-by: Alan Cox <[email protected]>
Cc: Jean Delvare <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-12-20 10:54:43 -08:00
Alan b1cff285ae usb serial: Eliminate bogus ioctl code
Several drivers have bogus ioctl code that tries unneccessarily to
override the standard processing. In the three cases here the actual code
is not only wrong but also not required as they implement the proper
set_termios method as well.

Remove the junk.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-12-20 10:13:23 -08:00
Alan 5c9a76118d [PATCH] pata_via: Cable detect error
The UDMA66 VIA hardware has no controller side cable detect bits we can
use. This patch minimally fixes the problem by reporting unknown in this
case and using drive side detection.

The old drivers/ide code does some additional tricks but those aren't
appropriate now we are in -rc.

Without this update UDMA66 via controllers run slowly. They don't fail so
it's a borderline call whether this is -rc material or not.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-16 10:46:21 -05:00
Alan 2bfc3611bd [PATCH] Fix help text for CONFIG_ATA_PIIX
> Thanks for clarifying Bill, and sorry Alan. ata_piix does indeed work
> correctly. The help text is a bit confusing:
>
> config ATA_PIIX
>         tristate "Intel PIIX/ICH SATA support"
>         depends on PCI
>         help
>           This option enables support for ICH5/6/7/8 Serial ATA.
>           If PATA support was enabled previously, this enables
>           support for select Intel PIIX/ICH PATA host controllers.

New help text

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-16 10:46:21 -05:00
Alan Cox ee2f344b33 [PATCH] ide-cd: Handle strange interrupt on the Intel ESB2
The ESB2 appears to emit spurious DMA interrupts when configured for native
mode and handling ATAPI devices.  Stratus were able to pin this bug down and
produce a patch.  This is a rework which applies the fixup only to the ESB2
(for now).  We can apply it to other chips later if the same problem is found.

This code has been tested and confirmed to fix the problem on the tested
systems.

Signed-off-by: Alan Cox <[email protected]>
(Most of the hard work done by Stratus however)
Cc: Jens Axboe <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-10 09:57:20 -08:00
Alan Cox 6451956a24 [PATCH] ide: complete switch to pci_get
The reverse get function allows the final piece of the switching for the old
IDE layer

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-10 09:55:40 -08:00
Alan Cox af342e939d [PATCH] igafb: switch to pci_get API
Signed-off-by: Alan Cox <[email protected]>
Cc: "Antonino A. Daplas" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:29:05 -08:00
Alan Cox b148900996 [PATCH] ide: more conversion to pci_get APIs
This completes IDE except for one use which requires a new core PCI function
and will be polished up at the end

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:29:03 -08:00
Alan Cox 592ee3a5e5 [PATCH] termios: Enable new style termios ioctls on x86-64
This turns on the split input/output speed features and arbitary baud rate
handling for the x86-64 platform.  Nothing should break if you use existing
standard speeds.  If you use the new speed stuff then you may see some
drivers failing to report the speed changes properly in error cases.  This
will be worked on further.  For the working cases this all seems happy.
I'll post a test suite used to test the basic stuff as well.

Patches for i386 will follow when I get a moment but are basically the
same.  If people could patch/test-suite other architectures and submit them
that would be great.

Signed-off-by: Alan Cox <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:57 -08:00
Alan Cox 64bb6c5e1d [PATCH] tty_ioctl: use termios for the old structure and termios2 for the new
Having split out the user and kernel structures it turns out that some non
glibc C libraries pull their termios struct from the kernel headers
directly or indirectly.  This means we must keep "struct termios" as the
library sees it correct for the old ioctls.  Not a big problem just shuffle
the names and ifdef around a bit

[[email protected]: build fix]
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:57 -08:00
Alan Cox 606d099cdd [PATCH] tty: switch to ktermios
This is the grungy swap all the occurrences in the right places patch that
goes with the updates.  At this point we have the same functionality as
before (except that sgttyb() returns speeds not zero) and are ready to
begin turning new stuff on providing nobody reports lots of bugs

If you are a tty driver author converting an out of tree driver the only
impact should be termios->ktermios name changes for the speed/property
setting functions from your upper layers.

If you are implementing your own TCGETS function before then your driver
was broken already and its about to get a whole lot more painful for you so
please fix it 8)

Also fill in c_ispeed/ospeed on init for most devices, although the current
code will do this for you anyway but I'd like eventually to lose that extra
paranoia

[[email protected]: bluetooth fix]
[[email protected]: sclp fix]
[[email protected]: warning fix for tty3270]
[[email protected]: fix tty_ioctl powerpc build]
[[email protected]: uml: fix ->set_termios declaration]
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Martin Peschke <[email protected]>
Acked-by: Peter Oberparleiter <[email protected]>
Cc: Cornelia Huck <[email protected]>
Signed-off-by: Hugh Dickins <[email protected]>
Signed-off-by: Jeff Dike <[email protected]>
Cc: Paolo 'Blaisorblade' Giarrusso <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:57 -08:00
Alan Cox edc6afc549 [PATCH] tty: switch to ktermios and new framework
This is the core of the switch to the new framework.  I've split it from the
driver patches which are mostly search/replace and would encourage people to
give this one a good hard stare.

The references to BOTHER and ISHIFT are the termios values that must be
defined by a platform once it wants to turn on "new style" ioctl support.  The
code patches here ensure that providing

1. The termios overlays the ktermios in memory
2. The only new kernel only fields are c_ispeed/c_ospeed (or none)

the existing behaviour is retained.  This is true for the patches at this
point in time.

Future patches will define BOTHER, ISHIFT and enable newer termios structures
for each architecture, and once they are all done some of the ifdefs also
vanish.

[[email protected]: warning fix]
[[email protected]: IRDA fix]
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:56 -08:00
Alan Cox be90038a24 [PATCH] tty: preparatory structures for termios revamp
In order to sort out our struct termios and add proper speed control we need
to separate the kernel and user termios structures.  Glibc is fine but the
other libraries rely on the kernel exported struct termios and we need to
extend this without breaking the ABI/API

To do so we add a struct ktermios which is the kernel view of a termios
structure and overlaps the struct termios with extra fields on the end for
now.  (That limitation will go away in later patches).  Some platforms (eg
alpha) planned ahead and thus use the same struct for both, others did not.

This just adds the structures but does not use them, it seems a sensible
splitting point for bisect if there are compile failures (not that I expect
them)

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:56 -08:00
Alan Cox 1187ece3db [PATCH] mxser: PCI refcounts
Switch to pci ref counts for mxser when handling PCI devices.  Use
pci_get_device and drop the reference when we finish and unload.

Signed-off-by: Alan Cox <[email protected]>
Cc: Greg KH <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-08 08:28:52 -08:00
Alan Cox aaeab80bdb [PATCH] ide_scsi: allow it to be used for non CD only
Some people want to use ide_cd for CD-ROM but still dynamically load
ide-scsi for things like tape drives.  If you compile in the CD driver this
works out but if you want them modular you need an option to ensure that
whoever loads first the right things happen.

This replaces the original draft patch which leaked a scsi host reference

[[email protected]: add MODULE_PARM_DESC]
Signed-off-by: Alan Cox <[email protected]>
Cc: Bartlomiej Zolnierkiewicz <[email protected]>
Cc: Jens Axboe <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-07 08:39:43 -08:00
Alan Cox 40fcfc8722 [PATCH] HZ: 300Hz support
Fix two things.  Firstly the unit is "Hz" not "HZ".  Secondly it is useful
to have 300Hz support when doing multimedia work.  250 is fine for us in
Europe but the US frame rate is 30fps (29.99 blah for pedants).  300 gives
us a tick divisible by both 25 and 30, and for interlace work 50 and 60.
It's also giving similar performance to 250Hz.

I'd argue we should remove 250 and add 300, but that might be excess
disruption for now.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-07 08:39:36 -08:00
Alan Cox 23a1b2a787 [PATCH] via82cxxx: handle error condition properly
Jeff noted that the via driver returned an error to an unsigned int in a
a case where errors are not permitted. Move the check down earlier so we
can handle it properly. Not as pretty but it works this way and avoids
hacking up ugly stuff in the legacy ide core.

Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-07 08:39:32 -08:00
Alan Cox 074cec54d1 [PATCH] alpha: switch to pci_get API
Now that we have pci_get_bus_and_slot we can do the job correctly.  Note that
some of these calls intentionally leak a device - this is because the device
in question is always needed from boot to reboot.

Signed-off-by: Alan Cox <[email protected]>
Cc: Richard Henderson <[email protected]>
Cc: Ivan Kokshaysky <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-07 08:39:26 -08:00
Alan fd3367af3d [PATCH] libata: Incorrect timing computation for PIO5/6
The ata timing computation code makes some mistakes in PIO5/6 because a
check was not updated correctly when I put this support into the kernel.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-07 07:37:07 -05:00
Alan Cox 7cd8b6861e [PATCH] x86: remove last two pci_find offenders in the core code
Resending as I believe the discussion about them established they were
correct.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andi Kleen <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
2006-12-07 02:14:03 +01:00
Alan 8e42a5a220 [PATCH] pata_ali: small fixes
Switch to pci_get_bus_and_slot because some x86 systems seem to be
handing us a device with dev->bus = NULL. Also don't apply the isa fixup
to revision C6 and later of the chip.

Really we need to work out wtf is handing us pdev->bus = NULL, but firstly
and more importantly we need the drivers working.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-04 15:45:51 -05:00
Alan 75f609d2a9 [PATCH] pata_via: VIA 8251 bridged systems are now out and about
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-04 15:45:51 -05:00
Alan 2c5ff671ca [PATCH] trivial piix: swap bogus dot for comma space
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-04 15:45:51 -05:00
Alan 099156db55 [PATCH] pata_marvell: merge Mandriva patches
Correct and complete the Marvell PATA cable detection logic.

From: Arnaud Patard <[email protected]>
Signed-off-by: Arnaud Patard <[email protected]>
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:47:03 -05:00
Alan aff0df0593 [PATCH] pata_hpt3x3: suspend/resume support
Again split the chipset init away and call it both on resume and on setup

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:47:03 -05:00
Alan 62d64ae0ec [PATCH] pata : more drivers that need only standard suspend and resume
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:47:01 -05:00
Alan aa54ab1eff [PATCH] hpt36x: Suspend/resume support
Another chipset which needs some reconfiguration after a resume. All the
chip setup is moved to a new function called in both setup and resume.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:59 -05:00
Alan 627d2d3261 [PATCH] pata_via suspend/resume support
The major VIA issues were handled by the quirks update for resume quirks.
The ATA driver also has to do some work however when resuming from RAM.
Certain chips need the FIFO reconfiguring, and the 66MHz clock setup
updating.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:58 -05:00
Alan c304193a00 [PATCH] pata_amd: suspend/resume
Early AMD chips require FIFO and/or simplex flag clearing work on resume
from RAM. Most devices need no help

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:56 -05:00
Alan f535d53f3f [PATCH] pata_it821x: Suspend/Resume support
If you are using the noraid option then after a suspend/resume sequence
we need to reset the card back out of raid mode again.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:55 -05:00
Alan 38e0d56e67 [PATCH] pata_serverworks suspend/resume
The Serverworks chips need various fixups doing on a resume from RAM.
Conveniently the needed functions were already split out ready for re-use

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:53 -05:00
Alan 7f72a37914 [PATCH] pata_cmd64x: suspend/resume
On a resume of the CMD64x we must restore MRDMODE and latency if the BIOS
didn't get them right originally.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:52 -05:00
Alan 8501120f1d [PATCH] pata_cs5520: resume support
The CS5520 doesn't need much help to resume but we do need to restore
pcicfg which may have been reset to the BIOS default which is
sometimes incorrect.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:50 -05:00
Alan 30ced0f0d2 [PATCH] PATA libata: suspend/resume simple cases
This patch adds the suspend/resume callbacks for drivers which don't need
any additional help (beyond the pci resume quirk patch I posted earlier
anyway). Also bring version numbers back inline with master copies.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:49 -05:00
Alan 8550c1637b [PATCH] pata_sil680 suspend/resume
The SI680 can come back from s2ram with the clocks disabled (crash time)
or wrong (ugly as this can cause CRC errors, and in theory corruption).
On a resume we must put the clock back.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:46 -05:00
Alan ad4a42d287 [PATCH] pata_rz1000: Force readahead off on resume
The RZ1000 is a generic device except that it has a readahead fifo flaw
that corrupts. We force this off at init time but we want to be paranoid
and force it off at resume as well. I don't know of any actual hardware
that supports both RZ1000 and suspend to RAM but given its a disk muncher
better safe than sorry.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:46 -05:00
Alan 34d8dfb1e6 [PATCH] pata_ali: suspend/resume support
Various chipset functions must be reprogrammed on a resume from RAM,
without this things like ATAPI DMA stop working on resume with some
chipset variants. Split the chipset programming and init time method selection into two functions.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:44 -05:00
Alan d39ca896fb [PATCH] pata_jmicron: fix JMB368 support, add suspend/resume handling
This (and the pci resume quirk code) get the JMicron controllers to
resume properly. Without this patch the drive mapping changes when you
suspend/resume which is not good at all....

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:43 -05:00
Alan f7e37ba83f [PATCH] pata_cs5530: suspend/resume support
The 5530 needs various set up performing both at init time and resume
time. To keep the code clean the common setup code is moved into a new
function and called from both handlers.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:43 -05:00
Alan 54083f114e [PATCH] pata_hpt366 enablebits
More enablebits

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:46:41 -05:00
Alan Cox ada406c824 [PATCH] pdc202xx_old: Fix name clashes with PA-RISC
pdc_* functions are part of the global namespace for the PDC on PA-RISC
systems and this means our choice of pdc_ causes collisions between the
PDC globals and our static functions. Rename them to pdc202xx where they
are for both 2024x and 2026x.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:41:31 -05:00
Alan Cox 6919a0a6cf [PATCH] libata: Revamp blacklist support to allow multiple kinds of blacklisting flaws
Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:40:28 -05:00
Alan Cox 75742cb41e [PATCH] pata_marvell: Marvell 6101/6145 PATA driver
This is a legacy mode PATA driver for the 6101/45 and will also drive
the SATA ports 1 & 2 in legacy mode as well if desired. Tested and
confirmed working by users. The chip supports AHCI type behaviour for
SATA and has a more advanced PATA interface as well so this driver will
get it working but not get best performance for now.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:40:27 -05:00
Alan Cox fc085150b4 [PATCH] libata: add 40pin "short" cable support, honour drive side speed detection
[[email protected]: build fix]
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Frederik Deweerdt <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:40:25 -05:00
Alan Cox 2f27ce0362 [PATCH] pci_module_init-convertion-in-ata_genericc fix
Acked-by: Alan Cox <[email protected]> but please apply as follows to keep
revision id straight

Cc: Henrik Kretzschmar <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:40:25 -05:00
Alan Cox 7e45b0e5f6 [PATCH] libata: Winbond support
Winbond 83759A support in non-multichip mode (afaik nobody ever used
multichip mode anyway). The 83759 is not supported by this driver as it
is already handled elsewhere and doens't use the same interfaces.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-12-01 22:40:24 -05:00
Alan Cox 368c73d4f6 PCI: quirks: fix the festering mess that claims to handle IDE quirks
The number of permutations of crap we do is amazing and almost all of it
has the wrong effect in 2.6.

At the heart of this is the PCI SFF magic which says that compatibility
mode PCI IDE controllers use ISA IRQ routing and hard coded addresses
not the BAR values. The old quirks variously clears them, sets them,
adjusts them and then IDE ignores the result.

In order to drive all this garbage out and to do it portably we need to
handle the SFF rules directly and properly. Because we know the device
BAR 0-3 are not used in compatibility mode we load them with the values
that are implied (and indeed which many controllers actually
thoughtfully put there in this mode anyway).

This removes special cases in the IDE layer and libata which now knows
that bar 0/1/2/3 always contain the correct address. It means our
resource allocation map is accurate from boot, not "mostly accurate"
after ide is loaded, and it shoots lots of code. There is also lots more
code and magic constant knowledge to shoot once this is in and settled.

Been in my test tree for a while both with drivers/ide and with libata.
Wants some -mm shakedown in case I've missed something dumb or there are
corner cases lurking.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-12-01 14:36:56 -08:00
Alan Cox b5bf24b94c [PATCH] hpt37x: Check the enablebits
Helps for PATA but SATA bridged devices lie and always set all the bits
so will need the error handling fixes from Tejun.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-11-14 09:52:08 -05:00
Alan Cox c333526f48 [PATCH] JMB 368 PATA detection
The Jmicron JMB368 is PATA only so has the PATA on function zero.  Don't
therefore skip function zero on this device when probing

Signed-off-by: Alan Cox <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-28 11:30:55 -07:00
Alan Cox 47bcd3546d [SCSI] Switch fdomain to the pci_get API
Doesn't make the hardware hot pluggable but does ensure the driver won't
crash when another device is hot-unplugged at the wrong moment. Soon I
propose to deprecate pci_find_device() and some of its friends.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
2006-10-25 15:13:45 -07:00
Alan Cox a77b895001 intel fb: switch to pci_get API
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
2006-10-25 12:05:18 -07:00
Alan Cox 8eb166bf80 [PATCH] libata-sff: Allow for wacky systems
There are some Linux supported platforms that simply cannot hit the low
I/O addresses used by ATA legacy mode PCI mappings. These platforms have
a window for PCI space that is fixed by the board logic and doesn't
include the neccessary locations.

Provide a config option so that such platforms faced with a controller
that they cannot support simply error it and punt

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-10-21 15:18:59 -04:00
Alan Cox 12a87d36b3 [PATCH] ahci: readability tweak
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-10-21 15:18:59 -04:00
Alan Cox c7438d02b3 [MTD] MAPS: esb2rom: use hotplug safe interfaces
Fairly self explanatory.  Keep a reference initially, drop it when we free up
the driver resources.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2006-10-21 16:22:58 +01:00
Alan Cox a31baca58c [PATCH] irq updates: make eata_pio compile
Signed-off-by: Alan Cox <[email protected]>
Cc: James Bottomley <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-20 10:26:38 -07:00
Alan Cox 29f3eb6463 pci: Additional search functions
In order to finish converting to pci_get_* interfaces we need to add a couple
of bits of missing functionaility

pci_get_bus_and_slot() provides the equivalent to pci_find_slot()
(pci_get_slot is already taken as a name for something similar but not the
same)

pci_get_device_reverse() is the equivalent of pci_find_device_reverse but
refcounting

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-10-18 11:36:12 -07:00
Alan Cox 11f242f04c PCI: quirks: switch quirks code offender to use pci_get API
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-10-18 11:36:11 -07:00
Alan Cox 094ed76e89 pci: Stamp out pci_find_* usage in fakephp
pci_find is not hotplug safe, so it really doesn't want to be in an
actual hotplug driver either.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-10-18 11:36:11 -07:00
Alan Cox 7281c248f7 [ARM] switch to new pci_get_bus_and_slot API
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Russell King <[email protected]>
2006-10-17 17:19:59 +01:00
Alan Cox 3a42bb223f [PATCH] ide: add sanity checking to ide taskfile ioctl
Without this the user can feed in bogus values and get very bogus
results. Security impact is minimal as this ioctl isn't available to
unpriviledged processes anyway.

Reported to the l/k list and found with an auditing tool.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-16 08:27:54 -07:00
Alan Cox 9d90dafdb1 [PATCH] rio: fix array checking
Found by an analysis tool and reported to the list. Fix is simple enough

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-16 08:27:54 -07:00
Alan Cox 3719bc5c22 [PATCH] ide-generic: jmicron fix
Some people find their Jmicron pata port reports its disabled even
though it has devices on it and was boot probed. Fix this

(Candidate for 2.6.18.*, less so for 2.6.19 as we've got a proper
jmicron driver on the merge for that to replace ide-generic support)

Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-11 11:14:21 -07:00
Alan Cox 46767aeba5 [PATCH] libata: Don't believe bogus claims in the older PIO mode register
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2006-10-05 06:55:00 -04:00
Alan Cox a0a00cbf8a [PATCH] pata: teach ali about rev C8, keep pcmcia driver in sync
This fixes support for rev c8 of the ALi/ULi PATA, and keeps pcmcia in
sync so ide_cs and pata_pcmcia are interchangable, both are only changes
to constants.

Right now rev 0xC8 and higher don't work with libata but 0xc8 is in the
field now.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-04 08:15:15 -07:00
Alan Cox e491cbc8b2 V4L/DVB (4707): 4linux: complete conversion to hotplug safe PCI API
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2006-10-04 08:06:50 -03:00
Alan Cox b98fc9a34b [PATCH] sstfb: cleanups
- Remove 24/32bit unused support (the chips don't do 24/32bit anyway)
- Clean up printk obfuscation
- Clean up lispitus in the if(())()) stuff
- Minor tidying

No functionality changes, may have a crack at hardware scrolling based
on my X driver once the cleanups are in.

Signed-off-by: Alan Cox <[email protected]>
Cc: Antonino A. Daplas <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:04:13 -07:00
Alan Cox 652aa16291 [PATCH] IDE: more pci_find cleanup
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:04:09 -07:00
Alan Cox 913759ac90 [PATCH] ide: Fix crash on repeated reset
Michal Miroslaw reported a problem (bugzilla #7023) where a user initiated
reset while the IDE layer was already resetting the channel caused a crash,
and provided a rough fix.

This is a slightly cleaner version of the fix which tracks the reset state
and blocks further reset requests while a reset is in progress.

Note this is not a security issue - random end users can't access the
ioctl in question anyway.

Signed-off-by: Alan Cox <[email protected]>
Cc: Michal Miroslaw <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:04:08 -07:00
Alan Cox 5ac2469769 [PATCH] ide: backport piix fixes from libata into the legacy driver
There are three flags being set by default by the PIIX driver for speeds >
PIO 1, and one not being cleared properly on fallback to PIO0.  The most
important one is the prefetch/post write control which only works for ATA
and can do bad things with ATAPI.

The patch does its best to set the flags correctly for drivers/ide.  Its
not 100% perfect but its closer than the original.  100% perfect requires
proper IORDY handling but this isn't critical (and its not right in libata
either ..  yet)

Sergei Shtylyov <[email protected]> said:

> +					{ 0, 0 },
> +					{ 0, 0 },
> +					{ 1, 0 },
> +					{ 2, 1 },
> +					{ 2, 3 }, };
>
>  	pio = ide_get_best_pio_mode(drive, pio, 5, NULL);

    BTW, there's quite obvious error here which leads to access outside of
timings[] if somebody passes PIO mode 5 (or autotuning code finds out that
drive supports PIO mode 5). Could have been fixed while at it... Those drives
should be rare, though...

> +		}
>  		master_data = master_data | (timings[pio][0] << 12) | (timings[pio][1] << 8);
>  	}
>  	pci_write_config_word(dev, master_port, master_data);

    Actually, there's one more serious issue with piix_tune_drive() -- it
doesn't actually set the drive's own transfer mode.

Signed-off-by: Alan Cox <[email protected]>
Cc: Sergei Shtylyov <[email protected]>
Cc: Bartlomiej Zolnierkiewicz <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:04:08 -07:00
Alan Cox bbb3bbdb0f [PATCH] non-libata driver for Jmicron devices
Less functional than libata this just uses the merged interface provided for
dumb legacy OS's.  This is basically a bridge for people not yet ready to use
libata for some reason or another.

Port visibility is entirely dependant on the BIOS setup.

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:04:07 -07:00
Alan Cox 17a4506d0e [PATCH] ISDN warning fixes
Clean up warnings in drivers/isdn by using long not int for the values
where we pass void * and cast to integer types.  The code is ok (ok passing
the stuff this way isn't pretty but the code is valid).  In all the cases I
checked out the right thing happens anyway but this removes all the
warnings.

Signed-off-by: Alan Cox <[email protected]>
Cc: Jeff Garzik <[email protected]>
Acked-by: Karsten Keil <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-03 08:03:41 -07:00
Alan Cox 02a0fa676c [SCSI] Switch ips to pci_register from pci_module
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
2006-10-01 10:39:44 -05:00
Alan Cox 74ae322181 [PATCH] cardbus: switch to ref counting/hotplug safe API
Signed-off-by: Alan Cox <[email protected]>
Cc: Dominik Brodowski <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-01 00:39:23 -07:00