1. 24 2月, 2016 7 次提交
  2. 10 11月, 2015 5 次提交
  3. 03 6月, 2015 5 次提交
  4. 10 4月, 2015 1 次提交
  5. 10 3月, 2015 1 次提交
  6. 09 1月, 2015 1 次提交
  7. 26 11月, 2014 2 次提交
  8. 24 11月, 2014 2 次提交
  9. 21 11月, 2014 4 次提交
  10. 12 11月, 2014 6 次提交
  11. 01 10月, 2014 6 次提交
    • D
      ufs: definitions for phy interface · e785060e
      Dolev Raviv 提交于
      - Adding some of the definitions missing in unipro.h, including power
        enumeration.
      - Read Modify Write Line helper function
      - Indication for the type of suspend
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org>
      Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      e785060e
    • S
      ufs: tune bkops while power managment events · 374a246e
      Subhash Jadavani 提交于
      Add capability to control the auto bkops during suspend.
      If host explicitly enables the auto bkops (background operation) on device
      then only device would perform the bkops on its own. If auto bkops is not
      enabled explicitly and if the device reaches to state where it must do
      background operation, device would raise the urgent bkops exception event
      to host and then host will enable the auto bkops on device. This patch
      adds the option to choose whether auto bkops should be enabled during
      runtime suspend or not. Since we don't want to keep the device active to
      perform the non critical bkops, host will enable urgent bkops only.
      
      Keep auto-bkops enabled after resume if urgent bkops needed.
      If device bkops status shows that its in critical need of executing
      background operations, host should allow the device to continue doing
      background operations.
      Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org>
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      374a246e
    • S
      ufs: Add support for clock scaling using devfreq framework · 856b3483
      Sahitya Tummala 提交于
      The clocks for UFS device will be managed by generic DVFS (Dynamic
      Voltage and Frequency Scaling) framework within kernel. This devfreq
      framework works with different governors to scale the clocks. By default,
      UFS devices uses simple_ondemand governor which scales the clocks up if
      the load is more than upthreshold and scales down if the load is less than
      downthreshold.
      Signed-off-by: NSahitya Tummala <stummala@codeaurora.org>
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      856b3483
    • S
      ufs: Add support for clock gating · 1ab27c9c
      Sahitya Tummala 提交于
      The UFS controller clocks can be gated after certain period of
      inactivity, which is typically less than runtime suspend timeout.
      In addition to clocks the link will also be put into Hibern8 mode
      to save more power.
      
      The clock gating can be turned on by enabling the capability
      UFSHCD_CAP_CLK_GATING. To enable entering into Hibern8 mode as part of
      clock gating, set the capability UFSHCD_CAP_HIBERN8_WITH_CLK_GATING.
      
      The tracing events for clock gating can be enabled through debugfs as:
      echo 1 > /sys/kernel/debug/tracing/events/ufs/ufshcd_clk_gating/enable
      cat /sys/kernel/debug/tracing/trace_pipe
      Signed-off-by: NSahitya Tummala <stummala@codeaurora.org>
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      1ab27c9c
    • D
      ufs: refactor configuring power mode · 7eb584db
      Dolev Raviv 提交于
      Sometimes, the device shall report its maximum power and speed
      capabilities, but we might not wish to configure it to use those
      maximum capabilities.
      This change adds support for the vendor specific host driver to
      implement power change notify callback.
      
      To enable configuring different power modes (number of lanes,
      gear number and fast/slow modes) it is necessary to split the
      configuration stage from the stage that reads the device max power mode.
      In addition, it is not required to read the configuration more than
      once, thus the configuration is stored after reading it once.
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      7eb584db
    • S
      ufs: add UFS power management support · 57d104c1
      Subhash Jadavani 提交于
      This patch adds support for UFS device and UniPro link power management
      during runtime/system PM.
      
      Main idea is to define multiple UFS low power levels based on UFS device
      and UFS link power states. This would allow any specific platform or pci
      driver to choose the best suited low power level during runtime and
      system suspend based on their power goals.
      
      bkops handlig:
      To put the UFS device in sleep state when bkops is disabled, first query
      the bkops status from the device and enable bkops on device only if
      device needs time to perform the bkops.
      
      START_STOP handling:
      Before sending START_STOP_UNIT to the device well-known logical unit
      (w-lun) to make sure that the device w-lun unit attention condition is
      cleared.
      
      Write protection:
      UFS device specification allows LUs to be write protected, either
      permanently or power on write protected. If any LU is power on write
      protected and if the card is power cycled (by powering off VCCQ and/or
      VCC rails), LU's write protect status would be lost. So this means those
      LUs can be written now. To ensures that UFS device is power cycled only
      if the power on protect is not set for any of the LUs, check if power on
      write protect is set and if device is in sleep/power-off state & link in
      inactive state (Hibern8 or OFF state).
      If none of the Logical Units on UFS device is power on write protected
      then all UFS device power rails (VCC, VCCQ & VCCQ2) can be turned off if
      UFS device is in power-off state and UFS link is in OFF state. But current
      implementation would disable all device power rails even if UFS link is
      not in OFF state.
      
      Low power mode:
      If UFS link is in OFF state then UFS host controller can be power collapsed
      to avoid leakage current from it. Note that if UFS host controller is power
      collapsed, full UFS reinitialization will be required on resume to
      re-establish the link between host and device.
      Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org>
      Signed-off-by: NDolev Raviv <draviv@codeaurora.org>
      Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      57d104c1