aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata (follow)
AgeCommit message (Collapse)AuthorFilesLines
2006-11-08[libata] sata_via: fix obvious typoJeff Garzik1-1/+1
Spotted by Martin Devera. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-11-02[libata] Add support for AHCI controllers of MCP67.Peer Chen1-0/+8
Signed-off-by: Peer Chen <pchen@nvidia.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-11-02[libata] Add support for PATA controllers of MCP67 to pata_amd.c.Peer Chen1-0/+2
Signed-off-by: Peer Chen <pchen@nvidia.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-11-01Revert "[PATCH] Add 0x7110 piix to ata_piix.c"Jeff Garzik1-1/+0
This reverts commit f833229c96c0bf53c05995e4bd58709d9e9edd67: According to reviewers and the lspci data provided in commit message itself, PCI ID 0x7110 should not have been added to ata_piix. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-11-01[libata] sata_nv: Add PCI IDsPeer Chen1-4/+8
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-11-01[PATCH] ahci: fix status register check in ahci_softresetTejun Heo1-2/+1
ahci_softreset() used to use ahci_tf_read() which reads D2H_REG area to check for the Status register. However, this area is zeroed on initialization and not set by initial signature FIS. Replace it with ahci_check_status(). This bug prevented CLO code from being activated whenever BSY and/or DRQ is set prior to softreset. This fix makes AHCI_FLAG_RESET_NEEDS_CLO flag redundant. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-31[PATCH] ata_piix: allow 01b MAP for both ICH6M and ICH7MTejun Heo1-32/+5
ICH7M was separated from ICH6M to allow undocumented MAP value 01b which was spotted on an ASUS notebook. However, there is also notebooks with MAP value 01b on ICH6M. This patch re-merges ICH6M and ICH7M entries and allows MAP value 01b for both. This problem has been reported and initial patch provided by Jonathan Dieter. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Jonathan Dieter <jdieter@gmail.com> Cc: Tom Deblauwe <tom.deblauwe@telenet.be> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-31[PATCH] libata: unexport ata_dev_revalidate()Tejun Heo2-1/+1
ata_dev_revalidate() isn't used outside of libata core. Unexport it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-31[PATCH] Add 0x7110 piix to ata_piix.cJens Axboe1-0/+1
Hi Jeff, I tested the PATA support on my old VAIO notebook, and it failed to find my piix device: 00:07.1 Class 0101: 8086:7111 (rev 01) (prog-if 80 [Master]) Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 Region 4: I/O ports at fc90 [size=16] This patch adds the pci id to ata_piix.c and things then work as expected. Signed-off-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-31[PATCH] sata_sis: fix flags handling for the secondary portTejun Heo1-11/+10
sis_init_one() modifies probe_ent->port_flags after allocating and initializing it using ata_pci_init_native_mode(). This makes port_flags for the secondary port (probe_ent->pinfo2->flags) go out of sync resulting in misdetection of device due to incorrectly initialized SCR access flag. This patch make probe_ent alloc/init happen after the final port flags value is determined. This is fragile but probe_ent and all the related mess are scheduled to go away soon for exactly this reason. We just need to hold everything together till then. This has been spotted and diagnosed and tested by Patrick McHardy. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Patric McHardy <kaber@trash.net> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-21[PATCH] libata-sff: Allow for wacky systemsAlan Cox1-0/+9
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 <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-21[PATCH] ahci: readability tweakAlan Cox1-1/+1
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-21[PATCH] ATA must depend on BLOCKAdrian Bunk1-0/+1
Fix the following compile error with CONFIG_ATA=y, CONFIG_BLOCK=n: ... CC drivers/ata/libata-scsi.o /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c: In function ‘ata_scsi_dev_config’: /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:791: warning: implicit declaration of function ‘blk_queue_max_sectors’ /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: ‘request_queue_t’ undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: (Each undeclared identifier is reported only once /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: for each function it appears in.) /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: ‘q’ undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:800: warning: implicit declaration of function ‘blk_queue_max_hw_segments’ /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c: In function ‘ata_scsi_slave_config’: /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:831: warning: implicit declaration of function ‘blk_queue_max_phys_segments’ make[3]: *** [drivers/ata/libata-scsi.o] Error 1 Bug report by Jesper Juhl. Signed-off-by: Adrian Bunk <bunk@stusta.de> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-21[PATCH] libata: use correct map_db values for ICH8Kristen Carlson Accardi1-2/+2
Use valid values for ICH8 map_db. With the old values, when the controller was in Native mode, and SCC was 1 (drives configured for IDE), any drive plugged into a slave port was not recognized. For Combined Mode (and SCC is still 1), 2 is a value value for MAP.map_value, and needs to be recognized. Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11Merge branch 'master' into upstream-fixesJeff Garzik3-4/+4
2006-10-11[PATCH] pata-qdi: fix le32 in data_xferPeter Korsgaard1-1/+1
The following tiny patch fixes a typo in qdi_data_xfer (le32 instead of le16). Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11[libata] sata_promise: add PCI IDJeff Garzik1-0/+1
Noticed by Steve Brown <sbrown25@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-11[PATCH] libata: return sense data in HDIO_DRIVE_CMD ioctlEran Tromer1-7/+39
Make the HDIO_DRIVE_CMD ioctl in libata (ATA command pass through) return a few ATA registers to userspace, following the same convention as the drivers/ide implementation of the same ioctl. This is needed to support ATA commands like CHECK POWER MODE, which return information in nsectors. This fixes "hdparm -C" on SATA drives. Forcing the sense data read via the cc flag causes spurious check conditions, so we filter these out (following the ATA command pass-through specification T10/04-262r7). Signed-off-by: Eran Tromer <eran@tromer.org> Acked-by: Tejun Heo <htejun@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-10[PATCH] trivial iomem annotations: sata_promiseAl Viro1-1/+1
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-10[PATCH] misc sata __iomem annotationsAl Viro2-3/+3
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-05Merge branch 'master' into upstream-fixesJeff Garzik11-37/+24
2006-10-05IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells11-37/+24
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
2006-10-05[PATCH] libata: Don't believe bogus claims in the older PIO mode registerAlan Cox1-1/+5
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-04[PATCH] pata: teach ali about rev C8, keep pcmcia driver in syncAlan Cox2-3/+5
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 <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-04Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-devLinus Torvalds50-415/+351
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: [libata] pata_artop: kill gcc warning [PATCH] libata: turn off NCQ if queue depth is adjusted to 1 [PATCH] libata: cosmetic changes to constants [libata] DocBook minor updates, fixes [libata] PCI ID table cleanup in various drivers [libata] Print out Status register, if a BSY-sleep takes too long [libata] init probe_ent->private_data in a common location [libata] minor PCI IDE probe fixes and cleanups [libata] Use new PCI_VDEVICE() macro to dramatically shorten ID lists [PATCH] Fix reference of uninitialised memory in ata_device_add()
2006-10-03[PATCH] pata_hpt366: fix typoOGAWA Hirofumi1-1/+1
switch(reg1 & 0x700) { case 5: info_hpt366.private_data = &hpt366_40; break; case 9: info_hpt366.private_data = &hpt366_25; break; default: info_hpt366.private_data = &hpt366_33; break; } The above runs always default part. It should be "(reg1 & 0x700) >> 8". Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-01[libata] pata_artop: kill gcc warningJeff Garzik1-1/+4
gcc complains thusly: drivers/ata/pata_artop.c: In function ‘artop_init_one’: drivers/ata/pata_artop.c:429: warning: ‘info’ may be used uninitialized in this function While this warning is indeed bogus, even with improved static analysis and value range propagation, gcc will probably never be able to detect this. Add a BUG_ON() to trap invalid driver_data entries in the PCI table. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-30[PATCH] libata: turn off NCQ if queue depth is adjusted to 1Tejun Heo1-1/+11
Turn off NCQ if queue depth is adjusted to 1. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-29[libata] DocBook minor updates, fixesJeff Garzik2-2/+2
Update copyright year, fix minor stuff 'make xmldocs' complains about. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-28[libata] PCI ID table cleanup in various driversJeff Garzik42-235/+215
* Use PCI_VDEVICE() macro * const-ify pci_device_id table * standardize list terminator as "{ }" * convert spaces to tab in pci_driver struct (Alan-ism) * various minor whitespace cleanups Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-28[libata] Print out Status register, if a BSY-sleep takes too longJeff Garzik1-2/+4
We have the info stored in an ata_busy_sleep() variable, so might as well print it, and provide some additional diagnostic info. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-28[libata] init probe_ent->private_data in a common locationJeff Garzik2-2/+3
Don't write the same code twice, in two different functions, when they both call the same initialization function, with the same private_data pointer info. Also, note a bug found with a FIXME. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-28[libata] minor PCI IDE probe fixes and cleanupsJeff Garzik1-20/+20
* Replace needless 'n_ports > 2' check with a simple BUG_ON(). No existing driver ever wants more than 2 ports. * Delete ATA_FLAG_NO_LEGACY check. No current driver uses ata_pci_init_one(), that sets this flag. * Move PCI_CLASS_PROG register read below pci_enable_device() * Handle ata_device_add() failure Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-27[libata] Use new PCI_VDEVICE() macro to dramatically shorten ID listsJeff Garzik9-150/+91
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-27[PATCH] Fix reference of uninitialised memory in ata_device_add()Dave Jones1-2/+1
ata_device_add fails, calls ata_host_remove with pointers to unitialized memory. Signed-off-by: Dave Jones <davej@redhat.com> Cc: Jeff Garzik <jeff@garzik.org> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-27[libata] Don't use old-EH ->eng_timeout() hook when not neededJeff Garzik34-74/+54
The PATA driver set got converted to the new error handling setup, but the old hooks were accidentally left in place. Now, removed. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-27[libata] sata_mv: fix oops by filling in missing hookJeff Garzik1-0/+1
Only two of three ata_port_operations structs had a ->data_xfer member, which led to, uh, a lack of data xfer. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[libata] One more s/15/ATA_SECONDARY_IRQ/ substitutionJeff Garzik1-1/+1
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[libata] pata_serverworks: fill in ->irq_clear hookJeff Garzik1-0/+4
Required by libata, as it is called unconditionally. Fixes an obvious oops. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[PATCH] pata_serverworks: correct PCI ID in cable detection tableAlan Cox1-2/+2
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[PATCH] libata-sff: use our IRQ definesAlan Cox1-2/+2
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[PATCH] libata-eh: Remove layering violation and duplication when handling absent portsAlan Cox17-108/+67
This removes the layering violation where drivers have to fiddle directly with EH flags. Instead we now recognize -ENOENT means "no port" and do the handling in the core code. This also removes an instance of a call to disable the port, and an identical printk from each driver doing this. Even better - future rule changes will be in one place only. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[PATCH] libata: tighten rules for legacy dependanciesAlan Cox1-1/+2
The legacy and QDI drivers are ISA/VLB bus [we don't have a VLB define but ISA will do nicely]. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-26[PATCH] libata: refuse to register IRQless portsAlan Cox1-0/+5
We don't currently support pure polled operation so when we meet a BIOS which forgot to assign an IRQ to a PCI device it all goes a little pear shaped. Trap this case properly. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-25[libata] Fix oops introduced in non-uniform port handling fixJeff Garzik4-12/+13
Noticed by several people. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-25[PATCH] ata-piix: fixes kerneldoc errorHenne1-1/+1
Fixes an error in kerneldoc of ata_piix.c. Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-24[PATCH] pata_pdc2027x iomem annotationsAl Viro1-3/+3
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-24[PATCH] libata won't build on SUN4Al Viro1-0/+1
marked as such... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-24[PATCH] libata won't build on m68k and m32rAl Viro1-0/+1
no ioread*(), for one thing Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-24Merge branch 'master' into upstreamJeff Garzik2-2/+1