Commit Graph

158996 Commits

Author SHA1 Message Date
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
Matt Sealey
ade4807e80 Make RT2870 driver less chatty (# messages) and disable debug by default 2010-09-09 10:55:25 -05:00
Matt Sealey
864d4af084 pixclk_limit now a hardcoded define (117MHz) and no more 1080p hack (dangerous anyway!) 2010-09-09 10:54:35 -05:00
Matt Sealey
1d91ed0309 Roll back to 16-bit displays 2010-09-09 10:13:19 -05:00
Matt Sealey
252d8b02d5 default plat data mode needs to be 16bit otherwise the initial framebuffer cannot be allocated (this is very strange, but, it will be changed later anyway). 32-bit framebuffer now is set on boot, but colours are warped. 2010-09-08 12:24:15 -05:00
Matt Sealey
0fab3da496 roll back serial snafu to BSP version 2010-09-08 11:50:27 -05:00
Matt Sealey
4b4810a749 defconfig update: CONFIG_PREEMPT & CONFIG_UACCESS_WITH_MEMCPY for best speed 2010-09-08 10:06:35 -05:00
Matt Sealey
0e1d623779 32-bit display fixes to stay consistent 2010-09-08 09:36:10 -05:00
Matt Sealey
dbdda90799 defconfig: enable CONFIG_SECURITY_FILE_CAPABILITIES for ChromiumOS (sync BSP) 2010-09-08 08:07:00 -05:00
Matt Sealey
7f70a4fe61 Make default bits per pixel 32-bit 2010-09-08 08:03:22 -05:00
Matt Sealey
f6c41e7a6c Sync defconfigs to BSP: DMA_ZONE=96, VMSPLIT 2G/2G 2010-09-08 07:59:56 -05:00
Matt Sealey
a6094f1856 board_is -> machine_is typo fixed 2010-09-07 15:10:27 -05:00