- 21 12月, 2006 7 次提交
-
-
由 Jeff Garzik 提交于
Now that iomap merge is close to reality, and since the warnings and issue have been around so long, we don't need a reminder on every build that libata needs to be converted over to iomap. Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
libata depended on SCSI command to have the correct length when tranlating it into an ATA command. This generally worked for commands issued by SCSI HLD but user could issue arbitrary broken command using sg interface. Also, when building ATAPI command, full command size was always copied. Because some ATAPI devices needs bytes after CDB cleared, if upper layer doesn't clear bytes after CDB, such devices will malfunction. This necessiated recent clear-garbage-after-CDB fix in sg interfaces. However, scsi_execute() isn't fixed yet and HL-DT-ST DVD-RAM GSA-H30N malfunctions on initialization commands issued from SCSI. This patch makes xlat functions always consider SCSI cmd_len. Each translation function checks for proper cmd_len and ATAPI translaation clears bytes after CDB. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Douglas Gilbert <dougg@torque.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
xlat function will be updated to consider qc->scsicmd->cmd_len and many xlat functions deference qc->scsicmd already. It doesn't make sense to pass qc->scsicmd->cmnd as @cdb separately. Kill the argument. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
Variable names in xlat functions are quite confusing now. 'scsicmd' is used for CDB while qc->scsicmd points to struct scsi_cmnd while 'cmd' is used for struct scsi_cmnd. This patch cleans up variable names in xlat functions such that 'scmd' is used for struct scsi_cmnd and 'cdb' for CDB. Also, 'scmd' local variable is added if qc->scsicmd is used multiple times. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Peer Chen 提交于
The content of memory map io of BAR5 have been change from MCP65 then sata_nv can't work fine on the platform based on MCP65 and MCP67, so move their IDs from sata_nv.c to ahci.c. Signed-off-by: NPeer Chen <pchen@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Andrew Morton 提交于
Make this array static so it doesn't have to be built at runtime. Cc: Alan Cox <alan@redhat.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Andrew Morton 提交于
side-effectful-expression-within-assert give me the creeps. Cc: Alan Cox <alan@redhat.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 16 12月, 2006 10 次提交
-
-
由 Alan 提交于
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: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan 提交于
> 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: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ira Snyder 提交于
This removes the extra definition of the .error_handler member in the pata_rz1000 driver. Signed-off-by: NIra W. Snyder <kernel@irasnyder.com> Cc: Jeff Garzik <jeff@garzik.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Akinobu Mita 提交于
The return value of platform_device_register_simple() should be checked by IS_ERR(). Cc: Jeff Garzik <jgarzik@pobox.com> Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
Do not mangle with HOST_CAP while resetting controller. The code is there for a historical reason. The mangling breaks controller feature detection and 0 PORTS_IMPL workaround code. This problem was spotted by Manoj Kasichainula. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Manoj Kasichainula <manoj@io.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
Calling sg_init_one() with NULL buf causes oops on certain configurations. Don't initialize sg in ata_exec_internal() if DMA_NONE and make the function complain if @buf is NULL when dma_dir isn't DMA_NONE. While at it, fix comment. The problem is discovered and initial patch was submitted by Arnd Bergmann. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Jeff Garzik 提交于
Current Broadcom/Serverworks SATA boards (including Apple K2 SATA) have problems with ATAPI DMA, so it is disabled. ATAPI PIO, ATA PIO, and ATA DMA continue to work just fine. Acked-by: NAnantha Subramanyam <ananth@broadcom.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Jeff Garzik 提交于
We are inside spin_lock_irqsave(). quoth akpm's debug facility: [ 231.948000] SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB) [ 232.232000] ata1.00: configured for UDMA/33 [ 232.404000] WARNING (1) at arch/i386/mm/highmem.c:47 kmap_atomic() [ 232.404000] [<c01162e6>] kmap_atomic+0xa9/0x1ab [ 232.404000] [<c0242c81>] ata_scsi_rbuf_get+0x1c/0x30 [ 232.404000] [<c0242caf>] ata_scsi_rbuf_fill+0x1a/0x87 [ 232.404000] [<c0243ab2>] ata_scsiop_mode_sense+0x0/0x309 [ 232.404000] [<c01729d5>] end_bio_bh_io_sync+0x0/0x37 [ 232.404000] [<c02311c6>] scsi_done+0x0/0x16 [ 232.404000] [<c02311c6>] scsi_done+0x0/0x16 [ 232.404000] [<c0242dcc>] ata_scsi_simulate+0xb0/0x13f [...] Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
piix_init_one() allocates host private data which should be freed by piix_host_stop(). ich_pata_ops wasn't converted to piix_host_stop() while merging, leaking 4 bytes on driver detach. Fix it. This was spotted using Kmemleak by Catalin Marinas. Signed-off-by: NTejun Heo <htejun@gmail.com> Cc: Catalin Marinas <catalin.marinas@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Jason Gaston 提交于
This updated patch adds the Intel ICH9 IDE mode SATA controller DID's. Signed-off-by: NJason Gaston <jason.d.gaston@intel.com> Acked-by: NTejun Heo <htejun@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 14 12月, 2006 1 次提交
-
-
由 Robert P. J. Day 提交于
All kcalloc() calls of the form "kcalloc(1,...)" are converted to the equivalent kzalloc() calls, and a few kcalloc() calls with the incorrect ordering of the first two arguments are fixed. Signed-off-by: NRobert P. J. Day <rpjday@mindspring.com> Cc: Jeff Garzik <jeff@garzik.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Cc: Adam Belay <ambx1@neo.rr.com> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Greg KH <greg@kroah.com> Cc: Mark Fasheh <mark.fasheh@oracle.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: Neil Brown <neilb@suse.de> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 07 12月, 2006 4 次提交
-
-
由 Alan 提交于
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: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Mikael Pettersson 提交于
This patch converts sata_promise to use new-style libata error handling on Promise SATA chips, for both SATA and PATA ports. * ATA_FLAG_SRST is no longer set * ->phy_reset is no longer set as it is unused when ->error_handler is present, and pdc_sata_phy_reset() has been removed * pdc_freeze() masks interrupts and halts DMA via PDC_CTLSTAT * pdc_thaw() clears interrupt status in PDC_INT_SEQMASK and then unmasks interrupts in PDC_CTLSTAT * pdc_error_handler() reinitialises the port if it isn't frozen, and then invokes ata_do_eh() with standard {s,}ata reset methods * pdc_post_internal_cmd() resets the port in case of errors * the PATA-only 20619 chip continues to use old-style EH: not by necessity but simply because I don't have documentation for it or any way to test it Since the previous version pdc_error_handler() has been rewritten and it now mostly matches ahci and sata_sil24. In case anyone wonders: the call to pdc_reset_port() isn't a heavy-duty reset, it's a light-weight reset to quickly put a port into a sane state. The discussion about the PCI flushes in pdc_freeze() and pdc_thaw() seemed to end with a consensus that the flushes are OK and not obviously redundant, so I decided to keep them for now. This patch was prepared against 2.6.19-git7, but it also applies to 2.6.19 + libata #upstream, with or without the revised sata_promise cleanup patch I recently submitted. This patch does conflict with the #promise-sata-pata patch: this patch removes pdc_sata_phy_reset() while #promise-sata-pata modifies it. The correct patch resolution is to remove the function. Tested on 2037x and 2057x chips, with PATA patches on top and disks on both SATA and PATA ports. Signed-off-by: NMikael Pettersson <mikpe@it.uu.se> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Albert Lee 提交于
Even if ATA_FLAG_PIO_POLLING is set, libata uses irq pio for the ATA_PROT_NODATA protocol. This patch let ATA_FLAG_PIO_POLLING use polling pio for the ATA_PROT_NODATA protocol. Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Mikael Pettersson 提交于
This patch performs two simple cleanups of sata_promise. * Remove board_20771 and map device id 0x3577 to board_2057x. After the recent corrections for SATAII chips, board_20771 and board_2057x were equivalent in the driver. * Remove hp->hotplug_offset and use hp->flags & PDC_FLAG_GEN_II to compute hotplug_offset in pdc_host_init(). hp->hotplug_offset was used to distinguish 1st and 2nd generation chips in one particular case, but now we have that information in a more general form in hp->flags, so hp->hotplug_offset is redundant. Changes since previous submission: rebased on libata-dev #upstream, cleaned up hotplug_offset computation based on Tejun's comments, expanded hotplug_offset removal rationale. This patch does not depend on the pending new EH conversion patch. Signed-off-by: NMikael Pettersson <mikpe@it.uu.se> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 05 12月, 2006 7 次提交
-
-
由 Dominik Brodowski 提交于
struct pcmcia_device *p_dev->conf.ConfigBase and .Present are set in almost all PCMICA driver right at the beginning, using the same calls but slightly different implementations. Unfiy this in the PCMCIA core. Includes a small bugfix ("drivers/net/pcmcia/xirc2ps_cs.c: remove unused label") from and Signed-off-by Adrian Bunk <bunk@stusta.de> Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
-
由 Dominik Brodowski 提交于
As we read out the manufactor and card_id from the PCMCIA device in the PCMCIA core, and device drivers can access those reliably in struct pcmcia_device's fields manf_id and card_id, remove additional (and partly broken) manf_id and card_id detection logic from PCMCIA device drivers. Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
-
由 Marcin Juszkiewicz 提交于
Microdrive reported by one of OpenEmbedded developers. product info: "WEIDA", "TWTTI", "" manfid: 0x000a, 0x0000 function: 4 (fixed disk) (equivalent update to pata_pcmcia.c by Dominik Brodowski) Signed-off-by: NMarcin Juszkiewicz <openembedded@hrw.one.pl> Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
-
由 Matt Reimer 提交于
Add an ID entry for: product info: "TRANSCEND", "TS1GCF80", "", "" manfid: 0x000a, 0x0000 function: 4 (fixed disk) Signed-off-by: NMatt Reimer <mreimer@vpop.net> Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
-
由 Alan 提交于
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: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Alan 提交于
Signed-off-by: NAlan Cox <alan@redhat.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 03 12月, 2006 11 次提交
-
-
由 Mikael Pettersson 提交于
This patch adds code to fix up the PHYMODE4 "align timing" register value on second-generation Promise SATA chips. Failure to correct this value on non-x86 machines makes drive detection prone to failure due to timeouts. (I've observed about 50% detection failure rates on SPARC64.) The HW boots with a bad value in this register, but on x86 machines the Promise BIOS corrects it to the value recommended by the manual, so most people have been unaffected by this issue. After developing the patch I checked Promise's SATAII driver, and discovered that it also corrects PHYMODE4 just like this patch does. This patch depends on the sata_promise SATAII updates patch I sent recently. Signed-off-by: NMikael Pettersson <mikpe@it.uu.se> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
libata switched to IRQ-driven IDENTIFY when IRQ-driven PIO was introduced. This has caused a lot of problems including device misdetection and phantom device. ATA_FLAG_DETECT_POLLING was added recently to selectively use polling IDENTIFY on problemetic drivers but many controllers and devices are affected by this problem and trying to adding ATA_FLAG_DETECT_POLLING for each such case is diffcult and not very rewarding. This patch makes libata always use polling IDENTIFY. This is consistent with libata's original behavior and drivers/ide's behavior. Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Jeff Garzik 提交于
Noticed by Tejun and others. Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Tejun Heo 提交于
ahci_init_controller() calls ahci_deinit_port() to make sure the controller is stopped before initializing the controller. In turn, ahci_deinit_port() invokes ahci_power_down() to power down the port. If the controller supports slumber mode, the link is put into it. Unfortunately, some devices don't implement link powersaving mode properly and show erratic behavior after link is put into slumber mode. For example, HL-DT-ST DVD-RAM GSA-H30N completely locks up on slumber transition and can only be recovered with the *REAL* hard reset - power removal and reapply. Note that this makes the first probing reset different from all others. If the above dvd-ram is hotplugged after ahci is initialized, no problem occurs because ahci is already fully initialized with phy powered up. So, this might also be the reason for other weird AHCI initial probing abnormalities. This patch moves power up/down out of port init/deinit and call them only when needed. Power down is now called only when suspending. As system suspend usually involves powering down 12v for storage devices, this shouldn't cause problem even if the attached device doesn't support slumber mode. However, in partial power management and suspend failure cases, devices might lock up after suspend attempt. I thought about removing transition to slumber mode altogether but ahci spec mandates it before HBA D3 state transition. Blacklisting such devices might be the solution. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Make ata_sg_clean() global and don't allow NCQ for internal commands. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Separate out rw ATA taskfile building from ata_scsi_rw_xlat() into ata_build_rw_tf(). This will be used to improve media error handling. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Sg'ify ata_exec_internal() and call it ata_exec_internal_sg(). Wrapper function around ata_exec_internal_sg() is implemented to provide ata_exec_internal() interface. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
Now that BMDMA status is recorded in irq handler. ata_bmdma_freeze() is free to manipulate host status. Under certain circumstances, some controllers (ICH7 in enhanced mode w/ IRQ shared) raise IRQ when CTL register is written to and ATA_NIEN doesn't mask it. This patch makes ata_bmdma_freeze() clear all pending IRQs after freezing a port. This change makes explicit clearing in ata_device_add() unnecessary and thus kills it. The removed code was SFF-specific and was in the wrong place. Note that ->freeze() handler is always called under ap->lock held and irq disabled. Even if CTL manipulation causes stuck IRQ, it's cleared immediately. This should be safe (enough) even in SMP environment. More correct solution is to mask the IRQ from IRQ controller but that would be an overkill. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
For certain errors, interrupt handler alter BMDMA host status before entering EH (clears active and intr). Thus altered BMDMA host status value is recorded by BMDMA EH and reported to user. Move BMDMA host status recording from EH to interrupt handler. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
ata_scsi_dev_rescan() doesn't synchronize against SCSI device detach and the target sdev might go away in the middle. Fix it. Signed-off-by: NTejun Heo <htejun@gmail.com>
-
由 Tejun Heo 提交于
If EH command is issued to a frozen port, it fails with AC_ERR_SYSTEM. libata used to request sense even when the port is frozen needlessly adding AC_ERR_SYSTEM to err_mask. Don't do it. Signed-off-by: NTejun Heo <htejun@gmail.com>
-