1. 18 12月, 2018 2 次提交
  2. 12 12月, 2018 1 次提交
  3. 06 10月, 2018 1 次提交
  4. 10 7月, 2018 1 次提交
    • J
      i2c: tegra: Fix NACK error handling · 54836e2d
      Jon Hunter 提交于
      On Tegra30 Cardhu the PCA9546 I2C mux is not ACK'ing I2C commands on
      resume from suspend (which is caused by the reset signal for the I2C
      mux not being configured correctl). However, this NACK is causing the
      Tegra30 to hang on resuming from suspend which is not expected as we
      detect NACKs and handle them. The hang observed appears to occur when
      resetting the I2C controller to recover from the NACK.
      
      Commit 77821b46 ("i2c: tegra: proper handling of error cases") added
      additional error handling for some error cases including NACK, however,
      it appears that this change conflicts with an early fix by commit
      f70893d0 ("i2c: tegra: Add delay before resetting the controller
      after NACK"). After commit 77821b46 was made we now disable 'packet
      mode' before the delay from commit f70893d0 happens. Testing shows
      that moving the delay to before disabling 'packet mode' fixes the hang
      observed on Tegra30. The delay was added to give the I2C controller
      chance to send a stop condition and so it makes sense to move this to
      before we disable packet mode. Please note that packet mode is always
      enabled for Tegra.
      
      Fixes: 77821b46 ("i2c: tegra: proper handling of error cases")
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Cc: stable@vger.kernel.org
      54836e2d
  5. 04 7月, 2018 1 次提交
  6. 31 5月, 2018 1 次提交
    • D
      i2c: tegra: Remove suspend-resume · 535ba904
      Dmitry Osipenko 提交于
      Nothing prevents I2C clients to access I2C while Tegra's driver is being
      suspended, this results in -EBUSY error returned to the clients and that
      may have unfortunate consequences. In particular this causes problems
      for the TPS6586x MFD driver which emits hundreds of "failed to read
      interrupt status" error messages on resume from suspend. This happens if
      TPS6586X is used to wake system from suspend by the expired RTC alarm
      timer because TPS6586X is an I2C device driver and its IRQ handler reads
      the status register while Tegra's I2C driver is suspended, i.e. just after
      kernel enabled IRQ's during of resume-from-suspend process.
      
      Note that the removed tegra_i2c_resume() invoked tegra_i2c_init() which
      performs HW reset. That seems was also not entirely correct because moving
      tegra_i2c_resume to an earlier stage of resume-from-suspend process causes
      I2C transfer to fail in the case of TPS6586X. It is fine to remove the
      HW-reinitialization for now because it should be only needed in a case of
      using lowest power-mode during suspend, which upstream kernel doesn't
      support.
      Signed-off-by: NDmitry Osipenko <digetx@gmail.com>
      Acked-by: NLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      535ba904
  7. 30 8月, 2017 1 次提交
  8. 15 8月, 2017 1 次提交
    • P
      i2c: tegra: explicitly request exclusive reset control · 94d3b651
      Philipp Zabel 提交于
      Commit a53e35db ("reset: Ensure drivers are explicit when requesting
      reset lines") started to transition the reset control request API calls
      to explicitly state whether the driver needs exclusive or shared reset
      control behavior. Convert all drivers requesting exclusive resets to the
      explicit API call so the temporary transition helpers can be removed.
      
      No functional changes.
      
      Cc: Laxman Dewangan <ldewangan@nvidia.com>
      Cc: Wolfram Sang <wsa@the-dreams.de>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: linux-i2c@vger.kernel.org
      Cc: linux-tegra@vger.kernel.org
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      94d3b651
  9. 09 9月, 2016 6 次提交
  10. 31 8月, 2016 9 次提交
  11. 22 8月, 2016 1 次提交
  12. 05 7月, 2016 1 次提交
  13. 11 5月, 2016 1 次提交
  14. 13 4月, 2016 1 次提交
    • S
      i2c: tegra: enable multi master mode for tegra210 · 497fbe24
      Shardar Shariff Md 提交于
      Enable multi-master mode in I2C_CNFG reg based on hw features.
      Using single/multi-master mode bit introduced for Tegra210,
      whereas multi-master mode is enabled by default in HW for T124 and
      earlier Tegra SOC. Enabling this bit doesn't explicitly start
      treating the bus has having multiple masters, but will start
      checking for arbitration lost and reporting when it occurs.
      
      The Tegra210 I2C controller supports single/multi master mode.
      Add chipdata for Tegra210 and its compatibility string so that
      Tegra210 will select data that enables multi master mode correctly.
      
      Do below prerequisites for multi-master bus if "multi-master"
      dt property entry is added.
       1. Enable 1st level clock always set.
       2. Disable 2nd level clock gating (slcg which
          is supported from T124 SOC and later chips)
      Signed-off-by: NShardar Shariff Md <smohammed@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      497fbe24
  15. 24 2月, 2016 1 次提交
  16. 20 10月, 2015 1 次提交
  17. 10 8月, 2015 2 次提交
  18. 22 6月, 2015 2 次提交
  19. 15 3月, 2015 1 次提交
  20. 27 1月, 2015 1 次提交
  21. 20 10月, 2014 1 次提交
  22. 20 9月, 2014 1 次提交
  23. 17 7月, 2014 1 次提交
  24. 03 6月, 2014 1 次提交