1. 22 11月, 2008 2 次提交
    • P
      i2c-omap: Close suspected race between omap_i2c_idle() and omap_i2c_isr() · 0cbbcffd
      Paul Walmsley 提交于
      omap_i2c_idle() sets an internal flag, "dev->idle", instructing its
      ISR to decline interrupts.  It sets this flag before it actually masks
      the interrupts on the I2C controller.  This is problematic, since an
      I2C interrupt could arrive after dev->idle is set, but before the
      interrupt source is masked.  When this happens, Linux disables the I2C
      controller's IRQ, causing all future transactions on the bus to fail.
      
      Symptoms, happening on about 7% of boots:
      
         irq 56: nobody cared (try booting with the "irqpoll" option)
         <warning traceback here>
         Disabling IRQ #56
         i2c_omap i2c_omap.1: controller timed out
      
      In omap_i2c_idle(), this patch sets dev->idle only after the interrupt
      mask write to the I2C controller has left the ARM write buffer.
      That's probably the major offender.  For additional prophylaxis, in
      omap_i2c_unidle(), the patch clears the dev->idle flag before
      interrupts are enabled, rather than afterwards.
      
      The patch has survived twenty-two reboots on the 3430SDP here without
      wedging I2C1.  Not absolutely dispositive, but promising!
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      
      0cbbcffd
    • J
      i2c-omap: Do not use interruptible wait call in omap_i2c_xfer_msg · b7af349b
      Jarkko Nikula 提交于
      If there is a signal pending and wait_for_completion_interruptible_timeout
      terminates with -ERESTARTSYS, we return and disable the i2c clocks in
      omap_i2c_xfer.
      
      If we terminate before sending last i2c message with a stop condition, the
      bus remains busy and we are not able to send new messages into bus with
      successive omap_i2c_xfer calls. Therefore a pending signal is not caught
      here and we return only because of timeout or i2c error.
      Signed-off-by: NJarkko Nikula <jarkko.nikula@nokia.com>
      Signed-off-by: NJuha Yrjola <juha.yrjola@solidboot.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      
      b7af349b
  2. 13 11月, 2008 1 次提交
  3. 30 10月, 2008 2 次提交
  4. 23 10月, 2008 3 次提交
  5. 21 10月, 2008 3 次提交
  6. 17 10月, 2008 1 次提交
    • J
      hwmon: (ams) Convert to a new-style i2c driver · 810ad7b6
      Jean Delvare 提交于
      The legacy i2c binding model is phasing out, so the ams driver needs
      to be converted to a new-style i2c driver. Here is a naive approach of
      this conversion. Basically it is moving the i2c device creation from
      the ams driver to the i2c-powermac driver. This should work, but I
      suspect we could come up with something cleaner by declaring the i2c
      device as part of the platform setup. This could be done later by
      someone more familiar with openfirmware-based platforms than I am
      myself.
      
      One nice thing brought by this conversion is that the ams driver
      should be loaded automatically on systems where is is needed (at
      least when the I2C interface to the chip is used) providing
      coldplug-aware user-space environment.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Stelian Pop <stelian@popies.net>
      Cc: Michael Hanselmann <linux-kernel@hansmi.ch>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      810ad7b6
  7. 14 10月, 2008 6 次提交
  8. 09 10月, 2008 1 次提交
  9. 08 10月, 2008 1 次提交
  10. 03 10月, 2008 1 次提交
  11. 24 9月, 2008 1 次提交
  12. 23 9月, 2008 1 次提交
  13. 09 9月, 2008 3 次提交
  14. 06 9月, 2008 1 次提交
  15. 05 9月, 2008 1 次提交
    • M
      i2c: fix i2c-sh_mobile timing issues · 4eb00c9f
      Magnus Damm 提交于
      This patch teaches the i2c-sh_mobile driver to make use of wait irqs.
      Without this patch only dte irqs are used which may lead to overruns
      and cases of missing stop and extra bytes being read on the i2c bus.
      
      Use of wait irqs forces the hardware to pause and wait until the cpu
      is ready. Polling is also reworked in this patch to fix ms delay issues.
      
      Verified with bus analyzer and tested on MigoR and AP325RXA boards.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      4eb00c9f
  16. 24 8月, 2008 1 次提交
  17. 11 8月, 2008 1 次提交
  18. 07 8月, 2008 3 次提交
  19. 28 7月, 2008 4 次提交
  20. 17 7月, 2008 1 次提交
  21. 15 7月, 2008 2 次提交