mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 22:23:14 -04:00
Merge /spare/repo/linux-2.6/
This commit is contained in:
commit
617e44fdfd
82 changed files with 314 additions and 264 deletions
|
|
@ -443,22 +443,19 @@ __xchg_u64(volatile long *m, unsigned long val)
|
|||
if something tries to do an invalid xchg(). */
|
||||
extern void __xchg_called_with_bad_pointer(void);
|
||||
|
||||
static inline unsigned long
|
||||
__xchg(volatile void *ptr, unsigned long x, int size)
|
||||
{
|
||||
switch (size) {
|
||||
case 1:
|
||||
return __xchg_u8(ptr, x);
|
||||
case 2:
|
||||
return __xchg_u16(ptr, x);
|
||||
case 4:
|
||||
return __xchg_u32(ptr, x);
|
||||
case 8:
|
||||
return __xchg_u64(ptr, x);
|
||||
}
|
||||
__xchg_called_with_bad_pointer();
|
||||
return x;
|
||||
}
|
||||
#define __xchg(ptr, x, size) \
|
||||
({ \
|
||||
unsigned long __xchg__res; \
|
||||
volatile void *__xchg__ptr = (ptr); \
|
||||
switch (size) { \
|
||||
case 1: __xchg__res = __xchg_u8(__xchg__ptr, x); break; \
|
||||
case 2: __xchg__res = __xchg_u16(__xchg__ptr, x); break; \
|
||||
case 4: __xchg__res = __xchg_u32(__xchg__ptr, x); break; \
|
||||
case 8: __xchg__res = __xchg_u64(__xchg__ptr, x); break; \
|
||||
default: __xchg_called_with_bad_pointer(); __xchg__res = x; \
|
||||
} \
|
||||
__xchg__res; \
|
||||
})
|
||||
|
||||
#define xchg(ptr,x) \
|
||||
({ \
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@
|
|||
|
||||
/*
|
||||
* We use IXP425 General purpose timer for our timer needs, it runs at
|
||||
* 66.66... MHz
|
||||
* 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
|
||||
* timer register ignores the bottom 2 bits of the LATCH value.
|
||||
*/
|
||||
#define CLOCK_TICK_RATE (66666666)
|
||||
#define FREQ 66666666
|
||||
#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#ifdef CONFIG_BUG
|
||||
#ifdef CONFIG_DEBUG_BUGVERBOSE
|
||||
extern volatile void __bug(const char *file, int line, void *data);
|
||||
extern void __bug(const char *file, int line, void *data) __attribute__((noreturn));
|
||||
|
||||
/* give file/line information */
|
||||
#define BUG() __bug(__FILE__, __LINE__, NULL)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ extern struct processor {
|
|||
/*
|
||||
* Special stuff for a reset
|
||||
*/
|
||||
volatile void (*reset)(unsigned long addr);
|
||||
void (*reset)(unsigned long addr) __attribute__((noreturn));
|
||||
/*
|
||||
* Idle the processor
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -41,4 +41,4 @@ extern int cpu_do_idle(void);
|
|||
extern void cpu_dcache_clean_area(void *, int);
|
||||
extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
|
||||
extern void cpu_set_pte(pte_t *ptep, pte_t pte);
|
||||
extern volatile void cpu_reset(unsigned long addr);
|
||||
extern void cpu_reset(unsigned long addr) __attribute__((noreturn));
|
||||
|
|
|
|||
|
|
@ -120,14 +120,6 @@ static inline void ___ia64_mmiowb(void)
|
|||
ia64_mfa();
|
||||
}
|
||||
|
||||
static inline const unsigned long
|
||||
__ia64_get_io_port_base (void)
|
||||
{
|
||||
extern unsigned long ia64_iobase;
|
||||
|
||||
return ia64_iobase;
|
||||
}
|
||||
|
||||
static inline void*
|
||||
__ia64_mk_io_addr (unsigned long port)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -61,9 +61,7 @@ extern physid_mask_t phys_cpu_present_map;
|
|||
* Some lowlevel functions might want to know about
|
||||
* the real CPU ID <-> CPU # mapping.
|
||||
*/
|
||||
extern volatile int physid_2_cpu[NR_CPUS];
|
||||
extern volatile int cpu_2_physid[NR_CPUS];
|
||||
#define physid_to_cpu(physid) physid_2_cpu[physid]
|
||||
#define cpu_to_physid(cpu_id) cpu_2_physid[cpu_id]
|
||||
|
||||
#define raw_smp_processor_id() (current_thread_info()->cpu)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ static __inline__ void set_dec(unsigned int val)
|
|||
/* Accessor functions for the timebase (RTC on 601) registers. */
|
||||
/* If one day CONFIG_POWER is added just define __USE_RTC as 1 */
|
||||
#ifdef CONFIG_6xx
|
||||
extern __inline__ int const __USE_RTC(void) {
|
||||
extern __inline__ int __attribute_pure__ __USE_RTC(void) {
|
||||
return (mfspr(SPRN_PVR)>>16) == 1;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -149,11 +149,11 @@ struct exception_table_entry
|
|||
})
|
||||
#endif
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#define __put_user(x, ptr) \
|
||||
({ \
|
||||
__typeof__(*(ptr)) __x = (x); \
|
||||
int __pu_err; \
|
||||
__chk_user_ptr(ptr); \
|
||||
switch (sizeof (*(ptr))) { \
|
||||
case 1: \
|
||||
case 2: \
|
||||
|
|
@ -167,14 +167,6 @@ struct exception_table_entry
|
|||
} \
|
||||
__pu_err; \
|
||||
})
|
||||
#else
|
||||
#define __put_user(x, ptr) \
|
||||
({ \
|
||||
void __user *p; \
|
||||
p = (ptr); \
|
||||
0; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#define put_user(x, ptr) \
|
||||
({ \
|
||||
|
|
@ -213,11 +205,11 @@ extern int __put_user_bad(void) __attribute__((noreturn));
|
|||
})
|
||||
#endif
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#define __get_user(x, ptr) \
|
||||
({ \
|
||||
__typeof__(*(ptr)) __x; \
|
||||
int __gu_err; \
|
||||
__chk_user_ptr(ptr); \
|
||||
switch (sizeof(*(ptr))) { \
|
||||
case 1: \
|
||||
case 2: \
|
||||
|
|
@ -232,15 +224,6 @@ extern int __put_user_bad(void) __attribute__((noreturn));
|
|||
(x) = __x; \
|
||||
__gu_err; \
|
||||
})
|
||||
#else
|
||||
#define __get_user(x, ptr) \
|
||||
({ \
|
||||
void __user *p; \
|
||||
p = (ptr); \
|
||||
0; \
|
||||
})
|
||||
#endif
|
||||
|
||||
|
||||
#define get_user(x, ptr) \
|
||||
({ \
|
||||
|
|
|
|||
|
|
@ -139,11 +139,25 @@ enum {
|
|||
#define AX25_DEF_DS_TIMEOUT (3 * 60 * HZ) /* DAMA timeout 3 minutes */
|
||||
|
||||
typedef struct ax25_uid_assoc {
|
||||
struct ax25_uid_assoc *next;
|
||||
struct hlist_node uid_node;
|
||||
atomic_t refcount;
|
||||
uid_t uid;
|
||||
ax25_address call;
|
||||
} ax25_uid_assoc;
|
||||
|
||||
#define ax25_uid_for_each(__ax25, node, list) \
|
||||
hlist_for_each_entry(__ax25, node, list, uid_node)
|
||||
|
||||
#define ax25_uid_hold(ax25) \
|
||||
atomic_inc(&((ax25)->refcount))
|
||||
|
||||
static inline void ax25_uid_put(ax25_uid_assoc *assoc)
|
||||
{
|
||||
if (atomic_dec_and_test(&assoc->refcount)) {
|
||||
kfree(assoc);
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
ax25_address calls[AX25_MAX_DIGIS];
|
||||
unsigned char repeated[AX25_MAX_DIGIS];
|
||||
|
|
@ -376,7 +390,7 @@ extern unsigned long ax25_display_timer(struct timer_list *);
|
|||
|
||||
/* ax25_uid.c */
|
||||
extern int ax25_uid_policy;
|
||||
extern ax25_address *ax25_findbyuid(uid_t);
|
||||
extern ax25_uid_assoc *ax25_findbyuid(uid_t);
|
||||
extern int ax25_uid_ioctl(int, struct sockaddr_ax25 *);
|
||||
extern struct file_operations ax25_uid_fops;
|
||||
extern void ax25_uid_free(void);
|
||||
|
|
|
|||
|
|
@ -384,6 +384,11 @@ enum sock_flags {
|
|||
SOCK_QUEUE_SHRUNK, /* write queue has been shrunk recently */
|
||||
};
|
||||
|
||||
static inline void sock_copy_flags(struct sock *nsk, struct sock *osk)
|
||||
{
|
||||
nsk->sk_flags = osk->sk_flags;
|
||||
}
|
||||
|
||||
static inline void sock_set_flag(struct sock *sk, enum sock_flags flag)
|
||||
{
|
||||
__set_bit(flag, &sk->sk_flags);
|
||||
|
|
|
|||
|
|
@ -360,11 +360,13 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd);
|
|||
|
||||
/* isadma.c */
|
||||
|
||||
#ifdef CONFIG_ISA_DMA_API
|
||||
#define DMA_MODE_NO_ENABLE 0x0100
|
||||
|
||||
void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode);
|
||||
void snd_dma_disable(unsigned long dma);
|
||||
unsigned int snd_dma_pointer(unsigned long dma, unsigned int size);
|
||||
#endif
|
||||
|
||||
/* misc.c */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue