Merge branch 'imx/dt' into next/dt
This commit is contained in:
@@ -135,6 +135,7 @@ header-y += firewire-cdev.h
|
||||
header-y += firewire-constants.h
|
||||
header-y += flat.h
|
||||
header-y += fs.h
|
||||
header-y += fsl_hypervisor.h
|
||||
header-y += fuse.h
|
||||
header-y += futex.h
|
||||
header-y += gameport.h
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <linux/uio.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define AIO_MAXSEGS 4
|
||||
#define AIO_KIOGRP_NR_ATOMIC 8
|
||||
|
||||
@@ -220,7 +220,7 @@ struct atm_cirange {
|
||||
#include <linux/skbuff.h> /* struct sk_buff */
|
||||
#include <linux/uio.h>
|
||||
#include <net/sock.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
#include <linux/proc_fs.h>
|
||||
|
||||
@@ -1,7 +1,31 @@
|
||||
/* Atomic operations usable in machine independent code */
|
||||
#ifndef _LINUX_ATOMIC_H
|
||||
#define _LINUX_ATOMIC_H
|
||||
#include <asm/atomic.h>
|
||||
|
||||
/**
|
||||
* atomic_add_unless - add unless the number is already a given value
|
||||
* @v: pointer of type atomic_t
|
||||
* @a: the amount to add to v...
|
||||
* @u: ...unless v is equal to u.
|
||||
*
|
||||
* Atomically adds @a to @v, so long as @v was not already @u.
|
||||
* Returns non-zero if @v was not @u, and zero otherwise.
|
||||
*/
|
||||
static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
{
|
||||
return __atomic_add_unless(v, a, u) != u;
|
||||
}
|
||||
|
||||
/**
|
||||
* atomic_inc_not_zero - increment unless the number is zero
|
||||
* @v: pointer of type atomic_t
|
||||
*
|
||||
* Atomically increments @v by 1, so long as @v is non-zero.
|
||||
* Returns non-zero if @v was non-zero, and zero otherwise.
|
||||
*/
|
||||
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
|
||||
|
||||
/**
|
||||
* atomic_inc_not_zero_hint - increment if not null
|
||||
* @v: pointer of type atomic_t
|
||||
@@ -73,4 +97,8 @@ static inline void atomic_or(int i, atomic_t *v)
|
||||
}
|
||||
#endif /* #ifndef CONFIG_ARCH_HAS_ATOMIC_OR */
|
||||
|
||||
#include <asm-generic/atomic-long.h>
|
||||
#ifdef CONFIG_GENERIC_ATOMIC64
|
||||
#include <asm-generic/atomic64.h>
|
||||
#endif
|
||||
#endif /* _LINUX_ATOMIC_H */
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <linux/sched.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/writeback.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
struct page;
|
||||
struct device;
|
||||
@@ -40,6 +40,7 @@ typedef int (congested_fn)(void *, int);
|
||||
enum bdi_stat_item {
|
||||
BDI_RECLAIMABLE,
|
||||
BDI_WRITEBACK,
|
||||
BDI_WRITTEN,
|
||||
NR_BDI_STAT_ITEMS
|
||||
};
|
||||
|
||||
@@ -57,6 +58,7 @@ struct bdi_writeback {
|
||||
struct list_head b_dirty; /* dirty inodes */
|
||||
struct list_head b_io; /* parked for writeback */
|
||||
struct list_head b_more_io; /* parked for more writeback */
|
||||
spinlock_t list_lock; /* protects the b_* lists */
|
||||
};
|
||||
|
||||
struct backing_dev_info {
|
||||
@@ -71,6 +73,11 @@ struct backing_dev_info {
|
||||
|
||||
struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS];
|
||||
|
||||
unsigned long bw_time_stamp; /* last time write bw is updated */
|
||||
unsigned long written_stamp; /* pages written at bw_time_stamp */
|
||||
unsigned long write_bandwidth; /* the estimated write bandwidth */
|
||||
unsigned long avg_write_bandwidth; /* further smoothed write bw */
|
||||
|
||||
struct prop_local_percpu completions;
|
||||
int dirty_exceeded;
|
||||
|
||||
@@ -106,6 +113,7 @@ int bdi_writeback_thread(void *data);
|
||||
int bdi_has_dirty_io(struct backing_dev_info *bdi);
|
||||
void bdi_arm_supers_timer(void);
|
||||
void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi);
|
||||
void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2);
|
||||
|
||||
extern spinlock_t bdi_lock;
|
||||
extern struct list_head bdi_list;
|
||||
|
||||
@@ -25,6 +25,11 @@ struct bcma_chipinfo {
|
||||
u8 pkg;
|
||||
};
|
||||
|
||||
enum bcma_clkmode {
|
||||
BCMA_CLKMODE_FAST,
|
||||
BCMA_CLKMODE_DYNAMIC,
|
||||
};
|
||||
|
||||
struct bcma_host_ops {
|
||||
u8 (*read8)(struct bcma_device *core, u16 offset);
|
||||
u16 (*read16)(struct bcma_device *core, u16 offset);
|
||||
@@ -243,8 +248,24 @@ void bcma_awrite32(struct bcma_device *core, u16 offset, u32 value)
|
||||
core->bus->ops->awrite32(core, offset, value);
|
||||
}
|
||||
|
||||
#define bcma_mask32(cc, offset, mask) \
|
||||
bcma_write32(cc, offset, bcma_read32(cc, offset) & (mask))
|
||||
#define bcma_set32(cc, offset, set) \
|
||||
bcma_write32(cc, offset, bcma_read32(cc, offset) | (set))
|
||||
#define bcma_maskset32(cc, offset, mask, set) \
|
||||
bcma_write32(cc, offset, (bcma_read32(cc, offset) & (mask)) | (set))
|
||||
|
||||
extern bool bcma_core_is_enabled(struct bcma_device *core);
|
||||
extern void bcma_core_disable(struct bcma_device *core, u32 flags);
|
||||
extern int bcma_core_enable(struct bcma_device *core, u32 flags);
|
||||
extern void bcma_core_set_clockmode(struct bcma_device *core,
|
||||
enum bcma_clkmode clkmode);
|
||||
extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
|
||||
bool on);
|
||||
#define BCMA_DMA_TRANSLATION_MASK 0xC0000000
|
||||
#define BCMA_DMA_TRANSLATION_NONE 0x00000000
|
||||
#define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */
|
||||
#define BCMA_DMA_TRANSLATION_DMA64_CMT 0x80000000 /* Client Mode Translation for 64-bit DMA */
|
||||
extern u32 bcma_core_dma_translation(struct bcma_device *core);
|
||||
|
||||
#endif /* LINUX_BCMA_H_ */
|
||||
|
||||
@@ -179,15 +179,7 @@
|
||||
#define BCMA_CC_PROG_WAITCNT 0x0124
|
||||
#define BCMA_CC_FLASH_CFG 0x0128
|
||||
#define BCMA_CC_FLASH_WAITCNT 0x012C
|
||||
#define BCMA_CC_CLKCTLST 0x01E0 /* Clock control and status (rev >= 20) */
|
||||
#define BCMA_CC_CLKCTLST_FORCEALP 0x00000001 /* Force ALP request */
|
||||
#define BCMA_CC_CLKCTLST_FORCEHT 0x00000002 /* Force HT request */
|
||||
#define BCMA_CC_CLKCTLST_FORCEILP 0x00000004 /* Force ILP request */
|
||||
#define BCMA_CC_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */
|
||||
#define BCMA_CC_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */
|
||||
#define BCMA_CC_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */
|
||||
#define BCMA_CC_CLKCTLST_HAVEHT 0x00010000 /* HT available */
|
||||
#define BCMA_CC_CLKCTLST_HAVEALP 0x00020000 /* APL available */
|
||||
/* 0x1E0 is defined as shared BCMA_CLKCTLST */
|
||||
#define BCMA_CC_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */
|
||||
#define BCMA_CC_UART0_DATA 0x0300
|
||||
#define BCMA_CC_UART0_IMR 0x0304
|
||||
@@ -244,7 +236,8 @@
|
||||
#define BCMA_CC_REGCTL_DATA 0x065C
|
||||
#define BCMA_CC_PLLCTL_ADDR 0x0660
|
||||
#define BCMA_CC_PLLCTL_DATA 0x0664
|
||||
#define BCMA_CC_SPROM 0x0830 /* SPROM beginning */
|
||||
#define BCMA_CC_SPROM 0x0800 /* SPROM beginning */
|
||||
#define BCMA_CC_SPROM_PCIE6 0x0830 /* SPROM beginning on PCIe rev >= 6 */
|
||||
|
||||
/* Data for the PMU, if available.
|
||||
* Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU)
|
||||
|
||||
@@ -1,13 +1,38 @@
|
||||
#ifndef LINUX_BCMA_REGS_H_
|
||||
#define LINUX_BCMA_REGS_H_
|
||||
|
||||
/* Some single registers are shared between many cores */
|
||||
/* BCMA_CLKCTLST: ChipCommon (rev >= 20), PCIe, 80211 */
|
||||
#define BCMA_CLKCTLST 0x01E0 /* Clock control and status */
|
||||
#define BCMA_CLKCTLST_FORCEALP 0x00000001 /* Force ALP request */
|
||||
#define BCMA_CLKCTLST_FORCEHT 0x00000002 /* Force HT request */
|
||||
#define BCMA_CLKCTLST_FORCEILP 0x00000004 /* Force ILP request */
|
||||
#define BCMA_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */
|
||||
#define BCMA_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */
|
||||
#define BCMA_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */
|
||||
#define BCMA_CLKCTLST_EXTRESREQ 0x00000700 /* Mask of external resource requests */
|
||||
#define BCMA_CLKCTLST_HAVEALP 0x00010000 /* ALP available */
|
||||
#define BCMA_CLKCTLST_HAVEHT 0x00020000 /* HT available */
|
||||
#define BCMA_CLKCTLST_BP_ON_ALP 0x00040000 /* RO: running on ALP clock */
|
||||
#define BCMA_CLKCTLST_BP_ON_HT 0x00080000 /* RO: running on HT clock */
|
||||
#define BCMA_CLKCTLST_EXTRESST 0x07000000 /* Mask of external resource status */
|
||||
/* Is there any BCM4328 on BCMA bus? */
|
||||
#define BCMA_CLKCTLST_4328A0_HAVEHT 0x00010000 /* 4328a0 has reversed bits */
|
||||
#define BCMA_CLKCTLST_4328A0_HAVEALP 0x00020000 /* 4328a0 has reversed bits */
|
||||
|
||||
/* Agent registers (common for every core) */
|
||||
#define BCMA_IOCTL 0x0408
|
||||
#define BCMA_IOCTL 0x0408 /* IO control */
|
||||
#define BCMA_IOCTL_CLK 0x0001
|
||||
#define BCMA_IOCTL_FGC 0x0002
|
||||
#define BCMA_IOCTL_CORE_BITS 0x3FFC
|
||||
#define BCMA_IOCTL_PME_EN 0x4000
|
||||
#define BCMA_IOCTL_BIST_EN 0x8000
|
||||
#define BCMA_IOST 0x0500 /* IO status */
|
||||
#define BCMA_IOST_CORE_BITS 0x0FFF
|
||||
#define BCMA_IOST_DMA64 0x1000
|
||||
#define BCMA_IOST_GATED_CLK 0x2000
|
||||
#define BCMA_IOST_BIST_ERROR 0x4000
|
||||
#define BCMA_IOST_BIST_DONE 0x8000
|
||||
#define BCMA_RESET_CTL 0x0800
|
||||
#define BCMA_RESET_CTL_RESET 0x0001
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/preempt.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* bit-based spin_lock()
|
||||
|
||||
@@ -144,6 +144,7 @@ extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order);
|
||||
extern void bitmap_release_region(unsigned long *bitmap, int pos, int order);
|
||||
extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
|
||||
extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits);
|
||||
extern int bitmap_ord_to_pos(const unsigned long *bitmap, int n, int bits);
|
||||
|
||||
#define BITMAP_LAST_WORD_MASK(nbits) \
|
||||
( \
|
||||
|
||||
@@ -73,7 +73,7 @@ enum rq_cmd_type_bits {
|
||||
|
||||
/*
|
||||
* try to put the fields that are referenced together in the same cacheline.
|
||||
* if you modify this structure, be sure to check block/blk-core.c:rq_init()
|
||||
* if you modify this structure, be sure to check block/blk-core.c:blk_rq_init()
|
||||
* as well!
|
||||
*/
|
||||
struct request {
|
||||
@@ -260,8 +260,7 @@ struct queue_limits {
|
||||
unsigned char discard_zeroes_data;
|
||||
};
|
||||
|
||||
struct request_queue
|
||||
{
|
||||
struct request_queue {
|
||||
/*
|
||||
* Together with queue_head for cacheline sharing
|
||||
*/
|
||||
@@ -303,16 +302,16 @@ struct request_queue
|
||||
*/
|
||||
void *queuedata;
|
||||
|
||||
/*
|
||||
* queue needs bounce pages for pages above this limit
|
||||
*/
|
||||
gfp_t bounce_gfp;
|
||||
|
||||
/*
|
||||
* various queue flags, see QUEUE_* below
|
||||
*/
|
||||
unsigned long queue_flags;
|
||||
|
||||
/*
|
||||
* queue needs bounce pages for pages above this limit
|
||||
*/
|
||||
gfp_t bounce_gfp;
|
||||
|
||||
/*
|
||||
* protects queue structures from reentrancy. ->__queue_lock should
|
||||
* _never_ be used directly, it is queue private. always use
|
||||
@@ -334,8 +333,8 @@ struct request_queue
|
||||
unsigned int nr_congestion_off;
|
||||
unsigned int nr_batching;
|
||||
|
||||
void *dma_drain_buffer;
|
||||
unsigned int dma_drain_size;
|
||||
void *dma_drain_buffer;
|
||||
unsigned int dma_pad_mask;
|
||||
unsigned int dma_alignment;
|
||||
|
||||
@@ -393,7 +392,7 @@ struct request_queue
|
||||
#define QUEUE_FLAG_ELVSWITCH 6 /* don't use elevator, just do FIFO */
|
||||
#define QUEUE_FLAG_BIDI 7 /* queue supports bidi requests */
|
||||
#define QUEUE_FLAG_NOMERGES 8 /* disable merge attempts */
|
||||
#define QUEUE_FLAG_SAME_COMP 9 /* force complete on same CPU */
|
||||
#define QUEUE_FLAG_SAME_COMP 9 /* complete on same CPU-group */
|
||||
#define QUEUE_FLAG_FAIL_IO 10 /* fake timeout */
|
||||
#define QUEUE_FLAG_STACKABLE 11 /* supports request stacking */
|
||||
#define QUEUE_FLAG_NONROT 12 /* non-rotational device (SSD) */
|
||||
@@ -403,6 +402,7 @@ struct request_queue
|
||||
#define QUEUE_FLAG_NOXMERGES 15 /* No extended merges */
|
||||
#define QUEUE_FLAG_ADD_RANDOM 16 /* Contributes to random pool */
|
||||
#define QUEUE_FLAG_SECDISCARD 17 /* supports SECDISCARD */
|
||||
#define QUEUE_FLAG_SAME_FORCE 18 /* force complete on same CPU */
|
||||
|
||||
#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
|
||||
(1 << QUEUE_FLAG_STACKABLE) | \
|
||||
@@ -857,12 +857,21 @@ struct request_queue *blk_alloc_queue(gfp_t);
|
||||
struct request_queue *blk_alloc_queue_node(gfp_t, int);
|
||||
extern void blk_put_queue(struct request_queue *);
|
||||
|
||||
/*
|
||||
* Note: Code in between changing the blk_plug list/cb_list or element of such
|
||||
* lists is preemptable, but such code can't do sleep (or be very careful),
|
||||
* otherwise data is corrupted. For details, please check schedule() where
|
||||
* blk_schedule_flush_plug() is called.
|
||||
*/
|
||||
struct blk_plug {
|
||||
unsigned long magic;
|
||||
struct list_head list;
|
||||
struct list_head cb_list;
|
||||
unsigned int should_sort;
|
||||
unsigned int count;
|
||||
};
|
||||
#define BLK_MAX_REQUEST_COUNT 16
|
||||
|
||||
struct blk_plug_cb {
|
||||
struct list_head list;
|
||||
void (*callback)(struct blk_plug_cb *);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/wait.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#define CEPH_OPT_MYIP (1<<2) /* specified my ip */
|
||||
#define CEPH_OPT_NOCRC (1<<3) /* no data crc on writes */
|
||||
|
||||
#define CEPH_OPT_DEFAULT (0);
|
||||
#define CEPH_OPT_DEFAULT (0)
|
||||
|
||||
#define ceph_set_opt(client, opt) \
|
||||
(client)->options->flags |= CEPH_OPT_##opt;
|
||||
|
||||
@@ -94,6 +94,7 @@ struct ceph_msg {
|
||||
bool more_to_follow;
|
||||
bool needs_out_seq;
|
||||
int front_max;
|
||||
unsigned long ack_stamp; /* tx: when we were acked */
|
||||
|
||||
struct ceph_msgpool *pool;
|
||||
};
|
||||
|
||||
@@ -539,7 +539,6 @@ static inline struct cgroup_subsys_state *cgroup_subsys_state(
|
||||
*/
|
||||
#define task_subsys_state_check(task, subsys_id, __c) \
|
||||
rcu_dereference_check(task->cgroups->subsys[subsys_id], \
|
||||
rcu_read_lock_held() || \
|
||||
lockdep_is_held(&task->alloc_lock) || \
|
||||
cgroup_lock_is_held() || (__c))
|
||||
|
||||
|
||||
@@ -438,16 +438,7 @@ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
|
||||
struct compat_timespec __user *tsp,
|
||||
const compat_sigset_t __user *sigmask,
|
||||
compat_size_t sigsetsize);
|
||||
#if (defined(CONFIG_NFSD) || defined(CONFIG_NFSD_MODULE)) && \
|
||||
!defined(CONFIG_NFSD_DEPRECATED)
|
||||
union compat_nfsctl_res;
|
||||
struct compat_nfsctl_arg;
|
||||
asmlinkage long compat_sys_nfsservctl(int cmd,
|
||||
struct compat_nfsctl_arg __user *arg,
|
||||
union compat_nfsctl_res __user *res);
|
||||
#else
|
||||
asmlinkage long compat_sys_nfsservctl(int cmd, void *notused, void *notused2);
|
||||
#endif
|
||||
asmlinkage long compat_sys_signalfd4(int ufd,
|
||||
const compat_sigset_t __user *sigmask,
|
||||
compat_size_t sigsetsize, int flags);
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define CONFIGFS_ITEM_NAME_LEN 20
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ struct cn_msg {
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
@@ -70,6 +70,39 @@ enum {
|
||||
CPU_PRI_WORKQUEUE = 5,
|
||||
};
|
||||
|
||||
#define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */
|
||||
#define CPU_UP_PREPARE 0x0003 /* CPU (unsigned)v coming up */
|
||||
#define CPU_UP_CANCELED 0x0004 /* CPU (unsigned)v NOT coming up */
|
||||
#define CPU_DOWN_PREPARE 0x0005 /* CPU (unsigned)v going down */
|
||||
#define CPU_DOWN_FAILED 0x0006 /* CPU (unsigned)v NOT going down */
|
||||
#define CPU_DEAD 0x0007 /* CPU (unsigned)v dead */
|
||||
#define CPU_DYING 0x0008 /* CPU (unsigned)v not running any task,
|
||||
* not handling interrupts, soon dead.
|
||||
* Called on the dying cpu, interrupts
|
||||
* are already disabled. Must not
|
||||
* sleep, must not fail */
|
||||
#define CPU_POST_DEAD 0x0009 /* CPU (unsigned)v dead, cpu_hotplug
|
||||
* lock is dropped */
|
||||
#define CPU_STARTING 0x000A /* CPU (unsigned)v soon running.
|
||||
* Called on the new cpu, just before
|
||||
* enabling interrupts. Must not sleep,
|
||||
* must not fail */
|
||||
|
||||
/* Used for CPU hotplug events occurring while tasks are frozen due to a suspend
|
||||
* operation in progress
|
||||
*/
|
||||
#define CPU_TASKS_FROZEN 0x0010
|
||||
|
||||
#define CPU_ONLINE_FROZEN (CPU_ONLINE | CPU_TASKS_FROZEN)
|
||||
#define CPU_UP_PREPARE_FROZEN (CPU_UP_PREPARE | CPU_TASKS_FROZEN)
|
||||
#define CPU_UP_CANCELED_FROZEN (CPU_UP_CANCELED | CPU_TASKS_FROZEN)
|
||||
#define CPU_DOWN_PREPARE_FROZEN (CPU_DOWN_PREPARE | CPU_TASKS_FROZEN)
|
||||
#define CPU_DOWN_FAILED_FROZEN (CPU_DOWN_FAILED | CPU_TASKS_FROZEN)
|
||||
#define CPU_DEAD_FROZEN (CPU_DEAD | CPU_TASKS_FROZEN)
|
||||
#define CPU_DYING_FROZEN (CPU_DYING | CPU_TASKS_FROZEN)
|
||||
#define CPU_STARTING_FROZEN (CPU_STARTING | CPU_TASKS_FROZEN)
|
||||
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* Need to know about CPUs going up/down? */
|
||||
#if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE)
|
||||
|
||||
@@ -324,11 +324,16 @@ static inline unsigned int cpufreq_get(unsigned int cpu)
|
||||
/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
unsigned int cpufreq_quick_get(unsigned int cpu);
|
||||
unsigned int cpufreq_quick_get_max(unsigned int cpu);
|
||||
#else
|
||||
static inline unsigned int cpufreq_quick_get(unsigned int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline unsigned int cpufreq_quick_get_max(unsigned int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -617,6 +617,20 @@ static inline size_t cpumask_size(void)
|
||||
* ... use 'tmpmask' like a normal struct cpumask * ...
|
||||
*
|
||||
* free_cpumask_var(tmpmask);
|
||||
*
|
||||
*
|
||||
* However, one notable exception is there. alloc_cpumask_var() allocates
|
||||
* only nr_cpumask_bits bits (in the other hand, real cpumask_t always has
|
||||
* NR_CPUS bits). Therefore you don't have to dereference cpumask_var_t.
|
||||
*
|
||||
* cpumask_var_t tmpmask;
|
||||
* if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
|
||||
* return -ENOMEM;
|
||||
*
|
||||
* var = *tmpmask;
|
||||
*
|
||||
* This code makes NR_CPUS length memcopy and brings to a memory corruption.
|
||||
* cpumask_copy() provide safe copy functionality.
|
||||
*/
|
||||
#ifdef CONFIG_CPUMASK_OFFSTACK
|
||||
typedef struct cpumask *cpumask_var_t;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/key.h>
|
||||
#include <linux/selinux.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
struct user_struct;
|
||||
struct cred;
|
||||
@@ -284,7 +284,6 @@ static inline void put_cred(const struct cred *_cred)
|
||||
({ \
|
||||
const struct task_struct *__t = (task); \
|
||||
rcu_dereference_check(__t->real_cred, \
|
||||
rcu_read_lock_held() || \
|
||||
task_is_dead(__t)); \
|
||||
})
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef _LINUX_CRYPTO_H
|
||||
#define _LINUX_CRYPTO_H
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/list.h>
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#ifndef _CS5535_H
|
||||
#define _CS5535_H
|
||||
|
||||
#include <asm/msr.h>
|
||||
|
||||
/* MSRs */
|
||||
#define MSR_GLIU_P2D_RO0 0x10000029
|
||||
|
||||
@@ -38,17 +40,75 @@
|
||||
#define MSR_MFGPT_NR 0x51400029
|
||||
#define MSR_MFGPT_SETUP 0x5140002B
|
||||
|
||||
#define MSR_RTC_DOMA_OFFSET 0x51400055
|
||||
#define MSR_RTC_MONA_OFFSET 0x51400056
|
||||
#define MSR_RTC_CEN_OFFSET 0x51400057
|
||||
|
||||
#define MSR_LX_SPARE_MSR 0x80000011 /* DC-specific */
|
||||
|
||||
#define MSR_GX_GLD_MSR_CONFIG 0xC0002001
|
||||
#define MSR_GX_MSR_PADSEL 0xC0002011
|
||||
|
||||
static inline int cs5535_pic_unreqz_select_high(unsigned int group,
|
||||
unsigned int irq)
|
||||
{
|
||||
uint32_t lo, hi;
|
||||
|
||||
rdmsr(MSR_PIC_ZSEL_HIGH, lo, hi);
|
||||
lo &= ~(0xF << (group * 4));
|
||||
lo |= (irq & 0xF) << (group * 4);
|
||||
wrmsr(MSR_PIC_ZSEL_HIGH, lo, hi);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* PIC registers */
|
||||
#define CS5536_PIC_INT_SEL1 0x4d0
|
||||
#define CS5536_PIC_INT_SEL2 0x4d1
|
||||
|
||||
/* resource sizes */
|
||||
#define LBAR_GPIO_SIZE 0xFF
|
||||
#define LBAR_MFGPT_SIZE 0x40
|
||||
#define LBAR_ACPI_SIZE 0x40
|
||||
#define LBAR_PMS_SIZE 0x80
|
||||
|
||||
/*
|
||||
* PMC registers (PMS block)
|
||||
* It is only safe to access these registers as dword accesses.
|
||||
* See CS5536 Specification Update erratas 17 & 18
|
||||
*/
|
||||
#define CS5536_PM_SCLK 0x10
|
||||
#define CS5536_PM_IN_SLPCTL 0x20
|
||||
#define CS5536_PM_WKXD 0x34
|
||||
#define CS5536_PM_WKD 0x30
|
||||
#define CS5536_PM_SSC 0x54
|
||||
|
||||
/*
|
||||
* PM registers (ACPI block)
|
||||
* It is only safe to access these registers as dword accesses.
|
||||
* See CS5536 Specification Update erratas 17 & 18
|
||||
*/
|
||||
#define CS5536_PM1_STS 0x00
|
||||
#define CS5536_PM1_EN 0x02
|
||||
#define CS5536_PM1_CNT 0x08
|
||||
#define CS5536_PM_GPE0_STS 0x18
|
||||
#define CS5536_PM_GPE0_EN 0x1c
|
||||
|
||||
/* CS5536_PM1_STS bits */
|
||||
#define CS5536_WAK_FLAG (1 << 15)
|
||||
#define CS5536_PWRBTN_FLAG (1 << 8)
|
||||
|
||||
/* CS5536_PM1_EN bits */
|
||||
#define CS5536_PM_PWRBTN (1 << 8)
|
||||
#define CS5536_PM_RTC (1 << 10)
|
||||
|
||||
/* CS5536_PM_GPE0_STS bits */
|
||||
#define CS5536_GPIOM7_PME_FLAG (1 << 31)
|
||||
#define CS5536_GPIOM6_PME_FLAG (1 << 30)
|
||||
|
||||
/* CS5536_PM_GPE0_EN bits */
|
||||
#define CS5536_GPIOM7_PME_EN (1 << 31)
|
||||
#define CS5536_GPIOM6_PME_EN (1 << 30)
|
||||
|
||||
/* VSA2 magic values */
|
||||
#define VSA_VRC_INDEX 0xAC1C
|
||||
#define VSA_VRC_DATA 0xAC1E
|
||||
|
||||
@@ -52,4 +52,13 @@ static inline unsigned char __toupper(unsigned char c)
|
||||
#define tolower(c) __tolower(c)
|
||||
#define toupper(c) __toupper(c)
|
||||
|
||||
/*
|
||||
* Fast implementation of tolower() for internal usage. Do not use in your
|
||||
* code.
|
||||
*/
|
||||
static inline char _tolower(const char c)
|
||||
{
|
||||
return c | 0x20;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef __LINUX_DCACHE_H
|
||||
#define __LINUX_DCACHE_H
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/rculist.h>
|
||||
#include <linux/rculist_bl.h>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define __LINUX_DEBUG_LOCKING_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
struct task_struct;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/pm.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/device.h>
|
||||
|
||||
struct device;
|
||||
|
||||
@@ -254,7 +254,7 @@ static inline struct dio_driver *dio_dev_driver(const struct dio_dev *d)
|
||||
|
||||
#define dio_resource_start(d) ((d)->resource.start)
|
||||
#define dio_resource_end(d) ((d)->resource.end)
|
||||
#define dio_resource_len(d) ((d)->resource.end-(d)->resource.start+1)
|
||||
#define dio_resource_len(d) (resource_size(&(d)->resource))
|
||||
#define dio_resource_flags(d) ((d)->resource.flags)
|
||||
|
||||
#define dio_request_device(d, name) \
|
||||
|
||||
@@ -46,27 +46,6 @@ struct dma_map_ops {
|
||||
|
||||
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
|
||||
|
||||
typedef u64 DMA_nnBIT_MASK __deprecated;
|
||||
|
||||
/*
|
||||
* NOTE: do not use the below macros in new code and do not add new definitions
|
||||
* here.
|
||||
*
|
||||
* Instead, just open-code DMA_BIT_MASK(n) within your driver
|
||||
*/
|
||||
#define DMA_64BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(64)
|
||||
#define DMA_48BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(48)
|
||||
#define DMA_47BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(47)
|
||||
#define DMA_40BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(40)
|
||||
#define DMA_39BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(39)
|
||||
#define DMA_35BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(35)
|
||||
#define DMA_32BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(32)
|
||||
#define DMA_31BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(31)
|
||||
#define DMA_30BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(30)
|
||||
#define DMA_29BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(29)
|
||||
#define DMA_28BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(28)
|
||||
#define DMA_24BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(24)
|
||||
|
||||
#define DMA_MASK_NONE 0x0ULL
|
||||
|
||||
static inline int valid_dma_direction(int dma_direction)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#ifndef _LINUX_EDAC_H_
|
||||
#define _LINUX_EDAC_H_
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/sysdev.h>
|
||||
|
||||
#define EDAC_OPSTATE_INVAL -1
|
||||
|
||||
18
include/linux/eeprom_93xx46.h
Normal file
18
include/linux/eeprom_93xx46.h
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Module: eeprom_93xx46
|
||||
* platform description for 93xx46 EEPROMs.
|
||||
*/
|
||||
|
||||
struct eeprom_93xx46_platform_data {
|
||||
unsigned char flags;
|
||||
#define EE_ADDR8 0x01 /* 8 bit addr. cfg */
|
||||
#define EE_ADDR16 0x02 /* 16 bit addr. cfg */
|
||||
#define EE_READONLY 0x08 /* forbid writing */
|
||||
|
||||
/*
|
||||
* optional hooks to control additional logic
|
||||
* before and after spi transfer.
|
||||
*/
|
||||
void (*prepare)(void *);
|
||||
void (*finish)(void *);
|
||||
};
|
||||
@@ -146,7 +146,7 @@ extern struct request *elv_rb_latter_request(struct request_queue *, struct requ
|
||||
/*
|
||||
* rb support functions.
|
||||
*/
|
||||
extern struct request *elv_rb_add(struct rb_root *, struct request *);
|
||||
extern void elv_rb_add(struct rb_root *, struct request *);
|
||||
extern void elv_rb_del(struct rb_root *, struct request *);
|
||||
extern struct request *elv_rb_find(struct rb_root *, sector_t);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/magic.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
/*
|
||||
* The second extended filesystem constants/structures
|
||||
|
||||
@@ -418,12 +418,11 @@ struct ext3_inode {
|
||||
#define EXT2_MOUNT_DATA_FLAGS EXT3_MOUNT_DATA_FLAGS
|
||||
#endif
|
||||
|
||||
#define ext3_set_bit __test_and_set_bit_le
|
||||
#define ext3_set_bit __set_bit_le
|
||||
#define ext3_set_bit_atomic ext2_set_bit_atomic
|
||||
#define ext3_clear_bit __test_and_clear_bit_le
|
||||
#define ext3_clear_bit __clear_bit_le
|
||||
#define ext3_clear_bit_atomic ext2_clear_bit_atomic
|
||||
#define ext3_test_bit test_bit_le
|
||||
#define ext3_find_first_zero_bit find_first_zero_bit_le
|
||||
#define ext3_find_next_zero_bit find_next_zero_bit_le
|
||||
|
||||
/*
|
||||
@@ -913,7 +912,7 @@ extern void ext3_dirty_inode(struct inode *, int);
|
||||
extern int ext3_change_inode_journal_flag(struct inode *, int);
|
||||
extern int ext3_get_inode_loc(struct inode *, struct ext3_iloc *);
|
||||
extern int ext3_can_truncate(struct inode *inode);
|
||||
extern void ext3_truncate (struct inode *);
|
||||
extern void ext3_truncate(struct inode *inode);
|
||||
extern void ext3_set_inode_flags(struct inode *);
|
||||
extern void ext3_get_inode_flags(struct ext3_inode_info *);
|
||||
extern void ext3_set_aops(struct inode *inode);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* For explanation of the elements of this struct, see
|
||||
@@ -27,23 +27,7 @@ struct fault_attr {
|
||||
unsigned long count;
|
||||
|
||||
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
|
||||
|
||||
struct {
|
||||
struct dentry *dir;
|
||||
|
||||
struct dentry *probability_file;
|
||||
struct dentry *interval_file;
|
||||
struct dentry *times_file;
|
||||
struct dentry *space_file;
|
||||
struct dentry *verbose_file;
|
||||
struct dentry *task_filter_file;
|
||||
struct dentry *stacktrace_depth_file;
|
||||
struct dentry *require_start_file;
|
||||
struct dentry *require_end_file;
|
||||
struct dentry *reject_start_file;
|
||||
struct dentry *reject_end_file;
|
||||
} dentries;
|
||||
|
||||
struct dentry *dir;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -57,7 +41,6 @@ struct fault_attr {
|
||||
|
||||
#define DECLARE_FAULT_ATTR(name) struct fault_attr name = FAULT_ATTR_INITIALIZER
|
||||
int setup_fault_attr(struct fault_attr *attr, char *str);
|
||||
void should_fail_srandom(unsigned long entropy);
|
||||
bool should_fail(struct fault_attr *attr, ssize_t size);
|
||||
|
||||
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
|
||||
|
||||
@@ -377,4 +377,26 @@ struct floppy_raw_cmd {
|
||||
#define FDEJECT _IO(2, 0x5a)
|
||||
/* eject the disk */
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifdef CONFIG_COMPAT
|
||||
#include <linux/compat.h>
|
||||
|
||||
struct compat_floppy_struct {
|
||||
compat_uint_t size;
|
||||
compat_uint_t sect;
|
||||
compat_uint_t head;
|
||||
compat_uint_t track;
|
||||
compat_uint_t stretch;
|
||||
unsigned char gap;
|
||||
unsigned char rate;
|
||||
unsigned char spec1;
|
||||
unsigned char fmt_gap;
|
||||
const compat_caddr_t name;
|
||||
};
|
||||
|
||||
#define FDGETPRM32 _IOR(2, 0x04, struct compat_floppy_struct)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* The default fd array needs to be at least BITS_PER_LONG,
|
||||
@@ -60,7 +60,6 @@ struct files_struct {
|
||||
|
||||
#define rcu_dereference_check_fdtable(files, fdtfd) \
|
||||
(rcu_dereference_check((fdtfd), \
|
||||
rcu_read_lock_held() || \
|
||||
lockdep_is_held(&(files)->file_lock) || \
|
||||
atomic_read(&(files)->count) == 1 || \
|
||||
rcu_my_thread_group_empty()))
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#define fw_notify(s, args...) printk(KERN_NOTICE KBUILD_MODNAME ": " s, ## args)
|
||||
|
||||
@@ -379,7 +379,6 @@ struct inodes_stat_t {
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kdev_t.h>
|
||||
#include <linux/dcache.h>
|
||||
#include <linux/path.h>
|
||||
@@ -1073,12 +1072,12 @@ struct file_lock_operations {
|
||||
};
|
||||
|
||||
struct lock_manager_operations {
|
||||
int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
|
||||
void (*fl_notify)(struct file_lock *); /* unblock callback */
|
||||
int (*fl_grant)(struct file_lock *, struct file_lock *, int);
|
||||
void (*fl_release_private)(struct file_lock *);
|
||||
void (*fl_break)(struct file_lock *);
|
||||
int (*fl_change)(struct file_lock **, int);
|
||||
int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
|
||||
void (*lm_notify)(struct file_lock *); /* unblock callback */
|
||||
int (*lm_grant)(struct file_lock *, struct file_lock *, int);
|
||||
void (*lm_release_private)(struct file_lock *);
|
||||
void (*lm_break)(struct file_lock *);
|
||||
int (*lm_change)(struct file_lock **, int);
|
||||
};
|
||||
|
||||
struct lock_manager {
|
||||
@@ -1469,10 +1468,6 @@ enum {
|
||||
#define vfs_check_frozen(sb, level) \
|
||||
wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level)))
|
||||
|
||||
#define get_fs_excl() atomic_inc(¤t->fs_excl)
|
||||
#define put_fs_excl() atomic_dec(¤t->fs_excl)
|
||||
#define has_fs_excl() atomic_read(¤t->fs_excl)
|
||||
|
||||
/*
|
||||
* until VFS tracks user namespaces for inodes, just make all files
|
||||
* belong to init_user_ns
|
||||
@@ -1586,7 +1581,7 @@ struct inode_operations {
|
||||
struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
|
||||
void * (*follow_link) (struct dentry *, struct nameidata *);
|
||||
int (*permission) (struct inode *, int);
|
||||
int (*check_acl)(struct inode *, int);
|
||||
struct posix_acl * (*get_acl)(struct inode *, int);
|
||||
|
||||
int (*readlink) (struct dentry *, char __user *,int);
|
||||
void (*put_link) (struct dentry *, struct nameidata *, void *);
|
||||
@@ -1885,6 +1880,7 @@ extern int register_filesystem(struct file_system_type *);
|
||||
extern int unregister_filesystem(struct file_system_type *);
|
||||
extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data);
|
||||
#define kern_mount(type) kern_mount_data(type, NULL)
|
||||
extern void kern_unmount(struct vfsmount *mnt);
|
||||
extern int may_umount_tree(struct vfsmount *);
|
||||
extern int may_umount(struct vfsmount *);
|
||||
extern long do_mount(char *, char *, char *, unsigned long, void *);
|
||||
|
||||
241
include/linux/fsl_hypervisor.h
Normal file
241
include/linux/fsl_hypervisor.h
Normal file
@@ -0,0 +1,241 @@
|
||||
/*
|
||||
* Freescale hypervisor ioctl and kernel interface
|
||||
*
|
||||
* Copyright (C) 2008-2011 Freescale Semiconductor, Inc.
|
||||
* Author: Timur Tabi <timur@freescale.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* This software is provided by Freescale Semiconductor "as is" and any
|
||||
* express or implied warranties, including, but not limited to, the implied
|
||||
* warranties of merchantability and fitness for a particular purpose are
|
||||
* disclaimed. In no event shall Freescale Semiconductor be liable for any
|
||||
* direct, indirect, incidental, special, exemplary, or consequential damages
|
||||
* (including, but not limited to, procurement of substitute goods or services;
|
||||
* loss of use, data, or profits; or business interruption) however caused and
|
||||
* on any theory of liability, whether in contract, strict liability, or tort
|
||||
* (including negligence or otherwise) arising in any way out of the use of this
|
||||
* software, even if advised of the possibility of such damage.
|
||||
*
|
||||
* This file is used by the Freescale hypervisor management driver. It can
|
||||
* also be included by applications that need to communicate with the driver
|
||||
* via the ioctl interface.
|
||||
*/
|
||||
|
||||
#ifndef FSL_HYPERVISOR_H
|
||||
#define FSL_HYPERVISOR_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_restart - restart a partition
|
||||
* @ret: return error code from the hypervisor
|
||||
* @partition: the ID of the partition to restart, or -1 for the
|
||||
* calling partition
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_PARTITION_RESTART
|
||||
*/
|
||||
struct fsl_hv_ioctl_restart {
|
||||
__u32 ret;
|
||||
__u32 partition;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_status - get a partition's status
|
||||
* @ret: return error code from the hypervisor
|
||||
* @partition: the ID of the partition to query, or -1 for the
|
||||
* calling partition
|
||||
* @status: The returned status of the partition
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_PARTITION_GET_STATUS
|
||||
*
|
||||
* Values of 'status':
|
||||
* 0 = Stopped
|
||||
* 1 = Running
|
||||
* 2 = Starting
|
||||
* 3 = Stopping
|
||||
*/
|
||||
struct fsl_hv_ioctl_status {
|
||||
__u32 ret;
|
||||
__u32 partition;
|
||||
__u32 status;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_start - start a partition
|
||||
* @ret: return error code from the hypervisor
|
||||
* @partition: the ID of the partition to control
|
||||
* @entry_point: The offset within the guest IMA to start execution
|
||||
* @load: If non-zero, reload the partition's images before starting
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_PARTITION_START
|
||||
*/
|
||||
struct fsl_hv_ioctl_start {
|
||||
__u32 ret;
|
||||
__u32 partition;
|
||||
__u32 entry_point;
|
||||
__u32 load;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_stop - stop a partition
|
||||
* @ret: return error code from the hypervisor
|
||||
* @partition: the ID of the partition to stop, or -1 for the calling
|
||||
* partition
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_PARTITION_STOP
|
||||
*/
|
||||
struct fsl_hv_ioctl_stop {
|
||||
__u32 ret;
|
||||
__u32 partition;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_memcpy - copy memory between partitions
|
||||
* @ret: return error code from the hypervisor
|
||||
* @source: the partition ID of the source partition, or -1 for this
|
||||
* partition
|
||||
* @target: the partition ID of the target partition, or -1 for this
|
||||
* partition
|
||||
* @reserved: reserved, must be set to 0
|
||||
* @local_addr: user-space virtual address of a buffer in the local
|
||||
* partition
|
||||
* @remote_addr: guest physical address of a buffer in the
|
||||
* remote partition
|
||||
* @count: the number of bytes to copy. Both the local and remote
|
||||
* buffers must be at least 'count' bytes long
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_MEMCPY
|
||||
*
|
||||
* The 'local' partition is the partition that calls this ioctl. The
|
||||
* 'remote' partition is a different partition. The data is copied from
|
||||
* the 'source' paritition' to the 'target' partition.
|
||||
*
|
||||
* The buffer in the remote partition must be guest physically
|
||||
* contiguous.
|
||||
*
|
||||
* This ioctl does not support copying memory between two remote
|
||||
* partitions or within the same partition, so either 'source' or
|
||||
* 'target' (but not both) must be -1. In other words, either
|
||||
*
|
||||
* source == local and target == remote
|
||||
* or
|
||||
* source == remote and target == local
|
||||
*/
|
||||
struct fsl_hv_ioctl_memcpy {
|
||||
__u32 ret;
|
||||
__u32 source;
|
||||
__u32 target;
|
||||
__u32 reserved; /* padding to ensure local_vaddr is aligned */
|
||||
__u64 local_vaddr;
|
||||
__u64 remote_paddr;
|
||||
__u64 count;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_doorbell - ring a doorbell
|
||||
* @ret: return error code from the hypervisor
|
||||
* @doorbell: the handle of the doorbell to ring doorbell
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_DOORBELL
|
||||
*/
|
||||
struct fsl_hv_ioctl_doorbell {
|
||||
__u32 ret;
|
||||
__u32 doorbell;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_hv_ioctl_prop - get/set a device tree property
|
||||
* @ret: return error code from the hypervisor
|
||||
* @handle: handle of partition whose tree to access
|
||||
* @path: virtual address of path name of node to access
|
||||
* @propname: virtual address of name of property to access
|
||||
* @propval: virtual address of property data buffer
|
||||
* @proplen: Size of property data buffer
|
||||
* @reserved: reserved, must be set to 0
|
||||
*
|
||||
* Used by FSL_HV_IOCTL_DOORBELL
|
||||
*/
|
||||
struct fsl_hv_ioctl_prop {
|
||||
__u32 ret;
|
||||
__u32 handle;
|
||||
__u64 path;
|
||||
__u64 propname;
|
||||
__u64 propval;
|
||||
__u32 proplen;
|
||||
__u32 reserved; /* padding to ensure structure is aligned */
|
||||
};
|
||||
|
||||
/* The ioctl type, documented in ioctl-number.txt */
|
||||
#define FSL_HV_IOCTL_TYPE 0xAF
|
||||
|
||||
/* Restart another partition */
|
||||
#define FSL_HV_IOCTL_PARTITION_RESTART \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 1, struct fsl_hv_ioctl_restart)
|
||||
|
||||
/* Get a partition's status */
|
||||
#define FSL_HV_IOCTL_PARTITION_GET_STATUS \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 2, struct fsl_hv_ioctl_status)
|
||||
|
||||
/* Boot another partition */
|
||||
#define FSL_HV_IOCTL_PARTITION_START \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 3, struct fsl_hv_ioctl_start)
|
||||
|
||||
/* Stop this or another partition */
|
||||
#define FSL_HV_IOCTL_PARTITION_STOP \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 4, struct fsl_hv_ioctl_stop)
|
||||
|
||||
/* Copy data from one partition to another */
|
||||
#define FSL_HV_IOCTL_MEMCPY \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 5, struct fsl_hv_ioctl_memcpy)
|
||||
|
||||
/* Ring a doorbell */
|
||||
#define FSL_HV_IOCTL_DOORBELL \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 6, struct fsl_hv_ioctl_doorbell)
|
||||
|
||||
/* Get a property from another guest's device tree */
|
||||
#define FSL_HV_IOCTL_GETPROP \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 7, struct fsl_hv_ioctl_prop)
|
||||
|
||||
/* Set a property in another guest's device tree */
|
||||
#define FSL_HV_IOCTL_SETPROP \
|
||||
_IOWR(FSL_HV_IOCTL_TYPE, 8, struct fsl_hv_ioctl_prop)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/**
|
||||
* fsl_hv_event_register() - register a callback for failover events
|
||||
* @nb: pointer to caller-supplied notifier_block structure
|
||||
*
|
||||
* This function is called by device drivers to register their callback
|
||||
* functions for fail-over events.
|
||||
*
|
||||
* The caller should allocate a notifier_block object and initialize the
|
||||
* 'priority' and 'notifier_call' fields.
|
||||
*/
|
||||
int fsl_hv_failover_register(struct notifier_block *nb);
|
||||
|
||||
/**
|
||||
* fsl_hv_event_unregister() - unregister a callback for failover events
|
||||
* @nb: the same 'nb' used in previous fsl_hv_failover_register call
|
||||
*/
|
||||
int fsl_hv_failover_unregister(struct notifier_block *nb);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* IN_* from inotfy.h lines up EXACTLY with FS_*, this is so we can easily
|
||||
|
||||
@@ -10,6 +10,5 @@ extern const struct xattr_handler generic_acl_default_handler;
|
||||
|
||||
int generic_acl_init(struct inode *, struct inode *);
|
||||
int generic_acl_chmod(struct inode *);
|
||||
int generic_check_acl(struct inode *inode, int mask);
|
||||
|
||||
#endif /* LINUX_GENERIC_ACL_H */
|
||||
|
||||
@@ -420,7 +420,7 @@ static inline int get_disk_ro(struct gendisk *disk)
|
||||
|
||||
extern void disk_block_events(struct gendisk *disk);
|
||||
extern void disk_unblock_events(struct gendisk *disk);
|
||||
extern void disk_check_events(struct gendisk *disk);
|
||||
extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
|
||||
extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
|
||||
|
||||
/* drivers/char/random.c */
|
||||
|
||||
@@ -21,5 +21,16 @@ struct gsm_config
|
||||
#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
|
||||
#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
|
||||
|
||||
struct gsm_netconfig {
|
||||
unsigned int adaption; /* Adaption to use in network mode */
|
||||
unsigned short protocol;/* Protocol to use - only ETH_P_IP supported */
|
||||
unsigned short unused2;
|
||||
char if_name[IFNAMSIZ]; /* interface name format string */
|
||||
__u8 unused[28]; /* For future use */
|
||||
};
|
||||
|
||||
#define GSMIOC_ENABLE_NET _IOW('G', 2, struct gsm_netconfig)
|
||||
#define GSMIOC_DISABLE_NET _IO('G', 3)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -231,6 +231,9 @@ struct hstate {
|
||||
struct huge_bootmem_page {
|
||||
struct list_head list;
|
||||
struct hstate *hstate;
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
phys_addr_t phys;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct page *alloc_huge_page_node(struct hstate *h, int nid);
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* there is always data available. *OBSOLETE*
|
||||
* @data_read: Read data from the RNG device.
|
||||
* Returns the number of lower random bytes in "data".
|
||||
* Must not be NULL. *OSOLETE*
|
||||
* Must not be NULL. *OBSOLETE*
|
||||
* @read: New API. drivers can fill up to max bytes of data
|
||||
* into the buffer. The buffer is aligned for any type.
|
||||
* @priv: Private data, for use by the RNG driver.
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
/*
|
||||
* Version 2 of the I2C peripheral unit has a different register
|
||||
* layout and extra registers. The ID register in the V2 peripheral
|
||||
* unit on the OMAP4430 reports the same ID as the V1 peripheral
|
||||
* unit on the OMAP3530, so we must inform the driver which IP
|
||||
* version we know it is running on from platform / cpu-specific
|
||||
* code using these constants in the hwmod class definition.
|
||||
*/
|
||||
|
||||
#define OMAP_I2C_IP_VERSION_1 1
|
||||
#define OMAP_I2C_IP_VERSION_2 2
|
||||
|
||||
/* struct omap_i2c_bus_platform_data .flags meanings */
|
||||
|
||||
#define OMAP_I2C_FLAG_NO_FIFO BIT(0)
|
||||
#define OMAP_I2C_FLAG_SIMPLE_CLOCK BIT(1)
|
||||
#define OMAP_I2C_FLAG_16BIT_DATA_REG BIT(2)
|
||||
#define OMAP_I2C_FLAG_RESET_REGS_POSTIDLE BIT(3)
|
||||
#define OMAP_I2C_FLAG_APPLY_ERRATA_I207 BIT(4)
|
||||
#define OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK BIT(5)
|
||||
#define OMAP_I2C_FLAG_FORCE_19200_INT_CLK BIT(6)
|
||||
/* how the CPU address bus must be translated for I2C unit access */
|
||||
#define OMAP_I2C_FLAG_BUS_SHIFT_NONE 0
|
||||
#define OMAP_I2C_FLAG_BUS_SHIFT_1 BIT(7)
|
||||
#define OMAP_I2C_FLAG_BUS_SHIFT_2 BIT(8)
|
||||
#define OMAP_I2C_FLAG_BUS_SHIFT__SHIFT 7
|
||||
|
||||
struct omap_i2c_bus_platform_data {
|
||||
u32 clkrate;
|
||||
void (*set_mpu_wkup_lat)(struct device *dev, long set);
|
||||
|
||||
@@ -657,28 +657,41 @@ struct twl4030_power_data {
|
||||
extern void twl4030_power_init(struct twl4030_power_data *triton2_scripts);
|
||||
extern int twl4030_remove_script(u8 flags);
|
||||
|
||||
struct twl4030_codec_audio_data {
|
||||
struct twl4030_codec_data {
|
||||
unsigned int digimic_delay; /* in ms */
|
||||
unsigned int ramp_delay_value;
|
||||
unsigned int offset_cncl_path;
|
||||
unsigned int check_defaults:1;
|
||||
unsigned int reset_registers:1;
|
||||
unsigned int hs_extmute:1;
|
||||
u16 hs_left_step;
|
||||
u16 hs_right_step;
|
||||
u16 hf_left_step;
|
||||
u16 hf_right_step;
|
||||
void (*set_hs_extmute)(int mute);
|
||||
};
|
||||
|
||||
struct twl4030_codec_vibra_data {
|
||||
struct twl4030_vibra_data {
|
||||
unsigned int coexist;
|
||||
|
||||
/* twl6040 */
|
||||
unsigned int vibldrv_res; /* left driver resistance */
|
||||
unsigned int vibrdrv_res; /* right driver resistance */
|
||||
unsigned int viblmotor_res; /* left motor resistance */
|
||||
unsigned int vibrmotor_res; /* right motor resistance */
|
||||
int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */
|
||||
int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */
|
||||
};
|
||||
|
||||
struct twl4030_codec_data {
|
||||
struct twl4030_audio_data {
|
||||
unsigned int audio_mclk;
|
||||
struct twl4030_codec_audio_data *audio;
|
||||
struct twl4030_codec_vibra_data *vibra;
|
||||
struct twl4030_codec_data *codec;
|
||||
struct twl4030_vibra_data *vibra;
|
||||
|
||||
/* twl6040 */
|
||||
int audpwron_gpio; /* audio power-on gpio */
|
||||
int naudint_irq; /* audio interrupt */
|
||||
unsigned int irq_base;
|
||||
};
|
||||
|
||||
struct twl4030_platform_data {
|
||||
@@ -690,7 +703,7 @@ struct twl4030_platform_data {
|
||||
struct twl4030_keypad_data *keypad;
|
||||
struct twl4030_usb_data *usb;
|
||||
struct twl4030_power_data *power;
|
||||
struct twl4030_codec_data *codec;
|
||||
struct twl4030_audio_data *audio;
|
||||
|
||||
/* Common LDO regulators for TWL4030/TWL6030 */
|
||||
struct regulator_init_data *vdac;
|
||||
|
||||
@@ -1453,6 +1453,43 @@ enum ieee80211_sa_query_action {
|
||||
|
||||
#define WLAN_PMKID_LEN 16
|
||||
|
||||
/*
|
||||
* WMM/802.11e Tspec Element
|
||||
*/
|
||||
#define IEEE80211_WMM_IE_TSPEC_TID_MASK 0x0F
|
||||
#define IEEE80211_WMM_IE_TSPEC_TID_SHIFT 1
|
||||
|
||||
enum ieee80211_tspec_status_code {
|
||||
IEEE80211_TSPEC_STATUS_ADMISS_ACCEPTED = 0,
|
||||
IEEE80211_TSPEC_STATUS_ADDTS_INVAL_PARAMS = 0x1,
|
||||
};
|
||||
|
||||
struct ieee80211_tspec_ie {
|
||||
u8 element_id;
|
||||
u8 len;
|
||||
u8 oui[3];
|
||||
u8 oui_type;
|
||||
u8 oui_subtype;
|
||||
u8 version;
|
||||
__le16 tsinfo;
|
||||
u8 tsinfo_resvd;
|
||||
__le16 nominal_msdu;
|
||||
__le16 max_msdu;
|
||||
__le32 min_service_int;
|
||||
__le32 max_service_int;
|
||||
__le32 inactivity_int;
|
||||
__le32 suspension_int;
|
||||
__le32 service_start_time;
|
||||
__le32 min_data_rate;
|
||||
__le32 mean_data_rate;
|
||||
__le32 peak_data_rate;
|
||||
__le32 max_burst_size;
|
||||
__le32 delay_bound;
|
||||
__le32 min_phy_rate;
|
||||
__le16 sba;
|
||||
__le16 medium_time;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* ieee80211_get_qos_ctl - get pointer to qos control bytes
|
||||
* @hdr: the frame
|
||||
|
||||
@@ -176,7 +176,6 @@ extern struct cred init_cred;
|
||||
.alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \
|
||||
.journal_info = NULL, \
|
||||
.cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \
|
||||
.fs_excl = ATOMIC_INIT(0), \
|
||||
.pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \
|
||||
.timer_slack_ns = 50000, /* 50 usec default slack */ \
|
||||
.pids = { \
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <linux/kref.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/system.h>
|
||||
#include <trace/events/irq.h>
|
||||
|
||||
@@ -5,6 +5,14 @@
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
struct cfq_queue;
|
||||
struct cfq_ttime {
|
||||
unsigned long last_end_request;
|
||||
|
||||
unsigned long ttime_total;
|
||||
unsigned long ttime_samples;
|
||||
unsigned long ttime_mean;
|
||||
};
|
||||
|
||||
struct cfq_io_context {
|
||||
void *key;
|
||||
|
||||
@@ -12,11 +20,7 @@ struct cfq_io_context {
|
||||
|
||||
struct io_context *ioc;
|
||||
|
||||
unsigned long last_end_request;
|
||||
|
||||
unsigned long ttime_total;
|
||||
unsigned long ttime_samples;
|
||||
unsigned long ttime_mean;
|
||||
struct cfq_ttime ttime;
|
||||
|
||||
struct list_head queue_list;
|
||||
struct hlist_node cic_list;
|
||||
|
||||
@@ -109,6 +109,36 @@ struct resource_list {
|
||||
/* PCI control bits. Shares IORESOURCE_BITS with above PCI ROM. */
|
||||
#define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */
|
||||
|
||||
|
||||
/* helpers to define resources */
|
||||
#define DEFINE_RES_NAMED(_start, _size, _name, _flags) \
|
||||
{ \
|
||||
.start = (_start), \
|
||||
.end = (_start) + (_size) - 1, \
|
||||
.name = (_name), \
|
||||
.flags = (_flags), \
|
||||
}
|
||||
|
||||
#define DEFINE_RES_IO_NAMED(_start, _size, _name) \
|
||||
DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_IO)
|
||||
#define DEFINE_RES_IO(_start, _size) \
|
||||
DEFINE_RES_IO_NAMED((_start), (_size), NULL)
|
||||
|
||||
#define DEFINE_RES_MEM_NAMED(_start, _size, _name) \
|
||||
DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_MEM)
|
||||
#define DEFINE_RES_MEM(_start, _size) \
|
||||
DEFINE_RES_MEM_NAMED((_start), (_size), NULL)
|
||||
|
||||
#define DEFINE_RES_IRQ_NAMED(_irq, _name) \
|
||||
DEFINE_RES_NAMED((_irq), 1, (_name), IORESOURCE_IRQ)
|
||||
#define DEFINE_RES_IRQ(_irq) \
|
||||
DEFINE_RES_IRQ_NAMED((_irq), NULL)
|
||||
|
||||
#define DEFINE_RES_DMA_NAMED(_dma, _name) \
|
||||
DEFINE_RES_NAMED((_dma), 1, (_name), IORESOURCE_DMA)
|
||||
#define DEFINE_RES_DMA(_dma) \
|
||||
DEFINE_RES_DMA_NAMED((_dma), NULL)
|
||||
|
||||
/* PC/ISA/whatever - the normal PC address spaces: IO and memory */
|
||||
extern struct resource ioport_resource;
|
||||
extern struct resource iomem_resource;
|
||||
|
||||
@@ -44,6 +44,11 @@ struct ipc_namespace {
|
||||
size_t shm_ctlall;
|
||||
int shm_ctlmni;
|
||||
int shm_tot;
|
||||
/*
|
||||
* Defines whether IPC_RMID is forced for _all_ shm segments regardless
|
||||
* of shmctl()
|
||||
*/
|
||||
int shm_rmid_forced;
|
||||
|
||||
struct notifier_block ipcns_nb;
|
||||
|
||||
@@ -72,6 +77,7 @@ extern int register_ipcns_notifier(struct ipc_namespace *);
|
||||
extern int cond_register_ipcns_notifier(struct ipc_namespace *);
|
||||
extern void unregister_ipcns_notifier(struct ipc_namespace *);
|
||||
extern int ipcns_notify(unsigned long);
|
||||
extern void shm_destroy_orphaned(struct ipc_namespace *ns);
|
||||
#else /* CONFIG_SYSVIPC */
|
||||
static inline int register_ipcns_notifier(struct ipc_namespace *ns)
|
||||
{ return 0; }
|
||||
@@ -79,6 +85,7 @@ static inline int cond_register_ipcns_notifier(struct ipc_namespace *ns)
|
||||
{ return 0; }
|
||||
static inline void unregister_ipcns_notifier(struct ipc_namespace *ns) { }
|
||||
static inline int ipcns_notify(unsigned long l) { return 0; }
|
||||
static inline void shm_destroy_orphaned(struct ipc_namespace *ns) {}
|
||||
#endif /* CONFIG_SYSVIPC */
|
||||
|
||||
#ifdef CONFIG_POSIX_MQUEUE
|
||||
|
||||
@@ -940,7 +940,6 @@ extern int journal_force_commit(journal_t *);
|
||||
*/
|
||||
struct journal_head *journal_add_journal_head(struct buffer_head *bh);
|
||||
struct journal_head *journal_grab_journal_head(struct buffer_head *bh);
|
||||
void journal_remove_journal_head(struct buffer_head *bh);
|
||||
void journal_put_journal_head(struct journal_head *jh);
|
||||
|
||||
/*
|
||||
|
||||
@@ -45,7 +45,7 @@ struct journal_head {
|
||||
* has been cowed
|
||||
* [jbd_lock_bh_state()]
|
||||
*/
|
||||
unsigned b_cow_tid;
|
||||
tid_t b_cow_tid;
|
||||
|
||||
/*
|
||||
* Copy of the buffer data frozen for writing to the log.
|
||||
|
||||
@@ -54,7 +54,7 @@ extern void jump_label_apply_nops(struct module *mod);
|
||||
|
||||
#else
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define JUMP_LABEL_INIT {ATOMIC_INIT(0)}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#ifdef CONFIG_KGDB_KDB
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define KDB_POLL_FUNC_MAX 5
|
||||
extern int kdb_poll_idx;
|
||||
|
||||
@@ -646,29 +646,6 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
|
||||
(type *)( (char *)__mptr - offsetof(type,member) );})
|
||||
|
||||
struct sysinfo;
|
||||
extern int do_sysinfo(struct sysinfo *info);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#define SI_LOAD_SHIFT 16
|
||||
struct sysinfo {
|
||||
long uptime; /* Seconds since boot */
|
||||
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
|
||||
unsigned long totalram; /* Total usable main memory size */
|
||||
unsigned long freeram; /* Available memory size */
|
||||
unsigned long sharedram; /* Amount of shared memory */
|
||||
unsigned long bufferram; /* Memory used by buffers */
|
||||
unsigned long totalswap; /* Total swap space size */
|
||||
unsigned long freeswap; /* swap space still available */
|
||||
unsigned short procs; /* Number of current processes */
|
||||
unsigned short pad; /* explicit padding for m68k */
|
||||
unsigned long totalhigh; /* Total high memory size */
|
||||
unsigned long freehigh; /* Available high memory size */
|
||||
unsigned int mem_unit; /* Memory unit size in bytes */
|
||||
char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
|
||||
};
|
||||
|
||||
#ifdef __CHECKER__
|
||||
#define BUILD_BUG_ON_NOT_POWER_OF_2(n)
|
||||
#define BUILD_BUG_ON_ZERO(e) (0)
|
||||
@@ -736,4 +713,27 @@ extern int __build_bug_on_failed;
|
||||
# define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
|
||||
#endif
|
||||
|
||||
struct sysinfo;
|
||||
extern int do_sysinfo(struct sysinfo *info);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#define SI_LOAD_SHIFT 16
|
||||
struct sysinfo {
|
||||
long uptime; /* Seconds since boot */
|
||||
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
|
||||
unsigned long totalram; /* Total usable main memory size */
|
||||
unsigned long freeram; /* Available memory size */
|
||||
unsigned long sharedram; /* Amount of shared memory */
|
||||
unsigned long bufferram; /* Memory used by buffers */
|
||||
unsigned long totalswap; /* Total swap space size */
|
||||
unsigned long freeswap; /* swap space still available */
|
||||
unsigned short procs; /* Number of current processes */
|
||||
unsigned short pad; /* explicit padding for m68k */
|
||||
unsigned long totalhigh; /* Total high memory size */
|
||||
unsigned long freehigh; /* Available high memory size */
|
||||
unsigned int mem_unit; /* Memory unit size in bytes */
|
||||
char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/rwsem.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#ifdef CONFIG_HAVE_ARCH_KGDB
|
||||
#include <asm/kgdb.h>
|
||||
#endif
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <linux/kobject_ns.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/wait.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define UEVENT_HELPER_PATH_LEN 256
|
||||
#define UEVENT_NUM_ENVP 32 /* number of env pointers */
|
||||
|
||||
@@ -84,6 +84,8 @@ enum lm3530_als_mode {
|
||||
* @brt_ramp_rise: rate of rise of led current
|
||||
* @als1_resistor_sel: internal resistance from ALS1 input to ground
|
||||
* @als2_resistor_sel: internal resistance from ALS2 input to ground
|
||||
* @als_vmin: als input voltage calibrated for max brightness in mV
|
||||
* @als_vmax: als input voltage calibrated for min brightness in mV
|
||||
* @brt_val: brightness value (0-255)
|
||||
*/
|
||||
struct lm3530_platform_data {
|
||||
@@ -101,6 +103,9 @@ struct lm3530_platform_data {
|
||||
u8 als1_resistor_sel;
|
||||
u8 als2_resistor_sel;
|
||||
|
||||
u32 als_vmin;
|
||||
u32 als_vmax;
|
||||
|
||||
u8 brt_val;
|
||||
};
|
||||
|
||||
|
||||
@@ -74,6 +74,16 @@
|
||||
|
||||
#define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __func__, ## args)
|
||||
|
||||
#define ata_print_version_once(dev, version) \
|
||||
({ \
|
||||
static bool __print_once; \
|
||||
\
|
||||
if (!__print_once) { \
|
||||
__print_once = true; \
|
||||
ata_print_version(dev, version); \
|
||||
} \
|
||||
})
|
||||
|
||||
/* NEW: debug levels */
|
||||
#define HAVE_LIBATA_MSG 1
|
||||
|
||||
@@ -1244,20 +1254,50 @@ static inline int sata_srst_pmp(struct ata_link *link)
|
||||
/*
|
||||
* printk helpers
|
||||
*/
|
||||
#define ata_port_printk(ap, lv, fmt, args...) \
|
||||
printk("%sata%u: "fmt, lv, (ap)->print_id , ##args)
|
||||
__attribute__((format (printf, 3, 4)))
|
||||
int ata_port_printk(const struct ata_port *ap, const char *level,
|
||||
const char *fmt, ...);
|
||||
__attribute__((format (printf, 3, 4)))
|
||||
int ata_link_printk(const struct ata_link *link, const char *level,
|
||||
const char *fmt, ...);
|
||||
__attribute__((format (printf, 3, 4)))
|
||||
int ata_dev_printk(const struct ata_device *dev, const char *level,
|
||||
const char *fmt, ...);
|
||||
|
||||
#define ata_link_printk(link, lv, fmt, args...) do { \
|
||||
if (sata_pmp_attached((link)->ap) || (link)->ap->slave_link) \
|
||||
printk("%sata%u.%02u: "fmt, lv, (link)->ap->print_id, \
|
||||
(link)->pmp , ##args); \
|
||||
else \
|
||||
printk("%sata%u: "fmt, lv, (link)->ap->print_id , ##args); \
|
||||
} while(0)
|
||||
#define ata_port_err(ap, fmt, ...) \
|
||||
ata_port_printk(ap, KERN_ERR, fmt, ##__VA_ARGS__)
|
||||
#define ata_port_warn(ap, fmt, ...) \
|
||||
ata_port_printk(ap, KERN_WARNING, fmt, ##__VA_ARGS__)
|
||||
#define ata_port_notice(ap, fmt, ...) \
|
||||
ata_port_printk(ap, KERN_NOTICE, fmt, ##__VA_ARGS__)
|
||||
#define ata_port_info(ap, fmt, ...) \
|
||||
ata_port_printk(ap, KERN_INFO, fmt, ##__VA_ARGS__)
|
||||
#define ata_port_dbg(ap, fmt, ...) \
|
||||
ata_port_printk(ap, KERN_DEBUG, fmt, ##__VA_ARGS__)
|
||||
|
||||
#define ata_dev_printk(dev, lv, fmt, args...) \
|
||||
printk("%sata%u.%02u: "fmt, lv, (dev)->link->ap->print_id, \
|
||||
(dev)->link->pmp + (dev)->devno , ##args)
|
||||
#define ata_link_err(link, fmt, ...) \
|
||||
ata_link_printk(link, KERN_ERR, fmt, ##__VA_ARGS__)
|
||||
#define ata_link_warn(link, fmt, ...) \
|
||||
ata_link_printk(link, KERN_WARNING, fmt, ##__VA_ARGS__)
|
||||
#define ata_link_notice(link, fmt, ...) \
|
||||
ata_link_printk(link, KERN_NOTICE, fmt, ##__VA_ARGS__)
|
||||
#define ata_link_info(link, fmt, ...) \
|
||||
ata_link_printk(link, KERN_INFO, fmt, ##__VA_ARGS__)
|
||||
#define ata_link_dbg(link, fmt, ...) \
|
||||
ata_link_printk(link, KERN_DEBUG, fmt, ##__VA_ARGS__)
|
||||
|
||||
#define ata_dev_err(dev, fmt, ...) \
|
||||
ata_dev_printk(dev, KERN_ERR, fmt, ##__VA_ARGS__)
|
||||
#define ata_dev_warn(dev, fmt, ...) \
|
||||
ata_dev_printk(dev, KERN_WARNING, fmt, ##__VA_ARGS__)
|
||||
#define ata_dev_notice(dev, fmt, ...) \
|
||||
ata_dev_printk(dev, KERN_NOTICE, fmt, ##__VA_ARGS__)
|
||||
#define ata_dev_info(dev, fmt, ...) \
|
||||
ata_dev_printk(dev, KERN_INFO, fmt, ##__VA_ARGS__)
|
||||
#define ata_dev_dbg(dev, fmt, ...) \
|
||||
ata_dev_printk(dev, KERN_DEBUG, fmt, ##__VA_ARGS__)
|
||||
|
||||
void ata_print_version(const struct device *dev, const char *version);
|
||||
|
||||
/*
|
||||
* ata_eh_info helpers
|
||||
|
||||
@@ -39,6 +39,16 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
|
||||
struct mem_cgroup *mem_cont,
|
||||
int active, int file);
|
||||
|
||||
struct memcg_scanrecord {
|
||||
struct mem_cgroup *mem; /* scanend memory cgroup */
|
||||
struct mem_cgroup *root; /* scan target hierarchy root */
|
||||
int context; /* scanning context (see memcontrol.c) */
|
||||
unsigned long nr_scanned[2]; /* the number of scanned pages */
|
||||
unsigned long nr_rotated[2]; /* the number of rotated pages */
|
||||
unsigned long nr_freed[2]; /* the number of freed pages */
|
||||
unsigned long elapsed; /* nsec of time elapsed while scanning */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
||||
/*
|
||||
* All "charge" functions with gfp_mask should use GFP_KERNEL or
|
||||
@@ -111,8 +121,7 @@ int mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg);
|
||||
int mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg);
|
||||
int mem_cgroup_select_victim_node(struct mem_cgroup *memcg);
|
||||
unsigned long mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg,
|
||||
struct zone *zone,
|
||||
enum lru_list lru);
|
||||
int nid, int zid, unsigned int lrumask);
|
||||
struct zone_reclaim_stat *mem_cgroup_get_reclaim_stat(struct mem_cgroup *memcg,
|
||||
struct zone *zone);
|
||||
struct zone_reclaim_stat*
|
||||
@@ -120,6 +129,15 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page);
|
||||
extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg,
|
||||
struct task_struct *p);
|
||||
|
||||
extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem,
|
||||
gfp_t gfp_mask, bool noswap,
|
||||
struct memcg_scanrecord *rec);
|
||||
extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem,
|
||||
gfp_t gfp_mask, bool noswap,
|
||||
struct zone *zone,
|
||||
struct memcg_scanrecord *rec,
|
||||
unsigned long *nr_scanned);
|
||||
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
|
||||
extern int do_swap_account;
|
||||
#endif
|
||||
@@ -313,8 +331,8 @@ mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg)
|
||||
}
|
||||
|
||||
static inline unsigned long
|
||||
mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg, struct zone *zone,
|
||||
enum lru_list lru)
|
||||
mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg, int nid, int zid,
|
||||
unsigned int lru_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -68,12 +68,19 @@ static inline void zone_seqlock_init(struct zone *zone)
|
||||
extern int zone_grow_free_lists(struct zone *zone, unsigned long new_nr_pages);
|
||||
extern int zone_grow_waitqueues(struct zone *zone, unsigned long nr_pages);
|
||||
extern int add_one_highpage(struct page *page, int pfn, int bad_ppro);
|
||||
/* need some defines for these for archs that don't support it */
|
||||
extern void online_page(struct page *page);
|
||||
/* VM interface that may be used by firmware interface */
|
||||
extern int online_pages(unsigned long, unsigned long);
|
||||
extern void __offline_isolated_pages(unsigned long, unsigned long);
|
||||
|
||||
typedef void (*online_page_callback_t)(struct page *page);
|
||||
|
||||
extern int set_online_page_callback(online_page_callback_t callback);
|
||||
extern int restore_online_page_callback(online_page_callback_t callback);
|
||||
|
||||
extern void __online_page_set_limits(struct page *page);
|
||||
extern void __online_page_increment_counters(struct page *page);
|
||||
extern void __online_page_free(struct page *page);
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
||||
extern bool is_pageblock_removable_nolock(struct page *page);
|
||||
#endif /* CONFIG_MEMORY_HOTREMOVE */
|
||||
|
||||
25
include/linux/mfd/pm8xxx/rtc.h
Normal file
25
include/linux/mfd/pm8xxx/rtc.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __RTC_PM8XXX_H__
|
||||
#define __RTC_PM8XXX_H__
|
||||
|
||||
#define PM8XXX_RTC_DEV_NAME "rtc-pm8xxx"
|
||||
/**
|
||||
* struct pm8xxx_rtc_pdata - RTC driver platform data
|
||||
* @rtc_write_enable: variable stating RTC write capability
|
||||
*/
|
||||
struct pm8xxx_rtc_platform_data {
|
||||
bool rtc_write_enable;
|
||||
};
|
||||
|
||||
#endif /* __RTC_PM8XXX_H__ */
|
||||
@@ -269,7 +269,7 @@
|
||||
#define LDO1_SEL_MASK 0xFC
|
||||
#define LDO3_SEL_MASK 0x7C
|
||||
#define LDO_MIN_VOLT 1000
|
||||
#define LDO_MAX_VOLT 3300;
|
||||
#define LDO_MAX_VOLT 3300
|
||||
|
||||
|
||||
/*Register VDIG1 (0x80) register.RegisterDescription */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* MFD driver for twl4030 codec submodule
|
||||
* MFD driver for twl4030 audio submodule
|
||||
*
|
||||
* Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
|
||||
*
|
||||
@@ -259,14 +259,14 @@
|
||||
#define TWL4030_VIBRA_DIR_SEL 0x20
|
||||
|
||||
/* TWL4030 codec resource IDs */
|
||||
enum twl4030_codec_res {
|
||||
TWL4030_CODEC_RES_POWER = 0,
|
||||
TWL4030_CODEC_RES_APLL,
|
||||
TWL4030_CODEC_RES_MAX,
|
||||
enum twl4030_audio_res {
|
||||
TWL4030_AUDIO_RES_POWER = 0,
|
||||
TWL4030_AUDIO_RES_APLL,
|
||||
TWL4030_AUDIO_RES_MAX,
|
||||
};
|
||||
|
||||
int twl4030_codec_disable_resource(enum twl4030_codec_res id);
|
||||
int twl4030_codec_enable_resource(enum twl4030_codec_res id);
|
||||
unsigned int twl4030_codec_get_mclk(void);
|
||||
int twl4030_audio_disable_resource(enum twl4030_audio_res id);
|
||||
int twl4030_audio_enable_resource(enum twl4030_audio_res id);
|
||||
unsigned int twl4030_audio_get_mclk(void);
|
||||
|
||||
#endif /* End of __TWL4030_CODEC_H__ */
|
||||
228
include/linux/mfd/twl6040.h
Normal file
228
include/linux/mfd/twl6040.h
Normal file
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
* MFD driver for twl6040
|
||||
*
|
||||
* Authors: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
|
||||
* Misael Lopez Cruz <misael.lopez@ti.com>
|
||||
*
|
||||
* Copyright: (C) 2011 Texas Instruments, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __TWL6040_CODEC_H__
|
||||
#define __TWL6040_CODEC_H__
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/core.h>
|
||||
|
||||
#define TWL6040_REG_ASICID 0x01
|
||||
#define TWL6040_REG_ASICREV 0x02
|
||||
#define TWL6040_REG_INTID 0x03
|
||||
#define TWL6040_REG_INTMR 0x04
|
||||
#define TWL6040_REG_NCPCTL 0x05
|
||||
#define TWL6040_REG_LDOCTL 0x06
|
||||
#define TWL6040_REG_HPPLLCTL 0x07
|
||||
#define TWL6040_REG_LPPLLCTL 0x08
|
||||
#define TWL6040_REG_LPPLLDIV 0x09
|
||||
#define TWL6040_REG_AMICBCTL 0x0A
|
||||
#define TWL6040_REG_DMICBCTL 0x0B
|
||||
#define TWL6040_REG_MICLCTL 0x0C
|
||||
#define TWL6040_REG_MICRCTL 0x0D
|
||||
#define TWL6040_REG_MICGAIN 0x0E
|
||||
#define TWL6040_REG_LINEGAIN 0x0F
|
||||
#define TWL6040_REG_HSLCTL 0x10
|
||||
#define TWL6040_REG_HSRCTL 0x11
|
||||
#define TWL6040_REG_HSGAIN 0x12
|
||||
#define TWL6040_REG_EARCTL 0x13
|
||||
#define TWL6040_REG_HFLCTL 0x14
|
||||
#define TWL6040_REG_HFLGAIN 0x15
|
||||
#define TWL6040_REG_HFRCTL 0x16
|
||||
#define TWL6040_REG_HFRGAIN 0x17
|
||||
#define TWL6040_REG_VIBCTLL 0x18
|
||||
#define TWL6040_REG_VIBDATL 0x19
|
||||
#define TWL6040_REG_VIBCTLR 0x1A
|
||||
#define TWL6040_REG_VIBDATR 0x1B
|
||||
#define TWL6040_REG_HKCTL1 0x1C
|
||||
#define TWL6040_REG_HKCTL2 0x1D
|
||||
#define TWL6040_REG_GPOCTL 0x1E
|
||||
#define TWL6040_REG_ALB 0x1F
|
||||
#define TWL6040_REG_DLB 0x20
|
||||
#define TWL6040_REG_TRIM1 0x28
|
||||
#define TWL6040_REG_TRIM2 0x29
|
||||
#define TWL6040_REG_TRIM3 0x2A
|
||||
#define TWL6040_REG_HSOTRIM 0x2B
|
||||
#define TWL6040_REG_HFOTRIM 0x2C
|
||||
#define TWL6040_REG_ACCCTL 0x2D
|
||||
#define TWL6040_REG_STATUS 0x2E
|
||||
|
||||
#define TWL6040_CACHEREGNUM (TWL6040_REG_STATUS + 1)
|
||||
|
||||
#define TWL6040_VIOREGNUM 18
|
||||
#define TWL6040_VDDREGNUM 21
|
||||
|
||||
/* INTID (0x03) fields */
|
||||
|
||||
#define TWL6040_THINT 0x01
|
||||
#define TWL6040_PLUGINT 0x02
|
||||
#define TWL6040_UNPLUGINT 0x04
|
||||
#define TWL6040_HOOKINT 0x08
|
||||
#define TWL6040_HFINT 0x10
|
||||
#define TWL6040_VIBINT 0x20
|
||||
#define TWL6040_READYINT 0x40
|
||||
|
||||
/* INTMR (0x04) fields */
|
||||
|
||||
#define TWL6040_THMSK 0x01
|
||||
#define TWL6040_PLUGMSK 0x02
|
||||
#define TWL6040_HOOKMSK 0x08
|
||||
#define TWL6040_HFMSK 0x10
|
||||
#define TWL6040_VIBMSK 0x20
|
||||
#define TWL6040_READYMSK 0x40
|
||||
#define TWL6040_ALLINT_MSK 0x7B
|
||||
|
||||
/* NCPCTL (0x05) fields */
|
||||
|
||||
#define TWL6040_NCPENA 0x01
|
||||
#define TWL6040_NCPOPEN 0x40
|
||||
|
||||
/* LDOCTL (0x06) fields */
|
||||
|
||||
#define TWL6040_LSLDOENA 0x01
|
||||
#define TWL6040_HSLDOENA 0x04
|
||||
#define TWL6040_REFENA 0x40
|
||||
#define TWL6040_OSCENA 0x80
|
||||
|
||||
/* HPPLLCTL (0x07) fields */
|
||||
|
||||
#define TWL6040_HPLLENA 0x01
|
||||
#define TWL6040_HPLLRST 0x02
|
||||
#define TWL6040_HPLLBP 0x04
|
||||
#define TWL6040_HPLLSQRENA 0x08
|
||||
#define TWL6040_MCLK_12000KHZ (0 << 5)
|
||||
#define TWL6040_MCLK_19200KHZ (1 << 5)
|
||||
#define TWL6040_MCLK_26000KHZ (2 << 5)
|
||||
#define TWL6040_MCLK_38400KHZ (3 << 5)
|
||||
#define TWL6040_MCLK_MSK 0x60
|
||||
|
||||
/* LPPLLCTL (0x08) fields */
|
||||
|
||||
#define TWL6040_LPLLENA 0x01
|
||||
#define TWL6040_LPLLRST 0x02
|
||||
#define TWL6040_LPLLSEL 0x04
|
||||
#define TWL6040_LPLLFIN 0x08
|
||||
#define TWL6040_HPLLSEL 0x10
|
||||
|
||||
/* HSLCTL (0x10) fields */
|
||||
|
||||
#define TWL6040_HSDACMODEL 0x02
|
||||
#define TWL6040_HSDRVMODEL 0x08
|
||||
|
||||
/* HSRCTL (0x11) fields */
|
||||
|
||||
#define TWL6040_HSDACMODER 0x02
|
||||
#define TWL6040_HSDRVMODER 0x08
|
||||
|
||||
/* VIBCTLL (0x18) fields */
|
||||
|
||||
#define TWL6040_VIBENAL 0x01
|
||||
#define TWL6040_VIBCTRLL 0x04
|
||||
#define TWL6040_VIBCTRLLP 0x08
|
||||
#define TWL6040_VIBCTRLLN 0x10
|
||||
|
||||
/* VIBDATL (0x19) fields */
|
||||
|
||||
#define TWL6040_VIBDAT_MAX 0x64
|
||||
|
||||
/* VIBCTLR (0x1A) fields */
|
||||
|
||||
#define TWL6040_VIBENAR 0x01
|
||||
#define TWL6040_VIBCTRLR 0x04
|
||||
#define TWL6040_VIBCTRLRP 0x08
|
||||
#define TWL6040_VIBCTRLRN 0x10
|
||||
|
||||
/* GPOCTL (0x1E) fields */
|
||||
|
||||
#define TWL6040_GPO1 0x01
|
||||
#define TWL6040_GPO2 0x02
|
||||
#define TWL6040_GPO3 0x03
|
||||
|
||||
/* ACCCTL (0x2D) fields */
|
||||
|
||||
#define TWL6040_I2CSEL 0x01
|
||||
#define TWL6040_RESETSPLIT 0x04
|
||||
#define TWL6040_INTCLRMODE 0x08
|
||||
|
||||
/* STATUS (0x2E) fields */
|
||||
|
||||
#define TWL6040_PLUGCOMP 0x02
|
||||
#define TWL6040_VIBLOCDET 0x10
|
||||
#define TWL6040_VIBROCDET 0x20
|
||||
#define TWL6040_TSHUTDET 0x40
|
||||
|
||||
#define TWL6040_CELLS 2
|
||||
|
||||
#define TWL6040_REV_ES1_0 0x00
|
||||
#define TWL6040_REV_ES1_1 0x01
|
||||
#define TWL6040_REV_ES1_2 0x02
|
||||
|
||||
#define TWL6040_IRQ_TH 0
|
||||
#define TWL6040_IRQ_PLUG 1
|
||||
#define TWL6040_IRQ_HOOK 2
|
||||
#define TWL6040_IRQ_HF 3
|
||||
#define TWL6040_IRQ_VIB 4
|
||||
#define TWL6040_IRQ_READY 5
|
||||
|
||||
/* PLL selection */
|
||||
#define TWL6040_SYSCLK_SEL_LPPLL 0
|
||||
#define TWL6040_SYSCLK_SEL_HPPLL 1
|
||||
|
||||
struct twl6040 {
|
||||
struct device *dev;
|
||||
struct mutex mutex;
|
||||
struct mutex io_mutex;
|
||||
struct mutex irq_mutex;
|
||||
struct mfd_cell cells[TWL6040_CELLS];
|
||||
struct completion ready;
|
||||
|
||||
int audpwron;
|
||||
int power_count;
|
||||
int rev;
|
||||
|
||||
int pll;
|
||||
unsigned int sysclk;
|
||||
|
||||
unsigned int irq;
|
||||
unsigned int irq_base;
|
||||
u8 irq_masks_cur;
|
||||
u8 irq_masks_cache;
|
||||
};
|
||||
|
||||
int twl6040_reg_read(struct twl6040 *twl6040, unsigned int reg);
|
||||
int twl6040_reg_write(struct twl6040 *twl6040, unsigned int reg,
|
||||
u8 val);
|
||||
int twl6040_set_bits(struct twl6040 *twl6040, unsigned int reg,
|
||||
u8 mask);
|
||||
int twl6040_clear_bits(struct twl6040 *twl6040, unsigned int reg,
|
||||
u8 mask);
|
||||
int twl6040_power(struct twl6040 *twl6040, int on);
|
||||
int twl6040_set_pll(struct twl6040 *twl6040, int pll_id,
|
||||
unsigned int freq_in, unsigned int freq_out);
|
||||
int twl6040_get_pll(struct twl6040 *twl6040);
|
||||
unsigned int twl6040_get_sysclk(struct twl6040 *twl6040);
|
||||
int twl6040_irq_init(struct twl6040 *twl6040);
|
||||
void twl6040_irq_exit(struct twl6040 *twl6040);
|
||||
|
||||
#endif /* End of __TWL6040_CODEC_H__ */
|
||||
@@ -37,7 +37,7 @@
|
||||
#include <linux/completion.h>
|
||||
#include <linux/radix-tree.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define MAX_MSIX_P_PORT 17
|
||||
#define MAX_MSIX 64
|
||||
|
||||
@@ -637,7 +637,7 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
|
||||
#define SECTIONS_MASK ((1UL << SECTIONS_WIDTH) - 1)
|
||||
#define ZONEID_MASK ((1UL << ZONEID_SHIFT) - 1)
|
||||
|
||||
static inline enum zone_type page_zonenum(struct page *page)
|
||||
static inline enum zone_type page_zonenum(const struct page *page)
|
||||
{
|
||||
return (page->flags >> ZONES_PGSHIFT) & ZONES_MASK;
|
||||
}
|
||||
@@ -665,15 +665,15 @@ static inline int zone_to_nid(struct zone *zone)
|
||||
}
|
||||
|
||||
#ifdef NODE_NOT_IN_PAGE_FLAGS
|
||||
extern int page_to_nid(struct page *page);
|
||||
extern int page_to_nid(const struct page *page);
|
||||
#else
|
||||
static inline int page_to_nid(struct page *page)
|
||||
static inline int page_to_nid(const struct page *page)
|
||||
{
|
||||
return (page->flags >> NODES_PGSHIFT) & NODES_MASK;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline struct zone *page_zone(struct page *page)
|
||||
static inline struct zone *page_zone(const struct page *page)
|
||||
{
|
||||
return &NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)];
|
||||
}
|
||||
@@ -718,9 +718,9 @@ static inline void set_page_links(struct page *page, enum zone_type zone,
|
||||
*/
|
||||
#include <linux/vmstat.h>
|
||||
|
||||
static __always_inline void *lowmem_page_address(struct page *page)
|
||||
static __always_inline void *lowmem_page_address(const struct page *page)
|
||||
{
|
||||
return __va(PFN_PHYS(page_to_pfn(page)));
|
||||
return __va(PFN_PHYS(page_to_pfn((struct page *)page)));
|
||||
}
|
||||
|
||||
#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
|
||||
@@ -911,6 +911,8 @@ unsigned long unmap_vmas(struct mmu_gather *tlb,
|
||||
* @pte_entry: if set, called for each non-empty PTE (4th-level) entry
|
||||
* @pte_hole: if set, called for each hole at all levels
|
||||
* @hugetlb_entry: if set, called for each hugetlb entry
|
||||
* *Caution*: The caller must hold mmap_sem() if @hugetlb_entry
|
||||
* is used.
|
||||
*
|
||||
* (see walk_page_range for more details)
|
||||
*/
|
||||
@@ -986,6 +988,8 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
|
||||
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
||||
struct page **pages);
|
||||
struct page *get_dump_page(unsigned long addr);
|
||||
extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
|
||||
unsigned long address, unsigned int fault_flags);
|
||||
|
||||
extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
|
||||
extern void do_invalidatepage(struct page *page, unsigned long offset);
|
||||
@@ -1409,8 +1413,7 @@ extern int do_munmap(struct mm_struct *, unsigned long, size_t);
|
||||
|
||||
extern unsigned long do_brk(unsigned long, unsigned long);
|
||||
|
||||
/* filemap.c */
|
||||
extern unsigned long page_unuse(struct page *);
|
||||
/* truncate.c */
|
||||
extern void truncate_inode_pages(struct address_space *, loff_t);
|
||||
extern void truncate_inode_pages_range(struct address_space *,
|
||||
loff_t lstart, loff_t lend);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/percpu_counter.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
extern int sysctl_overcommit_memory;
|
||||
extern int sysctl_overcommit_ratio;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <linux/nodemask.h>
|
||||
#include <linux/pageblock-flags.h>
|
||||
#include <generated/bounds.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/* Free memory management - zoned buddy allocator. */
|
||||
@@ -158,6 +158,12 @@ static inline int is_unevictable_lru(enum lru_list l)
|
||||
return (l == LRU_UNEVICTABLE);
|
||||
}
|
||||
|
||||
/* Mask used at gathering information at once (see memcontrol.c) */
|
||||
#define LRU_ALL_FILE (BIT(LRU_INACTIVE_FILE) | BIT(LRU_ACTIVE_FILE))
|
||||
#define LRU_ALL_ANON (BIT(LRU_INACTIVE_ANON) | BIT(LRU_ACTIVE_ANON))
|
||||
#define LRU_ALL_EVICTABLE (LRU_ALL_FILE | LRU_ALL_ANON)
|
||||
#define LRU_ALL ((1 << NR_LRU_LISTS) - 1)
|
||||
|
||||
enum zone_watermarks {
|
||||
WMARK_MIN,
|
||||
WMARK_LOW,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <linux/nodemask.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/seqlock.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
struct super_block;
|
||||
struct vfsmount;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/lockdep.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/*
|
||||
* Simple, straightforward mutexes with strict semantics:
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <linux/pm_qos_params.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/delay.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
@@ -1521,6 +1521,39 @@ struct packet_type {
|
||||
|
||||
#include <linux/notifier.h>
|
||||
|
||||
/* netdevice notifier chain. Please remember to update the rtnetlink
|
||||
* notification exclusion list in rtnetlink_event() when adding new
|
||||
* types.
|
||||
*/
|
||||
#define NETDEV_UP 0x0001 /* For now you can't veto a device up/down */
|
||||
#define NETDEV_DOWN 0x0002
|
||||
#define NETDEV_REBOOT 0x0003 /* Tell a protocol stack a network interface
|
||||
detected a hardware crash and restarted
|
||||
- we can use this eg to kick tcp sessions
|
||||
once done */
|
||||
#define NETDEV_CHANGE 0x0004 /* Notify device state change */
|
||||
#define NETDEV_REGISTER 0x0005
|
||||
#define NETDEV_UNREGISTER 0x0006
|
||||
#define NETDEV_CHANGEMTU 0x0007
|
||||
#define NETDEV_CHANGEADDR 0x0008
|
||||
#define NETDEV_GOING_DOWN 0x0009
|
||||
#define NETDEV_CHANGENAME 0x000A
|
||||
#define NETDEV_FEAT_CHANGE 0x000B
|
||||
#define NETDEV_BONDING_FAILOVER 0x000C
|
||||
#define NETDEV_PRE_UP 0x000D
|
||||
#define NETDEV_PRE_TYPE_CHANGE 0x000E
|
||||
#define NETDEV_POST_TYPE_CHANGE 0x000F
|
||||
#define NETDEV_POST_INIT 0x0010
|
||||
#define NETDEV_UNREGISTER_BATCH 0x0011
|
||||
#define NETDEV_RELEASE 0x0012
|
||||
#define NETDEV_NOTIFY_PEERS 0x0013
|
||||
#define NETDEV_JOIN 0x0014
|
||||
|
||||
extern int register_netdevice_notifier(struct notifier_block *nb);
|
||||
extern int unregister_netdevice_notifier(struct notifier_block *nb);
|
||||
extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
|
||||
|
||||
|
||||
extern rwlock_t dev_base_lock; /* Device list lock */
|
||||
|
||||
|
||||
@@ -1603,12 +1636,9 @@ static inline void unregister_netdevice(struct net_device *dev)
|
||||
extern int netdev_refcnt_read(const struct net_device *dev);
|
||||
extern void free_netdev(struct net_device *dev);
|
||||
extern void synchronize_net(void);
|
||||
extern int register_netdevice_notifier(struct notifier_block *nb);
|
||||
extern int unregister_netdevice_notifier(struct notifier_block *nb);
|
||||
extern int init_dummy_netdev(struct net_device *dev);
|
||||
extern void netdev_resync_ops(struct net_device *dev);
|
||||
|
||||
extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
|
||||
extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
|
||||
extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
|
||||
extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <linux/nfs_xdr.h>
|
||||
#include <linux/sunrpc/xprt.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
struct nfs4_session;
|
||||
struct nfs_iostats;
|
||||
|
||||
@@ -133,8 +133,6 @@ __be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp);
|
||||
int nfsd_export_init(void);
|
||||
void nfsd_export_shutdown(void);
|
||||
void nfsd_export_flush(void);
|
||||
void exp_readlock(void);
|
||||
void exp_readunlock(void);
|
||||
struct svc_export * rqst_exp_get_by_name(struct svc_rqst *,
|
||||
struct path *);
|
||||
struct svc_export * rqst_exp_parent(struct svc_rqst *,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
* Copyright 2008 Michael Wu <flamingice@sourmilk.net>
|
||||
* Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com>
|
||||
* Copyright 2008 Michael Buesch <mb@bu3sch.de>
|
||||
* Copyright 2008 Michael Buesch <m@bues.ch>
|
||||
* Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
|
||||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
@@ -756,8 +756,12 @@ enum nl80211_commands {
|
||||
*
|
||||
* @NL80211_ATTR_MAX_NUM_SCAN_SSIDS: number of SSIDs you can scan with
|
||||
* a single scan request, a wiphy attribute.
|
||||
* @NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS: number of SSIDs you can
|
||||
* scan with a single scheduled scan request, a wiphy attribute.
|
||||
* @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements
|
||||
* that can be added to a scan request
|
||||
* @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information
|
||||
* elements that can be added to a scheduled scan request
|
||||
*
|
||||
* @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz)
|
||||
* @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive
|
||||
@@ -989,8 +993,8 @@ enum nl80211_commands {
|
||||
* driving the peer link management state machine.
|
||||
* @NL80211_MESH_SETUP_USERSPACE_AMPE must be enabled.
|
||||
*
|
||||
* @NL80211_ATTR_WOWLAN_SUPPORTED: indicates, as part of the wiphy capabilities,
|
||||
* the supported WoWLAN triggers
|
||||
* @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy
|
||||
* capabilities, the supported WoWLAN triggers
|
||||
* @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to
|
||||
* indicate which WoW triggers should be enabled. This is also
|
||||
* used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN
|
||||
@@ -1010,6 +1014,11 @@ enum nl80211_commands {
|
||||
* @%NL80211_ATTR_REKEY_DATA: nested attribute containing the information
|
||||
* necessary for GTK rekeying in the device, see &enum nl80211_rekey_data.
|
||||
*
|
||||
* @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan,
|
||||
* nested array attribute containing an entry for each band, with the entry
|
||||
* being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but
|
||||
* without the length restriction (at most %NL80211_MAX_SUPP_RATES).
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -1210,6 +1219,11 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_REKEY_DATA,
|
||||
|
||||
NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS,
|
||||
NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN,
|
||||
|
||||
NL80211_ATTR_SCAN_SUPP_RATES,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -2255,6 +2269,16 @@ struct nl80211_wowlan_pattern_support {
|
||||
*
|
||||
* In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
|
||||
* carrying a &struct nl80211_wowlan_pattern_support.
|
||||
* @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be
|
||||
* used when setting, used only to indicate that GTK rekeying is supported
|
||||
* by the device (flag)
|
||||
* @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if
|
||||
* done by the device) (flag)
|
||||
* @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request
|
||||
* packet (flag)
|
||||
* @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag)
|
||||
* @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released
|
||||
* (on devices that have rfkill in the device) (flag)
|
||||
* @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
|
||||
* @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
|
||||
*/
|
||||
@@ -2264,6 +2288,11 @@ enum nl80211_wowlan_triggers {
|
||||
NL80211_WOWLAN_TRIG_DISCONNECT,
|
||||
NL80211_WOWLAN_TRIG_MAGIC_PKT,
|
||||
NL80211_WOWLAN_TRIG_PKT_PATTERN,
|
||||
NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED,
|
||||
NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE,
|
||||
NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
|
||||
NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
|
||||
NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_WOWLAN_TRIG,
|
||||
|
||||
@@ -66,6 +66,8 @@
|
||||
* int num_online_nodes() Number of online Nodes
|
||||
* int num_possible_nodes() Number of all possible Nodes
|
||||
*
|
||||
* int node_random(mask) Random node with set bit in mask
|
||||
*
|
||||
* int node_online(node) Is some node online?
|
||||
* int node_possible(node) Is some node possible?
|
||||
*
|
||||
@@ -430,6 +432,7 @@ static inline void node_set_offline(int nid)
|
||||
node_clear_state(nid, N_ONLINE);
|
||||
nr_online_nodes = num_node_state(N_ONLINE);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline int node_state(int node, enum node_states state)
|
||||
@@ -460,6 +463,16 @@ static inline int num_node_state(enum node_states state)
|
||||
|
||||
#define node_set_online(node) node_set_state((node), N_ONLINE)
|
||||
#define node_set_offline(node) node_clear_state((node), N_ONLINE)
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_NUMA) && (MAX_NUMNODES > 1)
|
||||
extern int node_random(const nodemask_t *maskp);
|
||||
#else
|
||||
static inline int node_random(const nodemask_t *mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define node_online_map node_states[N_ONLINE]
|
||||
|
||||
@@ -185,81 +185,18 @@ static inline int notifier_to_errno(int ret)
|
||||
* VC switch chains (for loadable kernel svgalib VC switch helpers) etc...
|
||||
*/
|
||||
|
||||
/* netdevice notifier chain. Please remember to update the rtnetlink
|
||||
* notification exclusion list in rtnetlink_event() when adding new
|
||||
* types.
|
||||
*/
|
||||
#define NETDEV_UP 0x0001 /* For now you can't veto a device up/down */
|
||||
#define NETDEV_DOWN 0x0002
|
||||
#define NETDEV_REBOOT 0x0003 /* Tell a protocol stack a network interface
|
||||
detected a hardware crash and restarted
|
||||
- we can use this eg to kick tcp sessions
|
||||
once done */
|
||||
#define NETDEV_CHANGE 0x0004 /* Notify device state change */
|
||||
#define NETDEV_REGISTER 0x0005
|
||||
#define NETDEV_UNREGISTER 0x0006
|
||||
#define NETDEV_CHANGEMTU 0x0007
|
||||
#define NETDEV_CHANGEADDR 0x0008
|
||||
#define NETDEV_GOING_DOWN 0x0009
|
||||
#define NETDEV_CHANGENAME 0x000A
|
||||
#define NETDEV_FEAT_CHANGE 0x000B
|
||||
#define NETDEV_BONDING_FAILOVER 0x000C
|
||||
#define NETDEV_PRE_UP 0x000D
|
||||
#define NETDEV_PRE_TYPE_CHANGE 0x000E
|
||||
#define NETDEV_POST_TYPE_CHANGE 0x000F
|
||||
#define NETDEV_POST_INIT 0x0010
|
||||
#define NETDEV_UNREGISTER_BATCH 0x0011
|
||||
#define NETDEV_RELEASE 0x0012
|
||||
#define NETDEV_NOTIFY_PEERS 0x0013
|
||||
#define NETDEV_JOIN 0x0014
|
||||
/* CPU notfiers are defined in include/linux/cpu.h. */
|
||||
|
||||
#define SYS_DOWN 0x0001 /* Notify of system down */
|
||||
#define SYS_RESTART SYS_DOWN
|
||||
#define SYS_HALT 0x0002 /* Notify of system halt */
|
||||
#define SYS_POWER_OFF 0x0003 /* Notify of system power off */
|
||||
/* netdevice notifiers are defined in include/linux/netdevice.h */
|
||||
|
||||
/* reboot notifiers are defined in include/linux/reboot.h. */
|
||||
|
||||
/* Hibernation and suspend events are defined in include/linux/suspend.h. */
|
||||
|
||||
/* Virtual Terminal events are defined in include/linux/vt.h. */
|
||||
|
||||
#define NETLINK_URELEASE 0x0001 /* Unicast netlink socket released */
|
||||
|
||||
#define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */
|
||||
#define CPU_UP_PREPARE 0x0003 /* CPU (unsigned)v coming up */
|
||||
#define CPU_UP_CANCELED 0x0004 /* CPU (unsigned)v NOT coming up */
|
||||
#define CPU_DOWN_PREPARE 0x0005 /* CPU (unsigned)v going down */
|
||||
#define CPU_DOWN_FAILED 0x0006 /* CPU (unsigned)v NOT going down */
|
||||
#define CPU_DEAD 0x0007 /* CPU (unsigned)v dead */
|
||||
#define CPU_DYING 0x0008 /* CPU (unsigned)v not running any task,
|
||||
* not handling interrupts, soon dead.
|
||||
* Called on the dying cpu, interrupts
|
||||
* are already disabled. Must not
|
||||
* sleep, must not fail */
|
||||
#define CPU_POST_DEAD 0x0009 /* CPU (unsigned)v dead, cpu_hotplug
|
||||
* lock is dropped */
|
||||
#define CPU_STARTING 0x000A /* CPU (unsigned)v soon running.
|
||||
* Called on the new cpu, just before
|
||||
* enabling interrupts. Must not sleep,
|
||||
* must not fail */
|
||||
|
||||
/* Used for CPU hotplug events occurring while tasks are frozen due to a suspend
|
||||
* operation in progress
|
||||
*/
|
||||
#define CPU_TASKS_FROZEN 0x0010
|
||||
|
||||
#define CPU_ONLINE_FROZEN (CPU_ONLINE | CPU_TASKS_FROZEN)
|
||||
#define CPU_UP_PREPARE_FROZEN (CPU_UP_PREPARE | CPU_TASKS_FROZEN)
|
||||
#define CPU_UP_CANCELED_FROZEN (CPU_UP_CANCELED | CPU_TASKS_FROZEN)
|
||||
#define CPU_DOWN_PREPARE_FROZEN (CPU_DOWN_PREPARE | CPU_TASKS_FROZEN)
|
||||
#define CPU_DOWN_FAILED_FROZEN (CPU_DOWN_FAILED | CPU_TASKS_FROZEN)
|
||||
#define CPU_DEAD_FROZEN (CPU_DEAD | CPU_TASKS_FROZEN)
|
||||
#define CPU_DYING_FROZEN (CPU_DYING | CPU_TASKS_FROZEN)
|
||||
#define CPU_STARTING_FROZEN (CPU_STARTING | CPU_TASKS_FROZEN)
|
||||
|
||||
/* Hibernation and suspend events */
|
||||
#define PM_HIBERNATION_PREPARE 0x0001 /* Going to hibernate */
|
||||
#define PM_POST_HIBERNATION 0x0002 /* Hibernation finished */
|
||||
#define PM_SUSPEND_PREPARE 0x0003 /* Going to suspend the system */
|
||||
#define PM_POST_SUSPEND 0x0004 /* Suspend finished */
|
||||
#define PM_RESTORE_PREPARE 0x0005 /* Going to restore a saved image */
|
||||
#define PM_POST_RESTORE 0x0006 /* Restore failed */
|
||||
|
||||
/* Console keyboard events.
|
||||
* Note: KBD_KEYCODE is always sent before KBD_UNBOUND_KEYCODE, KBD_UNICODE and
|
||||
* KBD_KEYSYM. */
|
||||
@@ -271,12 +208,5 @@ static inline int notifier_to_errno(int ret)
|
||||
|
||||
extern struct blocking_notifier_head reboot_notifier_list;
|
||||
|
||||
/* Virtual Terminal events. */
|
||||
#define VT_ALLOCATE 0x0001 /* Console got allocated */
|
||||
#define VT_DEALLOCATE 0x0002 /* Console will be deallocated */
|
||||
#define VT_WRITE 0x0003 /* A char got output */
|
||||
#define VT_UPDATE 0x0004 /* A bigger update occurred */
|
||||
#define VT_PREWRITE 0x0005 /* A char is about to be written to the console */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _LINUX_NOTIFIER_H */
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
#ifdef CONFIG_OF_NET
|
||||
#include <linux/of.h>
|
||||
extern const int of_get_phy_mode(struct device_node *np);
|
||||
extern const void *of_get_mac_address(struct device_node *np);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -64,10 +64,6 @@ static inline void oom_killer_enable(void)
|
||||
oom_killer_disabled = false;
|
||||
}
|
||||
|
||||
/* The badness from the OOM killer */
|
||||
extern unsigned long badness(struct task_struct *p, struct mem_cgroup *mem,
|
||||
const nodemask_t *nodemask, unsigned long uptime);
|
||||
|
||||
extern struct task_struct *find_lock_task_mm(struct task_struct *p);
|
||||
|
||||
/* sysctls */
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/printk.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
/* Each escaped entry is prefixed by ESCAPE_CODE
|
||||
* then one of the following codes, then the
|
||||
|
||||
@@ -135,7 +135,7 @@ enum pageflags {
|
||||
* Macros to create function definitions for page flags
|
||||
*/
|
||||
#define TESTPAGEFLAG(uname, lname) \
|
||||
static inline int Page##uname(struct page *page) \
|
||||
static inline int Page##uname(const struct page *page) \
|
||||
{ return test_bit(PG_##lname, &page->flags); }
|
||||
|
||||
#define SETPAGEFLAG(uname, lname) \
|
||||
@@ -173,7 +173,7 @@ static inline int __TestClearPage##uname(struct page *page) \
|
||||
__SETPAGEFLAG(uname, lname) __CLEARPAGEFLAG(uname, lname)
|
||||
|
||||
#define PAGEFLAG_FALSE(uname) \
|
||||
static inline int Page##uname(struct page *page) \
|
||||
static inline int Page##uname(const struct page *page) \
|
||||
{ return 0; }
|
||||
|
||||
#define TESTSCFLAG(uname, lname) \
|
||||
|
||||
@@ -255,26 +255,24 @@ static inline struct page *grab_cache_page(struct address_space *mapping,
|
||||
extern struct page * grab_cache_page_nowait(struct address_space *mapping,
|
||||
pgoff_t index);
|
||||
extern struct page * read_cache_page_async(struct address_space *mapping,
|
||||
pgoff_t index, filler_t *filler,
|
||||
void *data);
|
||||
pgoff_t index, filler_t *filler, void *data);
|
||||
extern struct page * read_cache_page(struct address_space *mapping,
|
||||
pgoff_t index, filler_t *filler,
|
||||
void *data);
|
||||
pgoff_t index, filler_t *filler, void *data);
|
||||
extern struct page * read_cache_page_gfp(struct address_space *mapping,
|
||||
pgoff_t index, gfp_t gfp_mask);
|
||||
extern int read_cache_pages(struct address_space *mapping,
|
||||
struct list_head *pages, filler_t *filler, void *data);
|
||||
|
||||
static inline struct page *read_mapping_page_async(
|
||||
struct address_space *mapping,
|
||||
pgoff_t index, void *data)
|
||||
struct address_space *mapping,
|
||||
pgoff_t index, void *data)
|
||||
{
|
||||
filler_t *filler = (filler_t *)mapping->a_ops->readpage;
|
||||
return read_cache_page_async(mapping, index, filler, data);
|
||||
}
|
||||
|
||||
static inline struct page *read_mapping_page(struct address_space *mapping,
|
||||
pgoff_t index, void *data)
|
||||
pgoff_t index, void *data)
|
||||
{
|
||||
filler_t *filler = (filler_t *)mapping->a_ops->readpage;
|
||||
return read_cache_page(mapping, index, filler, data);
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/kobject.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irqreturn.h>
|
||||
|
||||
@@ -2832,7 +2832,11 @@
|
||||
#define PCI_DEVICE_ID_NETMOS_9845 0x9845
|
||||
#define PCI_DEVICE_ID_NETMOS_9855 0x9855
|
||||
#define PCI_DEVICE_ID_NETMOS_9865 0x9865
|
||||
#define PCI_DEVICE_ID_NETMOS_9900 0x9900
|
||||
#define PCI_DEVICE_ID_NETMOS_9901 0x9901
|
||||
#define PCI_DEVICE_ID_NETMOS_9904 0x9904
|
||||
#define PCI_DEVICE_ID_NETMOS_9912 0x9912
|
||||
#define PCI_DEVICE_ID_NETMOS_9922 0x9922
|
||||
|
||||
#define PCI_VENDOR_ID_3COM_2 0xa727
|
||||
|
||||
|
||||
@@ -509,7 +509,7 @@ struct perf_guest_info_callbacks {
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/irq_work.h>
|
||||
#include <linux/jump_label.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/local.h>
|
||||
|
||||
#define PERF_MAX_STACK_DEPTH 255
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#define PHY_BASIC_FEATURES (SUPPORTED_10baseT_Half | \
|
||||
SUPPORTED_10baseT_Full | \
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
/* Interface Mode definitions */
|
||||
typedef enum {
|
||||
PHY_INTERFACE_MODE_NA,
|
||||
PHY_INTERFACE_MODE_MII,
|
||||
PHY_INTERFACE_MODE_GMII,
|
||||
PHY_INTERFACE_MODE_SGMII,
|
||||
@@ -62,7 +63,8 @@ typedef enum {
|
||||
PHY_INTERFACE_MODE_RGMII_ID,
|
||||
PHY_INTERFACE_MODE_RGMII_RXID,
|
||||
PHY_INTERFACE_MODE_RGMII_TXID,
|
||||
PHY_INTERFACE_MODE_RTBI
|
||||
PHY_INTERFACE_MODE_RTBI,
|
||||
PHY_INTERFACE_MODE_SMII,
|
||||
} phy_interface_t;
|
||||
|
||||
|
||||
|
||||
27
include/linux/platform_data/fsa9480.h
Normal file
27
include/linux/platform_data/fsa9480.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Samsung Electronics
|
||||
* Minkyu Kang <mk7.kang@samsung.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef _FSA9480_H_
|
||||
#define _FSA9480_H_
|
||||
|
||||
#define FSA9480_ATTACHED 1
|
||||
#define FSA9480_DETACHED 0
|
||||
|
||||
struct fsa9480_platform_data {
|
||||
void (*cfg_gpio) (void);
|
||||
void (*usb_cb) (u8 attached);
|
||||
void (*uart_cb) (u8 attached);
|
||||
void (*charger_cb) (u8 attached);
|
||||
void (*jig_cb) (u8 attached);
|
||||
void (*reset_cb) (void);
|
||||
void (*usb_power) (u8 on);
|
||||
int wakeup;
|
||||
};
|
||||
|
||||
#endif /* _FSA9480_H_ */
|
||||
@@ -42,6 +42,7 @@ extern void platform_device_unregister(struct platform_device *);
|
||||
extern struct bus_type platform_bus_type;
|
||||
extern struct device platform_bus;
|
||||
|
||||
extern void arch_setup_pdev_archdata(struct platform_device *);
|
||||
extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int);
|
||||
extern int platform_get_irq(struct platform_device *, unsigned int);
|
||||
extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, const char *);
|
||||
|
||||
@@ -50,7 +50,7 @@ static inline resource_size_t pnp_resource_len(struct resource *res)
|
||||
{
|
||||
if (res->start == 0 && res->end == 0)
|
||||
return 0;
|
||||
return res->end - res->start + 1;
|
||||
return resource_size(res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -40,6 +40,12 @@
|
||||
#define RED_INACTIVE 0x09F911029D74E35BULL /* when obj is inactive */
|
||||
#define RED_ACTIVE 0xD84156C5635688C0ULL /* when obj is active */
|
||||
|
||||
#ifdef CONFIG_PHYS_ADDR_T_64BIT
|
||||
#define MEMBLOCK_INACTIVE 0x3a84fb0144c9e71bULL
|
||||
#else
|
||||
#define MEMBLOCK_INACTIVE 0x44c9e71bUL
|
||||
#endif
|
||||
|
||||
#define SLUB_RED_INACTIVE 0xbb
|
||||
#define SLUB_RED_ACTIVE 0xcc
|
||||
|
||||
|
||||
@@ -73,13 +73,12 @@ posix_acl_release(struct posix_acl *acl)
|
||||
|
||||
extern void posix_acl_init(struct posix_acl *, int);
|
||||
extern struct posix_acl *posix_acl_alloc(int, gfp_t);
|
||||
extern struct posix_acl *posix_acl_clone(const struct posix_acl *, gfp_t);
|
||||
extern int posix_acl_valid(const struct posix_acl *);
|
||||
extern int posix_acl_permission(struct inode *, const struct posix_acl *, int);
|
||||
extern struct posix_acl *posix_acl_from_mode(mode_t, gfp_t);
|
||||
extern int posix_acl_equiv_mode(const struct posix_acl *, mode_t *);
|
||||
extern int posix_acl_create_masq(struct posix_acl *, mode_t *);
|
||||
extern int posix_acl_chmod_masq(struct posix_acl *, mode_t);
|
||||
extern int posix_acl_create(struct posix_acl **, gfp_t, mode_t *);
|
||||
extern int posix_acl_chmod(struct posix_acl **, gfp_t, mode_t);
|
||||
|
||||
extern struct posix_acl *get_posix_acl(struct inode *, int);
|
||||
extern int set_posix_acl(struct inode *, int, struct posix_acl *);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <linux/fs.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/magic.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
struct net;
|
||||
struct completion;
|
||||
|
||||
@@ -36,7 +36,8 @@ struct pti_masterchannel {
|
||||
|
||||
/* the following functions are defined in misc/pti.c */
|
||||
void pti_writedata(struct pti_masterchannel *mc, u8 *buf, int count);
|
||||
struct pti_masterchannel *pti_request_masterchannel(u8 type);
|
||||
struct pti_masterchannel *pti_request_masterchannel(u8 type,
|
||||
const char *thread_name);
|
||||
void pti_release_masterchannel(struct pti_masterchannel *mc);
|
||||
|
||||
#endif /*PTI_H_*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user