Merge branch 'omap2-upstream' into devel
This commit is contained in:
@@ -195,7 +195,6 @@ unifdef-y += ethtool.h
|
||||
unifdef-y += eventpoll.h
|
||||
unifdef-y += signalfd.h
|
||||
unifdef-y += ext2_fs.h
|
||||
unifdef-y += ext3_fs.h
|
||||
unifdef-y += fb.h
|
||||
unifdef-y += fcntl.h
|
||||
unifdef-y += filter.h
|
||||
@@ -248,14 +247,13 @@ unifdef-y += isdn.h
|
||||
unifdef-y += isdnif.h
|
||||
unifdef-y += isdn_divertif.h
|
||||
unifdef-y += isdn_ppp.h
|
||||
unifdef-y += jbd.h
|
||||
unifdef-y += joystick.h
|
||||
unifdef-y += kdev_t.h
|
||||
unifdef-y += kd.h
|
||||
unifdef-y += kernelcapi.h
|
||||
unifdef-y += kernel.h
|
||||
unifdef-y += keyboard.h
|
||||
unifdef-$(CONFIG_HAVE_KVM) += kvm.h
|
||||
unifdef-y += kvm.h
|
||||
unifdef-y += llc.h
|
||||
unifdef-y += loop.h
|
||||
unifdef-y += lp.h
|
||||
|
||||
@@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift)
|
||||
return (word >> shift) | (word << (32 - shift));
|
||||
}
|
||||
|
||||
/**
|
||||
* rol16 - rotate a 16-bit value left
|
||||
* @word: value to rotate
|
||||
* @shift: bits to roll
|
||||
*/
|
||||
static inline __u16 rol16(__u16 word, unsigned int shift)
|
||||
{
|
||||
return (word << shift) | (word >> (16 - shift));
|
||||
}
|
||||
|
||||
/**
|
||||
* ror16 - rotate a 16-bit value right
|
||||
* @word: value to rotate
|
||||
* @shift: bits to roll
|
||||
*/
|
||||
static inline __u16 ror16(__u16 word, unsigned int shift)
|
||||
{
|
||||
return (word >> shift) | (word << (16 - shift));
|
||||
}
|
||||
|
||||
/**
|
||||
* rol8 - rotate an 8-bit value left
|
||||
* @word: value to rotate
|
||||
* @shift: bits to roll
|
||||
*/
|
||||
static inline __u8 rol8(__u8 word, unsigned int shift)
|
||||
{
|
||||
return (word << shift) | (word >> (8 - shift));
|
||||
}
|
||||
|
||||
/**
|
||||
* ror8 - rotate an 8-bit value right
|
||||
* @word: value to rotate
|
||||
* @shift: bits to roll
|
||||
*/
|
||||
static inline __u8 ror8(__u8 word, unsigned int shift)
|
||||
{
|
||||
return (word >> shift) | (word << (8 - shift));
|
||||
}
|
||||
|
||||
static inline unsigned fls_long(unsigned long l)
|
||||
{
|
||||
if (sizeof(l) == 4)
|
||||
|
||||
@@ -256,6 +256,7 @@ struct cgroup_subsys {
|
||||
void (*bind)(struct cgroup_subsys *ss, struct cgroup *root);
|
||||
int subsys_id;
|
||||
int active;
|
||||
int disabled;
|
||||
int early_init;
|
||||
#define MAX_CGROUP_TYPE_NAMELEN 32
|
||||
const char *name;
|
||||
|
||||
@@ -192,8 +192,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
|
||||
struct compat_timeval __user *tvp);
|
||||
|
||||
asmlinkage long compat_sys_wait4(compat_pid_t pid,
|
||||
compat_uint_t *stat_addr, int options,
|
||||
struct compat_rusage *ru);
|
||||
compat_uint_t __user *stat_addr, int options,
|
||||
struct compat_rusage __user *ru);
|
||||
|
||||
#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t))
|
||||
|
||||
|
||||
@@ -38,8 +38,8 @@ struct cpuidle_state {
|
||||
unsigned int power_usage; /* in mW */
|
||||
unsigned int target_residency; /* in US */
|
||||
|
||||
unsigned int usage;
|
||||
unsigned int time; /* in US */
|
||||
unsigned long long usage;
|
||||
unsigned long long time; /* in US */
|
||||
|
||||
int (*enter) (struct cpuidle_device *dev,
|
||||
struct cpuidle_state *state);
|
||||
|
||||
@@ -423,7 +423,7 @@ void dma_async_device_unregister(struct dma_device *device);
|
||||
/* --- Helper iov-locking functions --- */
|
||||
|
||||
struct dma_page_list {
|
||||
char *base_address;
|
||||
char __user *base_address;
|
||||
int nr_pages;
|
||||
struct page **pages;
|
||||
};
|
||||
|
||||
@@ -72,6 +72,13 @@
|
||||
#define in_softirq() (softirq_count())
|
||||
#define in_interrupt() (irq_count())
|
||||
|
||||
/*
|
||||
* Are we running in atomic context? WARNING: this macro cannot
|
||||
* always detect atomic context; in particular, it cannot know about
|
||||
* held spinlocks in non-preemptible kernels. Thus it should not be
|
||||
* used in the general case to determine whether sleeping is possible.
|
||||
* Do not use in_atomic() in driver code.
|
||||
*/
|
||||
#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0)
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
|
||||
@@ -64,7 +64,7 @@ struct hpet {
|
||||
*/
|
||||
|
||||
#define Tn_INT_ROUTE_CAP_MASK (0xffffffff00000000ULL)
|
||||
#define Tn_INT_ROUTE_CAP_SHIFT (32UL)
|
||||
#define Tn_INI_ROUTE_CAP_SHIFT (32UL)
|
||||
#define Tn_FSB_INT_DELCAP_MASK (0x8000UL)
|
||||
#define Tn_FSB_INT_DELCAP_SHIFT (15)
|
||||
#define Tn_FSB_EN_CNF_MASK (0x4000UL)
|
||||
|
||||
@@ -152,5 +152,35 @@ extern int tps65010_config_vregs1(unsigned value);
|
||||
*/
|
||||
extern int tps65013_set_low_pwr(unsigned mode);
|
||||
|
||||
|
||||
struct i2c_client;
|
||||
|
||||
/**
|
||||
* struct tps65010_board - packages GPIO and LED lines
|
||||
* @base: the GPIO number to assign to GPIO-1
|
||||
* @outmask: bit (N-1) is set to allow GPIO-N to be used as an
|
||||
* (open drain) output
|
||||
* @setup: optional callback issued once the GPIOs are valid
|
||||
* @teardown: optional callback issued before the GPIOs are invalidated
|
||||
* @context: optional parameter passed to setup() and teardown()
|
||||
*
|
||||
* Board data may be used to package the GPIO (and LED) lines for use
|
||||
* in by the generic GPIO and LED frameworks. The first four GPIOs
|
||||
* starting at gpio_base are GPIO1..GPIO4. The next two are LED1/nPG
|
||||
* and LED2 (with hardware blinking capability, not currently exposed).
|
||||
*
|
||||
* The @setup callback may be used with the kind of board-specific glue
|
||||
* which hands the (now-valid) GPIOs to other drivers, or which puts
|
||||
* devices in their initial states using these GPIOs.
|
||||
*/
|
||||
struct tps65010_board {
|
||||
int base;
|
||||
unsigned outmask;
|
||||
|
||||
int (*setup)(struct i2c_client *client, void *context);
|
||||
int (*teardown)(struct i2c_client *client, void *context);
|
||||
void *context;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_I2C_TPS65010_H */
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <asm/semaphore.h>
|
||||
#include <asm/mutex.h>
|
||||
|
||||
#if defined(CRIS) || defined(FRV)
|
||||
#if defined(CONFIG_CRIS) || defined(CONFIG_FRV)
|
||||
# define SUPPORT_VLB_SYNC 0
|
||||
#else
|
||||
# define SUPPORT_VLB_SYNC 1
|
||||
|
||||
@@ -1227,12 +1227,13 @@ void input_free_device(struct input_dev *dev);
|
||||
|
||||
static inline struct input_dev *input_get_device(struct input_dev *dev)
|
||||
{
|
||||
return to_input_dev(get_device(&dev->dev));
|
||||
return dev ? to_input_dev(get_device(&dev->dev)) : NULL;
|
||||
}
|
||||
|
||||
static inline void input_put_device(struct input_dev *dev)
|
||||
{
|
||||
put_device(&dev->dev);
|
||||
if (dev)
|
||||
put_device(&dev->dev);
|
||||
}
|
||||
|
||||
static inline void *input_get_drvdata(struct input_dev *dev)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define IOCONTEXT_H
|
||||
|
||||
#include <linux/radix-tree.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
/*
|
||||
* This is the per-process anticipatory I/O scheduler state.
|
||||
@@ -54,6 +55,8 @@ struct cfq_io_context {
|
||||
|
||||
void (*dtor)(struct io_context *); /* destructor */
|
||||
void (*exit)(struct io_context *); /* called on task exit */
|
||||
|
||||
struct rcu_head rcu_head;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
* a new device, we simply need to write a new virtio driver and create support
|
||||
* for it in the Launcher: this code won't need to change.
|
||||
*
|
||||
* Virtio devices are also used by kvm, so we can simply reuse their optimized
|
||||
* device drivers. And one day when everyone uses virtio, my plan will be
|
||||
* complete. Bwahahahah!
|
||||
*
|
||||
* Devices are described by a simplified ID, a status byte, and some "config"
|
||||
* bytes which describe this device's configuration. This is placed by the
|
||||
* Launcher just above the top of physical memory:
|
||||
@@ -26,7 +30,7 @@ struct lguest_device_desc {
|
||||
/* The number of virtqueues (first in config array) */
|
||||
__u8 num_vq;
|
||||
/* The number of bytes of feature bits. Multiply by 2: one for host
|
||||
* features and one for guest acknowledgements. */
|
||||
* features and one for Guest acknowledgements. */
|
||||
__u8 feature_len;
|
||||
/* The number of bytes of the config array after virtqueues. */
|
||||
__u8 config_len;
|
||||
|
||||
@@ -295,6 +295,7 @@ enum {
|
||||
ATA_EH_SOFTRESET = (1 << 1),
|
||||
ATA_EH_HARDRESET = (1 << 2),
|
||||
ATA_EH_ENABLE_LINK = (1 << 3),
|
||||
ATA_EH_LPM = (1 << 4), /* link power management action */
|
||||
|
||||
ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
|
||||
ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE,
|
||||
@@ -304,7 +305,6 @@ enum {
|
||||
ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */
|
||||
ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */
|
||||
ATA_EHI_QUIET = (1 << 3), /* be quiet */
|
||||
ATA_EHI_LPM = (1 << 4), /* link power management action */
|
||||
|
||||
ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */
|
||||
ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */
|
||||
@@ -350,7 +350,8 @@ enum {
|
||||
ATAPI_READ = 0, /* READs */
|
||||
ATAPI_WRITE = 1, /* WRITEs */
|
||||
ATAPI_READ_CD = 2, /* READ CD [MSF] */
|
||||
ATAPI_MISC = 3, /* the rest */
|
||||
ATAPI_PASS_THRU = 3, /* SAT pass-thru */
|
||||
ATAPI_MISC = 4, /* the rest */
|
||||
};
|
||||
|
||||
enum ata_xfer_mask {
|
||||
@@ -849,6 +850,7 @@ extern unsigned int ata_dev_try_classify(struct ata_device *dev, int present,
|
||||
*/
|
||||
extern void ata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf);
|
||||
extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
|
||||
extern int atapi_cmd_type(u8 opcode);
|
||||
extern void ata_tf_to_fis(const struct ata_taskfile *tf,
|
||||
u8 pmp, int is_cmd, u8 *fis);
|
||||
extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf);
|
||||
@@ -1379,27 +1381,6 @@ static inline int ata_try_flush_cache(const struct ata_device *dev)
|
||||
ata_id_has_flush_ext(dev->id);
|
||||
}
|
||||
|
||||
static inline int atapi_cmd_type(u8 opcode)
|
||||
{
|
||||
switch (opcode) {
|
||||
case GPCMD_READ_10:
|
||||
case GPCMD_READ_12:
|
||||
return ATAPI_READ;
|
||||
|
||||
case GPCMD_WRITE_10:
|
||||
case GPCMD_WRITE_12:
|
||||
case GPCMD_WRITE_AND_VERIFY_10:
|
||||
return ATAPI_WRITE;
|
||||
|
||||
case GPCMD_READ_CD:
|
||||
case GPCMD_READ_CD_MSF:
|
||||
return ATAPI_READ_CD;
|
||||
|
||||
default:
|
||||
return ATAPI_MISC;
|
||||
}
|
||||
}
|
||||
|
||||
static inline unsigned int ac_err_mask(u8 status)
|
||||
{
|
||||
if (status & (ATA_BUSY | ATA_DRQ))
|
||||
|
||||
@@ -17,8 +17,24 @@
|
||||
# define asmregparm
|
||||
#endif
|
||||
|
||||
#ifndef prevent_tail_call
|
||||
# define prevent_tail_call(ret) do { } while (0)
|
||||
/*
|
||||
* This is used by architectures to keep arguments on the stack
|
||||
* untouched by the compiler by keeping them live until the end.
|
||||
* The argument stack may be owned by the assembly-language
|
||||
* caller, not the callee, and gcc doesn't always understand
|
||||
* that.
|
||||
*
|
||||
* We have the return value, and a maximum of six arguments.
|
||||
*
|
||||
* This should always be followed by a "return ret" for the
|
||||
* protection to work (ie no more work that the compiler might
|
||||
* end up needing stack temporaries for).
|
||||
*/
|
||||
/* Assembly files may be compiled with -traditional .. */
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifndef asmlinkage_protect
|
||||
# define asmlinkage_protect(n, ret, args...) do { } while (0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __ALIGN
|
||||
|
||||
@@ -61,6 +61,7 @@ struct vfsmount {
|
||||
atomic_t mnt_count;
|
||||
int mnt_expiry_mark; /* true if marked for expiry */
|
||||
int mnt_pinned;
|
||||
int mnt_ghosts;
|
||||
};
|
||||
|
||||
static inline struct vfsmount *mntget(struct vfsmount *mnt)
|
||||
@@ -98,7 +99,6 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
|
||||
int mnt_flags, struct list_head *fslist);
|
||||
|
||||
extern void mark_mounts_for_expiry(struct list_head *mounts);
|
||||
extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts);
|
||||
|
||||
extern spinlock_t vfsmount_lock;
|
||||
extern dev_t name_to_dev_t(char *name);
|
||||
|
||||
@@ -383,9 +383,11 @@ static inline void __napi_complete(struct napi_struct *n)
|
||||
|
||||
static inline void napi_complete(struct napi_struct *n)
|
||||
{
|
||||
local_irq_disable();
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
__napi_complete(n);
|
||||
local_irq_enable();
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1072,12 +1074,14 @@ static inline int netif_is_multiqueue(const struct net_device *dev)
|
||||
}
|
||||
|
||||
/* Use this variant when it is known for sure that it
|
||||
* is executing from interrupt context.
|
||||
* is executing from hardware interrupt context or with hardware interrupts
|
||||
* disabled.
|
||||
*/
|
||||
extern void dev_kfree_skb_irq(struct sk_buff *skb);
|
||||
|
||||
/* Use this variant in places where it could be invoked
|
||||
* either from interrupt or non-interrupt context.
|
||||
* from either hardware interrupt or other context, with hardware interrupts
|
||||
* either disabled or enabled.
|
||||
*/
|
||||
extern void dev_kfree_skb_any(struct sk_buff *skb);
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ static inline void pnp_set_card_drvdata(struct pnp_card_link *pcard, void *data)
|
||||
struct pnp_dev {
|
||||
struct device dev; /* Driver Model device interface */
|
||||
u64 dma_mask;
|
||||
unsigned char number; /* used as an index, must be unique */
|
||||
unsigned int number; /* used as an index, must be unique */
|
||||
int status;
|
||||
|
||||
struct list_head global_list; /* node in global list of devices */
|
||||
|
||||
@@ -341,6 +341,9 @@ static inline void double_spin_unlock(spinlock_t *l1, spinlock_t *l2,
|
||||
* atomic_dec_and_lock - lock on reaching reference count zero
|
||||
* @atomic: the atomic counter
|
||||
* @lock: the spinlock in question
|
||||
*
|
||||
* Decrements @atomic by 1. If the result is 0, returns true and locks
|
||||
* @lock. Returns false for all other cases.
|
||||
*/
|
||||
extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
|
||||
#define atomic_dec_and_lock(atomic, lock) \
|
||||
|
||||
@@ -41,6 +41,8 @@ struct virtqueue
|
||||
* Returns NULL or the "data" token handed to add_buf.
|
||||
* @disable_cb: disable callbacks
|
||||
* vq: the struct virtqueue we're talking about.
|
||||
* Note that this is not necessarily synchronous, hence unreliable and only
|
||||
* useful as an optimization.
|
||||
* @enable_cb: restart callbacks after disable_cb.
|
||||
* vq: the struct virtqueue we're talking about.
|
||||
* This re-enables callbacks; it returns "false" if there are pending
|
||||
@@ -48,7 +50,8 @@ struct virtqueue
|
||||
* checking for more work, and enabling callbacks.
|
||||
*
|
||||
* Locking rules are straightforward: the driver is responsible for
|
||||
* locking. No two operations may be invoked simultaneously.
|
||||
* locking. No two operations may be invoked simultaneously, with the exception
|
||||
* of @disable_cb.
|
||||
*
|
||||
* All operations can be called in any context.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user