aboutsummaryrefslogtreecommitdiff
path: root/arch/m68k/atari
AgeCommit message (Collapse)AuthorFilesLines
2019-05-21treewide: Add SPDX license identifier - Makefile/KconfigThomas Gleixner1-0/+1
Add SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any form These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0-only Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-03-25m68k: atari: Convert to clocksource APIFinn Thain1-17/+36
Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Normally the MFP timer C interrupt flag would be used to check for timer counter wrap-around. Unfortunately, that flag gets cleared by the MFP itself (due to automatic End-of-Interrupt mode). This means that mfp_timer_c_handler() and atari_read_clk() must race when accounting for counter wrap-around. That problem is avoided by effectively stopping the clock when it might otherwise jump backwards (due to interrupt latency). Note that this may affect clock accuracy. After the timer interrupt is asserted, wait for the counter to be reloaded so that atari_read_clk() will not see the intermediate state as that would cause the clock to jump backwards. Signed-off-by: Finn Thain <[email protected]> Acked-by: Linus Walleij <[email protected]> Tested-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2019-03-25m68k: Drop ARCH_USES_GETTIMEOFFSETFinn Thain1-2/+0
The functions that implement arch_gettimeoffset are re-used by new clocksource drivers in subsequent patches. Signed-off-by: Finn Thain <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2019-03-25m68k: Call timer_interrupt() with interrupts disabledFinn Thain2-3/+16
Some platforms execute their timer handler with the interrupt priority level set below 6. That means the handler could be interrupted by another driver and this could lead to re-entry of the timer core. Avoid this by use of local_irq_save/restore for timer interrupt dispatch. This provides mutual exclusion around the timer interrupt flag access which is needed later in this series for the clocksource conversion. Reported-by: Thomas Gleixner <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2019-03-12treewide: add checks for the return value of memblock_alloc*()Mike Rapoport1-0/+4
Add check for the return value of memblock_alloc*() functions and call panic() in case of error. The panic message repeats the one used by panicing memblock allocators with adjustment of parameters to include only relevant ones. The replacement was mostly automated with semantic patches like the one below with manual massaging of format strings. @@ expression ptr, size, align; @@ ptr = memblock_alloc(size, align); + if (!ptr) + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", __func__, size, align); [[email protected]: use '%pa' with 'phys_addr_t' type] Link: http://lkml.kernel.org/r/[email protected] [[email protected]: fix format strings for panics after memblock_alloc] Link: http://lkml.kernel.org/r/[email protected] [[email protected]: don't panic if the allocation in sparse_buffer_init fails] Link: http://lkml.kernel.org/r/20190131074018.GD28876@rapoport-lnx [[email protected]: fix xtensa printk warning] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Mike Rapoport <[email protected]> Signed-off-by: Anders Roxell <[email protected]> Reviewed-by: Guo Ren <[email protected]> [c-sky] Acked-by: Paul Burton <[email protected]> [MIPS] Acked-by: Heiko Carstens <[email protected]> [s390] Reviewed-by: Juergen Gross <[email protected]> [Xen] Reviewed-by: Geert Uytterhoeven <[email protected]> [m68k] Acked-by: Max Filippov <[email protected]> [xtensa] Cc: Catalin Marinas <[email protected]> Cc: Christophe Leroy <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Dennis Zhou <[email protected]> Cc: Greentime Hu <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Guan Xuetao <[email protected]> Cc: Guo Ren <[email protected]> Cc: Mark Salter <[email protected]> Cc: Matt Turner <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Michal Simek <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Richard Weinberger <[email protected]> Cc: Rich Felker <[email protected]> Cc: Rob Herring <[email protected]> Cc: Rob Herring <[email protected]> Cc: Russell King <[email protected]> Cc: Stafford Horne <[email protected]> Cc: Tony Luck <[email protected]> Cc: Vineet Gupta <[email protected]> Cc: Yoshinori Sato <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2019-03-06Merge tag 'char-misc-5.1-rc1' of ↵Linus Torvalds2-0/+274
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver updates from Greg KH: "Here is the big char/misc driver patch pull request for 5.1-rc1. The largest thing by far is the new habanalabs driver for their AI accelerator chip. For now it is in the drivers/misc directory but will probably move to a new directory soon along with other drivers of this type. Other than that, just the usual set of individual driver updates and fixes. There's an "odd" merge in here from the DRM tree that they asked me to do as the MEI driver is starting to interact with the i915 driver, and it needed some coordination. All of those patches have been properly acked by the relevant subsystem maintainers. All of these have been in linux-next with no reported issues, most for quite some time" * tag 'char-misc-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (219 commits) habanalabs: adjust Kconfig to fix build errors habanalabs: use %px instead of %p in error print habanalabs: use do_div for 64-bit divisions intel_th: gth: Fix an off-by-one in output unassigning habanalabs: fix little-endian<->cpu conversion warnings habanalabs: use NULL to initialize array of pointers habanalabs: fix little-endian<->cpu conversion warnings habanalabs: soft-reset device if context-switch fails habanalabs: print pointer using %p habanalabs: fix memory leak with CBs with unaligned size habanalabs: return correct error code on MMU mapping failure habanalabs: add comments in uapi/misc/habanalabs.h habanalabs: extend QMAN0 job timeout habanalabs: set DMA0 completion to SOB 1007 habanalabs: fix validation of WREG32 to DMA completion habanalabs: fix mmu cache registers init habanalabs: disable CPU access on timeouts habanalabs: add MMU DRAM default page mapping habanalabs: Dissociate RAZWI info from event types misc/habanalabs: adjust Kconfig to fix build errors ...
2019-01-22m68k: Dispatch nvram_ops calls to Atari or Mac functionsFinn Thain1-16/+5
A multi-platform kernel binary has to decide at run-time how to dispatch the arch_nvram_ops calls. Add a platform-independent arch_nvram_ops struct for this, to replace the atari-specific one. Enable CONFIG_HAVE_ARCH_NVRAM_OPS for Macs. Acked-by: Geert Uytterhoeven <[email protected]> Tested-by: Stan Johnson <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-01-22m68k/atari: Implement arch_nvram_ops methods and enable ↵Finn Thain1-0/+24
CONFIG_HAVE_ARCH_NVRAM_OPS Atari RTC NVRAM uses a checksum so implement the remaining arch_nvram_ops methods for the set_checksum and initialize ioctls. Enable CONFIG_HAVE_ARCH_NVRAM_OPS. Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-01-22m68k/atari: Implement arch_nvram_ops structFinn Thain1-0/+49
By implementing an arch_nvram_ops struct, a platform can re-use the drivers/char/nvram.c module without needing any arch-specific code in that module. Atari does so here. Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-01-22nvram: Replace nvram_* function exports with static functionsFinn Thain1-36/+3
Replace nvram_* functions with static functions in nvram.h. These will become wrappers for struct nvram_ops method calls. This patch effectively disables existing NVRAM functionality so as to allow the rest of the series to be bisected without build failures. That functionality is gradually re-implemented in subsequent patches. Replace the sole validate-checksum-and-read-byte sequence with a call to nvram_read() which will gain the same semantics in subsequent patches. Remove unused exports. Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-01-22m68k/atari: Move Atari-specific code out of drivers/char/nvram.cFinn Thain2-0/+245
Move the m68k-specific code out of the driver to make the driver generic. I've used 'SPDX-License-Identifier: GPL-2.0+' for the new file because the old file is covered by MODULE_LICENSE("GPL"). Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-01-21m68k/atari: Avoid VLA use in atari_switches_setup()Geert Uytterhoeven1-1/+1
With gcc 7.3.0: arch/m68k/atari/config.c: In function ‘atari_switches_setup’: arch/m68k/atari/config.c:151:2: warning: ISO C90 forbids variable length array ‘switches’ [-Wvla] char switches[strlen(str) + 1]; ^~~~ Replace the variable size by the maximum kernel command line size (256 bytes), which is an upper limit for all suboptions. Signed-off-by: Geert Uytterhoeven <[email protected]>
2018-10-31mm: remove include/linux/bootmem.hMike Rapoport1-1/+1
Move remaining definitions and declarations from include/linux/bootmem.h into include/linux/memblock.h and remove the redundant header. The includes were replaced with the semantic patch below and then semi-automated removal of duplicated '#include <linux/memblock.h> @@ @@ - #include <linux/bootmem.h> + #include <linux/memblock.h> [[email protected]: dma-direct: fix up for the removal of linux/bootmem.h] Link: http://lkml.kernel.org/r/[email protected] [[email protected]: powerpc: fix up for removal of linux/bootmem.h] Link: http://lkml.kernel.org/r/[email protected] [[email protected]: x86/kaslr, ACPI/NUMA: fix for linux/bootmem.h removal] Link: http://lkml.kernel.org/r/[email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Mike Rapoport <[email protected]> Signed-off-by: Stephen Rothwell <[email protected]> Acked-by: Michal Hocko <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Chris Zankel <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Geert Uytterhoeven <[email protected]> Cc: Greentime Hu <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Guan Xuetao <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: Jonas Bonn <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Ley Foon Tan <[email protected]> Cc: Mark Salter <[email protected]> Cc: Martin Schwidefsky <[email protected]> Cc: Matt Turner <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Michal Simek <[email protected]> Cc: Palmer Dabbelt <[email protected]> Cc: Paul Burton <[email protected]> Cc: Richard Kuo <[email protected]> Cc: Richard Weinberger <[email protected]> Cc: Rich Felker <[email protected]> Cc: Russell King <[email protected]> Cc: Serge Semin <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Tony Luck <[email protected]> Cc: Vineet Gupta <[email protected]> Cc: Yoshinori Sato <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2018-10-31memblock: replace alloc_bootmem_low_pages with memblock_alloc_lowMike Rapoport1-1/+2
The alloc_bootmem_low_pages() function allocates PAGE_SIZE aligned regions from low memory. memblock_alloc_low() with alignment set to PAGE_SIZE does exactly the same thing. The conversion is done using the following semantic patch: @@ expression e; @@ - alloc_bootmem_low_pages(e) + memblock_alloc_low(e, PAGE_SIZE) Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Mike Rapoport <[email protected]> Acked-by: Michal Hocko <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Chris Zankel <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Geert Uytterhoeven <[email protected]> Cc: Greentime Hu <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Guan Xuetao <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: Jonas Bonn <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Ley Foon Tan <[email protected]> Cc: Mark Salter <[email protected]> Cc: Martin Schwidefsky <[email protected]> Cc: Matt Turner <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Michal Simek <[email protected]> Cc: Palmer Dabbelt <[email protected]> Cc: Paul Burton <[email protected]> Cc: Richard Kuo <[email protected]> Cc: Richard Weinberger <[email protected]> Cc: Rich Felker <[email protected]> Cc: Russell King <[email protected]> Cc: Serge Semin <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Tony Luck <[email protected]> Cc: Vineet Gupta <[email protected]> Cc: Yoshinori Sato <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2018-07-29m68k: Remove unused set_clock_mmss() helpersArnd Bergmann2-68/+0
Commit 397ac99c6cef ("m68k: remove dead timer code") removed set_rtc_mmss() because it was unused in 2012. However, this was itself the only user of the mach_set_clock_mmss() callback and the many implementations of that callback, which are equally unused. This removes all of those as well. Signed-off-by: Arnd Bergmann <[email protected]> Acked-by: Greg Ungerer <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2017-02-12m68k/atari: Modernize printing of kernel messagesGeert Uytterhoeven2-35/+35
- Convert from printk() to pr_*(), - Add missing continuations, to fix user-visible breakage, - Drop useless WARNING prefix, - Move trailing spaces to start of continuations. Note that the "Keyboard overrun" message will now only be generated when the kernel has been compiled for debugging. Fixes: 4bcc595ccd80decb ("printk: reinstate KERN_CONT for printing continuation lines") Signed-off-by: Geert Uytterhoeven <[email protected]>
2016-12-09m68k/atari: Use seq_puts() in atari_get_hardware_list()Markus Elfring1-1/+1
A string which did not contain a data format specification should be put into a sequence. Thus use the corresponding function "seq_puts". This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2016-09-19m68k: Use IS_ENABLED() instead of checking for built-in or moduleGeert Uytterhoeven1-1/+1
Signed-off-by: Geert Uytterhoeven <[email protected]>
2016-01-10m68k/atari, m68k/sun3: Fix SCSI platform device registration when driver is ↵Finn Thain1-2/+2
modular Fixes: 3ff228af84b5 ("atari_scsi: Convert to platform device") Fixes: 0d31f8759109 ("sun3_scsi: Convert to platform device") Reported-by: Michael Schmitz <[email protected]> Signed-off-by: Finn Thain <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2015-01-15m68k/atari: Remove obsolete IRQ_TYPE_*Geert Uytterhoeven3-6/+4
IRQ_TYPE_SLOW, IRQ_TYPE_FAST, and IRQ_TYPE_PRIO are no longer used by the Atari platform interrupt code since commit 734085651c9b80aa ("[PATCH] m68k: convert atari irq code") in v2.6.18-rc1, so drop them. Note that their values have been reused for different purposes (IRQ_TYPE_NONE, IRQ_TYPE_EDGE_RISING, and IRQ_TYPE_EDGE_FALLING) since commit 6a6de9ef5850d063 ("[PATCH] genirq: core") in v2.6.18-rc1. Signed-off-by: Geert Uytterhoeven <[email protected]>
2015-01-13m68k/atari: Remove obsolete keyboard_tasklet schedulingGeert Uytterhoeven1-1/+0
If CONFIG_VT=n: arch/m68k/atari/built-in.o: In function `atari_keyboard_interrupt': atakeyb.c:(.text+0x1846): undefined reference to `keyboard_tasklet' atakeyb.c:(.text+0x1852): undefined reference to `keyboard_tasklet' I think the keyboard_tasklet scheduling is no longer needed, as I believe it's handled by drivers/tty/vt/keyboard.c based on events received from the input subsystem. So just remove it. Signed-off-by: Geert Uytterhoeven <[email protected]> Tested-by: Michael Schmitz <[email protected]>
2015-01-11m68k/atari: atakeyb.c - Remove some unused functionsRickard Strandqvist1-66/+0
Remove some functions that are not used anywhere: atari_kbd_leds() ikbd_exec() ikbd_mem_read() ikbd_mem_write() ikbd_clock_get() ikbd_clock_set() ikbd_pause() ikbd_resume() This was partially found by using a static code analysis program called cppcheck. Signed-off-by: Rickard Strandqvist <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2014-11-20atari_scsi: Convert to platform deviceFinn Thain1-0/+27
Convert atari_scsi to platform device and eliminate scsi_register(). Validate __setup options later on so that module options are checked as well. Remove the comment about the scsi mid-layer disabling the host irq as it is no longer true (AFAICT). Also remove the obsolete slow interrupt stuff (IRQ_TYPE_SLOW == 0 anyway). Signed-off-by: Finn Thain <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Tested-by: Michael Schmitz <[email protected]> Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
2014-11-20atari_scsi: Fix atari_scsi deadlocks on FalconFinn Thain1-21/+40
Don't disable irqs when waiting for the ST DMA "lock"; its release may require an interrupt. Introduce stdma_try_lock() for use in soft irq context. atari_scsi now tells the SCSI mid-layer to defer queueing a command if the ST DMA lock is not available, as per Michael's patch: http://marc.info/?l=linux-m68k&m=139095335824863&w=2 The falcon_got_lock variable is race prone: we can't disable IRQs while waiting to acquire the lock, so after acquiring it there must be some interval during which falcon_got_lock remains false. Introduce stdma_is_locked_by() to replace falcon_got_lock. The falcon_got_lock tests in the EH handlers are incorrect these days. It can happen that an EH handler is called after a command completes normally. Remove these checks along with falcon_got_lock. Also remove the complicated and racy fairness wait queues. If fairness is an issue (when SCSI competes with IDE for the ST DMA interrupt), the solution is likely to be a lower value for host->can_queue. Signed-off-by: Finn Thain <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Tested-by: Michael Schmitz <[email protected]> Acked-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
2014-09-14m68k/atari - stram: Add missing #include <linux/ioport.h>Geert Uytterhoeven1-0/+1
If CONFIG_BLOCK=n: arch/m68k/atari/stram.c:44: error: variable ‘stram_pool’ has initializer but incomplete type arch/m68k/atari/stram.c:45: error: unknown field ‘name’ specified in initializer arch/m68k/atari/stram.c:46: warning: excess elements in struct initializer arch/m68k/atari/stram.c:46: warning: (near initialization for ‘stram_pool’) arch/m68k/atari/stram.c: In function ‘atari_stram_reserve_pages’: arch/m68k/atari/stram.c:97: error: invalid use of undefined type ‘struct resource’ ... Signed-off-by: Geert Uytterhoeven <[email protected]>
2014-05-26m68k/atari - stram: alloc ST-RAM pool even if kernel not in ST-RAMMichael Schmitz1-17/+54
With the kernel loaded to FastRAM (TT-RAM), none of the ST-RAM address range is mapped by init_mem, and ST-RAM is not accessible through the normal allocation pathways as a result. Implement ST-RAM pool allocation to be based on physical addresses always (it already was when the kernel was loaded in ST-RAM). Return kernel virtual addresses as per normal. The current test for the kernel residing in ST-RAM always returns true. Use the bootinfo memory chunk order instead - with the kernel in FastRAM, ST-RAM (phys. 0x0) is not the first chunk. In case the kernel is running from FastRAM, delay mapping of ST-RAM pool until after mem_init. Provide helper functions for those users of ST-RAM that need to be aware of the backing physical addresses. Kudos to Geert for his hints on getting this started. Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2014-03-20m68k: atari: Fix the last kernel_stat.h falloutThomas Gleixner1-0/+1
Reported-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2014-01-13m68k/irq - Use polled IRQ flag for MFP timer cascaded interruptsMichael Schmitz1-0/+3
Some Atari hardware has no capacity to raise interrupts (e.g. network or USB adapter hardware attached via ROM port). The driver interrupt routine is called from a timer interrupt (timer D) in these cases, using chained device specific pseudo interrupts (IRQ_MFP_TIMER1 ff.) These interrupts will more often than not, return IRQ_NONE as there is not always work for the device handler when called. Too many unhandled interrupts will result in the interrupt being disabled by the stuck interrupt watchdog. As preferred option to flag interrupts as needing exclusion from the watchdog mechanism, tglx added the IRQ_IS_POLLED flag for use in such a case. Currently, two interrupts need to use this flag. Add more users as needed. Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-12-08m68k/amiga,atari: Fix specifying multiple debug= parametersGeert Uytterhoeven1-1/+4
Since commit d6713b4091a99fa2af2fabdcd2f3fb97f32ecf2e ("m68k: early parameter support"), the user can specify multiple debug consoles using the "debug=" kernel command line parameter. However, as there's only a single struct console object, which is reused, it would actually register the same console object multiple times, causing the following warning: WARNING: CPU: 0 PID: 0 at kernel/printk/printk.c:2233 register_console+0x36/ console 'debug0' already registered Make sure to register the console object only once, to avoid the warning. Note that still only one console (the one corresponding to the last "debug=" parameter) will be active at the same time, as the .write() method of the already registered console object is overwritten by a subsequent "debug=" parameter. Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-11-26m68k/UAPI: Use proper types (endianness/size) in <asm/bootinfo*.h>Geert Uytterhoeven1-4/+5
Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-11-26m68k/UAPI: Disintegrate arch/m68k/include/asm/bootinfo.hGeert Uytterhoeven1-0/+1
Export the bootinfo definitions that are used by bootstrap loaders, and split them up in generic and platform-specific parts. Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-04-16m68k/atari: USB - add platform devices for EtherNAT/NetUSBee ISP1160 HCDMichael Schmitz1-6/+129
Add platform devices used by the isp116x-hcd driver for EtherNAT and NetUSBee. Note that the NetUSBee also contains a RTL8019 Ethernet chip, so its platform device is used to cover the EtherNEC case, too. Register definitions thanks to David Galvez <[email protected]> [Geert] Conditionalize isp1160_delay() definition Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-04-16m68k/atari: EtherNAT - add interrupt chip definition for CPLD interruptsMichael Schmitz1-0/+82
Add a dedicated interrupt chip definition for the EtherNAT CPLD interrupts. SMC91C111 and ISP1160 chips have separate interrupts that can be enabled and disabled in a CPLD register at offset 0x23 from the card base. Note the CPLD interrupt control register is mapped on demand, whenever any interrupt enable/disable action is requested. The EtherNAT USB driver still needs interrupts disabled around reset and start actions. In particular, we cannot entirely rely on the irq_startup being called first. The smc91x and isp116x-hcd drivers will use this feature. Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-04-16m68k/atari: EtherNEC - add platform device supportMichael Schmitz1-1/+53
Add platform device for the Atari ROM port ethernet adapter, EtherNEC. This platform device will be used by the ne.c driver. [Geert] Conditionalize platform device data structures Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-04-16m68k/atari: EtherNAT - platform device and IRQ support codeMichael Schmitz1-0/+64
Add platform device and interrupt definitions necessary for the EtherNAT Ethernet/USB adapter for the Falcon extension port. EtherNAT interrupt numbers are 139/140 so the max. interrupt number for Atari has to be increased. [Geert] Conditionalize platform device data structures Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2013-04-16m68k/atari: use dedicated irq_chip for timer D interruptsMichael Schmitz1-0/+70
Add a special irq_chip for the Atari MFP timer D interrupt, which is used as a polling timer for EtherNEC and NetUSBee Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2012-12-24m68k: set arch_gettimeoffset directlyStephen Warren2-5/+5
remove m68k's mach_gettimeoffset function pointer, and instead directly set the arch_gettimeoffset function pointer. This requires multiplying all function results by 1000, since the removed m68k_gettimeoffset() did this. Also, s/unsigned long/u32/ just to make the function prototypes exactly match that of arch_gettimeoffset. Cc: Joshua Thompson <[email protected]> Cc: Sam Creasey <[email protected]> Acked-by: Geert Uytterhoeven <[email protected]> Acked-by: Phil Blundell <[email protected]> Signed-off-by: Stephen Warren <[email protected]>
2012-04-22m68k/atari: Change VME irq numbers from unsigned long to unsigned intGeert Uytterhoeven1-2/+2
Device interrupts numbers were changed to unsigned int in 1997, the year IRQ_MACHSPEC was killed as well. Also kill a related cast while we're at it. Signed-off-by: Geert Uytterhoeven <[email protected]> Cc: [email protected]
2012-03-28Disintegrate asm/system.h for M68KDavid Howells3-3/+0
Disintegrate asm/system.h for M68K. Signed-off-by: David Howells <[email protected]> Acked-by: Greg Ungerer <[email protected]> cc: [email protected]
2012-01-22m68k: Fix assembler constraint to prevent overeager gcc optimisationAndreas Schwab1-4/+4
Passing the address of a variable as an operand to an asm statement doesn't mark the value of this variable as used, so gcc may optimize its initialisation away. Fix this by using the "m" constraint instead. Signed-off-by: Andreas Schwab <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]> Cc: [email protected]
2011-12-10m68k/atari: Move declaration of atari_SCC_reset_done to header fileGeert Uytterhoeven2-3/+0
Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-11-08m68k/irq: Remove obsolete support for user vector interrupt fixupsGeert Uytterhoeven1-1/+1
It was used on Apollo only, before its conversion to genirq. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-11-08m68k/atari: Remove code and comments about different irq typesGeert Uytterhoeven1-236/+0
This code was obsoleted during the irq restructuring in 2006. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-11-08m68k/irq: Add m68k_setup_irq_controller()Geert Uytterhoeven1-1/+2
This is a wrapper around m68k_setup_irq_chip() that discards its dummy second parameter, to ease the future transition to genirq. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-11-08m68k/irq: Switch irq_chip methods to "struct irq_data *data"Geert Uytterhoeven1-8/+22
Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Thomas Gleixner <[email protected]>
2011-11-08m68k/irq: Rename irq_controller to irq_chipGeert Uytterhoeven1-8/+7
Make it more similar to the genirq version: - Remove lock (unused as we don't do SMP anyway), - Prepend methods with irq_, - Make irq_startup() return unsigned int. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Thomas Gleixner <[email protected]>
2011-10-31m68k: Add export.h to the m68k specific files as requiredPaul Gortmaker1-0/+1
Signed-off-by: Paul Gortmaker <[email protected]>
2011-07-30m68k/atari: Reserve some ST-RAM early on for device buffer useMichael Schmitz1-285/+69
Based on an original patch from Michael Schmitz: Because mem_init() is now called before device init, devices that rely on ST-RAM may find all ST-RAM already allocated to other users by the time device init happens. In particular, a large initrd RAM disk may use up enough of ST-RAM to cause atari_stram_alloc() to resort to __get_dma_pages() allocation. In the current state of Atari memory management, all of RAM is marked DMA capable, so __get_dma_pages() may well return RAM that is not in actual fact DMA capable. Using this for frame buffer or SCSI DMA buffer causes subtle failure. The ST-RAM allocator has been changed to allocate memory from a pool of reserved ST-RAM of configurable size, set aside on ST-RAM init (i.e. before mem_init()). As long as this pool is not exhausted, allocation of real ST-RAM can be guaranteed. Other changes: - Replace the custom allocator in the ST-RAM pool by the existing allocator in the resource subsystem, - Remove mem_init_done and its hook, as memory init is now done before device init, - Remove /proc/stram, as ST-RAM usage now shows up under /proc/iomem, e.g. 005f2000-006f1fff : ST-RAM Pool 005f2000-0063dfff : atafb 0063e000-00641fff : ataflop 00642000-00642fff : SCSI Signed-off-by: Michael Schmitz <[email protected]> [Andreas Schwab <[email protected]>: Use memparse()] [Geert: Use the resource subsystem instead of a custom allocator] Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-05-19input/atari: Use the correct mouse interrupt hookMichael Schmitz1-5/+2
The Atari keyboard driver calls atari_mouse_interrupt_hook if it's set, not atari_input_mouse_interrupt_hook. Fix below. [geert] Killed off atari_mouse_interrupt_hook completely, after fixing another incorrect assignment in atarimouse.c. Signed-off-by: Michael Schmitz <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-05-19m68k/atari: Do not use "/" in interrupt namesGeert Uytterhoeven2-2/+2
It may trigger a warning in fs/proc/generic.c:__xlate_proc_name() when trying to add an entry for the interrupt handler to sysfs. Signed-off-by: Geert Uytterhoeven <[email protected]>