1. 12 6月, 2019 4 次提交
  2. 08 6月, 2019 5 次提交
    • O
      i2c: fsi: Create busses for all ports · 095561f4
      Oliver O'Halloran 提交于
      Currently we only create an I2C bus for the ports listed in the
      device-tree for that master. There's no real reason for this since
      we can discover the number of ports the master supports by looking
      at the port_max field of the status register.
      
      This patch re-works the bus add logic so that we always create buses
      for each port, unless the bus is marked as unavailable in the DT. This
      is useful since it ensures that all the buses provided by the CFAM I2C
      master are accessible to debug tools.
      Signed-off-by: NOliver O'Halloran <oohall@gmail.com>
      Reviewed-by: NEddie James <eajames@linux.ibm.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      095561f4
    • P
      i2c: i801: Register optional lis3lv02d I2C device on Dell machines · 19b07cb4
      Pali Rohár 提交于
      Dell platform team told us that some (DMI whitelisted) Dell Latitude
      machines have ST microelectronics accelerometer at I2C address 0x29.
      
      Presence of that ST microelectronics accelerometer is verified by existence
      of SMO88xx ACPI device which represent that accelerometer. Unfortunately
      ACPI device does not specify I2C address.
      
      This patch registers lis3lv02d device for selected Dell Latitude machines
      at I2C address 0x29 after detection. And for Dell Vostro V131 machine at
      I2C address 0x1d which was manually detected.
      
      Finally commit a7ae8195 ("i2c: i801: Allow ACPI SystemIO OpRegion to
      conflict with PCI BAR") allowed to use i2c-i801 driver on Dell machines so
      lis3lv02d correctly initialize accelerometer.
      
      Tested on Dell Latitude E6440.
      Signed-off-by: NPali Rohár <pali.rohar@gmail.com>
      Reviewed-by: NJean Delvare <jdelvare@suse.de>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      19b07cb4
    • A
      i2c: nvidia-gpu: resume ccgx i2c client · 9f2e244d
      Ajay Gupta 提交于
      Cypress USB Type-C CCGx controller firmware version 3.1.10
      (which is being used in many NVIDIA GPU cards) has known issue of
      not triggering interrupt when a USB device is hot plugged to runtime
      resume the controller. If any GPU card gets latest kernel with runtime
      pm support but does not get latest fixed firmware then also it should
      continue to work and therefore a workaround is required to check for
      any connector change event
      
      The workaround is to request runtime resume of i2c client
      which is UCSI Cypress CCGx driver. CCG driver will call the ISR
      for any connector change event only if NVIDIA GPU has old
      CCG firmware with the known issue.
      Signed-off-by: NAjay Gupta <ajayg@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      9f2e244d
    • A
      i2c: nvidia-gpu: add runtime pm support · d4a4f927
      Ajay Gupta 提交于
      Enable runtime pm support with autosuspend delay of three second.
      This is to make sure I2C client device Cypress CCGx has completed
      all transaction.
      Signed-off-by: NAjay Gupta <ajayg@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      d4a4f927
    • A
      i2c: nvidia-gpu: refactor master_xfer · cb7302fb
      Ajay Gupta 提交于
      Added a local variable "send_stop" to simplify "goto" statements.
      
      The "send_stop" handles below two case
      1) When first i2c start fails and so i2c stop is not sent before
      exiting
      
      2) When i2c stop failed after all transfers and we do not need to
      send another stop before exiting.
      Signed-off-by: NAjay Gupta <ajayg@nvidia.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      cb7302fb
  3. 28 5月, 2019 5 次提交
  4. 24 5月, 2019 2 次提交
  5. 21 5月, 2019 3 次提交
  6. 03 5月, 2019 4 次提交
  7. 25 4月, 2019 1 次提交
  8. 24 4月, 2019 3 次提交
    • A
      i2c: imx: correct the method of getting private data in notifier_call · d386bb90
      Anson Huang 提交于
      The way of getting private imx_i2c_struct in i2c_imx_clk_notifier_call()
      is incorrect, should use clk_change_nb element to get correct address
      and avoid below kernel dump during POST_RATE_CHANGE notify by clk
      framework:
      
      Unable to handle kernel paging request at virtual address 03ef1488
      pgd = (ptrval)
      [03ef1488] *pgd=00000000
      Internal error: Oops: 5 [#1] PREEMPT SMP ARM
      Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
      Workqueue: events reduce_bus_freq_handler
      PC is at i2c_imx_set_clk+0x10/0xb8
      LR is at i2c_imx_clk_notifier_call+0x20/0x28
      pc : [<806a893c>]    lr : [<806a8a04>]    psr: a0080013
      sp : bf399dd8  ip : bf3432ac  fp : bf7c1dc0
      r10: 00000002  r9 : 00000000  r8 : 00000000
      r7 : 03ef1480  r6 : bf399e50  r5 : ffffffff  r4 : 00000000
      r3 : bf025300  r2 : bf399e50  r1 : 00b71b00  r0 : bf399be8
      Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
      Control: 10c5387d  Table: 4e03004a  DAC: 00000051
      Process kworker/2:1 (pid: 38, stack limit = 0x(ptrval))
      Stack: (0xbf399dd8 to 0xbf39a000)
      9dc0:                                                       806a89e4 00000000
      9de0: ffffffff bf399e50 00000002 806a8a04 806a89e4 80142900 ffffffff 00000000
      9e00: bf34ef18 bf34ef04 00000000 ffffffff bf399e50 80142d84 00000000 bf399e6c
      9e20: bf34ef00 80f214c4 bf025300 00000002 80f08d08 bf017480 00000000 80142df0
      9e40: 00000000 80166ed8 80c27638 8045de58 bf352340 03ef1480 00b71b00 0f82e242
      9e60: bf025300 00000002 03ef1480 80f60e5c 00000001 8045edf0 00000002 8045eb08
      9e80: bf025300 00000002 03ef1480 8045ee10 03ef1480 8045eb08 bf01be40 00000002
      9ea0: 03ef1480 8045ee10 07de2900 8045eb08 bf01b780 00000002 07de2900 8045ee10
      9ec0: 80c27898 bf399ee4 bf020a80 00000002 1f78a400 8045ee10 80f60e5c 80460514
      9ee0: 80f60e5c bf01b600 bf01b480 80460460 0f82e242 bf383a80 bf383a00 80f60e5c
      9f00: 00000000 bf7c1dc0 80f60e70 80460564 80f60df0 80f60d24 80f60df0 8011e72c
      9f20: 00000000 80f60df0 80f60e6c bf7c4f00 00000000 8011e7ac bf274000 8013bd84
      9f40: bf7c1dd8 80f03d00 bf274000 bf7c1dc0 bf274014 bf7c1dd8 80f03d00 bf398000
      9f60: 00000008 8013bfb4 00000000 bf25d100 bf25d0c0 00000000 bf274000 8013bf88
      9f80: bf25d11c bf0cfebc 00000000 8014140c bf25d0c0 801412ec 00000000 00000000
      9fa0: 00000000 00000000 00000000 801010e8 00000000 00000000 00000000 00000000
      9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
      [<806a893c>] (i2c_imx_set_clk) from [<806a8a04>] (i2c_imx_clk_notifier_call+0x20/0x28)
      [<806a8a04>] (i2c_imx_clk_notifier_call) from [<80142900>] (notifier_call_chain+0x44/0x84)
      [<80142900>] (notifier_call_chain) from [<80142d84>] (__srcu_notifier_call_chain+0x44/0x98)
      [<80142d84>] (__srcu_notifier_call_chain) from [<80142df0>] (srcu_notifier_call_chain+0x18/0x20)
      [<80142df0>] (srcu_notifier_call_chain) from [<8045de58>] (__clk_notify+0x78/0xa4)
      [<8045de58>] (__clk_notify) from [<8045edf0>] (__clk_recalc_rates+0x60/0xb4)
      [<8045edf0>] (__clk_recalc_rates) from [<8045ee10>] (__clk_recalc_rates+0x80/0xb4)
      Code: e92d40f8 e5903298 e59072a0 e1530001 (e5975008)
      ---[ end trace fc7f5514b97b6cbb ]---
      
      Fixes: 90ad2cbe ("i2c: imx: use clk notifier for rate changes")
      Signed-off-by: NAnson Huang <Anson.Huang@nxp.com>
      Reviewed-by: NDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Cc: stable@kernel.org
      d386bb90
    • R
      i2c: iproc: Change driver to use 'BIT' macro · 8221324b
      Ray Jui 提交于
      Change the iProc I2C driver to use the 'BIT' macro from all '1 << XXX'
      bit operations to get rid of compiler warning and improve readability of
      the code
      Signed-off-by: NRay Jui <ray.jui@broadcom.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      8221324b
    • G
      i2c: riic: Add Runtime PM support · d303ce59
      Geert Uytterhoeven 提交于
      - Replace explicit clock handling by Runtime PM calls,
        - Streamline Runtime PM handling in error paths,
        - Enable Runtime PM in .probe(),
        - Disable Runtime PM in .remove(),
        - Make sure the device is runtime-resumed when disabling interrupts in
          .remove().
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: NNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
      Tested-by: NChris Brandt <chris.brandt@renesas.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      d303ce59
  9. 16 4月, 2019 7 次提交
  10. 15 4月, 2019 5 次提交
  11. 06 4月, 2019 1 次提交