31 Aug, 2009

1 commit

  • This fixes up the simplified multi-evt handling when sparseirq support is
    enabled. While vectors are redirected through the single unique masking
    source, each one of the redirected vectors still requires its own backing
    irq_desc, which needs to be manually allocated in the sparseirq case.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

24 Aug, 2009

2 commits

  • This patch changes the way in which "multi-evt" interrups are handled.
    The intc_evt2irq_table and related intc_evt2irq() have been removed and
    the "redirecting" handler is installed for the coupled interrupts.

    Thanks to that the do_IRQ() function don't have to use another level
    of indirection for all the interrupts...

    Signed-off-by: Pawel Moll
    Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Pawel Moll
     
  • It is possible for the CPU to re-enable it's interrupt block bit
    before the write to the interrupt controller has actually masked out
    the external interupt at the controller. We get around this by
    reading back from the interrupt controller which will ensure the
    write has happened.

    Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Stuart Menefy
     

12 Jun, 2009

1 commit


11 Jun, 2009

1 commit

  • Now that the dependent patches are merged, we are ready to enable
    sparseirq support. This simply adds the Kconfig option, and then converts
    from the _cpu to the _node allocation routines to follow the upstream
    sparseirq API changes.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

22 May, 2009

2 commits

  • irq_to_desc_alloc_cpu() has been renamed to irq_to_desc_alloc_node() in
    -next, but as we can not presently enable SPARSE_IRQ without the early
    irq_desc alloc patch, protect it with an ifdef until the interface has
    settled and we are ready to enable it system-wide.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This hooks in irq_to_desc_alloc_cpu() to the necessary code paths in the
    intc and ipr controller registration paths. As these are the primary call
    paths for all SH CPUs, this alone will make all CPUs sparse IRQ ready.

    There is the added benefit now that each CPU contains specific IPR and
    INTC tables, so only the vectors with interrupt sources backing them will
    ever see an irq_desc instantiation. This effectively packs irq_desc
    down to match the CPU, rather than padding NR_IRQS out to cover the valid
    vector range.

    Boards with extra sources will still have to fiddle with the nr_irqs
    setting, but they can continue doing so through the machvec as before.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

06 Apr, 2009

1 commit


02 Apr, 2009

2 commits

  • Add set_irq_wake() support to intc using sysdev and suspend.

    The intc controllers are put on a list at registration time
    and registered as sysdev devices later on during the boot.

    The sysdev class suspend callback is used to find irqs with
    wakeup enabled belonging to our intc controller. Such irqs
    are simply enabled so wakeup interrupts may reach the cpu.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Modify the intc code to install a disable callback. The current
    solution without a disable callback results in use of the
    generic default_disable() function. This function is a no-op
    so suspend_device_irqs() will not disable any intc interrupts
    at suspend time without this patch. Also, install enable and
    shutdown callbacks while at it.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

29 Mar, 2009

1 commit


27 Mar, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)
    Dynamic debug: fix pr_fmt() build error
    Dynamic debug: allow simple quoting of words
    dynamic debug: update docs
    dynamic debug: combine dprintk and dynamic printk
    sysfs: fix some bin_vm_ops errors
    kobject: don't block for each kobject_uevent
    sysfs: only allow one scheduled removal callback per kobj
    Driver core: Fix device_move() vs. dpm list ordering, v2
    Driver core: some cleanup on drivers/base/sys.c
    Driver core: implement uevent suppress in kobject
    vcs: hook sysfs devices into object lifetime instead of "binding"
    driver core: fix passing platform_data
    driver core: move platform_data into platform_device
    sysfs: don't block indefinitely for unmapped files.
    driver core: move knode_bus into private structure
    driver core: move knode_driver into private structure
    driver core: move klist_children into private structure
    driver core: create a private portion of struct device
    driver core: remove polling for driver_probe_done(v5)
    sysfs: reference sysfs_dirent from sysfs inodes
    ...

    Fixed conflicts in drivers/sh/maple/maple.c manually

    Linus Torvalds
     

25 Mar, 2009

1 commit


06 Mar, 2009

1 commit


03 Mar, 2009

1 commit


27 Feb, 2009

2 commits

  • Instead of keeping the single vector -> single linux irq mapping
    we extend the intc code to support merging of vectors to a single
    linux irq. This helps processors such as sh7750, sh7780 and sh7785
    which have more vectors than masking ability. With this patch in
    place we can modify the intc tables to use one irq per maskable
    irq source. Please note the following:

    - If multiple vectors share the same enum then only the
    first vector will be available as a linux irq.

    - Drivers may need to be rewritten to get pending irq
    source from the hardware block instead of irq number.

    This patch together with the sh7785 specific intc tables solves
    DMA controller irq issues related to buggy interrupt masking.

    Reported-by: Yoshihiro Shimoda
    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the maple bus to support asynchronous block reads
    and writes as well as generally improving the quality of the code and
    supporting concurrency (all needed to support the Dreamcast visual
    memory unit - a driver will also be posted for that).

    Changes in the bus driver necessitate some changes in the two maple bus
    input drivers that are currently in mainline.

    As well as supporting block reads and writes this code clean up removes
    some poor handling of locks, uses an atomic status variable to serialise
    access to devices and more robusly handles the general performance
    problems of the bus.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

16 Dec, 2008

1 commit


01 Oct, 2008

1 commit


04 Aug, 2008

3 commits


29 Jul, 2008

1 commit

  • This patch cleans up the handling of the maple bus queue to remove
    the risk of races when adding packets. It also removes references to the
    redundant connect and disconnect functions.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

26 Feb, 2008

1 commit

  • The maple bus driver that went into the kernel mainline in September 2007
    contained some bugs which were revealed by the update of the kobj code
    for the current release series. Unfortunately those bugs also helped
    ensure maple devices were properly detected. This patch (against the
    current git) now ensures that devices are properly detected again.

    (A previous attempt to fix this by delaying initialisation only partially
    fixed this - as became apparent when the bus was fully loaded)

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

14 Feb, 2008

3 commits

  • Improve device detection for maple through longer delay

    Experience suggests that a much longer delay in setting up the Maple bus
    on the Dreamcast leads to better hardware detection.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     
  • Replacement second-in-series patch:

    This patch fixes up memory leaks and, by delaying initialisation, makes
    device detection more robust.

    It also makes clearer the difference between struct maple_device and
    struct device, as well as cleaning up the interrupt request code
    (without changing its function in any way).

    Also now removes redundant registration checking.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     
  • This patch is fundamentally about fixing up the whitespace problems
    introduced by my previous patch (that brought the code into mainline). A
    second patch will follow that will fix memory leaks. The two need to be
    applied sequentially.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

07 Nov, 2007

1 commit


30 Oct, 2007

1 commit


21 Sep, 2007

1 commit

  • The Maple bus is SEGA's proprietary serial bus for peripherals
    (keyboard, mouse, controller etc). The bus is capable of some
    (limited) hotplugging and operates at up to 2 M/bits.

    Drivers of one sort or another existed/exist for 2.4 and a rudimentary
    port, which didn't support the 2.6 device driver model was also in
    existence.

    This driver - for the bus logic itself and for the keyboard (other
    drivers will follow) are based on the code and concepts of those old
    drivers but have lots of completely rewritten parts.

    I have the maple bus code as a built in now as that seems the sane and
    rational way to handle something like that - you either want the bus
    or you don't.

    Signed-off-by: Adrian McMenamin
    Signed-off-by: Paul Mundt

    Adrian McMenamin
     

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
     

14 Jan, 2006

1 commit


07 Nov, 2005

1 commit

  • This extends the API somewhat to allow for platform-specific VCR reading and
    writing. Some platforms (like SH4-202) implement the VCR in a split VCRL and
    VCRH, but end up being in reverse order or have other quirks that need to be
    dealt with, so we add a set of superhyway_ops per-bus to accomodate this.

    We also have to extend the per-device resources somewhat, as some devices now
    conveniently split control and data blocks. So we allow a platform to
    register its set of SuperHyway devices via superhyway_add_devices() with the
    control block always ordered as the first resource (as this is the one that
    userspace cares about).

    Signed-off-by: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mundt
     

31 Oct, 2005

1 commit

  • I recently picked up my older work to remove unnecessary #includes of
    sched.h, starting from a patch by Dave Jones to not include sched.h
    from module.h. This reduces the number of indirect includes of sched.h
    by ~300. Another ~400 pointless direct includes can be removed after
    this disentangling (patch to follow later).
    However, quite a few indirect includes need to be fixed up for this.

    In order to feed the patches through -mm with as little disturbance as
    possible, I've split out the fixes I accumulated up to now (complete for
    i386 and x86_64, more archs to follow later) and post them before the real
    patch. This way this large part of the patch is kept simple with only
    adding #includes, and all hunks are independent of each other. So if any
    hunk rejects or gets in the way of other patches, just drop it. My scripts
    will pick it up again in the next round.

    Signed-off-by: Tim Schmielau
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

21 Jun, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds