22 Apr, 2008

1 commit

  • * 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:
    Deprecate the asm/semaphore.h files in feature-removal-schedule.
    Convert asm/semaphore.h users to linux/semaphore.h
    security: Remove unnecessary inclusions of asm/semaphore.h
    lib: Remove unnecessary inclusions of asm/semaphore.h
    kernel: Remove unnecessary inclusions of asm/semaphore.h
    include: Remove unnecessary inclusions of asm/semaphore.h
    fs: Remove unnecessary inclusions of asm/semaphore.h
    drivers: Remove unnecessary inclusions of asm/semaphore.h
    net: Remove unnecessary inclusions of asm/semaphore.h
    arch: Remove unnecessary inclusions of asm/semaphore.h

    Linus Torvalds
     

20 Apr, 2008

1 commit


19 Apr, 2008

3 commits


31 Mar, 2008

1 commit


05 Mar, 2008

2 commits


08 Feb, 2008

1 commit

  • This is a patch for the Compaq ASIC3 multi function chip, found in many
    PDAs (iPAQs, HTCs...).

    It is a simplified version of Paul Sokolovsky's first proposal [1]. With
    this code, it is basically a GPIO and IRQ expander. My plan is to add more
    features once this patch gets reviewed and accepted.

    [1] http://lkml.org/lkml/2007/5/1/46

    Signed-off-by: Samuel Ortiz
    Cc: Paul Sokolovsky
    Cc: Ben Dooks
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samuel Ortiz
     

28 Jan, 2008

1 commit


25 Jan, 2008

1 commit


30 Nov, 2007

1 commit

  • Remove errnoeous x character from dev_dbg() call that stops the driver
    compiling under debug.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     

20 Oct, 2007

1 commit

  • Most of these fixes were already submitted for old kernel versions, and were
    approved, but for some reason they never made it into the releases.

    Because this is a consolidation of a couple old missed patches, it touches both
    Kconfigs and documentation texts.

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     

20 Jul, 2007

1 commit

  • Transform some calls to kmalloc/memset to a single kzalloc (or kcalloc).

    Here is a short excerpt of the semantic patch performing
    this transformation:

    @@
    type T2;
    expression x;
    identifier f,fld;
    expression E;
    expression E1,E2;
    expression e1,e2,e3,y;
    statement S;
    @@

    x =
    - kmalloc
    + kzalloc
    (E1,E2)
    ... when != \(x->fld=E;\|y=f(...,x,...);\|f(...,x,...);\|x=E;\|while(...) S\|for(e1;e2;e3) S\)
    - memset((T2)x,0,E1);

    @@
    expression E1,E2,E3;
    @@

    - kzalloc(E1 * E2,E3)
    + kcalloc(E1,E2,E3)

    [akpm@linux-foundation.org: get kcalloc args the right way around]
    Signed-off-by: Yoann Padioleau
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Acked-by: Russell King
    Cc: Bryan Wu
    Acked-by: Jiri Slaby
    Cc: Dave Airlie
    Acked-by: Roland Dreier
    Cc: Jiri Kosina
    Acked-by: Dmitry Torokhov
    Cc: Benjamin Herrenschmidt
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Pierre Ossman
    Cc: Jeff Garzik
    Cc: "David S. Miller"
    Acked-by: Greg KH
    Cc: James Bottomley
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoann Padioleau
     

18 Jul, 2007

1 commit

  • Currently, the freezer treats all tasks as freezable, except for the kernel
    threads that explicitly set the PF_NOFREEZE flag for themselves. This
    approach is problematic, since it requires every kernel thread to either
    set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
    care for the freezing of tasks at all.

    It seems better to only require the kernel threads that want to or need to
    be frozen to use some freezer-related code and to remove any
    freezer-related code from the other (nonfreezable) kernel threads, which is
    done in this patch.

    The patch causes all kernel threads to be nonfreezable by default (ie. to
    have PF_NOFREEZE set by default) and introduces the set_freezable()
    function that should be called by the freezable kernel threads in order to
    unset PF_NOFREEZE. It also makes all of the currently freezable kernel
    threads call set_freezable(), so it shouldn't cause any (intentional)
    change of behaviour to appear. Additionally, it updates documentation to
    describe the freezing of tasks more accurately.

    [akpm@linux-foundation.org: build fixes]
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Nigel Cunningham
    Cc: Pavel Machek
    Cc: Oleg Nesterov
    Cc: Gautham R Shenoy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

24 Jun, 2007

5 commits

  • When binding the driver, check the ID register for a valid identity, in case
    the SM501 is not functioning correctly.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Ensure that the M1XCLK and MCLK are sourced from the same PLL (and refuse to
    bind the driver if they are not).

    Update the PCI to safe initialisation values, as 72MHz is the maximum clock
    for 33MHz PCI bus mastering.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • The order of the set and mask operation in sm501_init_reg() was setting and
    then masking the bits set. Correct the order so that we do not end up with
    288MHz SDRAM clocks on certain systems.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • This init sequence of setting the SDRAM clock before the bus clock is
    recommend by Silicon Motion to stop problems with writes not sticking into
    registers.

    Signed-off-by: Vincent Sanders
    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • This patch adds support for suspending the core (mfd driver) of the SM501.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     

05 Jun, 2007

1 commit


04 Jun, 2007

1 commit


23 May, 2007

2 commits


10 May, 2007

1 commit


09 May, 2007

1 commit


03 Apr, 2007

1 commit


27 Feb, 2007

1 commit


21 Feb, 2007

1 commit

  • This driver provides the core functionality of the SM501, which is a
    multi-function chip including two framebuffers, video acceleration, USB,
    and many other peripheral blocks.

    The driver exports a number of entries for the peripheral drivers to use.

    Signed-off-by: Ben Dooks
    Signed-off-by: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     

08 Dec, 2006

1 commit


05 Oct, 2006

1 commit

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     

30 Sep, 2006

1 commit


12 Jul, 2006

1 commit

  • Patch from Pavel Machek

    From: Dirk Opfer

    Fix ucb initialization on collie. Wrong frequency was used and that
    led to things not working quite correctly. (I had to actually disable
    checks in my tree to get it to boot). It now includes all the
    neccessary parts to get it to compile :-).

    Signed-off-by: Pavel Machek
    Acked-by: Richard Purdie
    Signed-off-by: Russell King

    Pavel Machek
     

03 Jul, 2006

1 commit


01 Jul, 2006

1 commit


26 Jun, 2006

1 commit

  • While reviewing the IRQ autoprobing code i found the attached buglet.
    probe_irq_on()/off() calls must always be in pairs, because the generic IRQ
    code uses a global semaphore to serialize all autoprobing activites.
    (which does make sense) The ARM code's probe_irq_*() implementation does
    not do this, but if this driver is ever used on another platform, this bug
    might bite.

    (It probably does not trigger in practice, because a zero probing mask
    returned should be rare - but still.)

    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Russell King

    Ingo Molnar
     

24 Mar, 2006

1 commit

  • On architectures like i386, the "Multimedia Capabilities Port drivers" menu is
    visible, but it can't be visited since it contains nothing usable for
    !ARCH_SA1100.

    This patch therefore shows this menu only on ARCH_SA1100.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

14 Jan, 2006

1 commit


13 Jan, 2006

1 commit


09 Jan, 2006

1 commit