Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/.config b/.config
- index 84a3e85..b5f288f 100644
- --- a/.config
- +++ b/.config
- @@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
- # Linux kernel version: 2.6.29.6
- -# Thu Oct 13 15:32:12 2011
- +# Wed Jan 11 21:39:18 2012
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- @@ -138,14 +138,16 @@ CONFIG_IOSCHED_AS=m
- CONFIG_IOSCHED_DEADLINE=m
- CONFIG_IOSCHED_CFQ=m
- CONFIG_IOSCHED_BFQ=m
- +CONFIG_IOSCHED_SIO=y
- CONFIG_IOSCHED_VR=y
- # CONFIG_DEFAULT_AS is not set
- # CONFIG_DEFAULT_DEADLINE is not set
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_BFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- -CONFIG_DEFAULT_VR=y
- -CONFIG_DEFAULT_IOSCHED="vr"
- +# CONFIG_DEFAULT_VR is not set
- +CONFIG_DEFAULT_SIO=y
- +CONFIG_DEFAULT_IOSCHED="sio"
- CONFIG_FREEZER=y
- #
- @@ -374,8 +376,8 @@ CONFIG_CMDLINE=""
- # CONFIG_XIP_KERNEL is not set
- # CONFIG_HZ_100 is not set
- # CONFIG_HZ_250 is not set
- -# CONFIG_HZ_300 is not set
- -CONFIG_HZ_1000=y
- +CONFIG_HZ_300=y
- +# CONFIG_HZ_1000 is not set
- CONFIG_SCHED_HRTICK=y
- # CONFIG_KEXEC is not set
- @@ -386,7 +388,7 @@ CONFIG_CPU_FREQ=y
- CONFIG_CPU_FREQ_TABLE=y
- # CONFIG_CPU_FREQ_DEBUG is not set
- CONFIG_CPU_FREQ_STAT=y
- -CONFIG_CPU_FREQ_STAT_DETAILS=y
- +# CONFIG_CPU_FREQ_STAT_DETAILS is not set
- # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
- # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
- # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
- @@ -396,11 +398,12 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
- # CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS is not set
- # CONFIG_CPU_FREQ_DEFAULT_GOV_SCARY is not set
- # CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
- +# CONFIG_CPU_FREQ_DEFAULT_GOV_BRAZILIANWAX is not set
- CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS2=y
- CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVEX=y
- CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
- -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
- -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
- +CONFIG_CPU_FREQ_GOV_POWERSAVE=y
- +CONFIG_CPU_FREQ_GOV_USERSPACE=y
- CONFIG_CPU_FREQ_GOV_ONDEMAND=y
- CONFIG_CPU_FREQ_GOV_ONDEMAND_INPUT=y
- CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
- @@ -410,6 +413,7 @@ CONFIG_CPU_FREQ_GOV_SMARTASS=y
- CONFIG_CPU_FREQ_GOV_SCARY=y
- CONFIG_CPU_FREQ_GOV_SMARTASS2=y
- CONFIG_CPU_FREQ_GOV_INTERACTIVEX=y
- +CONFIG_CPU_FREQ_GOV_BRAZILIANWAX=y
- CONFIG_CPU_FREQ_MIN_TICKS=10
- CONFIG_CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER=1000
- CONFIG_CPU_FREQ_VDD_LEVELS=y
- @@ -669,6 +673,7 @@ CONFIG_NET_SCH_CBQ=y
- # CONFIG_NET_SCH_PRIO is not set
- # CONFIG_NET_SCH_MULTIQ is not set
- # CONFIG_NET_SCH_RED is not set
- +# CONFIG_NET_SCH_SFB is not set
- # CONFIG_NET_SCH_SFQ is not set
- # CONFIG_NET_SCH_TEQL is not set
- # CONFIG_NET_SCH_TBF is not set
- @@ -761,6 +766,8 @@ CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_DEBUG_DRIVER is not set
- # CONFIG_DEBUG_DEVRES is not set
- # CONFIG_SYS_HYPERVISOR is not set
- +CONFIG_GENLOCK=y
- +CONFIG_GENLOCK_MISCDEVICE=y
- # CONFIG_CONNECTOR is not set
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
- diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c
- index 193b7f7..69eec8e 100644
- --- a/arch/arm/mach-msm/board-qsd8x50.c
- +++ b/arch/arm/mach-msm/board-qsd8x50.c
- @@ -126,16 +126,10 @@
- #define MSM_FB_SIZE 0x177000
- #define MSM_GPU_PHYS_SIZE SZ_2M
- -#ifdef CONFIG_MSM_SOC_REV_A
- -#define MSM_SMI_BASE 0xE0000000
- -#else
- -#define MSM_SMI_BASE 0x00000000
- -#endif
- -
- -#define MSM_SHARED_RAM_PHYS (MSM_SMI_BASE + 0x00100000)
- +#define MSM_SHARED_RAM_PHYS 0x00100000
- #define MODEM_SIZE 0x02300000
- -#define MSM_PMEM_SMI_BASE (MSM_SMI_BASE + MODEM_SIZE)
- +#define MSM_PMEM_SMI_BASE 0x02300000
- #define MSM_PMEM_SMI_SIZE 0x01D00000
- #define MSM_GPU_PHYS_BASE MSM_PMEM_SMI_BASE
- diff --git a/arch/arm/mach-msm/include/mach/memory.h b/arch/arm/mach-msm/include/mach/memory.h
- index 691104f..745f2f9 100644
- --- a/arch/arm/mach-msm/include/mach/memory.h
- +++ b/arch/arm/mach-msm/include/mach/memory.h
- @@ -26,6 +26,7 @@
- #ifndef __ASSEMBLY__
- void *alloc_bootmem_aligned(unsigned long size, unsigned long alignment);
- +unsigned long allocate_contiguous_ebi_nomap(unsigned long, unsigned long);
- void clean_and_invalidate_caches(unsigned long, unsigned long, unsigned long);
- void clean_caches(unsigned long, unsigned long, unsigned long);
- void invalidate_caches(unsigned long, unsigned long, unsigned long);
- diff --git a/arch/arm/mach-msm/memory.c b/arch/arm/mach-msm/memory.c
- index 1d55157..14e7b0a 100644
- --- a/arch/arm/mach-msm/memory.c
- +++ b/arch/arm/mach-msm/memory.c
- @@ -17,12 +17,14 @@
- #include <linux/mm.h>
- #include <linux/mm_types.h>
- #include <linux/bootmem.h>
- +#include <linux/memory_alloc.h>
- #include <linux/module.h>
- #include <asm/pgtable.h>
- #include <asm/io.h>
- #include <asm/mach/map.h>
- #include <asm/cacheflush.h>
- #include <linux/hardirq.h>
- +#include <mach/msm_memtypes.h>
- #if defined(CONFIG_MSM_NPA_REMOTE)
- #include "npa_remote.h"
- #include <linux/completion.h>
- @@ -224,3 +226,11 @@ int platform_physical_low_power_pages(unsigned long start_pfn,
- return change_memory_power_state(start_pfn, nr_pages,
- MEMORY_SELF_REFRESH);
- }
- +
- +unsigned long allocate_contiguous_ebi_nomap(unsigned long size,
- + unsigned long align)
- +{
- + return _allocate_contiguous_memory_nomap(size, MEMTYPE_EBI0,
- + align, __builtin_return_address(0));
- +}
- +EXPORT_SYMBOL(allocate_contiguous_ebi_nomap);
- diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
- index 4dd8542..6dca914 100644
- --- a/block/Kconfig.iosched
- +++ b/block/Kconfig.iosched
- @@ -69,7 +69,7 @@ config IOSCHED_SIO
- based on noop and deadline, that relies on deadlines to
- ensure fairness. The algorithm does not do any sorting but
- basic merging, trying to keep a minimum overhead. It is aimed
- - mainly for aleatory access devices (eg: flash devices).
- + mainly for aleatory access devices (eg: flash devices).
- config IOSCHED_VR
- diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
- index 3bbdb9d..aa4e00a 100644
- --- a/fs/anon_inodes.c
- +++ b/fs/anon_inodes.c
- @@ -64,6 +64,84 @@ static struct dentry_operations anon_inodefs_dentry_operations = {
- *
- * Creates a new file by hooking it on a single inode. This is useful for files
- * that do not need to have a full-fledged inode in order to operate correctly.
- + * All the files created with anon_inode_getfile() will share a single inode,
- + * hence saving memory and avoiding code duplication for the file/inode/dentry
- + * setup. Returns the newly created file* or an error pointer.
- + */
- +struct file *anon_inode_getfile(const char *name,
- + const struct file_operations *fops,
- + void *priv, int flags)
- +{
- + struct qstr this;
- + struct dentry *dentry;
- + struct file *file;
- + int error;
- +
- + if (IS_ERR(anon_inode_inode))
- + return ERR_PTR(-ENODEV);
- +
- + if (fops->owner && !try_module_get(fops->owner))
- + return ERR_PTR(-ENOENT);
- +
- + /*
- + * Link the inode to a directory entry by creating a unique name
- + * using the inode sequence number.
- + */
- + error = -ENOMEM;
- + this.name = name;
- + this.len = strlen(name);
- + this.hash = 0;
- + dentry = d_alloc(anon_inode_mnt->mnt_sb->s_root, &this);
- + if (!dentry)
- + goto err_module;
- +
- + /*
- + * We know the anon_inode inode count is always greater than zero,
- + * so we can avoid doing an igrab() and we can use an open-coded
- + * atomic_inc().
- + */
- + atomic_inc(&anon_inode_inode->i_count);
- +
- + dentry->d_op = &anon_inodefs_dentry_operations;
- + /* Do not publish this dentry inside the global dentry hash table */
- + dentry->d_flags &= ~DCACHE_UNHASHED;
- + d_instantiate(dentry, anon_inode_inode);
- +
- + error = -ENFILE;
- + file = alloc_file(anon_inode_mnt, dentry,
- + FMODE_READ | FMODE_WRITE, fops);
- + if (!file)
- + goto err_dput;
- + file->f_mapping = anon_inode_inode->i_mapping;
- +
- + file->f_pos = 0;
- + file->f_flags = O_RDWR | (flags & O_NONBLOCK);
- + file->f_version = 0;
- + file->private_data = priv;
- +
- + return file;
- +
- +err_dput:
- + dput(dentry);
- +err_module:
- + module_put(fops->owner);
- + return ERR_PTR(error);
- +}
- +EXPORT_SYMBOL_GPL(anon_inode_getfile);
- +
- +
- +/**
- + * anon_inode_getfd - creates a new file instance by hooking it up to an
- + * anonymous inode, and a dentry that describe the "class"
- + * of the file
- + *
- + * @name: [in] name of the "class" of the new file
- + * @fops: [in] file operations for the new file
- + * @priv: [in] private data for the new file (will be file's private_data)
- + * @flags: [in] flags
- + *
- + * Creates a new file by hooking it on a single inode. This is useful for files
- + * that do not need to have a full-fledged inode in order to operate correctly.
- * All the files created with anon_inode_getfd() will share a single inode,
- * hence saving memory and avoiding code duplication for the file/inode/dentry
- * setup. Returns new descriptor or -error.
Add Comment
Please, Sign In to add comment