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
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 -
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
12 Jun, 2009
1 commit
-
Now that the slab allocators are available much earlier, this triggers a
the slab_is_available() warning when registering the interrupt
controller. Convert to kzalloc() with GFP_NOWAIT, as per the generic
changes.Signed-off-by: Paul Mundt
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
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
-
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
06 Apr, 2009
1 commit
-
It's required for all modules loaded in the previous runtime
session because not initilized duing the kernel start-up.Signed-off-by: Francesco Virlinzi
Signed-off-by: Paul Mundt
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 -
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
29 Mar, 2009
1 commit
-
Fix kernel-doc error in maple (it's not kernel-doc):
Error(drivers/sh/maple/maple.c:782): cannot understand prototype: 'struct bus_type maple_bus_type = '
Signed-off-by: Randy Dunlap
cc: Paul Mundt
Signed-off-by: Linus Torvalds
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
25 Mar, 2009
1 commit
-
Acked-by: Greg Kroah-Hartman
Signed-off-by: Kay Sievers
06 Mar, 2009
1 commit
-
This includes the IRQ number in addition to the vector, as not all
platforms wrap in with INTC_VECT().Signed-off-by: Paul Mundt
03 Mar, 2009
1 commit
-
Acked-by: Greg Kroah-Hartman
Signed-off-by: Kay Sievers
Signed-off-by: Paul Mundt
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 -
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
16 Dec, 2008
1 commit
-
SLAB_POISON is not a valid flag for kmem_create_cache() unless
CONFIG_DEBUG_SLAB is set, so remove it from the flags argument.Acked-by: Adrian McMenamin
Signed-off-by: Matt Fleming
Signed-off-by: Paul Mundt
01 Oct, 2008
1 commit
-
The INTC code will be re-used across different architectures, so move
this out to drivers/sh/ and include/linux/sh_intc.h respectively.Signed-off-by: Paul Mundt
04 Aug, 2008
3 commits
-
These were completely unparseable, so fix them up.
Signed-off-by: Paul Mundt
-
We can simply wrap in to the dev_set/get_drvdata(), there's no reason
to track an extra level of private data on top of the struct device.Signed-off-by: Paul Mundt
-
These were completely inconsistent. Clean these up to take a maple_driver
pointer directly for consistency.Signed-off-by: Paul Mundt
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
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
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 -
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 -
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
07 Nov, 2007
1 commit
-
Signed-off-by: Paul Mundt
30 Oct, 2007
1 commit
-
The uevent API has changed from 2.6.22 and this patch eliminates
annoying compiler errorsSigned off by: Adrian McMenamin
Signed-off-by: Paul Mundt
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
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
14 Jan, 2006
1 commit
-
Signed-off-by: Russell King
Signed-off-by: Greg Kroah-Hartman
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
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
21 Jun, 2005
1 commit
-
….c: update device attribute callbacks
Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
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!