Commit Graph

159007 Commits

Author SHA1 Message Date
Ingo Molnar
14c9e46dd4 genirq: Run irq handlers with interrupts disabled
Running interrupt handlers with interrupts enabled can cause stack
overflows. That has been observed with multiqueue NICs delivering all
their interrupts to a single core. We might band aid that somehow by
checking the interrupt stacks, but the real safe fix is to run the irq
handlers with interrupts disabled.

Drivers for whacky hardware still can reenable them in the handler
itself, if the need arises. (They do already due to lockdep)

The risk of doing this is rather low:

 - lockdep already enforces this
 - CONFIG_NOHZ has shaken out the drivers which relied on jiffies updates
 - time keeping is not longer sensitive to the timer interrupt being delayed

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Miller <davem@davemloft.net>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Linus Torvalds <torvalds@osdl.org>
LKML-Reference: <20100326000405.758579387@linutronix.de>
2010-10-21 13:12:24 -05:00
Jie Zhou
fefd0f80de ENGR00125800 UIO: clean uioinfo when uninstall uio driver
The uioinfo should be cleaned up when uninstall, otherwise re-install
failure of uio_pdrv_genirq.ko will happen.

Signed-off-by: Jie Zhou <b30303@freescale.com>
2010-10-21 13:12:10 -05:00
Matt Sealey
1e89231708 trace: ureadahead support 2010-10-20 00:40:00 -05:00
Matt Sealey
2b5591d0f4 version bump (2.6.31.14.1) so that package conflicts don't happen 2010-10-19 19:48:30 -05:00
Matt Sealey
86d37573c7 configs: disable PREEMPT as it may be causing horrible problems 2010-10-19 09:56:03 -05:00
Matt Sealey
4f26d08957 From 148a2911a31f77f18778519bf300143f850fddaf Mon Sep 17 00:00:00 2001
From: Steev Klimaszewski <steev@gentoo.org>
Date: Mon, 18 Oct 2010 08:40:53 -0500
Subject: [PATCH] CONFIG_PPP_MULTILINK and CONFIG_PPP_FILTER cannot be modular, since
 we want the support, build them in with y
2010-10-18 09:05:37 -05:00
Matt Sealey
1a11cfffb3 config: Add PPP modules 2010-10-16 14:43:58 -05:00
Matt Sealey
80ee6ca3f4 Fixed logical fallacy re SD and WP pins for SDHC2 therefore finally fixing the SD card bug. 2010-10-16 13:18:19 -05:00
Dinh Nguyen
193db12141 usb: Increase timeout value for device reset
It seems that for USB IP on Freescale MX5x processors, it needs >750
usec for the reset to complete. This change should not hurt any other
EHCI hardware.

Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-10-03 13:26:25 -05:00
Matt Sealey
27b4085a51 More moronic SD card stuff fixed. stuff CD into interrupt for TO2 instead of WP 2010-09-28 14:00:41 -05:00
Matt Sealey
9c7b6199b8 Smarttop: potential fix for TO2 SD card CD/WP handling. Neko is a moron. 2010-09-28 13:46:00 -05:00
Matt Sealey
b3f68cf849 rootwait by default 2010-09-28 12:40:54 -05:00
Matt Sealey
81163a41f4 Smarttop: remove modes which do not match IPU restrictions (vertical border needs to be >2) in order not to have them be "reconfigured" later to be potentially incompatible with the monitor. 2010-09-28 12:15:55 -05:00
Matt Sealey
3421bfc4b2 defconfig update, IO scheduler NOOP, DEVTMPFS config for SB, CPU govs for MX
Why NOOP? Because CFQ is wasting CPU cycles for no performance gain. There should
be more left for the system now, and identical block device performance.

Devtmpfs in config enabled for Lucid/Maverick and other 2010 Linux support.

Added modules for CPU governors for the Smarttop board since power management is
useful.
2010-09-14 21:36:16 -05:00
Matt Sealey
28470c09c7 Remove custom Efika Smartbook backlight driver as it duplicates code
and isn't nearly as good as the generic one now in use.
2010-09-10 18:31:34 -05:00
Matt Sealey
56ef1445b1 Use the fine-grained, generic PWM platform driver for backlight.
Update PWM driver to support the notifier from the MTL017 driver
such that when the LVDS is off, the backlight turns off too.
2010-09-10 18:29:25 -05:00
Matt Sealey
86bb4ecfc1 defconfigs: add ramzswap module, enable oprofile module 2010-09-10 13:10:08 -05:00
Matt Sealey
fb5b9e4677 ramzswap: Issue #50, commit 6f52562b30, Parameters for module start 2010-09-10 12:39:26 -05:00
Matt Sealey
0ca8a3b3d7 ramzswap: merge fubar fixed. 2010-09-10 11:55:35 -05:00
Nitin Gupta
a5d1eb0100 Staging: xvmalloc memory allocator
* Features:
 - Low metadata overhead (just 4 bytes per object)
 - O(1) Alloc/Free - except when we have to call system page allocator to
   get additional memory.
 - Very low fragmentation: In all tests, xvmalloc memory usage is within 12%
   of "Ideal".
 - Pool based allocator: Each pool can grow and shrink.
 - It maps pages only when required. So, it does not hog vmalloc area which
   is very small on 32-bit systems.

SLUB allocator could not be used due to fragmentation issues:
http://code.google.com/p/compcache/wiki/AllocatorsComparison
Data here shows kmalloc using ~43% more memory than TLSF and xvMalloc
is showed ~2% more space efficiency than TLSF (due to smaller metadata).
Creating various kmem_caches can reduce space efficiency gap but still
problem of being limited to low memory exists. Also, it depends on
allocating higher order pages to reduce fragmentation - this is not
acceptable for ramzswap as it is used under memory crunch (its a swap
device!).

SLOB allocator could not be used do to reasons mentioned here:
http://lkml.org/lkml/2009/3/18/210

* Implementation:
It uses two-level bitmap search to find free list containing block of
correct size. This idea is taken from TLSF (Two-Level Segregate Fit)
allocator and is well explained in its paper (see [Links] below).

* Limitations:
 - Poor scalability: No per-cpu data structures (work in progress).

[Links]
1. Details and Performance data:
http://code.google.com/p/compcache/wiki/xvMalloc
http://code.google.com/p/compcache/wiki/xvMallocPerformance

2. TLSF memory allocator:
home: http://rtportal.upv.es/rtmalloc/
paper: http://rtportal.upv.es/rtmalloc/files/MRBC_2008.pdf

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:38:55 -05:00
Nitin Gupta
214ac60eb6 Staging: xvmalloc memory allocator
* Features:
 - Low metadata overhead (just 4 bytes per object)
 - O(1) Alloc/Free - except when we have to call system page allocator to
   get additional memory.
 - Very low fragmentation: In all tests, xvmalloc memory usage is within 12%
   of "Ideal".
 - Pool based allocator: Each pool can grow and shrink.
 - It maps pages only when required. So, it does not hog vmalloc area which
   is very small on 32-bit systems.

SLUB allocator could not be used due to fragmentation issues:
http://code.google.com/p/compcache/wiki/AllocatorsComparison
Data here shows kmalloc using ~43% more memory than TLSF and xvMalloc
is showed ~2% more space efficiency than TLSF (due to smaller metadata).
Creating various kmem_caches can reduce space efficiency gap but still
problem of being limited to low memory exists. Also, it depends on
allocating higher order pages to reduce fragmentation - this is not
acceptable for ramzswap as it is used under memory crunch (its a swap
device!).

SLOB allocator could not be used do to reasons mentioned here:
http://lkml.org/lkml/2009/3/18/210

* Implementation:
It uses two-level bitmap search to find free list containing block of
correct size. This idea is taken from TLSF (Two-Level Segregate Fit)
allocator and is well explained in its paper (see [Links] below).

* Limitations:
 - Poor scalability: No per-cpu data structures (work in progress).

[Links]
1. Details and Performance data:
http://code.google.com/p/compcache/wiki/xvMalloc
http://code.google.com/p/compcache/wiki/xvMallocPerformance

2. TLSF memory allocator:
home: http://rtportal.upv.es/rtmalloc/
paper: http://rtportal.upv.es/rtmalloc/files/MRBC_2008.pdf

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:37:54 -05:00
Matt Sealey
e08e29c857 author Tejun Heo <tj@kernel.org>
Wed, 24 Mar 2010 08:04:11 +0000 (17:04 +0900)

include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h

Picked out manually from 5a0e3ad6af8660be21ca98a971cd00f331318c05 so we don't break further ramzswap updates when cherry-picking
2010-09-10 11:06:05 -05:00
Nitin Gupta
399d237a86 Staging: ramzswap: Update copyright notice
Update copyright notice.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:04:01 -05:00
Nitin Gupta
e33874895f Staging: ramzswap: Handle case for invalid backing swap
Currently, we crash (issue BUG_ON) if backing swap
disk size is zero. This can happen is user specified
an extended partition or simply a bad disk as backing
swap. A crash is really an unpleasant surprise to user
for such trivial problems.

Now, we check for this condition and simply fail device
initialization if this is the case.

Additional cleanups:
 * use static for all functions
 * remove extra newline between functions
 * memset backing_swap_name to NULL on device reset

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:02:59 -05:00
Nitin Gupta
ae1624d8b4 Staging: ramzswap: Remove redundant check for zero page
ramzswap_free_page() already handles the case for zero filled
pages. So, remove redundant logic for the same in ramzswap_write().

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:02:40 -05:00
Nitin Gupta
d19379392a Staging: ramzswap: Return proper error code on device create failure
Currently, we return 0 if create_device() fails and 1 otherwise.
Now, proper error code is returned from create_device() and the
same is propagated as module error code from ramzswap_init().

Also added some cleanups for ramzswap_init(), improving function
structure.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:02:19 -05:00
Nitin Gupta
2461101919 Staging: ramzswap: Set block size to PAGE_SIZE
ramzswap block size needs to be set equal to PAGE_SIZE to
avoid receiving any unaligned block I/O requests (happens
due to readahead logic during swapon). These unaligned
accesses produce unnecessary I/O errors, scaring users.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:02:04 -05:00
Nitin Gupta
ae5b62fb7e Staging: ramzswap: Flush block device before reset
Make sure we flush block device before freeing all metadata
during reset ioctl.

Signed-off-by: Nitin Gupta <ngupta@vflar.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:01:41 -05:00
Nitin Gupta
459f19ae4f Staging: ramzswap: Use lock for 64-bit stats
64-bit stats corruption was observed when ramzswap was
used on SMP systems. To prevent this, use separate spinlock
to protect these stats.

Also, replace stat_*() with rzs_stat*() to avoid possible
conflict with core kernel code.

Eventually, these will be converted to per-cpu counters
if this driver finds use on large scale systems and this
locking is found to affect scalability.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 11:01:21 -05:00
Minchan Kim
ab65acee3c Staging: ramzswap: Free memory when create_device is failed
If create_device is failed, it can't free gendisk and request_queue of
preceding devices. It cause memory leak.

This patch fixes it.

Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
Acked-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:59:01 -05:00
C yp
61f5861239 Staging: ramzswap: Minor spelling fixes
Also removed an extra semicolon.

Signed-off-by: Cyp <cyp561@gmail.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:58:33 -05:00
Huang Weiyi
2b05b95f94 Staging: ramzswap: remove unused #include <linux/version.h>
Remove unused #include <linux/version.h>('s) in
  drivers/staging/ramzswap/ramzswap_drv.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:57:07 -05:00
Nitin Gupta
3c127a51f4 Staging: ramzswap: remove ARM specific d-cache hack
Remove d-cache hack in ramzswap driver that was needed
to workaround a bug in ARM version of update_mmu_cache()
which caused stale data in d-cache to be transferred to
userspace. This bug was fixed by git commit:
	787b2faadc4356b6c2c71feb42fb944fece9a12f
This also brings down one entry in TODO file.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:56:30 -05:00
Nitin Gupta
de3766d7b8 Staging: virtual block device driver (ramzswap)
Creates RAM based block devices (/dev/ramzswapX) which can be
used (only) as swap disks. Pages swapped to these are compressed
and stored in memory itself.

The module is called ramzswap.ko. It depends on:
 - xvmalloc memory allocator (compiled with this driver)
 - lzo_compress.ko
 - lzo_decompress.ko

See ramzswap.txt for usage details.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:53:32 -05:00
Matt Sealey
2d252c60b2 Revert "ramzswap driver"
This reverts commit b675d5e9dd.
2010-09-10 10:50:50 -05:00
Matt Sealey
eca81f9e46 Take out TVE and W1 data since it's unused now 2010-09-10 10:44:05 -05:00
Matt Sealey
b675d5e9dd ramzswap driver 2010-09-10 10:41:51 -05:00
Matt Sealey
680823c4d7 Revert "swap: Add flag to identify block swap devices"
This reverts commit f206359542.
2010-09-10 10:40:32 -05:00
Nitin Gupta
f206359542 swap: Add flag to identify block swap devices
Added SWP_BLKDEV flag to distinguish block and regular file backed
swap devices. We could also check if a swap is entire block device,
rather than a file, by:
S_ISBLK(swap_info_struct->swap_file->f_mapping->host->i_mode)
but, I think, simply checking this flag is more convenient.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Nigel Cunningham <nigel@tuxonice.net>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-10 10:28:52 -05:00
Matt Sealey
98a6859518 Smartbook: don't register TVE, W1 or FEC since they don't exist 2010-09-09 16:35:28 -05:00
Matt Sealey
479c956f94 Lid Switch: Name fix, whitespace fixes 2010-09-09 16:28:25 -05:00
Matt Sealey
636e46cb35 VDDD regulator for audio to quit complaining
fixes further sgtl5000 complaints on boot
2010-09-09 16:28:05 -05:00
Matt Sealey
e0b56f3e6f Use i2c-imx instead of mxc_i2c for i2c bus traffic
fixes mtl017 complaints on boot (and speeds boot up slightly)
fixes sgtl5000 complaints on boot
fixes battery i2c complaints (and oops) on boot
2010-09-09 16:27:00 -05:00
Matt Sealey
3604a1742e mtl017 update: edid dump and screen data
Update EDID dump to match SII9022 (rows of 32 bytes instead of one per line)

DEBUG_MTL017 controls this dump data.

whitespace fixes abound.
2010-09-09 16:01:10 -05:00
Matt Sealey
bd65b7761f Smartbook support for MXCFB_DEFAULT_BPP although 32-bit still seems banded 2010-09-09 14:14:52 -05:00
Matt Sealey
7fc1c62daa Unbreak defconfig (argh) 2010-09-09 13:47:25 -05:00
Russell King
bc98989a17 ARM: Fix wrong register in proc-arm6_7.S data abort handler
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-09-09 13:11:31 -05:00
Matt Sealey
f1edb75797 Update defconfig, seemed to have lost some stuff 2010-09-09 13:02:20 -05:00
Matt Sealey
a64c5f15de VPU allocation fails for some reason - actually the reason is that fbi->fix.line_length can be zero. In this situation, DON'T try and dma_alloc_writecombine with 0 length, or it'll OOPS.
As a side effect of not doing this, the V4L driver would happily go off and touch a framebuffer address that was invalid, and there may have been a slight SNAFU with a divide by zero on the VPU framebuffer.

Arnaud Patard from Mandriva noticed these a long while ago, but now here they are.

BUG: these are temporary hacks, let's try and work out why line_length is 0..
2010-09-09 12:41:12 -05:00
Matt Sealey
c6ba22c9eb Ratonalize and cleanup the 16/32bit mode define. it's in mx51_efikamx.h now. 32bit works. 2010-09-09 12:18:24 -05:00