1. 16 5月, 2012 1 次提交
  2. 15 5月, 2012 1 次提交
  3. 12 5月, 2012 1 次提交
    • S
      sparc32: drop sun4c support · 2c1cfb2d
      Sam Ravnborg 提交于
      Machines with sun4c support are very rare these days, and noone
      is using them for any practical purposes.
      The sun4c support has been know broken for quite some time too.
      
      So rather than trying to keep it up-to-date, lets get rid of it.
      This allows us to do some very welcome cleanup of sparc32 support.
      
      Updated the former sun4c specifc nmi (which was also used
      for sun4m UP) to be a generic UP NMI.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c1cfb2d
  4. 16 4月, 2012 1 次提交
  5. 01 11月, 2011 1 次提交
  6. 17 5月, 2011 1 次提交
    • D
      sparc32: implement SMP IPIs using the generic functions · d6d04819
      Daniel Hellstrom 提交于
      The current sparc32 SMP IPI generation is implemented the
      cross call function. The cross call function uses IRQ15 the
      NMI, this is has the effect that IPIs will interrupt IRQ
      critical areas and hang the system. Typically on/after
      spin_lock_irqsave calls can be aborted.
      
      The cross call functionality must still exist to flush
      cache/TLBS.
      
      This patch provides CPU models a custom way to implement
      generation of IPIs on the generic code's request. The
      typical approach is to generate an IRQ for each IPI case.
      
      After this patch each sparc32 SMP CPU model needs to
      implement IPIs in order to function properly.
      Signed-off-by: NDaniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d6d04819
  7. 20 4月, 2011 2 次提交
    • 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
    • S
      sparc32: cleanup code for pci init · 06010fb5
      Sam Ravnborg 提交于
      Move the ifdeffery to a header file to make the logic more
      obvious where we decide between PCI or SBUS init
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      06010fb5
  8. 17 3月, 2011 6 次提交
  9. 27 10月, 2010 1 次提交
    • N
      sparc32: fix build failure on CONFIG_SPARC_LEON · 51672321
      Namhyung Kim 提交于
      CC      arch/sparc/kernel/irq_32.o
      arch/sparc/kernel/irq_32.c: In function 'request_fast_irq':
      arch/sparc/kernel/irq_32.c:370:25: error: conflicting types for 'trapbase_cpu1'
      arch/sparc/include/asm/leon.h:366:22: note: previous declaration of 'trapbase_cpu1' was here
      arch/sparc/kernel/irq_32.c:370:40: error: conflicting types for 'trapbase_cpu2'
      arch/sparc/include/asm/leon.h:367:22: note: previous declaration of 'trapbase_cpu2' was here
      arch/sparc/kernel/irq_32.c:370:55: error: conflicting types for 'trapbase_cpu3'
      arch/sparc/include/asm/leon.h:368:22: note: previous declaration of 'trapbase_cpu3' was here
      make[3]: *** [arch/sparc/kernel/irq_32.o] Error 1
      make[2]: *** [arch/sparc/kernel] Error 2
      make[1]: *** [sub-make] Error 2
      make: *** [all] Error 2
      Signed-off-by: NNamhyung Kim <namhyung@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      51672321
  10. 07 10月, 2010 1 次提交
    • D
      Fix IRQ flag handling naming · df9ee292
      David Howells 提交于
      Fix the IRQ flag handling naming.  In linux/irqflags.h under one configuration,
      it maps:
      
      	local_irq_enable() -> raw_local_irq_enable()
      	local_irq_disable() -> raw_local_irq_disable()
      	local_irq_save() -> raw_local_irq_save()
      	...
      
      and under the other configuration, it maps:
      
      	raw_local_irq_enable() -> local_irq_enable()
      	raw_local_irq_disable() -> local_irq_disable()
      	raw_local_irq_save() -> local_irq_save()
      	...
      
      This is quite confusing.  There should be one set of names expected of the
      arch, and this should be wrapped to give another set of names that are expected
      by users of this facility.
      
      Change this to have the arch provide:
      
      	flags = arch_local_save_flags()
      	flags = arch_local_irq_save()
      	arch_local_irq_restore(flags)
      	arch_local_irq_disable()
      	arch_local_irq_enable()
      	arch_irqs_disabled_flags(flags)
      	arch_irqs_disabled()
      	arch_safe_halt()
      
      Then linux/irqflags.h wraps these to provide:
      
      	raw_local_save_flags(flags)
      	raw_local_irq_save(flags)
      	raw_local_irq_restore(flags)
      	raw_local_irq_disable()
      	raw_local_irq_enable()
      	raw_irqs_disabled_flags(flags)
      	raw_irqs_disabled()
      	raw_safe_halt()
      
      with type checking on the flags 'arguments', and then wraps those to provide:
      
      	local_save_flags(flags)
      	local_irq_save(flags)
      	local_irq_restore(flags)
      	local_irq_disable()
      	local_irq_enable()
      	irqs_disabled_flags(flags)
      	irqs_disabled()
      	safe_halt()
      
      with tracing included if enabled.
      
      The arch functions can now all be inline functions rather than some of them
      having to be macros.
      
      Signed-off-by: David Howells <dhowells@redhat.com> [X86, FRV, MN10300]
      Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> [Tile]
      Signed-off-by: Michal Simek <monstr@monstr.eu> [Microblaze]
      Tested-by: Catalin Marinas <catalin.marinas@arm.com> [ARM]
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> [AVR]
      Acked-by: Tony Luck <tony.luck@intel.com> [IA-64]
      Acked-by: Hirokazu Takata <takata@linux-m32r.org> [M32R]
      Acked-by: Greg Ungerer <gerg@uclinux.org> [M68K/M68KNOMMU]
      Acked-by: Ralf Baechle <ralf@linux-mips.org> [MIPS]
      Acked-by: Kyle McMartin <kyle@mcmartin.ca> [PA-RISC]
      Acked-by: Paul Mackerras <paulus@samba.org> [PowerPC]
      Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> [S390]
      Acked-by: Chen Liqin <liqin.chen@sunplusct.com> [Score]
      Acked-by: Matt Fleming <matt@console-pimps.org> [SH]
      Acked-by: David S. Miller <davem@davemloft.net> [Sparc]
      Acked-by: Chris Zankel <chris@zankel.net> [Xtensa]
      Reviewed-by: Richard Henderson <rth@twiddle.net> [Alpha]
      Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp> [H8300]
      Cc: starvik@axis.com [CRIS]
      Cc: jesper.nilsson@axis.com [CRIS]
      Cc: linux-cris-kernel@axis.com
      df9ee292
  11. 18 8月, 2009 1 次提交
  12. 30 3月, 2009 1 次提交
  13. 09 1月, 2009 1 次提交
    • S
      sparc: move EXPORT_SYMBOL to the symbols definition · 6943f3da
      Sam Ravnborg 提交于
      Move all applicable EXPORT_SYMBOL()s to the file where the respective
      symbol is defined.
      
      Removed all the includes that are no longer needed in sparc_ksyms_32.c
      
      Comment all remaining EXPORT_SYMBOL()s in sparc_ksyms_32.c
      
      Two symbols are shared with sparc64 thus the exports were removed from
      the sparc_ksyms_64.c too, along with the include their ommission made
      redundant.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      
      Additions by Julian Calaby:
      * Moved EXPORT_SYMBOL()s for prom functions to their rightful places.
      * Made some minor cleanups to the includes and comments of sparc_ksyms_32.c
      * Made another subtraction from sparc_ksyms_64.c
      * Updated and tidied commit message.
      * Rebased patch over sparc-2.6.git HEAD.
      * Ensured that all modified files have the correct includes.
      Signed-off-by: NJulian Calaby <julian.calaby@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6943f3da
  14. 06 1月, 2009 1 次提交
    • J
      sparc: Fix minor SPARC32 compile error · 4696b64d
      Julian Calaby 提交于
      When CONFIG_PROC_FS is unset, include/linux/interrupt.h defines
      init_irq_proc() as an empty function.
      
      arch/sparc/kernel/irq_32.c defines this function unconditionally.
      
      Fix the latter so that it only defines this function when CONFIG_PROC_FS
      is set.
      
      This fixes the following error:
      arch/sparc/kernel/irq_32.c:672: error: redefinition of 'init_irq_proc'
      include/linux/interrupt.h:461: error: previous definition of
      'init_irq_proc' was here
      
      This was found using randconfig builds.
      Signed-off-by: NJulian Calaby <julian.calaby@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4696b64d
  15. 08 12月, 2008 1 次提交
    • S
      sparc: fix sparse warnings in irq_32.c · 81265fd9
      Sam Ravnborg 提交于
      Fix following sparse warnings:
      symbol 'static_irqaction' was not declared. Should it be static?
      symbol 'static_irq_count' was not declared. Should it be static?
      symbol 'irq_action_lock' was not declared. Should it be static?
      symbol 'unexpected_irq' was not declared. Should it be static?
      symbol 'handler_irq' was not declared. Should it be static?
      returning void-valued expression
      returning void-valued expression
      returning void-valued expression
      symbol 'init_IRQ' was not declared. Should it be static?
      
      Warnings were fixed by addding proper declarations
      and fixing return path of a few functions.
      
      There remains several warnings all related to the floppy driver.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      81265fd9
  16. 05 12月, 2008 1 次提交
    • S
      sparc: prepare kernel/ for unification · d670bd4f
      Sam Ravnborg 提交于
      o sparc32 files with identical names to sparc64 renamed to <name>_32.S
      o introduced a few Kconfig helpers to simplify Makefile logic
      o refactored Makefile to prepare for unification
        - use obj-$(CONFIG_SPARC32) for sparc32 specific files
        - use <name>_$(BITS) for files where sparc64 has a _64 variant
        - sparc64 directly include a few files where sparc32 builds them,
          refer to these files directly (no BITS)
        - sneaked in -Werror as used by sparc64
      o modified sparc/Makefile to use the new names for head/init_task
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d670bd4f
  17. 16 10月, 2008 3 次提交
  18. 18 7月, 2008 1 次提交
    • A
      sparc/kernel/: possible cleanups · c61c65cd
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make the following needlessly global code static:
        - apc.c: apc_swift_idle()
        - ebus.c: ebus_blacklist_irq()
        - ebus.c: fill_ebus_child()
        - ebus.c: fill_ebus_device()
        - entry.S: syscall_is_too_hard
        - etra: tsetup_sun4c_stackchk
        - head.S: cputyp
        - head.S: prom_vector_p
        - idprom.c: Sun_Machines[]
        - ioport.c: _sparc_find_resource()
        - ioport.c: create_proc_read_entry()
        - irq.c: struct sparc_irq[]
        - rtrap.S: sun4c_rett_stackchk
        - setup.c: prom_sync_me()
        - setup.c: boot_flags
        - sun4c_irq.c: sun4c_sbint_to_irq()
        - sun4d_irq.c: sbus_tid[]
        - sun4d_irq.c: struct sbus_actions
        - sun4d_irq.c: sun4d_sbint_to_irq()
        - sun4m_irq.c: sun4m_sbint_to_irq()
        - sun4m_irq.c: sun4m_get_irqmask()
        - sun4m_irq.c: sun4m_timers
        - sun4m_smp.c: smp4m_cross_call()
        - sun4m_smp.c: smp4m_blackbox_id()
        - sun4m_smp.c: smp4m_blackbox_current()
        - time.c: sp_clock_typ
        - time.c: sbus_time_init()
        - traps.c: instruction_dump()
        - wof.S: spwin_sun4c_stackchk
        - wuf.S: sun4c_fwin_stackchk
      - #if 0 the following unused code:
        - process.c: sparc_backtrace_lock
        - process.c: __show_backtrace()
        - process.c: show_backtrace()
        - process.c: smp_show_backtrace_all_cpus()
      - remove the following unused code:
        - entry.S: __handle_exception
        - smp.c: smp_num_cpus
        - smp.c: smp_activated
        - smp.c: __cpu_number_map[]
        - smp.c: __cpu_logical_map[]
        - smp.c: bitops_spinlock
        - traps.c: trap_curbuf
        - traps.c: trapbuf[]
        - traps.c: linux_smp_still_initting
        - traps.c: thiscpus_tbr
        - traps.c: thiscpus_mid
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c61c65cd
  19. 20 5月, 2008 1 次提交
  20. 07 11月, 2007 1 次提交
  21. 24 10月, 2007 1 次提交
  22. 14 10月, 2007 1 次提交
    • R
      [SPARC32]: Add irqflags.h to sparc32 and use it from generic code. · e8dd1612
      Robert Reif 提交于
      Added asm-sparc/irqflags.h and moved irq related code from system.h to it.
      Renamed local_irq functions to raw_local_irq in irq.c.
      Modified system.h to include linux/irqflags.h which includes asm/irqflags.h.
      Added TRACE_IRQFLAGS_SUPPORT to Kconfig.debug.
      
      This is the first step in adding IRQ-flags state tracing as outlined in
      Documentation/irqflags-tracing.txt.  These changes should be harmless
      because they just move things around and rename them.
      
      The next step is making the lowlevel entry code modifications which
      to be honest are beyond my capabilities at this point.
      
      Boot tested on an ss20 running an SMP kernel.
      Signed-off-by: NRobert Reif <reif@earthlink.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e8dd1612
  23. 04 8月, 2007 1 次提交
  24. 22 7月, 2007 2 次提交
  25. 12 5月, 2007 1 次提交
  26. 09 5月, 2007 1 次提交
  27. 14 12月, 2006 1 次提交
    • R
      [PATCH] getting rid of all casts of k[cmz]alloc() calls · 5cbded58
      Robert P. J. Day 提交于
      Run this:
      
      	#!/bin/sh
      	for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
      	  echo "De-casting $f..."
      	  perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
      	done
      
      And then go through and reinstate those cases where code is casting pointers
      to non-pointers.
      
      And then drop a few hunks which conflicted with outstanding work.
      
      Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Paul Fulghum <paulkf@microgate.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Karsten Keil <kkeil@suse.de>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5cbded58
  28. 18 10月, 2006 1 次提交
  29. 09 10月, 2006 2 次提交
  30. 22 7月, 2006 1 次提交