1. 04 Sep, 2013 1 commit
    • Mika Westerberg's avatar
      spi/pxa2xx: check status register as well to determine if the device is off · 269e4a41
      Mika Westerberg authored
      The current interrupt handler calls pm_runtime_suspended() to check if the
      device is suspended or not. However, runtime PM status of the device is
      only set to suspended once all PM runtime suspend hooks have executed.
      
      In case of Intel Lynxpoint we have the device bound to the ACPI power
      domain and its runtime suspend hook will put the device to D3hot (or D3cold
      if possible). This means that the device is powered off before its state is
      set to runtime suspended. While in this state the device might get an
      interrupt that is meant for another device (as the interrupt line is
      shared), and because the device is powered off accessing its registers will
      return 0xffffffff that the driver misinterprets as an invalid state.
      
      When this happens user will see messages like below on the console:
      
        pxa2xx-spi INT33C0:00: bad message state in interrupt handler
      
      Fix this by checking the status register for ~0 and returning IRQ_NONE in
      that case.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      269e4a41
  2. 01 Sep, 2013 39 commits