1. 21 Dec, 2018 1 commit
  2. 10 Dec, 2018 1 commit
  3. 05 Dec, 2018 5 commits
  4. 03 Dec, 2018 1 commit
  5. 15 Nov, 2018 1 commit
  6. 12 Nov, 2018 1 commit
  7. 08 Nov, 2018 1 commit
  8. 26 Oct, 2018 1 commit
  9. 10 Oct, 2018 2 commits
  10. 04 Oct, 2018 1 commit
    • Nathan Chancellor's avatar
      ata: ep93xx: Use proper enums for directions · 6adde4a3
      Nathan Chancellor authored
      Clang warns when one enumerated type is implicitly converted to another.
      
      drivers/ata/pata_ep93xx.c:662:36: warning: implicit conversion from
      enumeration type 'enum dma_data_direction' to different enumeration type
      'enum dma_transfer_direction' [-Wenum-conversion]
              drv_data->dma_rx_data.direction = DMA_FROM_DEVICE;
                                              ~ ^~~~~~~~~~~~~~~
      drivers/ata/pata_ep93xx.c:670:36: warning: implicit conversion from
      enumeration type 'enum dma_data_direction' to different enumeration type
      'enum dma_transfer_direction' [-Wenum-conversion]
              drv_data->dma_tx_data.direction = DMA_TO_DEVICE;
                                              ~ ^~~~~~~~~~~~~
      drivers/ata/pata_ep93xx.c:681:19: warning: implicit conversion from
      enumeration type 'enum dma_data_direction' to different enumeration type
      'enum dma_transfer_direction' [-Wenum-conversion]
              conf.direction = DMA_FROM_DEVICE;
                             ~ ^~~~~~~~~~~~~~~
      drivers/ata/pata_ep93xx.c:692:19: warning: implicit conversion from
      enumeration type 'enum dma_data_direction' to different enumeration type
      'enum dma_transfer_direction' [-Wenum-conversion]
              conf.direction = DMA_TO_DEVICE;
                             ~ ^~~~~~~~~~~~~
      
      Use the equivalent valued enums from the expected type so that Clang no
      longer warns about a conversion.
      
      DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
      DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
      Acked-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      6adde4a3
  11. 01 Oct, 2018 3 commits
  12. 20 Sep, 2018 1 commit
  13. 11 Sep, 2018 1 commit
  14. 07 Sep, 2018 1 commit
  15. 03 Sep, 2018 3 commits
  16. 30 Aug, 2018 1 commit
  17. 28 Aug, 2018 1 commit
  18. 27 Aug, 2018 2 commits
  19. 22 Aug, 2018 3 commits
  20. 06 Aug, 2018 3 commits
  21. 02 Aug, 2018 1 commit
  22. 30 Jul, 2018 4 commits
    • Srinivas Pandruvada's avatar
      ata: libahci: Allow reconfigure of DEVSLP register · 11c29146
      Srinivas Pandruvada authored
      There are two modes in which DEVSLP can be entered. The OS initiated or
      hardware autonomous.
      
      In hardware autonomous mode, BIOS configures the AHCI controller and the
      device to enable DEVSLP. But they may not be ideal for all cases. So in
      this case, OS should be able to reconfigure DEVSLP register.
      
      Currently if the DEVSLP is already enabled, we can't set again as it will
      simply return. There are some systems where the firmware is setting high
      DITO by default, in this case we can't modify here to correct settings.
      With the default in several seconds, we are not able to transition to
      DEVSLP.
      
      This change will allow reconfiguration of devslp register if DITO is
      different.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      11c29146
    • Srinivas Pandruvada's avatar
      ata: libahci: Correct setting of DEVSLP register · 2dbb3ec2
      Srinivas Pandruvada authored
      We have seen that on some platforms, SATA device never show any DEVSLP
      residency. This prevent power gating of SATA IP, which prevent system
      to transition to low power mode in systems with SLP_S0 aka modern
      standby systems. The PHY logic is off only in DEVSLP not in slumber.
      Reference:
      https://www.intel.com/content/dam/www/public/us/en/documents/datasheets
      /332995-skylake-i-o-platform-datasheet-volume-1.pdf
      Section 28.7.6.1
      
      Here driver is trying to do read-modify-write the devslp register. But
      not resetting the bits for which this driver will modify values (DITO,
      MDAT and DETO). So simply reset those bits before updating to new values.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      2dbb3ec2
    • Srinivas Pandruvada's avatar
      ata: ahci: Enable DEVSLP by default on x86 with SLP_S0 · b1a9585c
      Srinivas Pandruvada authored
      One of the requirement for modern x86 system to enter lowest power mode
      (SLP_S0) is SATA IP block to be off. This is true even during when
      platform is suspended to idle and not only in opportunistic (runtime)
      suspend.
      
      Several of these system don't have traditional ACPI S3, so it is
      important that they enter SLP_S0 state, to avoid draining battery even
      during suspend. So it is important that out of the box Linux installation
      reach this state.
      
      SATA IP block doesn't get turned off till SATA is in DEVSLP mode. Here
      user has to either use scsi-host sysfs or tools like powertop to set
      the sata-host link_power_management_policy to min_power.
      
      This change sets by default link power management policy to min_power
      with partial (preferred) or slumber support on idle for some platforms.
      
      To avoid regressions, the following conditions are used:
      - User didn't override the policy from module parameter
      - The kernel config is already set to use med_power_with_dipm or deeper
      - System is a SLP_S0 capable using ACPI low power idle flag
      This combination will make sure that systems are fairly recent and
      since getting shipped with SLP_S0 support, the DEVSLP function
      is already validated.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      b1a9585c
    • Srinivas Pandruvada's avatar
      ata: ahci: Support state with min power but Partial low power state · a5ec5a7b
      Srinivas Pandruvada authored
      Currently when min_power policy is selected, the partial low power state
      is not entered and link will try aggressively enter to only slumber state.
      Add a new policy which still enable DEVSLP but also try to enter partial
      low power state. This policy is presented as "min_power_with_partial".
      
      For information the difference between partial and slumber
      Partial – PHY logic is powered up, and in a reduced power state. The link
      PM exit latency to active state maximum is 10 ns.
      Slumber – PHY logic is powered up, and in a reduced power state. The link
      PM exit latency to active state maximum is 10 ms.
      Devslp – PHY logic is powered down. The link PM exit latency from this
      state to active state maximum is 20 ms, unless otherwise specified by
      DETO.
      Suggested-and-reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      a5ec5a7b
  23. 24 Jul, 2018 1 commit