1. 29 4月, 2014 3 次提交
    • S
      sparc32: fix sparse warnings in irq_32.c · fbb86383
      Sam Ravnborg 提交于
      Fix following warnings:
      irq_32.c:239:5: warning: symbol 'sparc_floppy_request_irq' was not declared. Should it be static?
      irq_32.c:294:24: warning: symbol 'fdc_status' was not declared. Should it be static?
      irq_32.c:297:6: warning: symbol 'pdma_vaddr' was not declared. Should it be static?
      irq_32.c:300:15: warning: symbol 'pdma_size' was not declared. Should it be static?
      irq_32.c:303:14: warning: symbol 'doing_pdma' was not declared. Should it be static?
      irq_32.c:306:6: warning: symbol 'pdma_base' was not declared. Should it be static?
      irq_32.c:309:15: warning: symbol 'pdma_areasize' was not declared. Should it be static?
      irq_32.c:317:6: warning: symbol 'sparc_floppy_irq' was not declared. Should it be static?
      
      The floppy parts were all added to iasm/setup.h - no other header files looked obvious.
      floppy_32.h was not an option as this file can only be included once from the
      floppy driver.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fbb86383
    • S
      sparc32: fix sparse warnings in sun4d_irq.c · 5ac75688
      Sam Ravnborg 提交于
      Fix following warnings:
      sun4d_irq.c:146:6: warning: symbol 'sun4d_handler_irq' was not declared. Should it be static?
      sun4d_irq.c:239:17: warning: symbol 'sun4d_irq' was not declared. Should it be static?
      sun4d_irq.c:288:14: warning: symbol '_sun4d_build_device_irq' was not declared. Should it be static?
      sun4d_irq.c:323:14: warning: symbol 'sun4d_build_device_irq' was not declared. Should it be static?
      sun4d_irq.c:386:14: warning: symbol 'sun4d_build_timer_irq' was not declared. Should it be static?
      sun4d_irq.c:482:13: warning: symbol 'sun4d_init_sbi_irq' was not declared. Should it be static?
      
      Apply static when applicable, otherwise add prototype
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ac75688
    • S
      sparc32: fix sparse warnings in sun4m_irq.c and sun4d_irq.c · 2b399177
      Sam Ravnborg 提交于
      Fix following warnings:
      
      sun4m_irq.c:308:6: warning: symbol 'sun4m_nmi' was not declared. Should it be static?
      sun4m_irq.c:396:28: warning: incorrect type in assignment (different address spaces)
      sun4m_irq.c:396:28:    expected unsigned int volatile *extern [addressable] [toplevel] master_l10_counter
      sun4d_irq.c:469:28: warning: incorrect type in assignment (different address spaces)
      sun4d_irq.c:469:28:    expected unsigned int volatile *extern [addressable] [toplevel] master_l10_counter
      
      master_l10_counter is a pointer to __iomem - add annotations.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2b399177
  2. 15 5月, 2012 3 次提交
  3. 14 5月, 2012 2 次提交
  4. 12 5月, 2012 1 次提交
  5. 16 4月, 2012 2 次提交
    • T
      sparc32: generic clockevent support · 62f08283
      Tkhai Kirill 提交于
      The kernel uses l14 timers as clockevents. l10 timer is used
      as clocksource if platform master_l10_counter isn't constantly
      zero. The clocksource is continuous, so it's possible to use
      high resolution timers. l10 timer is also used as clockevent
      on UP configurations.
      
      This realization is for sun4m, sun4d, sun4c, microsparc-IIep
      and LEON platforms. The appropriate LEON changes was made by
      Konrad Eisele.
      
      In case of sun4m's oneshot mode, profile irq is zeroed in
      smp4m_percpu_timer_interrupt(). It is maybe
      needless (double, triple etc overflow does nothing).
      
      sun4d is able to have oneshot mode too, but I haven't
      any way to test it. So code of its percpu timer handler
      is made as much equal to the current code as possible.
      
      The patch is tested on sun4m box in SMP mode by me,
      and tested by Konrad on leon in up mode (leon smp
      is broken atm - due to other reasons).
      Signed-off-by: NTkhai Kirill <tkhai@yandex.ru>
      Tested-by: Konrad Eisele <konrad@gaisler.com> [leon up]
      [sam: revised patch to provide generic support for leon]
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      62f08283
    • S
      sparc32: rename sparc_irq_config to sparc_config · 472bc4f2
      Sam Ravnborg 提交于
      This struct holds platform specific config and is thus not
      limited to irq stuff.
      Do not let the name confuse us to think this is irq only.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      472bc4f2
  6. 29 3月, 2012 1 次提交
  7. 30 8月, 2011 1 次提交
    • K
      sparc32,sun4d: Change IPI IRQ level to prevent collision between IPI and timer interrupt · 38f7f8f0
      Kjetil Oftedal 提交于
      On Sun4d systems running in SMP mode, IRQ 14 is used for timer interrupts
      and has a specialized interrupt handler. IPI is currently set to use IRQ 14
      as well, which causes it to trigger the timer interrupt handler, and not the
      IPI interrupt handler.
      
      The IPI interrupt is therefore changed to IRQ 13, which is the highest
      normally handled interrupt. This IRQ is also used for SBUS interrupts,
      however there is nothing in the IPI/SBUS interrupt handlers that indicate
      that they will not handle sharing the interrupt.
      (IRQ 13 is indicated as audio interrupt, which is unlikely to be found in a
      sun4d system)
      Signed-off-by: NKjetil Oftedal <oftedal@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      38f7f8f0
  8. 17 5月, 2011 1 次提交
    • D
      sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines · 55dd23ec
      Daniel Hellstrom 提交于
      The sun4d does not seem to have a distingstion between soft and hard
      IRQs. When generating IPIs the generated IRQ looks like a hard IRQ,
      this patch adds a "IPI check" in the sun4d irq trap handler at a
      predefined IRQ number (SUN4D_IPI_IRQ). Before generating an IPI
      a per-cpu memory structure is modified for the "IPI check" to
      successfully detect a IPI request to a specific processor, the check
      clears the IPI work requested.
      
      All three IPIs (resched, single and cpu-mask) use the same IRQ
      number.
      
      The IPI IRQ should preferrably be on a separate IRQ and definitly
      not shared with IRQ handlers requesting IRQ with IRQF_SHARED.
      Signed-off-by: NDaniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      55dd23ec
  9. 20 4月, 2011 1 次提交
    • S
      sparc32: genirq support · 6baa9b20
      Sam Ravnborg 提交于
      The conversion of sparc32 to genirq is based on original work done
      by David S. Miller.
      Daniel Hellstrom has helped in the conversion and implemented
      the shutdowm functionality.
      Marcel van Nies <morcles@gmail.com> has tested this on Sparc Station 20
      
      Test status:
      sun4c      - not tested
      sun4m,pci  - not tested
      sun4m,sbus - tested (Sparc Classic, Sparc Station 5, Sparc Station 20)
      sun4d      - not tested
      leon       - tested on various combinations of leon boards,
                   including SMP variants
      
      generic
         Introduce use of GENERIC_HARDIRQS and GENERIC_IRQ_SHOW
         Allocate 64 IRQs - which is enough even for SS2000
         Use a table of irq_bucket to maintain uses IRQs
            irq_bucket is also used to chain several irq's that
            must be called when the same intrrupt is asserted
         Use irq_link to link a interrupt source to the irq
         All plafforms must now supply their own build_device_irq method
         handler_irq rewriten to use generic irq support
      
      floppy
         Read FLOPPY_IRQ from platform device
         Use generic request_irq to register the floppy interrupt
         Rewrote sparc_floppy_irq to use the generic irq support
      
      pcic:
         Introduce irq_chip
         Store mask in chip_data for use in mask/unmask functions
         Add build_device_irq for pcic
         Use pcic_build_device_irq in pci_time_init
         allocate virtual irqs in pcic_fill_irq
      
      sun4c:
         Introduce irq_chip
         Store mask in chip_data for use in mask/unmask functions
         Add build_device_irq for sun4c
         Use sun4c_build_device_irq in sun4c_init_timers
      
      sun4m:
         Introduce irq_chip
         Introduce dedicated mask/unmask methods
         Introduce sun4m_handler_data that allow easy access to necessary
           data in the mask/unmask functions
         Add a helper method to enable profile_timer (used from smp)
         Added sun4m_build_device_irq
         Use sun4m_build_device_irq in sun4m_init_timers
      
         TODO:
            There is no replacement for smp_rotate that always scheduled
            next CPU as interrupt target upon an interrupt
      
      sun4d:
         Introduce irq_chip
         Introduce dedicated mask/unmask methods
         Introduce sun4d_handler_data that allow easy access to
         necessary data in mask/unmask fuctions
         Rewrote sun4d_handler_irq to use generic irq support
      
         TODO:
            The original implmentation of enable/disable had:
      
                if (irq < NR_IRQS)
                     return;
      
            The new implmentation does not distingush between SBUS and cpu
            interrupts.
            I am no sure what is right here. I assume we need to do
            something for the cpu interrupts.
      
            I have not succeeded booting my sun4d box (with or without this patch)
            and my understanding of this platfrom is limited.
            So I would be a bit suprised if this works.
      
      leon:
         Introduce irq_chip
         Store mask in chip_data for use in mask/unmask functions
         Add build_device_irq for leon
         Use leon_build_device_irq in leon_init_timers
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NDaniel Hellstrom <daniel@gaisler.com>
      Tested-by: NDaniel Hellstrom <daniel@gaisler.com>
      Tested-by: NMarcel van Nies <morcles@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6baa9b20
  10. 17 3月, 2011 3 次提交
  11. 20 9月, 2008 1 次提交
  12. 22 7月, 2007 2 次提交