Merge upstream ieee80211.h with us (us == branch 'ieee80211' of netdev-2.6)
This commit is contained in:
commit
716b43303d
318 changed files with 18385 additions and 13983 deletions
|
@ -14,8 +14,8 @@
|
|||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
moveq \rx, #0xc8000000
|
||||
orrne \rx, \rx, #0x00b00000
|
||||
movne \rx, #0xff000000
|
||||
orrne \rx, \rx, #0x00b00000
|
||||
add \rx,\rx,#3 @ Uart regs are at off set of 3 if
|
||||
@ byte writes used - Big Endian.
|
||||
.endm
|
||||
|
|
|
@ -47,6 +47,15 @@
|
|||
# define HMC_TLLATTACH (1 << 6)
|
||||
# define OTG_HMC(w) (((w)>>0)&0x3f)
|
||||
#define OTG_CTRL_REG OTG_REG32(0x0c)
|
||||
# define OTG_USB2_EN (1 << 29)
|
||||
# define OTG_USB2_DP (1 << 28)
|
||||
# define OTG_USB2_DM (1 << 27)
|
||||
# define OTG_USB1_EN (1 << 26)
|
||||
# define OTG_USB1_DP (1 << 25)
|
||||
# define OTG_USB1_DM (1 << 24)
|
||||
# define OTG_USB0_EN (1 << 23)
|
||||
# define OTG_USB0_DP (1 << 22)
|
||||
# define OTG_USB0_DM (1 << 21)
|
||||
# define OTG_ASESSVLD (1 << 20)
|
||||
# define OTG_BSESSEND (1 << 19)
|
||||
# define OTG_BSESSVLD (1 << 18)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* This file contains the i386 architecture specific IDE code.
|
||||
* This file contains the ARM architecture specific IDE code.
|
||||
*/
|
||||
|
||||
#ifndef __ASMARM_IDE_H
|
||||
|
|
|
@ -82,7 +82,7 @@ extern void __readwrite_bug(const char *fn);
|
|||
* only. Their primary purpose is to access PCI and ISA peripherals.
|
||||
*
|
||||
* Note that for a big endian machine, this implies that the following
|
||||
* big endian mode connectivity is in place, as described by numerious
|
||||
* big endian mode connectivity is in place, as described by numerous
|
||||
* ARM documents:
|
||||
*
|
||||
* PCI: D0-D7 D8-D15 D16-D23 D24-D31
|
||||
|
|
|
@ -60,6 +60,8 @@ struct dyn_tick_timer {
|
|||
};
|
||||
|
||||
void timer_dyn_reprogram(void);
|
||||
#else
|
||||
#define timer_dyn_reprogram() do { } while (0)
|
||||
#endif
|
||||
|
||||
extern struct sys_timer *system_timer;
|
||||
|
|
|
@ -22,16 +22,18 @@
|
|||
*/
|
||||
#define __flush_tlb_global() \
|
||||
do { \
|
||||
unsigned int tmpreg; \
|
||||
unsigned int tmpreg, cr4, cr4_orig; \
|
||||
\
|
||||
__asm__ __volatile__( \
|
||||
"movl %1, %%cr4; # turn off PGE \n" \
|
||||
"movl %%cr4, %2; # turn off PGE \n" \
|
||||
"movl %2, %1; \n" \
|
||||
"andl %3, %1; \n" \
|
||||
"movl %1, %%cr4; \n" \
|
||||
"movl %%cr3, %0; \n" \
|
||||
"movl %0, %%cr3; # flush TLB \n" \
|
||||
"movl %2, %%cr4; # turn PGE back on \n" \
|
||||
: "=&r" (tmpreg) \
|
||||
: "r" (mmu_cr4_features & ~X86_CR4_PGE), \
|
||||
"r" (mmu_cr4_features) \
|
||||
: "=&r" (tmpreg), "=&r" (cr4), "=&r" (cr4_orig) \
|
||||
: "i" (~X86_CR4_PGE) \
|
||||
: "memory"); \
|
||||
} while (0)
|
||||
|
||||
|
|
|
@ -294,8 +294,10 @@
|
|||
#define __NR_add_key 286
|
||||
#define __NR_request_key 287
|
||||
#define __NR_keyctl 288
|
||||
#define __NR_ioprio_set 289
|
||||
#define __NR_ioprio_get 290
|
||||
|
||||
#define NR_syscalls 289
|
||||
#define NR_syscalls 291
|
||||
|
||||
/*
|
||||
* user-visible error numbers are in the range -1 - -128: see
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <asm/break.h>
|
||||
|
||||
#define MAX_INSN_SIZE 16
|
||||
#define BREAK_INST (long)(__IA64_BREAK_KPROBE << 6)
|
||||
|
||||
typedef union cmp_inst {
|
||||
|
@ -63,6 +64,8 @@ typedef struct _bundle {
|
|||
|
||||
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry
|
||||
|
||||
#define ARCH_SUPPORTS_KRETPROBES
|
||||
|
||||
#define SLOT0_OPCODE_SHIFT (37)
|
||||
#define SLOT1_p1_OPCODE_SHIFT (37 - (64-46))
|
||||
#define SLOT2_OPCODE_SHIFT (37)
|
||||
|
@ -93,11 +96,6 @@ struct arch_specific_insn {
|
|||
unsigned short target_br_reg;
|
||||
};
|
||||
|
||||
/* ia64 does not need this */
|
||||
static inline void jprobe_return(void)
|
||||
{
|
||||
}
|
||||
|
||||
/* ia64 does not need this */
|
||||
static inline void arch_copy_kprobe(struct kprobe *p)
|
||||
{
|
||||
|
@ -106,6 +104,12 @@ static inline void arch_copy_kprobe(struct kprobe *p)
|
|||
#ifdef CONFIG_KPROBES
|
||||
extern int kprobe_exceptions_notify(struct notifier_block *self,
|
||||
unsigned long val, void *data);
|
||||
|
||||
/* ia64 does not need this */
|
||||
static inline void jprobe_return(void)
|
||||
{
|
||||
}
|
||||
|
||||
#else /* !CONFIG_KPROBES */
|
||||
static inline int kprobe_exceptions_notify(struct notifier_block *self,
|
||||
unsigned long val, void *data)
|
||||
|
|
|
@ -17,6 +17,7 @@ extern char __start_gate_vtop_patchlist[], __end_gate_vtop_patchlist[];
|
|||
extern char __start_gate_fsyscall_patchlist[], __end_gate_fsyscall_patchlist[];
|
||||
extern char __start_gate_brl_fsys_bubble_down_patchlist[], __end_gate_brl_fsys_bubble_down_patchlist[];
|
||||
extern char __start_unwind[], __end_unwind[];
|
||||
extern char __start_ivt_text[], __end_ivt_text[];
|
||||
|
||||
#endif /* _ASM_IA64_SECTIONS_H */
|
||||
|
||||
|
|
|
@ -263,6 +263,8 @@
|
|||
#define __NR_add_key 1271
|
||||
#define __NR_request_key 1272
|
||||
#define __NR_keyctl 1273
|
||||
#define __NR_ioprio_set 1274
|
||||
#define __NR_ioprio_get 1275
|
||||
#define __NR_set_zone_reclaim 1276
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
|
|
@ -25,6 +25,11 @@
|
|||
#define OPENPIC_VEC_IPI 118 /* and up */
|
||||
#define OPENPIC_VEC_SPURIOUS 255
|
||||
|
||||
/* Priorities */
|
||||
#define OPENPIC_PRIORITY_IPI_BASE 10
|
||||
#define OPENPIC_PRIORITY_DEFAULT 4
|
||||
#define OPENPIC_PRIORITY_NMI 9
|
||||
|
||||
/* OpenPIC IRQ controller structure */
|
||||
extern struct hw_interrupt_type open_pic;
|
||||
|
||||
|
@ -42,6 +47,7 @@ extern int epic_serial_mode;
|
|||
extern void openpic_set_sources(int first_irq, int num_irqs, void __iomem *isr);
|
||||
extern void openpic_init(int linux_irq_offset);
|
||||
extern void openpic_init_nmi_irq(u_int irq);
|
||||
extern void openpic_set_irq_priority(u_int irq, u_int pri);
|
||||
extern void openpic_hookup_cascade(u_int irq, char *name,
|
||||
int (*cascade_fn)(struct pt_regs *));
|
||||
extern u_int openpic_irq(void);
|
||||
|
|
|
@ -277,8 +277,10 @@
|
|||
#define __NR_request_key 270
|
||||
#define __NR_keyctl 271
|
||||
#define __NR_waitid 272
|
||||
#define __NR_ioprio_set 273
|
||||
#define __NR_ioprio_get 274
|
||||
|
||||
#define __NR_syscalls 273
|
||||
#define __NR_syscalls 275
|
||||
|
||||
#define __NR(n) #n
|
||||
|
||||
|
|
|
@ -42,10 +42,13 @@ typedef unsigned int kprobe_opcode_t;
|
|||
|
||||
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)((func_descr_t *)pentry)
|
||||
|
||||
#define ARCH_SUPPORTS_KRETPROBES
|
||||
void kretprobe_trampoline(void);
|
||||
|
||||
/* Architecture specific copy of original instruction */
|
||||
struct arch_specific_insn {
|
||||
/* copy of original instruction */
|
||||
kprobe_opcode_t insn[MAX_INSN_SIZE];
|
||||
kprobe_opcode_t *insn;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_KPROBES
|
||||
|
|
|
@ -22,16 +22,18 @@
|
|||
*/
|
||||
#define __flush_tlb_global() \
|
||||
do { \
|
||||
unsigned long tmpreg; \
|
||||
unsigned long tmpreg, cr4, cr4_orig; \
|
||||
\
|
||||
__asm__ __volatile__( \
|
||||
"movq %1, %%cr4; # turn off PGE \n" \
|
||||
"movq %%cr4, %2; # turn off PGE \n" \
|
||||
"movq %2, %1; \n" \
|
||||
"andq %3, %1; \n" \
|
||||
"movq %1, %%cr4; \n" \
|
||||
"movq %%cr3, %0; # flush TLB \n" \
|
||||
"movq %0, %%cr3; \n" \
|
||||
"movq %2, %%cr4; # turn PGE back on \n" \
|
||||
: "=&r" (tmpreg) \
|
||||
: "r" (mmu_cr4_features & ~X86_CR4_PGE), \
|
||||
"r" (mmu_cr4_features) \
|
||||
: "=&r" (tmpreg), "=&r" (cr4), "=&r" (cr4_orig) \
|
||||
: "i" (~X86_CR4_PGE) \
|
||||
: "memory"); \
|
||||
} while (0)
|
||||
|
||||
|
|
|
@ -561,8 +561,12 @@ __SYSCALL(__NR_add_key, sys_add_key)
|
|||
__SYSCALL(__NR_request_key, sys_request_key)
|
||||
#define __NR_keyctl 250
|
||||
__SYSCALL(__NR_keyctl, sys_keyctl)
|
||||
#define __NR_ioprio_set 251
|
||||
__SYSCALL(__NR_ioprio_set, sys_ioprio_set)
|
||||
#define __NR_ioprio_get 252
|
||||
__SYSCALL(__NR_ioprio_get, sys_ioprio_get)
|
||||
|
||||
#define __NR_syscall_max __NR_keyctl
|
||||
#define __NR_syscall_max __NR_ioprio_get
|
||||
#ifndef __NO_STUBS
|
||||
|
||||
/* user-visible error numbers are in the range -1 - -4095 */
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/mempool.h>
|
||||
#include <linux/ioprio.h>
|
||||
|
||||
/* Platforms may set this to teach the BIO layer about IOMMU hardware. */
|
||||
#include <asm/io.h>
|
||||
|
@ -149,6 +150,19 @@ struct bio {
|
|||
#define BIO_RW_FAILFAST 3
|
||||
#define BIO_RW_SYNC 4
|
||||
|
||||
/*
|
||||
* upper 16 bits of bi_rw define the io priority of this bio
|
||||
*/
|
||||
#define BIO_PRIO_SHIFT (8 * sizeof(unsigned long) - IOPRIO_BITS)
|
||||
#define bio_prio(bio) ((bio)->bi_rw >> BIO_PRIO_SHIFT)
|
||||
#define bio_prio_valid(bio) ioprio_valid(bio_prio(bio))
|
||||
|
||||
#define bio_set_prio(bio, prio) do { \
|
||||
WARN_ON(prio >= (1 << IOPRIO_BITS)); \
|
||||
(bio)->bi_rw &= ((1UL << BIO_PRIO_SHIFT) - 1); \
|
||||
(bio)->bi_rw |= ((unsigned long) (prio) << BIO_PRIO_SHIFT); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* various member access, note that bio_data should of course not be used
|
||||
* on highmem page vectors
|
||||
|
|
|
@ -54,16 +54,23 @@ struct as_io_context {
|
|||
|
||||
struct cfq_queue;
|
||||
struct cfq_io_context {
|
||||
void (*dtor)(struct cfq_io_context *);
|
||||
void (*exit)(struct cfq_io_context *);
|
||||
|
||||
struct io_context *ioc;
|
||||
|
||||
/*
|
||||
* circular list of cfq_io_contexts belonging to a process io context
|
||||
*/
|
||||
struct list_head list;
|
||||
struct cfq_queue *cfqq;
|
||||
void *key;
|
||||
|
||||
struct io_context *ioc;
|
||||
|
||||
unsigned long last_end_request;
|
||||
unsigned long last_queue;
|
||||
unsigned long ttime_total;
|
||||
unsigned long ttime_samples;
|
||||
unsigned long ttime_mean;
|
||||
|
||||
void (*dtor)(struct cfq_io_context *);
|
||||
void (*exit)(struct cfq_io_context *);
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -73,7 +80,9 @@ struct cfq_io_context {
|
|||
*/
|
||||
struct io_context {
|
||||
atomic_t refcount;
|
||||
pid_t pid;
|
||||
struct task_struct *task;
|
||||
|
||||
int (*set_ioprio)(struct io_context *, unsigned int);
|
||||
|
||||
/*
|
||||
* For request batching
|
||||
|
@ -81,8 +90,6 @@ struct io_context {
|
|||
unsigned long last_waited; /* Time last woken after wait for request */
|
||||
int nr_batch_requests; /* Number of requests left in the batch */
|
||||
|
||||
spinlock_t lock;
|
||||
|
||||
struct as_io_context *aic;
|
||||
struct cfq_io_context *cic;
|
||||
};
|
||||
|
@ -134,6 +141,8 @@ struct request {
|
|||
|
||||
void *elevator_private;
|
||||
|
||||
unsigned short ioprio;
|
||||
|
||||
int rq_status; /* should split this into a few status bits */
|
||||
struct gendisk *rq_disk;
|
||||
int errors;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
typedef struct _cciss_pci_info_struct
|
||||
{
|
||||
unsigned char bus;
|
||||
unsigned short domain;
|
||||
unsigned char dev_fn;
|
||||
__u32 board_id;
|
||||
} cciss_pci_info_struct;
|
||||
|
|
|
@ -16,9 +16,9 @@ typedef void (elevator_remove_req_fn) (request_queue_t *, struct request *);
|
|||
typedef void (elevator_requeue_req_fn) (request_queue_t *, struct request *);
|
||||
typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *);
|
||||
typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *);
|
||||
typedef int (elevator_may_queue_fn) (request_queue_t *, int);
|
||||
typedef int (elevator_may_queue_fn) (request_queue_t *, int, struct bio *);
|
||||
|
||||
typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, int);
|
||||
typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, struct bio *, int);
|
||||
typedef void (elevator_put_req_fn) (request_queue_t *, struct request *);
|
||||
typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *);
|
||||
|
||||
|
@ -96,9 +96,9 @@ extern struct request *elv_former_request(request_queue_t *, struct request *);
|
|||
extern struct request *elv_latter_request(request_queue_t *, struct request *);
|
||||
extern int elv_register_queue(request_queue_t *q);
|
||||
extern void elv_unregister_queue(request_queue_t *q);
|
||||
extern int elv_may_queue(request_queue_t *, int);
|
||||
extern int elv_may_queue(request_queue_t *, int, struct bio *);
|
||||
extern void elv_completed_request(request_queue_t *, struct request *);
|
||||
extern int elv_set_request(request_queue_t *, struct request *, int);
|
||||
extern int elv_set_request(request_queue_t *, struct request *, struct bio *, int);
|
||||
extern void elv_put_request(request_queue_t *, struct request *);
|
||||
|
||||
/*
|
||||
|
|
|
@ -213,6 +213,7 @@ extern int dir_notify_enable;
|
|||
#include <linux/radix-tree.h>
|
||||
#include <linux/prio_tree.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/semaphore.h>
|
||||
|
@ -822,16 +823,34 @@ enum {
|
|||
#define vfs_check_frozen(sb, level) \
|
||||
wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level)))
|
||||
|
||||
static inline void get_fs_excl(void)
|
||||
{
|
||||
atomic_inc(¤t->fs_excl);
|
||||
}
|
||||
|
||||
static inline void put_fs_excl(void)
|
||||
{
|
||||
atomic_dec(¤t->fs_excl);
|
||||
}
|
||||
|
||||
static inline int has_fs_excl(void)
|
||||
{
|
||||
return atomic_read(¤t->fs_excl);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Superblock locking.
|
||||
*/
|
||||
static inline void lock_super(struct super_block * sb)
|
||||
{
|
||||
get_fs_excl();
|
||||
down(&sb->s_lock);
|
||||
}
|
||||
|
||||
static inline void unlock_super(struct super_block * sb)
|
||||
{
|
||||
put_fs_excl();
|
||||
up(&sb->s_lock);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ extern struct group_info init_groups;
|
|||
.mm = NULL, \
|
||||
.active_mm = &init_mm, \
|
||||
.run_list = LIST_HEAD_INIT(tsk.run_list), \
|
||||
.ioprio = 0, \
|
||||
.time_slice = HZ, \
|
||||
.tasks = LIST_HEAD_INIT(tsk.tasks), \
|
||||
.ptrace_children= LIST_HEAD_INIT(tsk.ptrace_children), \
|
||||
|
@ -110,6 +111,7 @@ extern struct group_info init_groups;
|
|||
.proc_lock = SPIN_LOCK_UNLOCKED, \
|
||||
.journal_info = NULL, \
|
||||
.cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \
|
||||
.fs_excl = ATOMIC_INIT(0), \
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -859,6 +859,10 @@ struct input_dev {
|
|||
int (*erase_effect)(struct input_dev *dev, int effect_id);
|
||||
|
||||
struct input_handle *grab;
|
||||
|
||||
struct semaphore sem; /* serializes open and close operations */
|
||||
unsigned int users;
|
||||
|
||||
struct device *dev;
|
||||
|
||||
struct list_head h_list;
|
||||
|
|
88
include/linux/ioprio.h
Normal file
88
include/linux/ioprio.h
Normal file
|
@ -0,0 +1,88 @@
|
|||
#ifndef IOPRIO_H
|
||||
#define IOPRIO_H
|
||||
|
||||
#include <linux/sched.h>
|
||||
|
||||
/*
|
||||
* Gives us 8 prio classes with 13-bits of data for each class
|
||||
*/
|
||||
#define IOPRIO_BITS (16)
|
||||
#define IOPRIO_CLASS_SHIFT (13)
|
||||
#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
|
||||
|
||||
#define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT)
|
||||
#define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK)
|
||||
#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data)
|
||||
|
||||
#define ioprio_valid(mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE)
|
||||
|
||||
/*
|
||||
* These are the io priority groups as implemented by CFQ. RT is the realtime
|
||||
* class, it always gets premium service. BE is the best-effort scheduling
|
||||
* class, the default for any process. IDLE is the idle scheduling class, it
|
||||
* is only served when no one else is using the disk.
|
||||
*/
|
||||
enum {
|
||||
IOPRIO_CLASS_NONE,
|
||||
IOPRIO_CLASS_RT,
|
||||
IOPRIO_CLASS_BE,
|
||||
IOPRIO_CLASS_IDLE,
|
||||
};
|
||||
|
||||
/*
|
||||
* 8 best effort priority levels are supported
|
||||
*/
|
||||
#define IOPRIO_BE_NR (8)
|
||||
|
||||
asmlinkage int sys_ioprio_set(int, int, int);
|
||||
asmlinkage int sys_ioprio_get(int, int);
|
||||
|
||||
enum {
|
||||
IOPRIO_WHO_PROCESS = 1,
|
||||
IOPRIO_WHO_PGRP,
|
||||
IOPRIO_WHO_USER,
|
||||
};
|
||||
|
||||
/*
|
||||
* if process has set io priority explicitly, use that. if not, convert
|
||||
* the cpu scheduler nice value to an io priority
|
||||
*/
|
||||
#define IOPRIO_NORM (4)
|
||||
static inline int task_ioprio(struct task_struct *task)
|
||||
{
|
||||
WARN_ON(!ioprio_valid(task->ioprio));
|
||||
return IOPRIO_PRIO_DATA(task->ioprio);
|
||||
}
|
||||
|
||||
static inline int task_nice_ioprio(struct task_struct *task)
|
||||
{
|
||||
return (task_nice(task) + 20) / 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* For inheritance, return the highest of the two given priorities
|
||||
*/
|
||||
static inline int ioprio_best(unsigned short aprio, unsigned short bprio)
|
||||
{
|
||||
unsigned short aclass = IOPRIO_PRIO_CLASS(aprio);
|
||||
unsigned short bclass = IOPRIO_PRIO_CLASS(bprio);
|
||||
|
||||
if (!ioprio_valid(aprio))
|
||||
return bprio;
|
||||
if (!ioprio_valid(bprio))
|
||||
return aprio;
|
||||
|
||||
if (aclass == IOPRIO_CLASS_NONE)
|
||||
aclass = IOPRIO_CLASS_BE;
|
||||
if (bclass == IOPRIO_CLASS_NONE)
|
||||
bclass = IOPRIO_CLASS_BE;
|
||||
|
||||
if (aclass == bclass)
|
||||
return min(aprio, bprio);
|
||||
if (aclass > bclass)
|
||||
return bprio;
|
||||
else
|
||||
return aprio;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -111,18 +111,35 @@ struct js_corr {
|
|||
#define JS_SET_ALL 8
|
||||
|
||||
struct JS_DATA_TYPE {
|
||||
int buttons;
|
||||
int x;
|
||||
int y;
|
||||
__s32 buttons;
|
||||
__s32 x;
|
||||
__s32 y;
|
||||
};
|
||||
|
||||
struct JS_DATA_SAVE_TYPE {
|
||||
int JS_TIMEOUT;
|
||||
int BUSY;
|
||||
long JS_EXPIRETIME;
|
||||
long JS_TIMELIMIT;
|
||||
struct JS_DATA_SAVE_TYPE_32 {
|
||||
__s32 JS_TIMEOUT;
|
||||
__s32 BUSY;
|
||||
__s32 JS_EXPIRETIME;
|
||||
__s32 JS_TIMELIMIT;
|
||||
struct JS_DATA_TYPE JS_SAVE;
|
||||
struct JS_DATA_TYPE JS_CORR;
|
||||
};
|
||||
|
||||
struct JS_DATA_SAVE_TYPE_64 {
|
||||
__s32 JS_TIMEOUT;
|
||||
__s32 BUSY;
|
||||
__s64 JS_EXPIRETIME;
|
||||
__s64 JS_TIMELIMIT;
|
||||
struct JS_DATA_TYPE JS_SAVE;
|
||||
struct JS_DATA_TYPE JS_CORR;
|
||||
};
|
||||
|
||||
#if BITS_PER_LONG == 64
|
||||
#define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64
|
||||
#elif BITS_PER_LONG == 32
|
||||
#define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_32
|
||||
#else
|
||||
#error Unexpected BITS_PER_LONG
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_JOYSTICK_H */
|
||||
|
|
|
@ -104,33 +104,12 @@ struct jprobe {
|
|||
};
|
||||
|
||||
#ifdef ARCH_SUPPORTS_KRETPROBES
|
||||
extern int trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs);
|
||||
extern void trampoline_post_handler(struct kprobe *p, struct pt_regs *regs,
|
||||
unsigned long flags);
|
||||
extern struct task_struct *arch_get_kprobe_task(void *ptr);
|
||||
extern void arch_prepare_kretprobe(struct kretprobe *rp, struct pt_regs *regs);
|
||||
extern void arch_kprobe_flush_task(struct task_struct *tk);
|
||||
#else /* ARCH_SUPPORTS_KRETPROBES */
|
||||
static inline void kretprobe_trampoline(void)
|
||||
{
|
||||
}
|
||||
static inline int trampoline_probe_handler(struct kprobe *p,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void trampoline_post_handler(struct kprobe *p,
|
||||
struct pt_regs *regs, unsigned long flags)
|
||||
{
|
||||
}
|
||||
static inline void arch_prepare_kretprobe(struct kretprobe *rp,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
}
|
||||
static inline void arch_kprobe_flush_task(struct task_struct *tk)
|
||||
{
|
||||
}
|
||||
#define arch_get_kprobe_task(ptr) ((struct task_struct *)NULL)
|
||||
#endif /* ARCH_SUPPORTS_KRETPROBES */
|
||||
/*
|
||||
* Function-return probe -
|
||||
|
@ -155,8 +134,8 @@ struct kretprobe_instance {
|
|||
struct hlist_node uflist; /* either on free list or used list */
|
||||
struct hlist_node hlist;
|
||||
struct kretprobe *rp;
|
||||
void *ret_addr;
|
||||
void *stack_addr;
|
||||
kprobe_opcode_t *ret_addr;
|
||||
struct task_struct *task;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_KPROBES
|
||||
|
@ -176,7 +155,10 @@ extern void arch_copy_kprobe(struct kprobe *p);
|
|||
extern void arch_arm_kprobe(struct kprobe *p);
|
||||
extern void arch_disarm_kprobe(struct kprobe *p);
|
||||
extern void arch_remove_kprobe(struct kprobe *p);
|
||||
extern int arch_init(void);
|
||||
extern void show_registers(struct pt_regs *regs);
|
||||
extern kprobe_opcode_t *get_insn_slot(void);
|
||||
extern void free_insn_slot(kprobe_opcode_t *slot);
|
||||
|
||||
/* Get the kprobe at this addr (if any). Must have called lock_kprobes */
|
||||
struct kprobe *get_kprobe(void *addr);
|
||||
|
@ -194,8 +176,6 @@ int register_kretprobe(struct kretprobe *rp);
|
|||
void unregister_kretprobe(struct kretprobe *rp);
|
||||
|
||||
struct kretprobe_instance *get_free_rp_inst(struct kretprobe *rp);
|
||||
struct kretprobe_instance *get_rp_inst(void *sara);
|
||||
struct kretprobe_instance *get_rp_inst_tsk(struct task_struct *tk);
|
||||
void add_rp_inst(struct kretprobe_instance *ri);
|
||||
void kprobe_flush_task(struct task_struct *tk);
|
||||
void recycle_rp_inst(struct kretprobe_instance *ri);
|
||||
|
|
|
@ -41,6 +41,7 @@ struct ps2dev {
|
|||
|
||||
void ps2_init(struct ps2dev *ps2dev, struct serio *serio);
|
||||
int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte, int timeout);
|
||||
void ps2_drain(struct ps2dev *ps2dev, int maxbytes, int timeout);
|
||||
int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
|
||||
int ps2_schedule_command(struct ps2dev *ps2dev, unsigned char *param, int command);
|
||||
int ps2_handle_ack(struct ps2dev *ps2dev, unsigned char data);
|
||||
|
|
|
@ -712,8 +712,9 @@
|
|||
#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
|
||||
#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
|
||||
#define PCI_DEVICE_ID_HP_CISSA 0x3220
|
||||
#define PCI_DEVICE_ID_HP_CISSB 0x3230
|
||||
#define PCI_DEVICE_ID_HP_CISSB 0x3222
|
||||
#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
|
||||
#define PCI_DEVICE_ID_HP_CISSC 0x3230
|
||||
|
||||
#define PCI_VENDOR_ID_PCTECH 0x1042
|
||||
#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
|
||||
|
@ -1284,6 +1285,8 @@
|
|||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_2 0x0348
|
||||
#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO1000 0x034C
|
||||
#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1100 0x034E
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_14 0x0372
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373
|
||||
|
||||
#define PCI_VENDOR_ID_IMS 0x10e0
|
||||
#define PCI_DEVICE_ID_IMS_8849 0x8849
|
||||
|
|
|
@ -166,7 +166,7 @@ extern int pmu_i2c_simple_read(int bus, int addr, u8* data, int len);
|
|||
extern int pmu_i2c_simple_write(int bus, int addr, u8* data, int len);
|
||||
|
||||
|
||||
#ifdef CONFIG_PMAC_PBOOK
|
||||
#ifdef CONFIG_PM
|
||||
/*
|
||||
* Stuff for putting the powerbook to sleep and waking it again.
|
||||
*
|
||||
|
@ -208,6 +208,8 @@ struct pmu_sleep_notifier
|
|||
int pmu_register_sleep_notifier(struct pmu_sleep_notifier* notifier);
|
||||
int pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* notifier);
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
#define PMU_MAX_BATTERIES 2
|
||||
|
||||
/* values for pmu_power_flags */
|
||||
|
@ -235,6 +237,4 @@ extern int pmu_battery_count;
|
|||
extern struct pmu_battery_info pmu_batteries[PMU_MAX_BATTERIES];
|
||||
extern unsigned int pmu_power_flags;
|
||||
|
||||
#endif /* CONFIG_PMAC_PBOOK */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
|
|
@ -608,6 +608,8 @@ struct task_struct {
|
|||
struct list_head run_list;
|
||||
prio_array_t *array;
|
||||
|
||||
unsigned short ioprio;
|
||||
|
||||
unsigned long sleep_avg;
|
||||
unsigned long long timestamp, last_ran;
|
||||
unsigned long long sched_time; /* sched_clock time spent running */
|
||||
|
@ -763,6 +765,7 @@ struct task_struct {
|
|||
nodemask_t mems_allowed;
|
||||
int cpuset_mems_generation;
|
||||
#endif
|
||||
atomic_t fs_excl; /* holding fs exclusive resources */
|
||||
};
|
||||
|
||||
static inline pid_t process_group(struct task_struct *tsk)
|
||||
|
@ -1112,7 +1115,8 @@ extern void unhash_process(struct task_struct *p);
|
|||
|
||||
/*
|
||||
* Protects ->fs, ->files, ->mm, ->ptrace, ->group_info, ->comm, keyring
|
||||
* subscriptions and synchronises with wait4(). Also used in procfs.
|
||||
* subscriptions and synchronises with wait4(). Also used in procfs. Also
|
||||
* pins the final release of task.io_context.
|
||||
*
|
||||
* Nests both inside and outside of read_lock(&tasklist_lock).
|
||||
* It must not be nested with write_lock_irq(&tasklist_lock),
|
||||
|
|
|
@ -19,6 +19,11 @@ static inline void secure_computing(int this_syscall)
|
|||
__secure_computing(this_syscall);
|
||||
}
|
||||
|
||||
static inline int has_secure_computing(struct thread_info *ti)
|
||||
{
|
||||
return unlikely(test_ti_thread_flag(ti, TIF_SECCOMP));
|
||||
}
|
||||
|
||||
#else /* CONFIG_SECCOMP */
|
||||
|
||||
#if (__GNUC__ > 2)
|
||||
|
@ -28,6 +33,11 @@ static inline void secure_computing(int this_syscall)
|
|||
#endif
|
||||
|
||||
#define secure_computing(x) do { } while (0)
|
||||
/* static inline to preserve typechecking */
|
||||
static inline int has_secure_computing(struct thread_info *ti)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SECCOMP */
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ struct plat_serial8250_port {
|
|||
unsigned int uartclk; /* UART clock rate */
|
||||
unsigned char regshift; /* register shift */
|
||||
unsigned char iotype; /* UPIO_* */
|
||||
unsigned char hub6;
|
||||
unsigned int flags; /* UPF_* flags */
|
||||
};
|
||||
|
||||
|
|
|
@ -83,6 +83,7 @@ static inline void serio_register_port(struct serio *serio)
|
|||
}
|
||||
|
||||
void serio_unregister_port(struct serio *serio);
|
||||
void serio_unregister_child_port(struct serio *serio);
|
||||
void __serio_unregister_port_delayed(struct serio *serio, struct module *owner);
|
||||
static inline void serio_unregister_port_delayed(struct serio *serio)
|
||||
{
|
||||
|
@ -153,6 +154,11 @@ static inline int serio_pin_driver(struct serio *serio)
|
|||
return down_interruptible(&serio->drv_sem);
|
||||
}
|
||||
|
||||
static inline void serio_pin_driver_uninterruptible(struct serio *serio)
|
||||
{
|
||||
down(&serio->drv_sem);
|
||||
}
|
||||
|
||||
static inline void serio_unpin_driver(struct serio *serio)
|
||||
{
|
||||
up(&serio->drv_sem);
|
||||
|
|
|
@ -6,11 +6,14 @@
|
|||
*
|
||||
* - the master/host side Linux-USB kernel driver API;
|
||||
* - the "usbfs" user space API; and
|
||||
* - (eventually) a Linux "gadget" slave/device side driver API.
|
||||
* - the Linux "gadget" slave/device/peripheral side driver API.
|
||||
*
|
||||
* USB 2.0 adds an additional "On The Go" (OTG) mode, which lets systems
|
||||
* act either as a USB master/host or as a USB slave/device. That means
|
||||
* the master and slave side APIs will benefit from working well together.
|
||||
* the master and slave side APIs benefit from working well together.
|
||||
*
|
||||
* There's also "Wireless USB", using low power short range radios for
|
||||
* peripheral interconnection but otherwise building on the USB framework.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_USB_CH9_H
|
||||
|
@ -68,6 +71,18 @@
|
|||
#define USB_REQ_SET_INTERFACE 0x0B
|
||||
#define USB_REQ_SYNCH_FRAME 0x0C
|
||||
|
||||
#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */
|
||||
#define USB_REQ_GET_ENCRYPTION 0x0E
|
||||
#define USB_REQ_SET_HANDSHAKE 0x0F
|
||||
#define USB_REQ_GET_HANDSHAKE 0x10
|
||||
#define USB_REQ_SET_CONNECTION 0x11
|
||||
#define USB_REQ_SET_SECURITY_DATA 0x12
|
||||
#define USB_REQ_GET_SECURITY_DATA 0x13
|
||||
#define USB_REQ_SET_WUSB_DATA 0x14
|
||||
#define USB_REQ_LOOPBACK_DATA_WRITE 0x15
|
||||
#define USB_REQ_LOOPBACK_DATA_READ 0x16
|
||||
#define USB_REQ_SET_INTERFACE_DS 0x17
|
||||
|
||||
/*
|
||||
* USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and
|
||||
* are read as a bit array returned by USB_REQ_GET_STATUS. (So there
|
||||
|
@ -75,10 +90,12 @@
|
|||
*/
|
||||
#define USB_DEVICE_SELF_POWERED 0 /* (read only) */
|
||||
#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */
|
||||
#define USB_DEVICE_TEST_MODE 2 /* (high speed only) */
|
||||
#define USB_DEVICE_B_HNP_ENABLE 3 /* dev may initiate HNP */
|
||||
#define USB_DEVICE_A_HNP_SUPPORT 4 /* RH port supports HNP */
|
||||
#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* other RH port does */
|
||||
#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */
|
||||
#define USB_DEVICE_BATTERY 2 /* (wireless) */
|
||||
#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */
|
||||
#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/
|
||||
#define USB_DEVICE_A_HNP_SUPPORT 4 /* (otg) RH port supports HNP */
|
||||
#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
|
||||
#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
|
||||
|
||||
#define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */
|
||||
|
@ -135,6 +152,13 @@ struct usb_ctrlrequest {
|
|||
#define USB_DT_OTG 0x09
|
||||
#define USB_DT_DEBUG 0x0a
|
||||
#define USB_DT_INTERFACE_ASSOCIATION 0x0b
|
||||
/* these are from the Wireless USB spec */
|
||||
#define USB_DT_SECURITY 0x0c
|
||||
#define USB_DT_KEY 0x0d
|
||||
#define USB_DT_ENCRYPTION_TYPE 0x0e
|
||||
#define USB_DT_BOS 0x0f
|
||||
#define USB_DT_DEVICE_CAPABILITY 0x10
|
||||
#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
|
||||
|
||||
/* conventional codes for class-specific descriptors */
|
||||
#define USB_DT_CS_DEVICE 0x21
|
||||
|
@ -192,6 +216,7 @@ struct usb_device_descriptor {
|
|||
#define USB_CLASS_CSCID 0x0b /* chip+ smart card */
|
||||
#define USB_CLASS_CONTENT_SEC 0x0d /* content security */
|
||||
#define USB_CLASS_VIDEO 0x0e
|
||||
#define USB_CLASS_WIRELESS_CONTROLLER 0xe0
|
||||
#define USB_CLASS_APP_SPEC 0xfe
|
||||
#define USB_CLASS_VENDOR_SPEC 0xff
|
||||
|
||||
|
@ -223,6 +248,7 @@ struct usb_config_descriptor {
|
|||
#define USB_CONFIG_ATT_ONE (1 << 7) /* must be set */
|
||||
#define USB_CONFIG_ATT_SELFPOWER (1 << 6) /* self powered */
|
||||
#define USB_CONFIG_ATT_WAKEUP (1 << 5) /* can wakeup */
|
||||
#define USB_CONFIG_ATT_BATTERY (1 << 4) /* battery powered */
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -289,6 +315,7 @@ struct usb_endpoint_descriptor {
|
|||
#define USB_ENDPOINT_XFER_ISOC 1
|
||||
#define USB_ENDPOINT_XFER_BULK 2
|
||||
#define USB_ENDPOINT_XFER_INT 3
|
||||
#define USB_ENDPOINT_MAX_ADJUSTABLE 0x80
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
@ -350,6 +377,147 @@ struct usb_interface_assoc_descriptor {
|
|||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_SECURITY: group of wireless security descriptors, including
|
||||
* encryption types available for setting up a CC/association.
|
||||
*/
|
||||
struct usb_security_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__le16 wTotalLength;
|
||||
__u8 bNumEncryptionTypes;
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_KEY: used with {GET,SET}_SECURITY_DATA; only public keys
|
||||
* may be retrieved.
|
||||
*/
|
||||
struct usb_key_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__u8 tTKID[3];
|
||||
__u8 bReserved;
|
||||
__u8 bKeyData[0];
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_ENCRYPTION_TYPE: bundled in DT_SECURITY groups */
|
||||
struct usb_encryption_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__u8 bEncryptionType;
|
||||
#define USB_ENC_TYPE_UNSECURE 0
|
||||
#define USB_ENC_TYPE_WIRED 1 /* non-wireless mode */
|
||||
#define USB_ENC_TYPE_CCM_1 2 /* aes128/cbc session */
|
||||
#define USB_ENC_TYPE_RSA_1 3 /* rsa3072/sha1 auth */
|
||||
__u8 bEncryptionValue; /* use in SET_ENCRYPTION */
|
||||
__u8 bAuthKeyIndex;
|
||||
};
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_BOS: group of wireless capabilities */
|
||||
struct usb_bos_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__le16 wTotalLength;
|
||||
__u8 bNumDeviceCaps;
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_DEVICE_CAPABILITY: grouped with BOS */
|
||||
struct usb_dev_cap_header {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType;
|
||||
};
|
||||
|
||||
#define USB_CAP_TYPE_WIRELESS_USB 1
|
||||
|
||||
struct usb_wireless_cap_descriptor { /* Ultra Wide Band */
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType;
|
||||
|
||||
__u8 bmAttributes;
|
||||
#define USB_WIRELESS_P2P_DRD (1 << 1)
|
||||
#define USB_WIRELESS_BEACON_MASK (3 << 2)
|
||||
#define USB_WIRELESS_BEACON_SELF (1 << 2)
|
||||
#define USB_WIRELESS_BEACON_DIRECTED (2 << 2)
|
||||
#define USB_WIRELESS_BEACON_NONE (3 << 2)
|
||||
__le16 wPHYRates; /* bit rates, Mbps */
|
||||
#define USB_WIRELESS_PHY_53 (1 << 0) /* always set */
|
||||
#define USB_WIRELESS_PHY_80 (1 << 1)
|
||||
#define USB_WIRELESS_PHY_107 (1 << 2) /* always set */
|
||||
#define USB_WIRELESS_PHY_160 (1 << 3)
|
||||
#define USB_WIRELESS_PHY_200 (1 << 4) /* always set */
|
||||
#define USB_WIRELESS_PHY_320 (1 << 5)
|
||||
#define USB_WIRELESS_PHY_400 (1 << 6)
|
||||
#define USB_WIRELESS_PHY_480 (1 << 7)
|
||||
__u8 bmTFITXPowerInfo; /* TFI power levels */
|
||||
__u8 bmFFITXPowerInfo; /* FFI power levels */
|
||||
__le16 bmBandGroup;
|
||||
__u8 bReserved;
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with
|
||||
* each endpoint descriptor for a wireless device
|
||||
*/
|
||||
struct usb_wireless_ep_comp_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
|
||||
__u8 bMaxBurst;
|
||||
__u8 bMaxSequence;
|
||||
__le16 wMaxStreamDelay;
|
||||
__le16 wOverTheAirPacketSize;
|
||||
__u8 bOverTheAirInterval;
|
||||
__u8 bmCompAttributes;
|
||||
#define USB_ENDPOINT_SWITCH_MASK 0x03 /* in bmCompAttributes */
|
||||
#define USB_ENDPOINT_SWITCH_NO 0
|
||||
#define USB_ENDPOINT_SWITCH_SWITCH 1
|
||||
#define USB_ENDPOINT_SWITCH_SCALE 2
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_REQ_SET_HANDSHAKE is a four-way handshake used between a wireless
|
||||
* host and a device for connection set up, mutual authentication, and
|
||||
* exchanging short lived session keys. The handshake depends on a CC.
|
||||
*/
|
||||
struct usb_handshake {
|
||||
__u8 bMessageNumber;
|
||||
__u8 bStatus;
|
||||
__u8 tTKID[3];
|
||||
__u8 bReserved;
|
||||
__u8 CDID[16];
|
||||
__u8 nonce[16];
|
||||
__u8 MIC[8];
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_REQ_SET_CONNECTION modifies or revokes a connection context (CC).
|
||||
* A CC may also be set up using non-wireless secure channels (including
|
||||
* wired USB!), and some devices may support CCs with multiple hosts.
|
||||
*/
|
||||
struct usb_connection_context {
|
||||
__u8 CHID[16]; /* persistent host id */
|
||||
__u8 CDID[16]; /* device id (unique w/in host context) */
|
||||
__u8 CK[16]; /* connection key */
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB 2.0 defines three speeds, here's how Linux identifies them */
|
||||
|
@ -357,7 +525,8 @@ struct usb_interface_assoc_descriptor {
|
|||
enum usb_device_speed {
|
||||
USB_SPEED_UNKNOWN = 0, /* enumerating */
|
||||
USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */
|
||||
USB_SPEED_HIGH /* usb 2.0 */
|
||||
USB_SPEED_HIGH, /* usb 2.0 */
|
||||
USB_SPEED_VARIABLE, /* wireless (usb 2.5) */
|
||||
};
|
||||
|
||||
enum usb_device_state {
|
||||
|
|
|
@ -711,7 +711,7 @@ usb_gadget_disconnect (struct usb_gadget *gadget)
|
|||
* the hardware level driver. Most calls must be handled by
|
||||
* the gadget driver, including descriptor and configuration
|
||||
* management. The 16 bit members of the setup data are in
|
||||
* cpu order. Called in_interrupt; this may not sleep. Driver
|
||||
* USB byte order. Called in_interrupt; this may not sleep. Driver
|
||||
* queues a response to ep0, or returns negative to stall.
|
||||
* @disconnect: Invoked after all transfers have been stopped,
|
||||
* when the host is disconnected. May be called in_interrupt; this
|
||||
|
|
47
include/linux/usb_isp116x.h
Normal file
47
include/linux/usb_isp116x.h
Normal file
|
@ -0,0 +1,47 @@
|
|||
|
||||
/*
|
||||
* Board initialization code should put one of these into dev->platform_data
|
||||
* and place the isp116x onto platform_bus.
|
||||
*/
|
||||
|
||||
struct isp116x_platform_data {
|
||||
/* Enable internal resistors on downstream ports */
|
||||
unsigned sel15Kres:1;
|
||||
/* Chip's internal clock won't be stopped in suspended state.
|
||||
Setting/unsetting this bit takes effect only if
|
||||
'remote_wakeup_enable' below is not set. */
|
||||
unsigned clknotstop:1;
|
||||
/* On-chip overcurrent protection */
|
||||
unsigned oc_enable:1;
|
||||
/* INT output polarity */
|
||||
unsigned int_act_high:1;
|
||||
/* INT edge or level triggered */
|
||||
unsigned int_edge_triggered:1;
|
||||
/* WAKEUP pin connected - NOT SUPPORTED */
|
||||
/* unsigned remote_wakeup_connected:1; */
|
||||
/* Wakeup by devices on usb bus enabled */
|
||||
unsigned remote_wakeup_enable:1;
|
||||
/* Switch or not to switch (keep always powered) */
|
||||
unsigned no_power_switching:1;
|
||||
/* Ganged port power switching (0) or individual port
|
||||
power switching (1) */
|
||||
unsigned power_switching_mode:1;
|
||||
/* Given port_power, msec/2 after power on till power good */
|
||||
u8 potpg;
|
||||
/* Hardware reset set/clear. If implemented, this function must:
|
||||
if set == 0, deassert chip's HW reset pin
|
||||
otherwise, assert chip's HW reset pin */
|
||||
void (*reset) (struct device * dev, int set);
|
||||
/* Hardware clock start/stop. If implemented, this function must:
|
||||
if start == 0, stop the external clock
|
||||
otherwise, start the external clock
|
||||
*/
|
||||
void (*clock) (struct device * dev, int start);
|
||||
/* Inter-io delay (ns). The chip is picky about access timings; it
|
||||
expects at least:
|
||||
150ns delay between consecutive accesses to DATA_REG,
|
||||
300ns delay between access to ADDR_REG and DATA_REG
|
||||
OE, WE MUST NOT be changed during these intervals
|
||||
*/
|
||||
void (*delay) (struct device * dev, int delay);
|
||||
};
|
|
@ -14,11 +14,13 @@ extern struct list_head inode_unused;
|
|||
* Yes, writeback.h requires sched.h
|
||||
* No, sched.h is not included from here.
|
||||
*/
|
||||
static inline int current_is_pdflush(void)
|
||||
static inline int task_is_pdflush(struct task_struct *task)
|
||||
{
|
||||
return current->flags & PF_FLUSHER;
|
||||
return task->flags & PF_FLUSHER;
|
||||
}
|
||||
|
||||
#define current_is_pdflush() task_is_pdflush(current)
|
||||
|
||||
/*
|
||||
* fs/fs-writeback.c
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue