1. 22 5月, 2015 2 次提交
  2. 19 5月, 2015 1 次提交
  3. 11 5月, 2015 1 次提交
    • S
      ata: ahci_xgene: Add AHCI Support for 2nd HW version of APM X-Gene SoC AHCI SATA Host controller. · c9802a4b
      Suman Tripathi 提交于
      This patch enables full AHCI feature support for APM X-Gene SoC SATA
      host controller. The following errata's are removed:
      
      1. 2a0bdff6 ("ahci-xgene: fix the dma state machine lockup for the
                       IDENTIFY DEVICE PIO mode command")
      2. 09c32aaa ("ahci_xgene: Fix the dma state machine lockup for the
                       ATA_CMD_SMART PIO mode command")
      3. 1540035d ("ahci_xgene: Implement the xgene_ahci_poll_reg_val to
                       support PMP")
      4. a3a84bc7 ("ahci_xgene: Implement the workaround to support PMP
                       enumeration and discovery")
      5. 1102407b ("ahci_xgene: Fix the DMA state machine lockup for the
                       ATA_CMD_PACKET PIO mode command")
      6. 72f79f9e ("ahci_xgene: Removing NCQ support from the APM X-Gene
      		SoC AHCI SATA Host Controller driver")
      
      In addition, enable PMP support for APM X-Gene SoC and enable FBS
      support for second generation APM X-Gene SoC.
      Signed-off-by: NSuman Tripathi <stripathi@apm.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      c9802a4b
  4. 10 5月, 2015 2 次提交
  5. 05 5月, 2015 3 次提交
  6. 03 5月, 2015 1 次提交
  7. 21 4月, 2015 1 次提交
    • P
      ata: ahci_st: fixup layering violations / drvdata errors · e0e2674b
      Peter Griffin 提交于
      Brian noticed while working on another SATA driver that uses libahci_platform,
      an error in this driver; it tries to the the driver data for its
      device, while libata also thinks it can set the driver data. See:
      
        ahci_platform_init_host()
        -> ata_host_alloc_pinfo()
           -> ata_host_alloc()
              -> dev_set_drvdata()
      
      So instead of sticking the IP-specific platform data into drvdata, let's
      use the plat_data variable that is reserved for this use.
      
      Addtionally plat_data isn't set until ahci_platform_init_host() has been
      called further down in probe(). So re-work the st_ahci_probe_resets and
      st_ahci_deassert_resets functions to take ahci_host_priv *hpriv as a
      parameter.
      Signed-off-by: NPeter Griffin <peter.griffin@linaro.org>
      Suggested-by: NBrian Norris <computersforpeace@gmail.com>
      Cc: Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
      Cc: Maxime Coquelin <maxime.coquelin@st.com>
      Cc: Patrice Chotard <patrice.chotard@st.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      e0e2674b
  8. 15 4月, 2015 1 次提交
  9. 08 4月, 2015 1 次提交
    • Q
      ata: remove deprecated use of pci api · c54c719b
      Quentin Lambert 提交于
      Replace occurences of the pci api by appropriate call to the dma api.
      
      A simplified version of the semantic patch that finds this problem is as
      follows: (http://coccinelle.lip6.fr)
      
      @deprecated@
      idexpression id;
      position p;
      @@
      
      (
        pci_dma_supported@p ( id, ...)
      |
        pci_alloc_consistent@p ( id, ...)
      )
      
      @bad1@
      idexpression id;
      position deprecated.p;
      @@
      ...when != &id->dev
         when != pci_get_drvdata ( id )
         when != pci_enable_device ( id )
      (
        pci_dma_supported@p ( id, ...)
      |
        pci_alloc_consistent@p ( id, ...)
      )
      
      @depends on !bad1@
      idexpression id;
      expression direction;
      position deprecated.p;
      @@
      
      (
      - pci_dma_supported@p ( id,
      + dma_supported ( &id->dev,
      ...
      + , GFP_ATOMIC
        )
      |
      - pci_alloc_consistent@p ( id,
      + dma_alloc_coherent ( &id->dev,
      ...
      + , GFP_ATOMIC
        )
      )
      Signed-off-by: NQuentin Lambert <lambert.quentin@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      c54c719b
  10. 02 4月, 2015 1 次提交
  11. 31 3月, 2015 1 次提交
  12. 28 3月, 2015 2 次提交
  13. 27 3月, 2015 9 次提交
  14. 25 3月, 2015 4 次提交
  15. 20 3月, 2015 3 次提交
    • F
      sata: xgene: add ACPI support for APM X-Gene SATA ports · 92b5bf98
      Feng Kan 提交于
      This adds ACPI support for the APM X-Gene SATA ports. When the system
      boots using ACPI table, the SATA ports are able to configure using the
      values supplied by the ACPI table rather than the DTS.
      Signed-off-by: NFeng Kan <fkan@apm.com>
      Reviewed-by: NHanjun Guo <hanjun.guo@linaro.org>
      Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      92b5bf98
    • T
      ata: sata_mv: add proper definitions for LP_PHY_CTL register values · 3661aa99
      Thomas Petazzoni 提交于
      Commit 9013d64e ("ata: sata_mv: fix disk hotplug for Armada
      370/XP SoCs") added some manipulation of the LP_PHY_CTL register, but
      using magic values. This commit changes the code to use proper
      definitions for the LP_PHY_CTL register, which allows to document what
      the different bits are doing.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Acked-by: NSimon Guinot <simon.guinot@sequanux.org>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      3661aa99
    • S
      ata: Add a new flag to destinguish sas controller · 5067c046
      Shaohua Li 提交于
      SAS controller has its own tag allocation, which doesn't directly match to ATA
      tag, so SAS and SATA have different code path for ata tags. Originally we use
      port->scsi_host (98bd4be1) to destinguish SAS controller, but libsas set
      ->scsi_host too, so we can't use it for the destinguish, we add a new flag for
      this purpose.
      
      Without this patch, the following oops can happen because scsi-mq uses
      a host-wide tag map shared among all devices with some integer tag
      values >= ATA_MAX_QUEUE.  These unexpectedly high tag values cause
      __ata_qc_from_tag() to return NULL, which is then dereferenced in
      ata_qc_new_init().
      
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
        IP: [<ffffffff804fd46e>] ata_qc_new_init+0x3e/0x120
        PGD 32adf0067 PUD 32adf1067 PMD 0
        Oops: 0002 [#1] SMP DEBUG_PAGEALLOC
        Modules linked in: iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi igb
        i2c_algo_bit ptp pps_core pm80xx libsas scsi_transport_sas sg coretemp
        eeprom w83795 i2c_i801
        CPU: 4 PID: 1450 Comm: cydiskbench Not tainted 4.0.0-rc3 #1
        Hardware name: Supermicro X8DTH-i/6/iF/6F/X8DTH, BIOS 2.1b       05/04/12
        task: ffff8800ba86d500 ti: ffff88032a064000 task.ti: ffff88032a064000
        RIP: 0010:[<ffffffff804fd46e>]  [<ffffffff804fd46e>] ata_qc_new_init+0x3e/0x120
        RSP: 0018:ffff88032a067858  EFLAGS: 00010046
        RAX: 0000000000000000 RBX: ffff8800ba0d2230 RCX: 000000000000002a
        RDX: ffffffff80505ae0 RSI: 0000000000000020 RDI: ffff8800ba0d2230
        RBP: ffff88032a067868 R08: 0000000000000201 R09: 0000000000000001
        R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800ba0d0000
        R13: ffff8800ba0d2230 R14: ffffffff80505ae0 R15: ffff8800ba0d0000
        FS:  0000000041223950(0063) GS:ffff88033e480000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: 0000000000000058 CR3: 000000032a0a3000 CR4: 00000000000006e0
        Stack:
         ffff880329eee758 ffff880329eee758 ffff88032a0678a8 ffffffff80502dad
         ffff8800ba167978 ffff880329eee758 ffff88032bf9c520 ffff8800ba167978
         ffff88032bf9c520 ffff88032bf9a290 ffff88032a0678b8 ffffffff80506909
        Call Trace:
         [<ffffffff80502dad>] ata_scsi_translate+0x3d/0x1b0
         [<ffffffff80506909>] ata_sas_queuecmd+0x149/0x2a0
         [<ffffffffa0046650>] sas_queuecommand+0xa0/0x1f0 [libsas]
         [<ffffffff804ea544>] scsi_dispatch_cmd+0xd4/0x1a0
         [<ffffffff804eb50f>] scsi_queue_rq+0x66f/0x7f0
         [<ffffffff803e5098>] __blk_mq_run_hw_queue+0x208/0x3f0
         [<ffffffff803e54b8>] blk_mq_run_hw_queue+0x88/0xc0
         [<ffffffff803e5c74>] blk_mq_insert_request+0xc4/0x130
         [<ffffffff803e0b63>] blk_execute_rq_nowait+0x73/0x160
         [<ffffffffa0023fca>] sg_common_write+0x3da/0x720 [sg]
         [<ffffffffa0025100>] sg_new_write+0x250/0x360 [sg]
         [<ffffffffa0025feb>] sg_write+0x13b/0x450 [sg]
         [<ffffffff8032ec91>] vfs_write+0xd1/0x1b0
         [<ffffffff8032ee54>] SyS_write+0x54/0xc0
         [<ffffffff80689932>] system_call_fastpath+0x12/0x17
      
      tj: updated description.
      
      Fixes: 12cb5ce1 ("libata: use blk taging")
      Reported-and-tested-by: NTony Battersby <tonyb@cybernetics.com>
      Signed-off-by: NShaohua Li <shli@fb.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      5067c046
  16. 03 3月, 2015 1 次提交
    • M
      sata-fsl: Apply link speed limits · 29200f12
      Martin Hicks 提交于
      The driver was ignoring limits requested by libata.force.  The output
      would look like:
      
      fsl-sata ffe18000.sata: Sata FSL Platform/CSB Driver init
      ata1: FORCE: PHY spd limit set to 1.5Gbps
      ata1: SATA max UDMA/133 irq 74
      ata1: Signature Update detected @ 0 msecs
      ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 310)
      Signed-off-by: NMartin Hicks <mort@bork.org>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      29200f12
  17. 11 2月, 2015 1 次提交
    • L
      sata_dwc_460ex: disable COMPILE_TEST again · 06cc01a0
      Linus Torvalds 提交于
      Commit 84683a7e ("sata_dwc_460ex: enable COMPILE_TEST for the
      driver") enabled this driver for non-ppc460-ex platforms, but it was
      then disabled for ARM and ARM64 by commit 2de5a9c0 ("sata_dwc_460ex:
      disable compilation on ARM and ARM64") because it's too noisy and
      broken.
      
      This disabled is entirely, because it's too noisy on x86-64 too, and
      there's no point in disabling architectures one by one.  At a minimum,
      the code isn't 64-bit clean, and even on 32-bit it is questionable
      whether it makes sense.
      
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      06cc01a0
  18. 04 2月, 2015 1 次提交
    • S
      ahci_xgene: Fix the dma state machine lockup for the ATA_CMD_SMART PIO mode command. · 09c32aaa
      Suman Tripathi 提交于
      This patch addresses the issue with ATA_CMD_SMART pio mode command for
      enumeration and device detection with ATA devices.  The X-Gene AHCI
      controller has an errata in which it cannot clear the BSY bit after
      the PIO setup FIS. The dma state machine enters CMFatalErrorUpdate
      state and locks up. It is the same issue as in the commit 2a0bdff6
      ("ahci-xgene: fix the dma state machine lockup for the IDENTIFY DEVICE
      PIO mode command").
      
      For example :  without this patch it results in READ DMA command failure
      as shown below :
      
       [  126.700072] ata2.00: exception Emask 0x0 SAct 0x0
      		SErr 0x0 action 0x6 frozen
       [  126.707089] ata2.00: failed command: READ DMA
       [  126.711426] ata2.00: cmd c8/00:08:00:55:57/00:00:00:00:00/e1 tag 1
                      dma 4096 in
       [  126.711426]  res 40/00:ff:00:00:00/00:00:00:00:00/40 Emask
      		0x4 (timeout)
       [  126.725956] ata2.00: status: { DRDY }
      Signed-off-by: NSuman Tripathi <stripathi@apm.com>
      Reported-by: NMark Langsdorf <mlangsdo@redhat.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      09c32aaa
  19. 03 2月, 2015 3 次提交
  20. 29 1月, 2015 1 次提交
    • A
      ata: pata_platform: fix owner module reference mismatch for scsi host · 17263905
      Akinobu Mita 提交于
      The owner module reference of the pata_of_platform's scsi_host is
      initialized to pata_platform's one, because pata_of_platform driver
      use a scsi_host_template defined in pata_platform.  So this drivers
      can be unloaded even if the scsi device is being accessed.
      
      This fixes it by propagating the scsi_host_template to pata_of_platform
      driver.  The scsi_host_template is passed through a new
      argument of __pata_platform_probe().
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
      Cc: linux-ide@vger.kernel.org
      Cc: linux-scsi@vger.kernel.org
      17263905