12 Feb, 2017

1 commit

  • - 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

    Geert Uytterhoeven
     

09 Dec, 2016

1 commit


19 Sep, 2016

1 commit


10 Jan, 2016

1 commit


15 Jan, 2015

1 commit

  • 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

    Geert Uytterhoeven
     

13 Jan, 2015

1 commit

  • 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
    Tested-by: Michael Schmitz

    Geert Uytterhoeven
     

11 Jan, 2015

1 commit

  • 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
    Signed-off-by: Geert Uytterhoeven

    Rickard Strandqvist
     

20 Nov, 2014

2 commits

  • 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
    Reviewed-by: Hannes Reinecke
    Tested-by: Michael Schmitz
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Christoph Hellwig

    Finn Thain
     
  • 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
    Reviewed-by: Hannes Reinecke
    Tested-by: Michael Schmitz
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Christoph Hellwig

    Finn Thain
     

14 Sep, 2014

1 commit

  • 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

    Geert Uytterhoeven
     

27 May, 2014

1 commit

  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     

20 Mar, 2014

1 commit


13 Jan, 2014

1 commit

  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     

08 Dec, 2013

1 commit

  • 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

    Geert Uytterhoeven
     

26 Nov, 2013

2 commits


17 Apr, 2013

5 commits

  • 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

    [Geert] Conditionalize isp1160_delay() definition

    Signed-off-by: Michael Schmitz
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     
  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     
  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     
  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     
  • 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
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     

25 Dec, 2012

1 commit

  • 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
    Cc: Sam Creasey
    Acked-by: Geert Uytterhoeven
    Acked-by: Phil Blundell
    Signed-off-by: Stephen Warren

    Stephen Warren
     

23 Apr, 2012

1 commit


29 Mar, 2012

1 commit


22 Jan, 2012

1 commit


11 Dec, 2011

1 commit


09 Nov, 2011

5 commits


01 Nov, 2011

1 commit


31 Jul, 2011

1 commit

  • 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
    [Andreas Schwab : Use memparse()]
    [Geert: Use the resource subsystem instead of a custom allocator]
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     

20 May, 2011

2 commits


31 Mar, 2011

1 commit


23 Jan, 2011

1 commit

  • It's a way too generic name for a global #define and conflicts with a variable
    with the same name, causing build errors like:

    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c: In function ‘_si_clkctl_cc’:
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected identifier or ‘(’ before ‘volatile’
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected ‘)’ before ‘(’ token
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1421: error: incompatible types in assignment
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1422: error: invalid operands to binary &
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1423: error: invalid operands to binary &
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1424: error: invalid operands to binary |
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: incompatible type for argument 4 of ‘bcmsdh_reg_write’
    | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1428: error: invalid operands to binary &
    | make[8]: *** [drivers/staging/brcm80211/brcmfmac/../util/siutils.o] Error 1

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     

09 Feb, 2010

1 commit

  • In particular, several occurances of funny versions of 'success',
    'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
    'beginning', 'desirable', 'separate' and 'necessary' are fixed.

    Signed-off-by: Daniel Mack
    Cc: Joe Perches
    Cc: Junio C Hamano
    Signed-off-by: Jiri Kosina

    Daniel Mack
     

23 Feb, 2009

1 commit

  • http://kisskb.ellerman.id.au/kisskb/buildresult/72115/:
    | net/mac80211/ieee80211_i.h:327: error: syntax error before 'volatile'
    | net/mac80211/ieee80211_i.h:350: error: syntax error before '}' token
    | net/mac80211/ieee80211_i.h:455: error: field 'sta' has incomplete type
    | distcc[19430] ERROR: compile net/mac80211/main.c on sprygo/32 failed

    This is caused by

    | # define mfp ((*(volatile struct MFP*)MFP_BAS))

    in arch/m68k/include/asm/atarihw.h, which conflicts with the new "mfp" enum in
    net/mac80211/ieee80211_i.h.

    Rename "mfp" to "st_mfp", as it's a way too generic name for a global #define.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

13 Jan, 2009

1 commit