1. 13 2月, 2020 1 次提交
  2. 21 1月, 2020 1 次提交
  3. 16 1月, 2020 1 次提交
  4. 19 11月, 2019 1 次提交
  5. 08 9月, 2019 1 次提交
  6. 30 8月, 2019 1 次提交
  7. 20 8月, 2019 1 次提交
  8. 21 6月, 2019 1 次提交
  9. 05 6月, 2019 1 次提交
  10. 17 4月, 2019 3 次提交
    • E
      phy: ufs-qcom: Refactor all init steps into phy_poweron · 3f6d1767
      Evan Green 提交于
      The phy code was using implicit sequencing between the PHY driver
      and the UFS driver to implement certain hardware requirements.
      Specifically, the PHY reset register in the UFS controller needs
      to be deasserted before serdes start occurs in the PHY.
      
      Before this change, the code was doing this by utilizing the two
      phy callbacks, phy_init() and phy_poweron(), as "init step 1" and
      "init step 2", where the UFS driver would deassert reset between
      these two steps.
      
      This makes it challenging to power off the regulators in suspend,
      as regulators are initialized in init, not in poweron(), but only
      poweroff() is called during suspend, not exit().
      
      For UFS, move the actual firing up of the PHY to phy_poweron() and
      phy_poweroff() callbacks, rather than init()/exit(). UFS calls
      phy_poweroff() during suspend, so now all clocks and regulators for
      the phy can be powered down during suspend.
      
      QMP is a little tricky because the PHY is also shared with PCIe and
      USB3, which have their own definitions for init() and poweron(). Rename
      the meaty functions to _enable() and _disable() to disentangle from the
      PHY core names, and then create two different ops structures: one for
      UFS and one for the other PHY types.
      
      In phy-qcom-ufs, remove the 'is_powered_on' and 'is_started' guards,
      as the generic PHY code does the reference counting. The
      14/20nm-specific init functions get collapsed into the generic power_on()
      function, with the addition of a calibrate() callback specific to 14/20nm.
      Signed-off-by: NEvan Green <evgreen@chromium.org>
      Reviewed-by: NStephen Boyd <swboyd@chromium.org>
      Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
      3f6d1767
    • E
      phy: qcom: Utilize UFS reset controller · c9b58979
      Evan Green 提交于
      Move the PHY reset from ufs-qcom into the respective PHYs. This will
      allow us to merge the two phases of UFS PHY initialization.
      Signed-off-by: NEvan Green <evgreen@chromium.org>
      Reviewed-by: NStephen Boyd <swboyd@chromium.org>
      Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
      c9b58979
    • E
      scsi: ufs: qcom: Expose the reset controller for PHY · 12fd5f25
      Evan Green 提交于
      Expose a reset controller that the phy will later use to control its
      own PHY reset in the UFS controller. This will enable the combining
      of PHY init functionality into a single function.
      Signed-off-by: NEvan Green <evgreen@chromium.org>
      Reviewed-by: NStephen Boyd <swboyd@chromium.org>
      Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
      12fd5f25
  11. 20 3月, 2019 1 次提交
  12. 16 10月, 2018 1 次提交
  13. 26 9月, 2018 1 次提交
  14. 20 6月, 2018 1 次提交
  15. 19 5月, 2018 1 次提交
  16. 23 10月, 2017 2 次提交
  17. 12 10月, 2017 1 次提交
  18. 23 2月, 2017 1 次提交
    • S
      scsi: ufs-qcom: remove redundant condition check · f22aaec9
      Subhash Jadavani 提交于
      Dan Carpenter <dan.carpenter@oracle.com> reported this:
      
      The patch 9c46b867: "scsi: ufs-qcom: dump additional testbus
      registers" from Feb 3, 2017, leads to the following static checker
      warning:
      
          drivers/scsi/ufs/ufs-qcom.c:1531 ufs_qcom_testbus_cfg_is_ok()
          warn: impossible condition
                      '(host->testbus.select_minor > 255) => (0-255 > 255)'
      
      drivers/scsi/ufs/ufs-qcom.c
        1517  static bool ufs_qcom_testbus_cfg_is_ok(struct ufs_qcom_host *host)
        1518  {
        1519          if (host->testbus.select_major >= TSTBUS_MAX) {
        1520               dev_err(host->hba->dev,
        1521                 "%s: UFS_CFG1[TEST_BUS_SEL} may not equal 0x%05X\n",
        1522                  __func__, host->testbus.select_major);
        1523                  return false;
        1524          }
        1525
        1526          /*
        1527           * Not performing check for each individual select_major
        1528           * mappings of select_minor, since there is no harm in
        1529           * configuring a non-existent select_minor
        1530           */
        1531          if (host->testbus.select_minor > 0xFF) {
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      It might make sense to keep this check.  I don't know.  But it's
      confusing that 0xFF is a magic number.  Better to make it a define.
      
        1532                  dev_err(host->hba->dev,
        1533                       "%s: 0x%05X is not a legal testbus option\n",
        1534                        __func__, host->testbus.select_minor);
        1535                  return false;
        1536          }
        1537
        1538          return true;
        1539  }
      ---
      
      As data type of "select_minor" is u8, above check is redundant. This
      change removes it.
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      f22aaec9
  19. 08 2月, 2017 1 次提交
  20. 06 1月, 2017 1 次提交
  21. 09 12月, 2016 3 次提交
  22. 22 11月, 2016 1 次提交
  23. 09 11月, 2016 4 次提交
  24. 15 3月, 2016 4 次提交
  25. 10 11月, 2015 5 次提交