1. 07 Jun, 2011 3 commits
    • oftedal's avatar
      Add support for allocating irqs for bootbus devices · 9eeb0898
      oftedal authored
      Some devices that can generate interrupts are connected directly to the
      CPU through the bootbus on sun4d. This patch allows IRQs to be allocated
      for such devices. The information used for allocating interrupts for
      sbus devices are present at the corresponding SBI node. For bootbus
      devices this information is present in the bootbus node.
      Signed-off-by: default avatarKjetil Oftedal <oftedal@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9eeb0898
    • oftedal's avatar
      Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly · ea160584
      oftedal authored
      During the introduction of genirq on sparc32 bugs were introduced in
      the interrupt handler for sun4d. The interrupts handler checks the status
      of the various sbus interfaces in the system and generates a virtual
      interrupt, based upon the location of the interrupt source. This lookup
      was broken by restructuring the code in such a way that index and shift
      operations were performed prior to comparing this against the values
      read from the interrupt controllers.
      
      This could cause the handler to loop eternally as the interrupt source
      could be skipped before any check was performed. Additionally
      sun4d_encode_irq performs shifting internally, so it should not be performed
      twice.
      
      In sun4d_unmask interrupts were not correctly acknowledged, as the
      corresponding bit it the interrupt mask was not actually cleared.
      Signed-off-by: default avatarKjetil Oftedal <oftedal@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ea160584
    • oftedal's avatar
      Restructure sun4d_build_device_irq so that timer interrupts can be allocated · 5fba1708
      oftedal authored
      sun4d_build_device_irq was called without a valid platform_device when
      the system timer was initialized on sun4d systems. This caused a NULL
      pointer crash.
      
      Josip Rodin suggested that the current sun4d_build_device_irq should be
      split into two functions. So that the timer initialization could skip
      the slot and sbus interface detection code in sun4d_build_device_irq, as
      this does not make sence due to the timer interrupts not being generated
      from a device located on sbus.
      Signed-off-by: default avatarKjetil Oftedal <oftedal@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5fba1708
  2. 03 Jun, 2011 1 commit
  3. 02 Jun, 2011 4 commits
  4. 01 Jun, 2011 17 commits
  5. 31 May, 2011 9 commits
  6. 30 May, 2011 6 commits