1. 26 1月, 2013 2 次提交
  2. 22 1月, 2013 2 次提交
    • A
      libata: do not suspend port if normal ODD is attached · 7e15e9be
      Aaron Lu 提交于
      For ODDs, the upper layer will poll for media change every few
      seconds, which will make it enter and leave suspend state very
      often. And as each suspend will also cause a hard/soft reset,
      the gain of runtime suspend is very little while the ODD may
      malfunction after constantly being reset. So the idle callback
      here will not proceed to suspend if a non-ZPODD capable ODD is
      attached to the port.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      7e15e9be
    • A
      libata: identify and init ZPODD devices · afe75951
      Aaron Lu 提交于
      The ODD can be enabled for ZPODD if the following three conditions are
      satisfied:
      1 The ODD supports device attention;
      2 The platform can runtime power off the ODD through ACPI;
      3 The ODD is either slot type or drawer type.
      For such ODDs, zpodd_init is called and a new structure is allocated for
      it to store ZPODD related stuffs.
      
      And the zpodd_dev_enabled function is used to test if ZPODD is currently
      enabled for this ODD.
      
      A new config CONFIG_SATA_ZPODD is added to selectively build ZPODD code.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      afe75951
  3. 15 1月, 2013 2 次提交
    • D
      libata: export host controller number thru /sys · 1757d902
      David Milburn 提交于
      As low-level drivers register their host controller(s), keep track
      of the number of controllers and export thru /sys in a <host.port>
      format so that udev can better match up port numbers with a
      specific controller.
      
      # pwd
      /sys/devices/pci0000:00
      # find . -name 'ata*' -print
      
      (2nd controller with port multiplier attached)
      
      ./0000:00:1e.0/0000:05:01.0/ata2.7
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7/dev7.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.0/dev7.0.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.0/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.1/dev7.1.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.1/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.2/dev7.2.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.2/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.3/dev7.3.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.3/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.4/dev7.4.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.4/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.5/dev7.5.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.5/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.6/dev7.6.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.6/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.7/dev7.7.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.7/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.8/dev7.8.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.8/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.9/dev7.9.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.9/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/ata_port
      ./0000:00:1e.0/0000:05:01.0/ata2.7/ata_port/ata2.7
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.10/dev7.10.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.10/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.11/dev7.11.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.11/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.12/dev7.12.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.12/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.13/dev7.13.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.13/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.14/dev7.14.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.7/link7.14/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.8
      ./0000:00:1e.0/0000:05:01.0/ata2.8/link8/dev8.0/ata_device
      ./0000:00:1e.0/0000:05:01.0/ata2.8/link8/ata_link
      ./0000:00:1e.0/0000:05:01.0/ata2.8/ata_port
      ./0000:00:1e.0/0000:05:01.0/ata2.8/ata_port/ata2.8
      
      (1st controller)
      
      ./0000:00:1f.2/ata1.1
      ./0000:00:1f.2/ata1.1/link1/dev1.0/ata_device
      ./0000:00:1f.2/ata1.1/link1/ata_link
      ./0000:00:1f.2/ata1.1/ata_port
      ./0000:00:1f.2/ata1.1/ata_port/ata1.1
      ./0000:00:1f.2/ata1.2
      ./0000:00:1f.2/ata1.2/link2/dev2.0/ata_device
      ./0000:00:1f.2/ata1.2/link2/ata_link
      ./0000:00:1f.2/ata1.2/ata_port
      ./0000:00:1f.2/ata1.2/ata_port/ata1.2
      ./0000:00:1f.2/ata1.3
      ./0000:00:1f.2/ata1.3/link3/dev3.0/ata_device
      ./0000:00:1f.2/ata1.3/link3/ata_link
      ./0000:00:1f.2/ata1.3/ata_port
      ./0000:00:1f.2/ata1.3/ata_port/ata1.3
      ./0000:00:1f.2/ata1.4
      ./0000:00:1f.2/ata1.4/link4/dev4.0/ata_device
      ./0000:00:1f.2/ata1.4/link4/ata_link
      ./0000:00:1f.2/ata1.4/ata_port
      ./0000:00:1f.2/ata1.4/ata_port/ata1.4
      ./0000:00:1f.2/ata1.5
      ./0000:00:1f.2/ata1.5/link5/dev5.0/ata_device
      ./0000:00:1f.2/ata1.5/link5/ata_link
      ./0000:00:1f.2/ata1.5/ata_port
      ./0000:00:1f.2/ata1.5/ata_port/ata1.5
      ./0000:00:1f.2/ata1.6
      ./0000:00:1f.2/ata1.6/link6/dev6.0/ata_device
      ./0000:00:1f.2/ata1.6/link6/ata_link
      ./0000:00:1f.2/ata1.6/ata_port
      ./0000:00:1f.2/ata1.6/ata_port/ata1.6
      Signed-off-by: NDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      1757d902
    • S
      [libata] replace sata_settings with devslp_timing · 803739d2
      Shane Huang 提交于
      NCQ capability was used to check availability of SATA Settings page
      from Identify Device Data Log, which contains DevSlp timing variables.
      It does not work on some HDDs and leads to error messages.
      
      IDENTIFY word 78 bit 5(Hardware Feature Control) can't work either
      because it is only the sufficient condition of Identify Device data
      log, not the necessary condition.
      
      This patch replaced ata_device->sata_settings with ->devslp_timing
      to only save DevSlp timing variables(8 bytes), instead of the whole
      SATA Settings page(512 bytes).
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=51881Reported-by: NBorislav Petkov <bp@alien8.de>
      Signed-off-by: NShane Huang <shane.huang@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      803739d2
  4. 14 12月, 2012 1 次提交
    • J
      Revert "libata: check SATA_SETTINGS log with HW Feature Ctrl" · 8349e5ae
      Jeff Garzik 提交于
      This reverts commit de90cd71.
      
      Shane Huang writes:
      
        Please suspend this patch because I just received two new
        DevSlp drives but found word 78 bit 5 is _not_ set.
      
        I'm checking with the drive vendor whether he gave me
        the wrong information. If bit 5 is not the necessary and
        sufficient condition, I will implement another patch to
        replace ata_device->sata_settings into ->devslp_timing.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      8349e5ae
  5. 04 12月, 2012 1 次提交
  6. 03 12月, 2012 3 次提交
  7. 16 11月, 2012 1 次提交
  8. 13 9月, 2012 4 次提交
  9. 25 8月, 2012 1 次提交
  10. 24 8月, 2012 3 次提交
  11. 18 8月, 2012 2 次提交
    • Z
      libata: enable SATA disk fua detection on default · 91895b78
      Zheng Liu 提交于
      Currently, SATA disk fua detection is disabled on default because most of
      devices don't support this feature at that time.  With the development of
      technology, more and more SATA disks support this feature.  So now we can enable
      this detection on default.
      
      Although fua detection is defined as a kernel module parameter, it is too hard
      to set its value because it must be loaded and set before system starts up.
      That needs to modify initrd file.  So it is inconvenient for administrator who
      needs to manage a huge number of servers.
      Signed-off-by: NZheng Liu <wenqing.lz@taobao.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      91895b78
    • J
      [libata] new quirk, lift bridge limits for Buffalo DriveStation Quattro · 04d0f1b8
      Jeff Garzik 提交于
      Michael Eitelwein writes:
      
      I have an external SATA drive that was slowed down by bridge limits. I
      found a solution in a thread on this list posted in 2008: It introduces
      whitelist entries in libata-core.c for devices with well working bridges
      (e.g. email on Fri, 31 Oct 2008 01:45:27 -0400).
      
      I added my device to this whitelist in a custom built kernel and it
      works fine for weeks now. How can I have this device added on the
      whitelist within the official kernel? Is this whitelist mechanism still
      supported or is there a smarter way to achieve whitelisting?
      
      I added the following whitelist entry for my Buffalo DriveStation
      Quattro "BUFFALO HD-QSU2/R5":
      
              /* Devices that do not need bridging limits applied */
              { "MTRON MSP-SATA*",            NULL,   ATA_HORKAGE_BRIDGE_OK, },
              { "BUFFALO HD-QSU2/R5",         NULL,   ATA_HORKAGE_BRIDGE_OK, },
      Reported-by: NMichael Eitelwein <michael@eitelwein.net>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      04d0f1b8
  12. 26 7月, 2012 1 次提交
  13. 20 7月, 2012 1 次提交
  14. 29 6月, 2012 3 次提交
  15. 23 5月, 2012 1 次提交
    • P
      [libata] Add " 2GB ATA Flash Disk"/"ADMA428M" to DMA blacklist · d70e551c
      Prarit Bhargava 提交于
      A user has several systems with a couple of models of flash disks with IDE
      connectors.  These disks work fine in 2.6.18-ish kernels but corrupt data on
      new kernels.
      
      The difference appears to be with the default I/O method used by the IDE
      controller driver between the kernels.  In the older kernels, the
      configuration is very conservative and the driver stays in PIO mode.  With
      new kernels, the ata driver (pata_serverworks) attempts to use UDMA/66
      which the drive claims to support.  This mode, however, does not appear to
      work in DMA mode.  The drive does work correctly and no corruption is
      seen if the kernel parameter "libata.force=5:pio0,6:pio0" is used to force
      the driver to use PIO instead of DMA mode.
      
      Blacklist these drives.  Unfortunately the model name of the drive is very
      generic, " 2GB ATA Flash Disk", but the revision is specific, "ADMA428M".
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      d70e551c
  16. 08 5月, 2012 1 次提交
  17. 04 5月, 2012 1 次提交
    • T
      libata: init ata_print_id to 0 · a78f57af
      Tero Roponen 提交于
      When comparing the dmesg between 3.4-rc3 and 3.4-rc4 I found the
      following differences:
      
       -ata1: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff100 irq 47
       -ata2: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff180 irq 47
       -ata3: DUMMY
       +ata2: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff100 irq 47
       +ata3: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff180 irq 47
        ata4: DUMMY
        ata5: DUMMY
       -ata6: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff380 irq 47
       +ata6: DUMMY
       +ata7: SATA max UDMA/133 abar m2048@0xf9fff000 port 0xf9fff380 irq 47
      
      The change of numbering comes from commit 85d6725b ("libata:
      make ata_print_id atomic") that changed lines like
      
      	ap->print_id = ata_print_id++;
      		to
      	ap->print_id = atomic_inc_return(&ata_print_id);
      
      As the latter behaves like ++ata_print_id, we must initialize
      it to zero to start the numbering from one.
      Signed-off-by: NTero Roponen <tero.roponen@gmail.com>
      Acked-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      a78f57af
  18. 13 4月, 2012 1 次提交
  19. 01 3月, 2012 1 次提交
  20. 18 1月, 2012 1 次提交
  21. 09 1月, 2012 5 次提交
  22. 15 10月, 2011 1 次提交
  23. 03 10月, 2011 1 次提交