19 Jul, 2007

1 commit

  • These functions depend on "result" being initalized to 0, but "result"
    is not included as an input constraint to the inline assembly block
    following its initialization, only as an output constraint. Thus gcc
    thinks it doesn't need to initialize it, so result ends up undefined
    if the "unless" condition is true.

    This fixes an oops in sunrpc where the faulty atomics caused
    rpciod_up() to not start the workqueue as it should.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

27 Apr, 2007

1 commit


26 Oct, 2006

1 commit

  • When calling e.g. atomic_sub_return with a large constant, the
    compiler may output an immediate that is too large for the sub
    instruction in the middle of the loop.

    Fix this by explicitly specifying the number of bits allowed in the
    constraint. Also stop atomic_add_return() and friends from falling
    back to their respective "sub" variants if the constant is too large
    to fit in an immediate.

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

26 Sep, 2006

1 commit

  • This adds support for the Atmel AVR32 architecture as well as the AT32AP7000
    CPU and the AT32STK1000 development board.

    AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for
    cost-sensitive embedded applications, with particular emphasis on low power
    consumption and high code density. The AVR32 architecture is not binary
    compatible with earlier 8-bit AVR architectures.

    The AVR32 architecture, including the instruction set, is described by the
    AVR32 Architecture Manual, available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32000.pdf

    The Atmel AT32AP7000 is the first CPU implementing the AVR32 architecture. It
    features a 7-stage pipeline, 16KB instruction and data caches and a full
    Memory Management Unit. It also comes with a large set of integrated
    peripherals, many of which are shared with the AT91 ARM-based controllers from
    Atmel.

    Full data sheet is available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf

    while the CPU core implementation including caches and MMU is documented by
    the AVR32 AP Technical Reference, available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf

    Information about the AT32STK1000 development board can be found at

    http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3918

    including a BSP CD image with an earlier version of this patch, development
    tools (binaries and source/patches) and a root filesystem image suitable for
    booting from SD card.

    Alternatively, there's a preliminary "getting started" guide available at
    http://avr32linux.org/twiki/bin/view/Main/GettingStarted which provides links
    to the sources and patches you will need in order to set up a cross-compiling
    environment for avr32-linux.

    This patch, as well as the other patches included with the BSP and the
    toolchain patches, is actively supported by Atmel Corporation.

    [dmccr@us.ibm.com: Fix more pxx_page macro locations]
    [bunk@stusta.de: fix `make defconfig']
    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Adrian Bunk
    Signed-off-by: Dave McCracken
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen