Reddy, Teerth [Mon, 28 Jan 2008 11:34:39 +0000 (05:34 -0600)]
TS: Fix for the TS event issue on OMAP3 ES2.0
Fix for the Touch Screen issue on OMAP3 ES2.0.The IRQ for the TS has been defined as 3 and 2 for ES1 and ES2
and the IRQ assignment is done at run time.
Signed-off-by: Teerth Reddy <teerth@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Rodrigo Vivi [Thu, 24 Jan 2008 19:07:04 +0000 (16:07 -0300)]
Adding support to rotation on blizzard
The LCD controller (EPSON S1D13744) supports
rotation (0, 90, 180 and 270 degrees) on hardware just setting
the bits 0 and 1 of 0x28 register (LCD Panel Configuration Register).
Now it is possible to use this caps only setting the angle degree on var rotate of fb_var_screeninfo using the FBIOPUT_VSCREENINFO ioctl.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@openbossa.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
OMAP: Compile fix: including board-2430osk.h missed
Including board file board-2430osk.h missed.
drivers/i2c/chips/twl4030_core.c:480: error: `IH_TWL4030_BASE' undeclared (first use in this function)
drivers/i2c/chips/twl4030_core.c:853: error: `IH_TWL4030_END' undeclared (first use in this function)
drivers/i2c/chips/twl4030_core.c:860: error: `TWL4030_IRQNUM' undeclared (first use in this function)
drivers/i2c/chips/twl4030_gpio.c:249: error: `IH_TWL4030_GPIO_BASE' undeclared (first use in this function)
drivers/i2c/chips/twl4030_gpio.c:787: error: `IH_TWL4030_BASE' undeclared (first use in this function)
...
Signed-off-by: Francisco Alecrim <francisco.alecrim@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
mach-types: compile fix: missing MACH_TYPE_OMAP_2430OSK type
Including MACH_TYPE_OMAP_2430OSK missed type.
arch/arm/mach-omap2/board-2430osk.c:134: error: `MACH_TYPE_OMAP_2430OSK' undeclared here (not in a function)
arch/arm/mach-omap2/board-2430osk.c:134: error: initializer element is not constant
arch/arm/mach-omap2/board-2430osk.c:134: error: (near initialization for `__mach_desc_OMAP_2430OSK.nr')
Signed-off-by: Francisco Alecrim <francisco.alecrim@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
Arun K S [Mon, 28 Jan 2008 15:04:57 +0000 (20:34 +0530)]
omap2430sdp_mmc_fix
The PRCM (0x490022E8)register was overwritten by the MMC code
which made the other peripherals like USB etc to stop working.
The following patch fixes the modification of PRCM register by
the MMC code. This patch is tested here on the OMAP2430 SDP board.
Signed-off-by: Arun K S <arunks@mistralsolutions.com> Ack-by: Madhusudhan Chikkature Rajashekar" <madhu.cr@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Cohen [Fri, 25 Jan 2008 18:59:36 +0000 (14:59 -0400)]
OMAP: MMC: Add MMC multislot support for TI OMAP H4 2420 boards.
This patch adds MMC multislot support for TI OMAP H4 2420 boards.
Signed-off-by: David Cohen <david.cohen@indt.org.br> Signed-off-by: Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br> Acked-by: Anderson Lizardo <anderson.lizardo@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Cohen [Fri, 25 Jan 2008 18:59:35 +0000 (14:59 -0400)]
OMAP: MMC: Add menelaus_enable_slot on menelaus.c.
Adding menelaus_enable_slot() function on menelaus driver.
This function enables/disables the mmc slots on menelaus.
Signed-off-by: David Cohen <david.cohen@indt.org.br> Acked-by: Anderson Lizardo <anderson.lizardo@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Fri, 25 Jan 2008 18:45:29 +0000 (11:45 -0700)]
Wait for OMAP3430 clocks to enable before returning from clk_enable()
This patch fixes some boot-time instability problems with OMAP3430. The
GPTIMER modules can take 200 to 300 microseconds to become available after
their clocks are enabled, and without this patch, the clock framework
won't wait for them before returning from clk_enable(). If the system
attempts to access a GPTIMER register too quickly after the clk_enable(),
the system will halt with something similar to the following in the
dmtimer code:
Unhandled fault: external abort on non-linefetch (0x1028) at 0xd9032010
This is perhaps not the ideal way to solve this problem, but then again,
omap2_clk_wait_ready() is perhaps not the ideal way to wait for module
readiness. This function is due to be replaced, but in the interim, this
patch fixes the issue.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Fri, 25 Jan 2008 08:20:07 +0000 (01:20 -0700)]
3430ES2 clock: separate 3430ES1/3430ES2 rates in clock code
On the OMAP3430 architecture, some DPLL3 rates are only available on
3430ES2. We wish to avoid inadvertently selecting these on 3430ES1.
So we need some way to mark these rates as being 3430ES2-only. To do
so, add new rate flag RATE_IN_3430ES2, to be used for rates that only
exist on 3430ES2. (I'm not aware of any 3430ES1-only rates, so, no
corresponding 3430ES1 flag is currently defined.) RATE_IN_343X is
still present and used for rates which exist on all 343X-level
devices. The current code assumes that production rates will be
identical to 3430ES2 rates, but this is easy enough to change if
necessary.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Fri, 25 Jan 2008 08:20:06 +0000 (01:20 -0700)]
3430ES2 clock: separate 3430ES1/3430ES2 clocks in clock code
On the OMAP3430 architecture, some clocks are only available on
3430ES1 (e.g., the GFX subsystem, and the 16.8MHz input crystal rate
option) and some clocks are only available on 3430ES2 (e.g., DPLL5,
temp sensor, etc.) Now that OMAP3430ES revision detection is in the
tree, we can flag these so we do not try to initialize clocks that
don't exist on other ES revisions.
To do so, add new clock flags CLOCK_IN_OMAP3430ES1 and
CLOCK_IN_OMAP3430ES2, to be used for clocks that only exist on one
architecture or the other. CLOCK_IN_OMAP343X is still present and
used for clocks which exist on all 343X-level devices. The current
code assumes that production clocks will be identical to 3430ES2
clocks, but this is easy enough to change if necessary.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Fri, 25 Jan 2008 00:42:48 +0000 (16:42 -0800)]
ARM: OMAP: Allow registering pin mux function
This patch changes pin multiplexing init to allow registering
custom function. The omap_cfg_reg() func will be split into
omap processor specific functions in later patch.
This is done to make adding omap3 pin multiplexing easier.
Kevin Hilman [Wed, 16 Jan 2008 21:56:16 +0000 (13:56 -0800)]
ARM: OMAP: use edge/level handlers from generic IRQ framework
Currently, the GPIO interrupt handling is duplicating some of the work
done by the generic IRQ handlers (handle_edge_irq, handle_level_irq)
such as detecting nesting, handling re-triggers etc. Remove this
duplication and use generic hooks based on IRQ type.
Using generic IRQ handlers ensures correct behavior when using
threaded interrupts introduced by the -rt patch.
Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Kevin Hilman [Wed, 16 Jan 2008 21:56:15 +0000 (13:56 -0800)]
ARM: OMAP: Clear level-triggered GPIO interrupts in unmask hook
The clearing was moved to the unmask hook because it is known to run
after the interrupt handler has actually run. Before this patch, if
interrupts are threaded, the clearing/unmasking of level triggered
interrupts would be done before the threaded handler actually ran.
Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Kalle Valo [Thu, 24 Jan 2008 22:00:40 +0000 (14:00 -0800)]
spi: omap2_mcspi PIO RX fix
Before transmission of the last word in PIO RX_ONLY mode rx+tx mode
is enabled:
/* prevent last RX_ONLY read from triggering
* more word i/o: switch to rx+tx
*/
if (c == 0 && tx == NULL)
mcspi_write_cs_reg(spi,
OMAP2_MCSPI_CHCONF0, l);
But because c is decremented after the test, c will never be zero and
rx+tx will not be enabled. This breaks RX_ONLY mode PIO transfers.
Fix it by decrementing c in the beginning of the various I/O loops.
Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Thu, 24 Jan 2008 21:35:10 +0000 (13:35 -0800)]
Revert "mac80211: warn when receiving frames with unaligned data"
This reverts commit 81100eb80add328c4d2a377326f15aa0e7236398 for the
release, to avoid the unnecessary warning noise that is only really
relevant to wireless driver developers.
The warning will probably go right back in after I cut the release, but
at least we won't unnecessarily worry users.
Acked-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Choraria, Rohit [Fri, 11 Jan 2008 06:07:03 +0000 (11:37 +0530)]
OMAP3: FLASH: Move Flash specific device info in aseparate board file
This patch does the following
moves flash specific code to a new file board-3430sdp-flash.c
adds support for 3430 ES2 SDP changes for ethernet
changes the check in gpmc to OMAP34XX as same address is valid. Signed-off-by: Rohit Choraria <rohitkc@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Lavinen [Fri, 28 Dec 2007 20:38:23 +0000 (16:38 -0400)]
MMC: OMAP: Do not busy wait for end of command for ever
The limit was a fixed 100k limit in the busy loop, which is not
accurate. It would better to have time limit for the worst case
which occurs when sending 80 cycles at 400 kHz and takes about
200 microseconds, so limit the max time spend in the busy loop
for some 250 microseconds.
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Lavinen [Fri, 28 Dec 2007 20:38:20 +0000 (16:38 -0400)]
MMC: OMAP: Start new commands from work queue instead of irq
Use work queues for starting new commands instead of starting them
directly from irq handler. The command scheduling needs to be delayed
a bit for some cards which should not be done from an interrupt.
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Lavinen [Fri, 28 Dec 2007 20:38:17 +0000 (16:38 -0400)]
MMC: OMAP: Lazy clock shutdown
MMCA spec says the mmc clock should be kept running for at least
8 cycles after the last RW request. Ensure this with lazy clock
disable after a request, or with an explicit delay before
switching a slot.
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Lavinen [Fri, 28 Dec 2007 20:38:09 +0000 (16:38 -0400)]
MMC: OMAP: Use tasklet instead of workqueue for cover switch notification
The cover waitqueue is occasionally scheduled twice from timer
and the interrupt and oops follows. It would have been possible
to fix this problem with spinlocks but using tasklet was a dropin
sloution with no need for locking.
This path also adds some cleanups.
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Mel Gorman [Thu, 24 Jan 2008 13:49:54 +0000 (05:49 -0800)]
slab: partially revert list3 changes
Partial revert the changes made by 04231b3002ac53f8a64a7bd142fde3fa4b6808c6
to the kmem_list3 management. On a machine with a memoryless node, this
BUG_ON was triggering
Larry Woodman [Thu, 24 Jan 2008 13:49:25 +0000 (05:49 -0800)]
fix hugepages leak due to pagetable page sharing
The shared page table code for hugetlb memory on x86 and x86_64
is causing a leak. When a user of hugepages exits using this code
the system leaks some of the hugepages.
-------------------------------------------------------
Part of /proc/meminfo just before database startup:
HugePages_Total: 5500
HugePages_Free: 5500
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
Just before shutdown:
HugePages_Total: 5500
HugePages_Free: 4475
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
The problem occurs durring a fork, in copy_hugetlb_page_range(). It
locates the dst_pte using huge_pte_alloc(). Since huge_pte_alloc() calls
huge_pmd_share() it will share the pmd page if can, yet the main loop in
copy_hugetlb_page_range() does a get_page() on every hugepage. This is a
violation of the shared hugepmd pagetable protocol and creates additional
referenced to the hugepages causing a leak when the unmap of the VMA
occurs. We can skip the entire replication of the ptes when the hugepage
pagetables are shared. The attached patch skips copying the ptes and the
get_page() calls if the hugetlbpage pagetable is shared.
[akpm@linux-foundation.org: coding-style cleanups] Signed-off-by: Larry Woodman <lwoodman@redhat.com> Signed-off-by: Adam Litke <agl@us.ibm.com> Cc: Badari Pulavarty <pbadari@us.ibm.com> Cc: Ken Chen <kenchen@google.com> Cc: David Gibson <david@gibson.dropbear.id.au> Cc: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
: Stefan Roese <sr@denx.de> said:
> ppc: 4xx: sysctl table check failed: /kernel/l2cr .1.31 Missing strategy
>
> I'm seeing this error message when booting an recent arch/ppc kernel on
> 4xx platforms (tested on Ocotea and other 4xx platforms). Booting NFS
> rootfs still works fine, but this message kind of makes me "nervous".
> This is not seen on 4xx arch/powerpc platforms. Here the bootlog:
Because the data field was never filled and a binary sysctl handler was
never written this sysctl has never been usable through the sys_sysctl
interface. So just remove the binary sysctl number. Making the kernel
sanity checks happy.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Reported-by: Stefan Roese <sr@denx.de> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
that certain wireless drivers ended up having their name in module
memory, which would then crash the kernel on module unload.
The patch he proposed was a bit clumsy in that it increased the size of
a lockdep entry significantly; the patch below tries another approach,
it checks, on module teardown, if the name of a class is in module space
and then zaps the class. This is very similar to what we already do
with keys that are in module space.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Márton Németh [Thu, 24 Jan 2008 03:33:06 +0000 (22:33 -0500)]
ACPI: EC: add leading zeros to debug messages
Add leading zeros to pr_debug() calls. For example if x=0x0a, the format
"0x%2x" will result the string "0x a", the format "0x%2.2x" will result "0x0a".
Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Len Brown <len.brown@intel.com>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
sis190: scheduling while atomic error
sis190: mdio operation failure is not correctly detected
sis190: remove duplicate INIT_WORK
sis190: add cmos ram access code for the SiS19x/968 chipset pair
[INET]: Fix truesize setting in ip_append_data
[NETNS]: Re-export init_net via EXPORT_SYMBOL.
iwlwifi: fix possible read attempt on ucode that is not available
[IPV4]: Add missing skb->truesize increment in ip_append_page().
[TULIP] DMFE: Fix SROM parsing regression.
[BLUETOOTH]: Move children of connection device to NULL before connection down.
Len Brown [Thu, 24 Jan 2008 01:06:41 +0000 (20:06 -0500)]
ACPI: Delete Intel Customer Reference Board (CRB) from OSI(Linux) DMI list
Linux does not want BIOS writers to invoke _OSI(Linux) -
for in the field it causes more Windows incompatibility problems
than it solves.
So when it is seen in the BIOS for an Intel Customer Reference Board,
Linux should ignore its effect by default, and should complain loudly.
Otherwise, the reference BIOS will go unfixed, and the bad BIOS
will spread to the field.
Users of this board can get the old behavior with "acpi_osi=Linux"
As this was the only entry, delete acpi_osl_dmi_table[].
Herbert Xu [Wed, 23 Jan 2008 06:39:26 +0000 (22:39 -0800)]
[INET]: Fix truesize setting in ip_append_data
As it is ip_append_data only counts page fragments to the skb that
allocated it. As such it means that the first skb gets hit with a
4K charge even though it might have only used a fraction of it while
all subsequent skb's that use the same page gets away with no charge
at all.
This bug was exposed by the UDP accounting patch.
[ The wmem_alloc bumping needs to be moved with the truesize,
noticed by Takahiro Yasui. -DaveM ]
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Denis V. Lunev [Wed, 23 Jan 2008 06:05:33 +0000 (22:05 -0800)]
[NETNS]: Re-export init_net via EXPORT_SYMBOL.
init_net is used added as a parameter to a lot of old API calls, f.e.
ip_dev_find. These calls were exported as EXPORT_SYMBOL. So, export init_net
as EXPORT_SYMBOL to keep networking API consistent.
Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Tue, 22 Jan 2008 07:20:58 +0000 (23:20 -0800)]
[TULIP] DMFE: Fix SROM parsing regression.
Changeset 16b110c3fd760620b4a787db6ed512fe531ab1b5 (dmfe warning fix)
bothed up the offsets read from the SROM so that it doesn't read the
same datums it used to.
The change made transformations like turning:
"srom + 34"
into
"(__le32 *)srom + 34/4"
which doesn't work because 4 does not divide evenly
into 34 so we're using a different pointer offset
than in the original code.
I've changed theses cases in dmfe_parse_srom() to
consistently use "(type *)(srom + offset)" preserving
the offsets from the original code.
Signed-off-by: David S. Miller <davem@davemloft.net>
Dave Young [Tue, 22 Jan 2008 06:35:21 +0000 (22:35 -0800)]
[BLUETOOTH]: Move children of connection device to NULL before connection down.
The rfcomm tty device will possibly retain even when conn is down, and
sysfs doesn't support zombie device moving, so this patch move the tty
device before conn device is destroyed.
For the bug refered please see :
http://lkml.org/lkml/2007/12/28/87
Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Jordan Crouse [Tue, 22 Jan 2008 22:30:16 +0000 (23:30 +0100)]
x86: GEODE fix a race condition in the MFGPT timer tick
When we set the MFGPT timer tick, there is a chance that we'll
immediately assert an event. If for some reason the IRQ routing
for this clock has been setup for some other purpose, then we
could end up firing an interrupt into the SMM handler or worse.
This rearranges the timer tick init function to initalize the handler
before we set up the MFGPT clock to make sure that even if we get
an event, it will go to the handler.
Furthermore, in the handler we need to make sure that we clear the
event, even if the timer isn't running.
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Tested-by: Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>