summaryrefslogtreecommitdiff
path: root/drivers/ata
AgeCommit message (Collapse)Author
2011-10-14pata_rdc: parallel scanning needs an extra lockingBartlomiej Zolnierkiewicz
This is similar change as commit 60c3be3 ("ata_piix: parallel scanning on PATA needs an extra locking") for ata_piix host driver. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_via: add via_fixup()Bartlomiej Zolnierkiewicz
* Fix via_init_one() to enable clock on 66 MHz devices (bug introduced in commit 460f531 "pata_via: store UDMA masks in via_isa_bridges table"). * Factor out common code from via_[re]init_one() to via_fixup(). Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14libata: ata_timing_compute() fixupBartlomiej Zolnierkiewicz
XFER_SW_DMA_0 mode should be excluded from the extended cycle timing computations. Acked-by: Alan Cox <alan@linux.intel.com> Noticed-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_scc: add proper cable detection methodBartlomiej Zolnierkiewicz
Use standard ata_cable_80wire() method for the cable detection, as a bonus this allows us to use the default ->prereset method. Acked-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp> Acked-by: Akira Iguchi <akira2.iguchi@toshiba.co.jp> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_arasan_cf: remove bogus to_platform_device() callsSergei Shtylyov
The suspend()/resume() methods already get the right 'struct device' to get the driver data from -- there's no need to get to the 'struct platform_device' that contains that 'struct device' just to call dev_get_drvdata()... Acked-by: Viresh Kumar <viresh.kumar@st.com> Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_atiixp: add proper ->prereset methodBartlomiej Zolnierkiewicz
Fixes PCI access before PCI resources are allocated. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_serverworks: add serverworks_fixup()Bartlomiej Zolnierkiewicz
Factor out common code from serverworks_[re]init_one() to serverworks_fixup(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_serverworks: cleanup cable detectionBartlomiej Zolnierkiewicz
Merge identical cable routines for Dell and Sun systems into common oem_cable() one. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_serverworks: use standard cable detection methodsBartlomiej Zolnierkiewicz
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_cmd64x: documentation fixBartlomiej Zolnierkiewicz
Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_ali: fix "Satelite" typoBartlomiej Zolnierkiewicz
Cosmetic fix but thanks to it pata_ali's DMI table now matches alim15x3's one. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_cs5535: no need to program PIO0 timings during device initBartlomiej Zolnierkiewicz
Core libata code takes care of it nowadays. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_cmd64x: add cmd64x_fixup()Bartlomiej Zolnierkiewicz
Factor out common code from cmd64x_[re]init_one() to cmd64x_fixup(). Remove stale comment and fix a minor CodingStyle issue while at it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_hpt366: add hpt36x_find_mode() helperBartlomiej Zolnierkiewicz
Factor out code for finding the register programming information from hpt366_set_mode() to hpt36x_find_mode(). This makes pata_hpt366 driver more similar to pata_{37x,3x2n} ones. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_artop: unify ->prereset methodsBartlomiej Zolnierkiewicz
* Unify ->prereset methods for ATP850 and ATP86x[R] chipsets. * Fix ->prereset documentation while at it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_sc1200: do not use c99 style commentsBartlomiej Zolnierkiewicz
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_at91: call clk_put() on ata_host_activate() failureSergei Shtylyov
pata_at91_probe() forgets to call clk_put() iff ata_host_activate() fails... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14libata: reduce ata_pci_[sff,bmdma]_init_one() sizeBartlomiej Zolnierkiewicz
Turn both helpers (which are used only during LLDs initialization time and thus are not performance sensitive) into wrappers around the new ata_pci_init_one() function, this cuts 20 LOC and saves ~1.1k of the output code size (x86-64): text data bss dec hex filename 21392 0 19 21411 53a3 drivers/ata/libata-sff.o.before 20256 0 19 20275 4f33 drivers/ata/libata-sff.o.after Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_cs5535: fix DRV_NAMEBartlomiej Zolnierkiewicz
.. and also a module description while at it. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_sc1200: fix DRV_NAMEBartlomiej Zolnierkiewicz
Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_sil680: minor CodingStyle fixupsBartlomiej Zolnierkiewicz
Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_sil680: constify tablesBartlomiej Zolnierkiewicz
Constify tables in sil680_set_[pio,dma]mode(). Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-14pata_sil680: documentation fixesBartlomiej Zolnierkiewicz
Fix documentation for sil680_sel[reg,dev]() and sil680_set_[pio,dma]mode(). Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08ata: irq: Remove IRQF_DISABLEDYong Zhang
Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled], We run all interrupt handlers with interrupts disabled and we even check and yell when an interrupt handler returns with interrupts enabled (see commit [b738a50a: genirq: Warn when handler enables interrupts]). So now this flag is a NOOP and can be removed. Signed-off-by: Yong Zhang <yong.zhang0@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08ata: Make pata_of_platform.c compile again and work on non-PPC platformsPawel Moll
This patch adds missing #includes, makes the driver selectable on non-PPC OF-enabled platforms and fixes property value accesses to be correct in Little Endian system. Cc: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Pawel Moll <pawel.moll@arm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08pata_sis: code style cleanups for consistencyDan McGee
Remove a lot of ' ' (double spaces) as well as ensuring use of tabs vs. spaces is appropriate and consistent. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08pata_sis: mark most const data static as wellDan McGee
This pushes timing and other values into preinitialized read-only data sections rather than being inlined into the code. None of these functions are called more than a handful of times, so reducing code size makes sense. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08pata_sis: enable MWDMA for UDMA 133 chipsetDan McGee
This ports the timing values over from the old IDE driver into the new PATA-based one. The comment was lying when it stated the old driver was not MWDMA capable. Boot tested on actual hardware using 'libata.force=mwdma2'. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08pata_sis: add mode_filter method for certain sis5513 chipsetsDan McGee
This mirrors a very old commit (3160d5416f39da9d9, "sis5513: add ->udma_filter method for chipset_family >= ATA_133") to the old sis5513 IDE driver that prevents certain setups from working. UDMA6 (ATA/133) is not supported on some chipsets and we need to ensure this mode is not chosen even if a connected drive supports it. Port this old patch forward to the new PATA driver to ensure UDMA5 is the highest mode used if that is what is supported. Kernel bugzilla #41582. Reviewed-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08pata_sis: extract a sis_port_base() methodDan McGee
This is similar to the existing sis_old_port_base() method. We do this same calculation and logic in multiple places (with one more to come in a future patch), so extracting it into a method makes sense. Reviewed-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08[libata] ahci_platform: Add the board_ids and pi refer to different featuresRichard Zhu
On imx53 AHCI, soft reset fails with IPMS set when PMP is enabled but SATA HDD/ODD is connected to SATA port, do soft reset again to port 0. So the 'ahci_pmp_retry_srst_ops' is required when imx53 ahci is present. Signed-off-by: Richard Zhu <richard.zhu@linaro.org> Acked-by: Eric Miao <eric.miao@linaro.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08libata-eh: ata_eh_followup_srst_needed() does not need 'classes' parameterSergei Shtylyov
... since it does not use it. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08sata_sil24: Use constJoe Perches
Reduce data by using const. $ size drivers/ata/sata_sil24.o* text data bss dec hex filename 12764 614 2688 16066 3ec2 drivers/ata/sata_sil24.o.new 12320 1058 2688 16066 3ec2 drivers/ata/sata_sil24.o.old Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08ata_piix: make DVD Drive recognisable on systems with Intel Sandybridge ↵Ming Lei
chipsets(v2) This quirk patch fixes one kind of bug inside some Intel Sandybridge chipsets, see reports from https://bugzilla.kernel.org/show_bug.cgi?id=40592. Many guys also have reported the problem before: https://bugs.launchpad.net/bugs/737388 https://bugs.launchpad.net/bugs/794642 https://bugs.launchpad.net/bugs/782389 ...... With help from Tejun, the problem is found to be caused by 32bit PIO mode, so introduce the quirk patch to disable 32bit PIO on SATA piix for some Sandybridge CPT chipsets. Seth also tested the patch on all five affected chipsets (pci device ID: 0x1c00, 0x1c01, 0x1d00, 0x1e00, 0x1e01), and found the patch does fix the problem. Tested-by: Heasley, Seth <seth.heasley@intel.com> Cc: Alan Cox <alan@linux.intel.com> Signed-off-by: Ming Lei <ming.lei@canonical.com> Acked-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Cc: stable@kernel.org
2011-10-08libata: clear PIO pad areaTejun Heo
ata_sff_data_xfer[32]() use pad area if the transfer size isn't multiple of transfer size; however, this area wasn't cleared and garbage data in pad area could be transferred to the device. Make sure the pad area is cleared. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Lei Ming <tom.leiming@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08sata_mv: use {platform|pci}_get_drvdata()Sergei Shtylyov
The driver uses dev_get_drvdata() to get to the driver data for the platform and PCI devices, while the corresponding wrappers exists for them -- in one case it even declares an otherwise unneeded variable to do that. Switch to using the {platform|pci}_get_drvdata() instead. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-10-08sata_mv: release clock on ata_host_activate() failureSergei Shtylyov
mv_platfrom_probe() forgets to call clk_disable() and clk_put() iff ata_host_activate() fails... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-08-19drivers/ata/sata_dwc_460ex.c: add missing kfreeJulia Lawall
Currently, error handling code in this function calls the function sata_dwc_port_stop, but this function has essentially no effect if hsdevp has not been stored in ap, which is the case throughout this function. The only effect is to print a debugging message including ap->print_id. The code is rewritten to not call sata_dwc_port_stop, but instead to jump to a local label that prints the original error message and the print_id information. In the case where hsdevp has been already allocated (but not yet stored in ap), this value is freed as well. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @exists@ local idexpression x; statement S,S1; expression E; identifier fl; expression *ptr != NULL; @@ x = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...kfree(x)...+> } when any when != true x == NULL x->fl ...> ( if (x == NULL) S1 | if (...) { ... when != x when forall ( return \(0\|<+...x...+>\|ptr\); | * return ...; ) } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-08-19ata: Add iMX pata supportArnaud Patard (Rtp)
Add basic support for pata on iMX. It has been tested only on imx51. SDMA support will probably be added later so this version supports only PIO. v2: - enable only when needed IORDY - use dev_get_drvdata v3: - add missing clk_put() calls - use platform_get_irq() - fix resume code to avoid disabling IORDY on resume v4: - Remove EXPERIMENTAL and switch to depends on ARCH_MXC - Use devm_kzalloc() - make clock a must-have - Use only 1 ioremap Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-08-19pata_via: disable ATAPI DMA on AVERATEC 3200Tejun Heo
On AVERATEC 3200, pata_via causes memory corruption with ATAPI DMA, which often leads to random kernel oops. The cause of the problem is not well understood yet and only small subset of machines using the controller seem affected. Blacklist ATAPI DMA on the machine. Signed-off-by: Tejun Heo <tj@kernel.org> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=11426 Reported-and-tested-by: Jim Bray <jimsantelmo@gmail.com> Cc: Alan Cox <alan@linux.intel.com> Cc: stable@kernel.org Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-08-19[libata] sata_sil: fix used-uninit warningJeff Garzik
Init 'serror' to silence the following warning: drivers/ata/sata_sil.c: In function ‘sil_interrupt’: drivers/ata/sata_sil.c:453:14: warning: ‘serror’ may be used uninitialized in this function [-Wuninitialized] This is not a 'can never happen' but is nonetheless extremely unlikely. The easiest and cleanest warning fix is simply to init the var, rather than worry about marking the var uninit-ok. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2011-08-03Merge branch 'release' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (28 commits) ACPI: delete stale reference in kernel-parameters.txt ACPI: add missing _OSI strings ACPI: remove NID_INVAL thermal: make THERMAL_HWMON implementation fully internal thermal: split hwmon lookup to a separate function thermal: hide CONFIG_THERMAL_HWMON ACPI print OSI(Linux) warning only once ACPI: DMI workaround for Asus A8N-SLI Premium and Asus A8N-SLI DELUX ACPI / Battery: propagate sysfs error in acpi_battery_add() ACPI / Battery: avoid acpi_battery_add() use-after-free ACPI: introduce "acpi_rsdp=" parameter for kdump ACPI: constify ops structs ACPI: fix CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS ACPI: fix 80 char overflow ACPI / Battery: Resolve the race condition in the sysfs_remove_battery() ACPI / Battery: Add the check before refresh sysfs in the battery_notify() ACPI / Battery: Add the hibernation process in the battery_notify() ACPI / Battery: Rename acpi_battery_quirks2 with acpi_battery_quirks ACPI / Battery: Change 16-bit signed negative battery current into correct value ACPI / Battery: Add the power unit macro ...
2011-07-26drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possibleRakib Mullick
Signed-off-by: Rakib Mullick <rakib.mullick@gmail.com> Cc: Jeff Garzik <jgarzik@pobox.com> Cc: David Airlie <airlied@linux.ie> Cc: Tejun Heo <tj@kernel.org> Cc: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-07-23ata: PATA_ARASAN_CF depends on DMADEVICESRandy Dunlap
Fix kconfig unmet dependency warning: warning: (PATA_ARASAN_CF && VIDEO_TIMBERDALE && SND_SOC_SH4_SIU) selects DMA_ENGINE which has unmet direct dependencies (DMADEVICES) Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Viresh Kumar <viresh.kumar@st.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23ata: remove unnecessary codeGreg Dietsche
Compile tested. remove unnecessary code that matches this coccinelle pattern if (...) return ret; return ret; Signed-off-by: Greg Dietsche <Gregory.Dietsche@cuw.edu> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23[libata] Prevent warning during PMP error recoveryGwendal Grignou
Cleanup sff_pio_task_link when a command is cancel while the pio_task thread has been scheduled. Signed-off-by: Gwendal Grignou <gwendal@google.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23ahci: RAID-mode SATA patch for Intel Panther Point DeviceIDsSeth Heasley
This patch adds an additional SATA RAID controller DeviceID for the Intel Panther Point PCH. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23pata_it821x: Fix RAID type display, by adding missing commaJean Delvare
The missing comma causes the wrong RAID type to be displayed. Introduced by commit 963e4975c6f93c148ca809d986d412201df9af89 three years ago, odd that nobody noticed before. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Jeff Garzik <jgarzik@pobox.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23sata_dwc_460ex: fix error pathVasiliy Kulikov
Fixed hsdev memleak on sata_dwc_probe() error. As dma_dwc_exit() can be called multiple times without sata_dma_regs and irq_dma changes, it might lead to double free on sequential dma_dwc_exit() calls. So, zero these fields after free calls. Signed-off-by: Vasiliy Kulikov <segoon@openwall.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-07-23ahci: Enable SB600 64bit DMA on Asus M3AMark Nelson
Like e65cc194f7628ecaa02462f22f42fb09b50dcd49 this patch enables 64bit DMA for the AHCI SATA controller of a board that has the SB600 southbridge. In this case though we're enabling 64bit DMA for the Asus M3A motherboard. It is a new enough board that all of the BIOS releases since the initial release (0301 from 2007-10-22) work correctly with 64bit DMA enabled. Signed-off-by: Mark Nelson <mdnelson8@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>