22 Jul, 2008

1 commit

  • This allow to dynamically generate attributes and share show/store
    functions between attributes. Right now most attributes are generated
    by special macros and lots of duplicated code. With the attribute
    passed it's instead possible to attach some data to the attribute
    and then use that in shared low level functions to do different things.

    I need this for the dynamically generated bank attributes in the x86
    machine check code, but it'll allow some further cleanups.

    I converted all users in tree to the new show/store prototype. It's a single
    huge patch to avoid unbisectable sections.

    Runtime tested: x86-32, x86-64
    Compiled only: ia64, powerpc
    Not compile tested/only grep converted: sh, arm, avr32

    Signed-off-by: Andi Kleen
    Signed-off-by: Greg Kroah-Hartman

    Andi Kleen
     

17 Jul, 2008

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (68 commits)
    sdio_uart: Fix SDIO break control to now return success or an error
    mmc: host driver for Ricoh Bay1Controllers
    sdio: sdio_io.c Fix sparse warnings
    sdio: fix the use of hard coded timeout value.
    mmc: OLPC: update vdd/powerup quirk comment
    mmc: fix spares errors of sdhci.c
    mmc: remove multiwrite capability
    wbsd: fix bad dma_addr_t conversion
    atmel-mci: Driver for Atmel on-chip MMC controllers
    mmc: fix sdio_io sparse errors
    mmc: wbsd.c fix shadowing of 'dma' variable
    MMC: S3C24XX: Refuse incorrectly aligned transfers
    MMC: S3C24XX: Add maintainer entry
    MMC: S3C24XX: Update error debugging.
    MMC: S3C24XX: Add media presence test to request handling.
    MMC: S3C24XX: Fix use of msecs where jiffies are needed
    MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices
    MMC: S3C24XX: Fix s3c2410_dma_request() return code check.
    MMC: S3C24XX: Allow card-detect on non-IRQ capable pin
    MMC: S3C24XX: Ensure host->mrq->data is valid
    ...

    Manually fixed up bogus executable bits on drivers/mmc/core/sdio_io.c
    and include/linux/mmc/sdio_func.h when merging.

    Linus Torvalds
     

16 Jul, 2008

1 commit

  • * 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    generic-ipi: powerpc/generic-ipi tree build failure
    stacktrace: fix build failure on sparc64
    stacktrace: export save_stack_trace[_tsk]
    stacktrace: fix modular build, export print_stack_trace and save_stack_trace
    backtrace: replace timer with tasklet + completions
    stacktrace: add saved stack traces to backtrace self-test
    stacktrace: print_stack_trace() cleanup
    debugging: make stacktrace independent from DEBUG_KERNEL
    stacktrace: don't crash on invalid stack trace structs

    Linus Torvalds
     

15 Jul, 2008

2 commits

  • This is a driver for the MMC controller on the AP7000 chips from
    Atmel. It should in theory work on AT91 systems too with some
    tweaking, but since the DMA interface is quite different, it's not
    entirely clear if it's worth merging this with the at91_mci driver.

    This driver has been around for a while in BSPs and kernel sources
    provided by Atmel, but this particular version uses the generic DMA
    Engine framework (with the slave extensions) instead of an
    avr32-only DMA controller framework.

    This driver can also use PIO transfers when no DMA channels are
    available, and for transfers where using DMA may be difficult or
    impractical for some reason (e.g. the DMA setup overhead is usually
    not worth it for very short transfers, and badly aligned buffers or
    lengths are difficult to handle.)

    Currently, the driver only support PIO transfers. DMA support has been
    split out to a separate patch to hopefully make it easier to review.

    The driver has been tested using mmc-block and ext3fs on several SD,
    SDHC and MMC+ cards. Reads and writes work fine, with read transfer
    rates up to 3.5 MiB/s on fast cards with debugging disabled.

    The driver has also been tested using the mmc_test module on the same
    cards. All tests except 7, 9, 15 and 17 succeed. The first two are
    unsupported by all the cards I have, so I don't know if the driver
    handles this correctly. The last two fail because the hardware flags a
    Data CRC Error instead of a Data Timeout error. I'm not sure how to deal
    with that.

    Documentation for this controller can be found in many data sheets from
    Atmel, including the AT32AP7000 data sheet which can be found here:

    http://www.atmel.com/dyn/products/datasheets.asp?family_id=682

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Pierre Ossman

    Haavard Skinnemoen
     
  • * 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    move BUG_TABLE into RODATA

    Linus Torvalds
     

04 Jul, 2008

1 commit


03 Jul, 2008

1 commit


02 Jul, 2008

9 commits

  • Implement Standby support. In this mode, we'll suspend all drivers,
    put the SDRAM in self-refresh mode and switch off the HSB bus
    ("frozen" mode.)

    Implement Suspend-to-mem support. In this mode, we suspend all
    drivers, put the SDRAM into self-refresh mode and switch off all
    internal clocks except the 32 kHz oscillator ("stop" mode.)

    The lowest-level suspend code runs from a small portion of SRAM
    allocated at startup time. This gets rid of a small potential race
    with the SDRAM where we might try to enter self-refresh mode in the
    middle of an icache burst. We also relocate all interrupt and
    exception handlers to SRAM during the small window when we enter and
    exit the low-power modes.

    We don't need to do any special tricks to start and stop the PLL. The
    main clock is automatically gated by hardware until the PLL is stable.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • This makes the intc show up in sysfs (probably not very useful), and
    allows us to easily add suspend/resume support later.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Add SRAM allocator for avr32, which is just a thin wrapper around
    genalloc.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • The SDRAM controller needs a clock in order to respond to our
    commands, and suspend doesn't work very well without the SDRAM in
    self-refresh mode.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Use a quicklist to allocate process PGDs. This is expected to be
    slightly faster since we need to copy entries from swapper_pg_dir,
    which can stay around for pages on the PGD quick list.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Expand the per-process PGDs so that they cover the kernel virtual
    memory area as well. This simplifies the TLB miss handler fastpath
    since it doesn't have to check for kernel addresses anymore.

    If a TLB miss happens on a kernel address and a second-level page
    table can't be found, we check swapper_pg_dir and copy the PGD entry
    into the user PGD if it can be found there.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Instead of storing physical addresses along with page flags in the
    PGD, store virtual addresses and use NULL to indicate a not present
    second-level page table. A non-page-aligned page table indicates a bad
    PMD.

    This simplifies the TLB miss handler since it no longer has to check
    the Present bit and no longer has to convert the PGD entry from
    physical to virtual address. Instead, it has to check for a NULL
    entry, which is slightly cheaper than either.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • swapper_pg_dir is stored in .bss, so it must already be zeroed out
    when we get there.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • This and the following patches aim to optimize the code dealing with
    page tables and TLB operations. Each patch reduces the time it takes
    to gzip a 16 MB file slightly, but I expect things like fork() and
    mmap() will improve somewhat more.

    This patch deals with the low-level TLB operations:

    * Remove unused _TLBEHI_I define
    * Use gcc builtins instead of inline assembly
    * Remove a few unnecessary pipeline flushes and nops
    * Introduce NR_TLB_ENTRIES define and use it instead of hardcoding it
    to 32 a few places throughout the code.
    * Use sysreg bitops instead of hardcoded shifts and masks
    * Make a few needlessly global functions static

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

28 Jun, 2008

2 commits


27 Jun, 2008

12 commits

  • Kill the special exception handler sections .tlbx.ex.text,
    .tlbr.ex.text, tlbw.ex.text and .scall.text. Use .org instead to place
    the handlers at the required offsets from EVBA.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Remove lots of unneeded #includes, add #include and
    sort alphabetically.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • The name "mck" causes a conflict on AT91. Call it "pwm_clk" instead.

    Signed-off-by: Sedji Gaouaou
    Signed-off-by: Haavard Skinnemoen

    Sedji Gaouaou
     
  • This is a minor tweak to the at32ap700x pin configuration for the SPI
    input pin (MISO), enabling the on-chip weak pullup (typical 190K) to

    (a) ensure a fixed data value for missing or input-only slaves;

    (b) prevent power waste associated with inputs floating near VDDIO/2.

    Atmel's boards have no external pullup or pulldown on these pins, so
    it's unlikely other boards would address these issues with external
    pulldowns. Were there trouble, board-specific code could turn off
    the relevant pullup(s).

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell
     
  • Basic I2C initialization for the NGW100 board:

    - Provide empty i2c device table. Daughtercards may add devices,
    and the ATtiny24 could do stuff too.

    - Set up EXTINT(3) so the ATtiny24 can interrupt the AP7000.

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell
     
  • This patch adds the PS/2 interface (PSIF) to the device code, split into
    two platform devices, one for each port.

    The function for adding the PSIF platform device is also added to the
    board header file.

    Signed-off-by: Hans-Christian Egtvedt
    Signed-off-by: Haavard Skinnemoen

    Hans-Christian Egtvedt
     
  • This patch lets the board code choose which pin out to use for the LCD
    interface.

    On AT32AP7000 the LCDC is wired to two sets of pins, which lets the user
    choose between dual ethernet and 32-bit EBI. For the ATNGW100 board it
    is vital to have the choice to select the alternative pinout since this
    pinout is routed to the external headers.

    Update ATSTK1002 and ATSTK1004 to use the new interface.

    Signed-off-by: Hans-Christian Egtvedt
    Signed-off-by: Haavard Skinnemoen

    Hans-Christian Egtvedt
     
  • On the odd chance some code uses a pin as a GPIO IRQ without calling
    gpio_request() or gpio_direction_input(), the debug dump should still
    show its pin status.

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell
     
  • __raw_readsb() should always use byte accesses, never halfword accesses,
    to I/O memory.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • A signal handler should be able to change the signal stack used for the
    next signal by altering the ucontext_t passed as a parameter to the
    handler. This does not currently work on avr32 since it doesn't update
    the in-kernel signal context from the ucontext_t upon signal handler
    return.

    Fix it by adding a call to do_sigaltstack() from sys_rt_sigreturn(),
    bringing it in line with most other architectures.

    Signed-off-by: Martin Koegler
    [haavard.skinnemoen@atmel.com: changed patch description]
    Signed-off-by: Haavard Skinnemoen

    Martin Koegler
     
  • On our custom board we have other oscillator rates than on atngw100 and
    atstk100x.

    Currently these rates are hardcoded in arch/avr32/mach-at32ap/at32ap700x.c.

    This patch moves them into board specific code.

    Signed-off-by: Alex Raimondi
    Signed-off-by: Haavard Skinnemoen

    alex
     
  • Fixes one of two ext4 build problems:
    ERROR: "empty_zero_page" [fs/ext4/ext4dev.ko] undefined!

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

16 Jun, 2008

1 commit


27 May, 2008

1 commit


26 May, 2008

3 commits

  • Just provide reasonable defaults for the new stuff. Tickless and
    hrtimers are turned on for all boards except ATSTK1004.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • This patch fixes the following build error:

    ...
    MODPOST 1327 modules
    ERROR: "strnlen_user" [drivers/input/misc/uinput.ko] undefined!
    ...
    make[2]: *** [__modpost] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Haavard Skinnemoen

    Adrian Bunk
     
  • This patch fixes the following build error:

    ...
    MODPOST 61 modules
    ERROR: "copy_page" [fs/fuse/fuse.ko] undefined!
    ...
    make[2]: *** [__modpost] Error 1

    Also add an empty line since *_page aren't "String functions".

    Signed-off-by: Adrian Bunk
    Signed-off-by: Haavard Skinnemoen

    Adrian Bunk
     

25 May, 2008

1 commit


17 May, 2008

1 commit


04 May, 2008

1 commit

  • This replaces the duplicated arch-specific versions of "sys_pipe()" with
    one unified implementation. This removes almost 250 lines of duplicated
    code.

    It's marked __weak, so that *if* an architecture wants to override the
    default implementation it can do so by simply having its own replacement
    version, since many architectures use alternate calling conventions for
    the 'pipe()' system call for legacy reasons (ie traditional UNIX
    implementations often return the two file descriptors in registers)

    I still haven't changed the cris version even though Linus says the BKL
    isn't needed. The arch maintainer can easily do it if there are really
    no obstacles.

    Signed-off-by: Ulrich Drepper
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

29 Apr, 2008

2 commits