forked from Minki/linux
Merge branch 'linus' into perfcounters/core
Merge reason: Pick up the latest fixes before the -v8 perfcounters release. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
commit
75b5032212
@ -150,6 +150,11 @@ fan[1-*]_min Fan minimum value
|
||||
Unit: revolution/min (RPM)
|
||||
RW
|
||||
|
||||
fan[1-*]_max Fan maximum value
|
||||
Unit: revolution/min (RPM)
|
||||
Only rarely supported by the hardware.
|
||||
RW
|
||||
|
||||
fan[1-*]_input Fan input value.
|
||||
Unit: revolution/min (RPM)
|
||||
RO
|
||||
@ -390,6 +395,7 @@ OR
|
||||
in[0-*]_min_alarm
|
||||
in[0-*]_max_alarm
|
||||
fan[1-*]_min_alarm
|
||||
fan[1-*]_max_alarm
|
||||
temp[1-*]_min_alarm
|
||||
temp[1-*]_max_alarm
|
||||
temp[1-*]_crit_alarm
|
||||
|
11
MAINTAINERS
11
MAINTAINERS
@ -624,6 +624,7 @@ M: paulius.zaleckas@teltonika.lt
|
||||
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
|
||||
T: git git://gitorious.org/linux-gemini/mainline.git
|
||||
S: Maintained
|
||||
F: arch/arm/mach-gemini/
|
||||
|
||||
ARM/EBSA110 MACHINE SUPPORT
|
||||
P: Russell King
|
||||
@ -650,6 +651,7 @@ P: Paulius Zaleckas
|
||||
M: paulius.zaleckas@teltonika.lt
|
||||
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
|
||||
S: Maintained
|
||||
F: arch/arm/mm/*-fa*
|
||||
|
||||
ARM/FOOTBRIDGE ARCHITECTURE
|
||||
P: Russell King
|
||||
@ -1540,6 +1542,13 @@ W: http://www.fi.muni.cz/~kas/cosa/
|
||||
S: Maintained
|
||||
F: drivers/net/wan/cosa*
|
||||
|
||||
CPMAC ETHERNET DRIVER
|
||||
P: Florian Fainelli
|
||||
M: florian@openwrt.org
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/cpmac.c
|
||||
|
||||
CPU FREQUENCY DRIVERS
|
||||
P: Dave Jones
|
||||
M: davej@redhat.com
|
||||
@ -2249,7 +2258,7 @@ P: Li Yang
|
||||
M: leoli@freescale.com
|
||||
P: Zhang Wei
|
||||
M: zw@zh-kernel.org
|
||||
L: linuxppc-embedded@ozlabs.org
|
||||
L: linuxppc-dev@ozlabs.org
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/dma/fsldma.*
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 30
|
||||
EXTRAVERSION = -rc7
|
||||
EXTRAVERSION = -rc8
|
||||
NAME = Man-Eating Seals of Antiquity
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -114,3 +114,16 @@
|
||||
.align 3; \
|
||||
.long 9999b,9001f; \
|
||||
.previous
|
||||
|
||||
/*
|
||||
* SMP data memory barrier
|
||||
*/
|
||||
.macro smp_dmb
|
||||
#ifdef CONFIG_SMP
|
||||
#if __LINUX_ARM_ARCH__ >= 7
|
||||
dmb
|
||||
#elif __LINUX_ARM_ARCH__ == 6
|
||||
mcr p15, 0, r0, c7, c10, 5 @ dmb
|
||||
#endif
|
||||
#endif
|
||||
.endm
|
||||
|
@ -44,11 +44,29 @@ static inline void atomic_set(atomic_t *v, int i)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
static inline void atomic_add(int i, atomic_t *v)
|
||||
{
|
||||
unsigned long tmp;
|
||||
int result;
|
||||
|
||||
__asm__ __volatile__("@ atomic_add\n"
|
||||
"1: ldrex %0, [%2]\n"
|
||||
" add %0, %0, %3\n"
|
||||
" strex %1, %0, [%2]\n"
|
||||
" teq %1, #0\n"
|
||||
" bne 1b"
|
||||
: "=&r" (result), "=&r" (tmp)
|
||||
: "r" (&v->counter), "Ir" (i)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
static inline int atomic_add_return(int i, atomic_t *v)
|
||||
{
|
||||
unsigned long tmp;
|
||||
int result;
|
||||
|
||||
smp_mb();
|
||||
|
||||
__asm__ __volatile__("@ atomic_add_return\n"
|
||||
"1: ldrex %0, [%2]\n"
|
||||
" add %0, %0, %3\n"
|
||||
@ -59,14 +77,34 @@ static inline int atomic_add_return(int i, atomic_t *v)
|
||||
: "r" (&v->counter), "Ir" (i)
|
||||
: "cc");
|
||||
|
||||
smp_mb();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline void atomic_sub(int i, atomic_t *v)
|
||||
{
|
||||
unsigned long tmp;
|
||||
int result;
|
||||
|
||||
__asm__ __volatile__("@ atomic_sub\n"
|
||||
"1: ldrex %0, [%2]\n"
|
||||
" sub %0, %0, %3\n"
|
||||
" strex %1, %0, [%2]\n"
|
||||
" teq %1, #0\n"
|
||||
" bne 1b"
|
||||
: "=&r" (result), "=&r" (tmp)
|
||||
: "r" (&v->counter), "Ir" (i)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
static inline int atomic_sub_return(int i, atomic_t *v)
|
||||
{
|
||||
unsigned long tmp;
|
||||
int result;
|
||||
|
||||
smp_mb();
|
||||
|
||||
__asm__ __volatile__("@ atomic_sub_return\n"
|
||||
"1: ldrex %0, [%2]\n"
|
||||
" sub %0, %0, %3\n"
|
||||
@ -77,6 +115,8 @@ static inline int atomic_sub_return(int i, atomic_t *v)
|
||||
: "r" (&v->counter), "Ir" (i)
|
||||
: "cc");
|
||||
|
||||
smp_mb();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -84,6 +124,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
|
||||
{
|
||||
unsigned long oldval, res;
|
||||
|
||||
smp_mb();
|
||||
|
||||
do {
|
||||
__asm__ __volatile__("@ atomic_cmpxchg\n"
|
||||
"ldrex %1, [%2]\n"
|
||||
@ -95,6 +137,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
|
||||
: "cc");
|
||||
} while (res);
|
||||
|
||||
smp_mb();
|
||||
|
||||
return oldval;
|
||||
}
|
||||
|
||||
@ -135,6 +179,7 @@ static inline int atomic_add_return(int i, atomic_t *v)
|
||||
|
||||
return val;
|
||||
}
|
||||
#define atomic_add(i, v) (void) atomic_add_return(i, v)
|
||||
|
||||
static inline int atomic_sub_return(int i, atomic_t *v)
|
||||
{
|
||||
@ -148,6 +193,7 @@ static inline int atomic_sub_return(int i, atomic_t *v)
|
||||
|
||||
return val;
|
||||
}
|
||||
#define atomic_sub(i, v) (void) atomic_sub_return(i, v)
|
||||
|
||||
static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
|
||||
{
|
||||
@ -187,10 +233,8 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
}
|
||||
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
|
||||
|
||||
#define atomic_add(i, v) (void) atomic_add_return(i, v)
|
||||
#define atomic_inc(v) (void) atomic_add_return(1, v)
|
||||
#define atomic_sub(i, v) (void) atomic_sub_return(i, v)
|
||||
#define atomic_dec(v) (void) atomic_sub_return(1, v)
|
||||
#define atomic_inc(v) atomic_add(1, v)
|
||||
#define atomic_dec(v) atomic_sub(1, v)
|
||||
|
||||
#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
|
||||
#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
|
||||
@ -200,11 +244,10 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
|
||||
#define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0)
|
||||
|
||||
/* Atomic operations are already serializing on ARM */
|
||||
#define smp_mb__before_atomic_dec() barrier()
|
||||
#define smp_mb__after_atomic_dec() barrier()
|
||||
#define smp_mb__before_atomic_inc() barrier()
|
||||
#define smp_mb__after_atomic_inc() barrier()
|
||||
#define smp_mb__before_atomic_dec() smp_mb()
|
||||
#define smp_mb__after_atomic_dec() smp_mb()
|
||||
#define smp_mb__before_atomic_inc() smp_mb()
|
||||
#define smp_mb__after_atomic_inc() smp_mb()
|
||||
|
||||
#include <asm-generic/atomic.h>
|
||||
#endif
|
||||
|
@ -248,6 +248,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
|
||||
unsigned int tmp;
|
||||
#endif
|
||||
|
||||
smp_mb();
|
||||
|
||||
switch (size) {
|
||||
#if __LINUX_ARM_ARCH__ >= 6
|
||||
case 1:
|
||||
@ -307,6 +309,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
|
||||
__bad_xchg(ptr, size), ret = 0;
|
||||
break;
|
||||
}
|
||||
smp_mb();
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -316,6 +319,12 @@ extern void enable_hlt(void);
|
||||
|
||||
#include <asm-generic/cmpxchg-local.h>
|
||||
|
||||
#if __LINUX_ARM_ARCH__ < 6
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#error "SMP is not supported on this platform"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
|
||||
* them available.
|
||||
@ -329,6 +338,173 @@ extern void enable_hlt(void);
|
||||
#include <asm-generic/cmpxchg.h>
|
||||
#endif
|
||||
|
||||
#else /* __LINUX_ARM_ARCH__ >= 6 */
|
||||
|
||||
extern void __bad_cmpxchg(volatile void *ptr, int size);
|
||||
|
||||
/*
|
||||
* cmpxchg only support 32-bits operands on ARMv6.
|
||||
*/
|
||||
|
||||
static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
|
||||
unsigned long new, int size)
|
||||
{
|
||||
unsigned long oldval, res;
|
||||
|
||||
switch (size) {
|
||||
#ifdef CONFIG_CPU_32v6K
|
||||
case 1:
|
||||
do {
|
||||
asm volatile("@ __cmpxchg1\n"
|
||||
" ldrexb %1, [%2]\n"
|
||||
" mov %0, #0\n"
|
||||
" teq %1, %3\n"
|
||||
" strexbeq %0, %4, [%2]\n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
case 2:
|
||||
do {
|
||||
asm volatile("@ __cmpxchg1\n"
|
||||
" ldrexh %1, [%2]\n"
|
||||
" mov %0, #0\n"
|
||||
" teq %1, %3\n"
|
||||
" strexheq %0, %4, [%2]\n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
#endif /* CONFIG_CPU_32v6K */
|
||||
case 4:
|
||||
do {
|
||||
asm volatile("@ __cmpxchg4\n"
|
||||
" ldrex %1, [%2]\n"
|
||||
" mov %0, #0\n"
|
||||
" teq %1, %3\n"
|
||||
" strexeq %0, %4, [%2]\n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
default:
|
||||
__bad_cmpxchg(ptr, size);
|
||||
oldval = 0;
|
||||
}
|
||||
|
||||
return oldval;
|
||||
}
|
||||
|
||||
static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
|
||||
unsigned long new, int size)
|
||||
{
|
||||
unsigned long ret;
|
||||
|
||||
smp_mb();
|
||||
ret = __cmpxchg(ptr, old, new, size);
|
||||
smp_mb();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define cmpxchg(ptr,o,n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg_mb((ptr), \
|
||||
(unsigned long)(o), \
|
||||
(unsigned long)(n), \
|
||||
sizeof(*(ptr))))
|
||||
|
||||
static inline unsigned long __cmpxchg_local(volatile void *ptr,
|
||||
unsigned long old,
|
||||
unsigned long new, int size)
|
||||
{
|
||||
unsigned long ret;
|
||||
|
||||
switch (size) {
|
||||
#ifndef CONFIG_CPU_32v6K
|
||||
case 1:
|
||||
case 2:
|
||||
ret = __cmpxchg_local_generic(ptr, old, new, size);
|
||||
break;
|
||||
#endif /* !CONFIG_CPU_32v6K */
|
||||
default:
|
||||
ret = __cmpxchg(ptr, old, new, size);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define cmpxchg_local(ptr,o,n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg_local((ptr), \
|
||||
(unsigned long)(o), \
|
||||
(unsigned long)(n), \
|
||||
sizeof(*(ptr))))
|
||||
|
||||
#ifdef CONFIG_CPU_32v6K
|
||||
|
||||
/*
|
||||
* Note : ARMv7-M (currently unsupported by Linux) does not support
|
||||
* ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should
|
||||
* not be allowed to use __cmpxchg64.
|
||||
*/
|
||||
static inline unsigned long long __cmpxchg64(volatile void *ptr,
|
||||
unsigned long long old,
|
||||
unsigned long long new)
|
||||
{
|
||||
register unsigned long long oldval asm("r0");
|
||||
register unsigned long long __old asm("r2") = old;
|
||||
register unsigned long long __new asm("r4") = new;
|
||||
unsigned long res;
|
||||
|
||||
do {
|
||||
asm volatile(
|
||||
" @ __cmpxchg8\n"
|
||||
" ldrexd %1, %H1, [%2]\n"
|
||||
" mov %0, #0\n"
|
||||
" teq %1, %3\n"
|
||||
" teqeq %H1, %H3\n"
|
||||
" strexdeq %0, %4, %H4, [%2]\n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (__old), "r" (__new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
|
||||
return oldval;
|
||||
}
|
||||
|
||||
static inline unsigned long long __cmpxchg64_mb(volatile void *ptr,
|
||||
unsigned long long old,
|
||||
unsigned long long new)
|
||||
{
|
||||
unsigned long long ret;
|
||||
|
||||
smp_mb();
|
||||
ret = __cmpxchg64(ptr, old, new);
|
||||
smp_mb();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define cmpxchg64(ptr,o,n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg64_mb((ptr), \
|
||||
(unsigned long long)(o), \
|
||||
(unsigned long long)(n)))
|
||||
|
||||
#define cmpxchg64_local(ptr,o,n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg64((ptr), \
|
||||
(unsigned long long)(o), \
|
||||
(unsigned long long)(n)))
|
||||
|
||||
#else /* !CONFIG_CPU_32v6K */
|
||||
|
||||
#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
|
||||
|
||||
#endif /* CONFIG_CPU_32v6K */
|
||||
|
||||
#endif /* __LINUX_ARM_ARCH__ >= 6 */
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#define arch_align_stack(x) (x)
|
||||
|
@ -78,6 +78,15 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
|
||||
return 1;
|
||||
if (cpu_architecture() < CPU_ARCH_ARMv6)
|
||||
return 1;
|
||||
#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
|
||||
/*
|
||||
* If we have support for OABI programs, we can never allow NX
|
||||
* support - our signal syscall restart mechanism relies upon
|
||||
* being able to execute code placed on the user stack.
|
||||
*/
|
||||
return 1;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL(arm_elf_read_implies_exec);
|
||||
|
@ -815,10 +815,7 @@ __kuser_helper_start:
|
||||
*/
|
||||
|
||||
__kuser_memory_barrier: @ 0xffff0fa0
|
||||
|
||||
#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_SMP)
|
||||
mcr p15, 0, r0, c7, c10, 5 @ dmb
|
||||
#endif
|
||||
smp_dmb
|
||||
usr_ret lr
|
||||
|
||||
.align 5
|
||||
|
@ -18,12 +18,14 @@
|
||||
mov r2, #1
|
||||
add r1, r1, r0, lsr #3 @ Get byte offset
|
||||
mov r3, r2, lsl r3 @ create mask
|
||||
smp_dmb
|
||||
1: ldrexb r2, [r1]
|
||||
ands r0, r2, r3 @ save old value of bit
|
||||
\instr r2, r2, r3 @ toggle bit
|
||||
strexb ip, r2, [r1]
|
||||
cmp ip, #0
|
||||
bne 1b
|
||||
smp_dmb
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
2: mov pc, lr
|
||||
|
@ -15,10 +15,9 @@
|
||||
/*
|
||||
* Memory Map definitions
|
||||
*/
|
||||
/* FIXME: Does it really swap SRAM like this? */
|
||||
#ifdef CONFIG_GEMINI_MEM_SWAP
|
||||
# define GEMINI_DRAM_BASE 0x00000000
|
||||
# define GEMINI_SRAM_BASE 0x20000000
|
||||
# define GEMINI_SRAM_BASE 0x70000000
|
||||
#else
|
||||
# define GEMINI_SRAM_BASE 0x00000000
|
||||
# define GEMINI_DRAM_BASE 0x10000000
|
||||
|
@ -144,6 +144,9 @@ static struct platform_device kirkwood_ge00 = {
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = kirkwood_ge00_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -202,6 +205,9 @@ static struct platform_device kirkwood_ge01 = {
|
||||
.id = 1,
|
||||
.num_resources = 1,
|
||||
.resource = kirkwood_ge01_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -386,12 +392,10 @@ static struct mv64xxx_i2c_pdata kirkwood_i2c_pdata = {
|
||||
|
||||
static struct resource kirkwood_i2c_resources[] = {
|
||||
{
|
||||
.name = "i2c",
|
||||
.start = I2C_PHYS_BASE,
|
||||
.end = I2C_PHYS_BASE + 0x1f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "i2c",
|
||||
.start = IRQ_KIRKWOOD_TWSI,
|
||||
.end = IRQ_KIRKWOOD_TWSI,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
|
@ -142,6 +142,8 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
|
||||
MPP1_SPI_MOSI,
|
||||
MPP2_SPI_SCK,
|
||||
MPP3_SPI_MISO,
|
||||
MPP4_SATA1_ACTn,
|
||||
MPP5_SATA0_ACTn,
|
||||
MPP8_TW_SDA,
|
||||
MPP9_TW_SCK,
|
||||
MPP10_UART0_TXD,
|
||||
@ -150,10 +152,6 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
|
||||
MPP14_UART1_RXD, /* PIC controller */
|
||||
MPP15_GPIO, /* USB Copy button */
|
||||
MPP16_GPIO, /* Reset button */
|
||||
MPP20_SATA1_ACTn,
|
||||
MPP21_SATA0_ACTn,
|
||||
MPP22_SATA1_PRESENTn,
|
||||
MPP23_SATA0_PRESENTn,
|
||||
0
|
||||
};
|
||||
|
||||
|
@ -82,6 +82,9 @@ static struct platform_device loki_ge0 = {
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = loki_ge0_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init loki_ge0_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -136,6 +139,9 @@ static struct platform_device loki_ge1 = {
|
||||
.id = 1,
|
||||
.num_resources = 1,
|
||||
.resource = loki_ge1_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init loki_ge1_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
|
@ -3,6 +3,11 @@
|
||||
|
||||
#include <mach/mfp.h>
|
||||
|
||||
#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
|
||||
#define MFP_DRIVE_SLOW (0x1 << 13)
|
||||
#define MFP_DRIVE_MEDIUM (0x2 << 13)
|
||||
#define MFP_DRIVE_FAST (0x3 << 13)
|
||||
|
||||
/* GPIO */
|
||||
#define GPIO0_GPIO MFP_CFG(GPIO0, AF5)
|
||||
#define GPIO1_GPIO MFP_CFG(GPIO1, AF5)
|
||||
|
@ -3,6 +3,11 @@
|
||||
|
||||
#include <mach/mfp.h>
|
||||
|
||||
#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
|
||||
#define MFP_DRIVE_SLOW (0x2 << 13)
|
||||
#define MFP_DRIVE_MEDIUM (0x4 << 13)
|
||||
#define MFP_DRIVE_FAST (0x8 << 13)
|
||||
|
||||
/* UART2 */
|
||||
#define GPIO47_UART2_RXD MFP_CFG(GPIO47, AF6)
|
||||
#define GPIO48_UART2_TXD MFP_CFG(GPIO48, AF6)
|
||||
|
@ -12,16 +12,13 @@
|
||||
* possible, we make the following compromise:
|
||||
*
|
||||
* 1. SLEEP_OE_N will always be programmed to '1' (by MFP_LPM_FLOAT)
|
||||
* 2. DRIVE strength definitions redefined to include the reserved bit10
|
||||
* 2. DRIVE strength definitions redefined to include the reserved bit
|
||||
* - the reserved bit differs between pxa168 and pxa910, and the
|
||||
* MFP_DRIVE_* macros are individually defined in mfp-pxa{168,910}.h
|
||||
* 3. Override MFP_CFG() and MFP_CFG_DRV()
|
||||
* 4. Drop the use of MFP_CFG_LPM() and MFP_CFG_X()
|
||||
*/
|
||||
|
||||
#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
|
||||
#define MFP_DRIVE_SLOW (0x2 << 13)
|
||||
#define MFP_DRIVE_MEDIUM (0x4 << 13)
|
||||
#define MFP_DRIVE_FAST (0x8 << 13)
|
||||
|
||||
#undef MFP_CFG
|
||||
#undef MFP_CFG_DRV
|
||||
#undef MFP_CFG_LPM
|
||||
|
@ -136,7 +136,7 @@ static struct clock_event_device ckevt = {
|
||||
.set_mode = timer_set_mode,
|
||||
};
|
||||
|
||||
static cycle_t clksrc_read(void)
|
||||
static cycle_t clksrc_read(struct clocksource *cs)
|
||||
{
|
||||
return timer_read();
|
||||
}
|
||||
|
@ -321,6 +321,9 @@ static struct platform_device mv78xx0_ge00 = {
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = mv78xx0_ge00_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -375,6 +378,9 @@ static struct platform_device mv78xx0_ge01 = {
|
||||
.id = 1,
|
||||
.num_resources = 1,
|
||||
.resource = mv78xx0_ge01_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -429,6 +435,9 @@ static struct platform_device mv78xx0_ge10 = {
|
||||
.id = 2,
|
||||
.num_resources = 1,
|
||||
.resource = mv78xx0_ge10_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -496,6 +505,9 @@ static struct platform_device mv78xx0_ge11 = {
|
||||
.id = 3,
|
||||
.num_resources = 1,
|
||||
.resource = mv78xx0_ge11_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -532,12 +544,10 @@ static struct mv64xxx_i2c_pdata mv78xx0_i2c_0_pdata = {
|
||||
|
||||
static struct resource mv78xx0_i2c_0_resources[] = {
|
||||
{
|
||||
.name = "i2c 0 base",
|
||||
.start = I2C_0_PHYS_BASE,
|
||||
.end = I2C_0_PHYS_BASE + 0x1f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "i2c 0 irq",
|
||||
.start = IRQ_MV78XX0_I2C_0,
|
||||
.end = IRQ_MV78XX0_I2C_0,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
@ -567,12 +577,10 @@ static struct mv64xxx_i2c_pdata mv78xx0_i2c_1_pdata = {
|
||||
|
||||
static struct resource mv78xx0_i2c_1_resources[] = {
|
||||
{
|
||||
.name = "i2c 1 base",
|
||||
.start = I2C_1_PHYS_BASE,
|
||||
.end = I2C_1_PHYS_BASE + 0x1f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "i2c 1 irq",
|
||||
.start = IRQ_MV78XX0_I2C_1,
|
||||
.end = IRQ_MV78XX0_I2C_1,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
|
@ -188,6 +188,9 @@ static struct platform_device orion5x_eth = {
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = orion5x_eth_resources,
|
||||
.dev = {
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
};
|
||||
|
||||
void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data)
|
||||
@ -248,12 +251,10 @@ static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = {
|
||||
|
||||
static struct resource orion5x_i2c_resources[] = {
|
||||
{
|
||||
.name = "i2c base",
|
||||
.start = I2C_PHYS_BASE,
|
||||
.end = I2C_PHYS_BASE + 0x1f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "i2c irq",
|
||||
.start = IRQ_ORION5X_I2C,
|
||||
.end = IRQ_ORION5X_I2C,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
|
@ -111,9 +111,9 @@ static unsigned long ezx_pin_config[] __initdata = {
|
||||
GPIO25_SSP1_TXD,
|
||||
GPIO26_SSP1_RXD,
|
||||
GPIO24_GPIO, /* pcap chip select */
|
||||
GPIO1_GPIO, /* pcap interrupt */
|
||||
GPIO4_GPIO, /* WDI_AP */
|
||||
GPIO55_GPIO, /* SYS_RESTART */
|
||||
GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, /* pcap interrupt */
|
||||
GPIO4_GPIO | MFP_LPM_DRIVE_HIGH, /* WDI_AP */
|
||||
GPIO55_GPIO | MFP_LPM_DRIVE_HIGH, /* SYS_RESTART */
|
||||
|
||||
/* MMC */
|
||||
GPIO32_MMC_CLK,
|
||||
@ -144,20 +144,20 @@ static unsigned long ezx_pin_config[] __initdata = {
|
||||
#if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_E680)
|
||||
static unsigned long gen1_pin_config[] __initdata = {
|
||||
/* flip / lockswitch */
|
||||
GPIO12_GPIO,
|
||||
GPIO12_GPIO | WAKEUP_ON_EDGE_BOTH,
|
||||
|
||||
/* bluetooth (bcm2035) */
|
||||
GPIO14_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */
|
||||
GPIO14_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */
|
||||
GPIO48_GPIO, /* RESET */
|
||||
GPIO28_GPIO, /* WAKEUP */
|
||||
|
||||
/* Neptune handshake */
|
||||
GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */
|
||||
GPIO57_GPIO, /* AP_RDY */
|
||||
GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */
|
||||
GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI2 */
|
||||
GPIO82_GPIO, /* RESET */
|
||||
GPIO99_GPIO, /* TC_MM_EN */
|
||||
GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */
|
||||
GPIO57_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */
|
||||
GPIO13_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI */
|
||||
GPIO3_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI2 */
|
||||
GPIO82_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */
|
||||
GPIO99_GPIO | MFP_LPM_DRIVE_HIGH, /* TC_MM_EN */
|
||||
|
||||
/* sound */
|
||||
GPIO52_SSP3_SCLK,
|
||||
@ -199,21 +199,21 @@ static unsigned long gen1_pin_config[] __initdata = {
|
||||
defined(CONFIG_MACH_EZX_E2) || defined(CONFIG_MACH_EZX_E6)
|
||||
static unsigned long gen2_pin_config[] __initdata = {
|
||||
/* flip / lockswitch */
|
||||
GPIO15_GPIO,
|
||||
GPIO15_GPIO | WAKEUP_ON_EDGE_BOTH,
|
||||
|
||||
/* EOC */
|
||||
GPIO10_GPIO,
|
||||
GPIO10_GPIO | WAKEUP_ON_EDGE_RISE,
|
||||
|
||||
/* bluetooth (bcm2045) */
|
||||
GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */
|
||||
GPIO13_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */
|
||||
GPIO37_GPIO, /* RESET */
|
||||
GPIO57_GPIO, /* WAKEUP */
|
||||
|
||||
/* Neptune handshake */
|
||||
GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */
|
||||
GPIO96_GPIO, /* AP_RDY */
|
||||
GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */
|
||||
GPIO116_GPIO, /* RESET */
|
||||
GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */
|
||||
GPIO96_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */
|
||||
GPIO3_GPIO | WAKEUP_ON_EDGE_FALL, /* WDI */
|
||||
GPIO116_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */
|
||||
GPIO41_GPIO, /* BP_FLASH */
|
||||
|
||||
/* sound */
|
||||
|
@ -13,8 +13,9 @@ extern void clear_reset_status(unsigned int mask);
|
||||
/**
|
||||
* init_gpio_reset() - register GPIO as reset generator
|
||||
* @gpio: gpio nr
|
||||
* @output: set gpio as out/low instead of input during normal work
|
||||
* @output: set gpio as output instead of input during normal work
|
||||
* @level: output level
|
||||
*/
|
||||
extern int init_gpio_reset(int gpio, int output);
|
||||
extern int init_gpio_reset(int gpio, int output, int level);
|
||||
|
||||
#endif /* __ASM_ARCH_RESET_H */
|
||||
|
@ -322,6 +322,7 @@ static inline void pxa27x_mfp_init(void) {}
|
||||
#ifdef CONFIG_PM
|
||||
static unsigned long saved_gafr[2][4];
|
||||
static unsigned long saved_gpdr[4];
|
||||
static unsigned long saved_pgsr[4];
|
||||
|
||||
static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
|
||||
{
|
||||
@ -332,6 +333,7 @@ static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
|
||||
saved_gafr[0][i] = GAFR_L(i);
|
||||
saved_gafr[1][i] = GAFR_U(i);
|
||||
saved_gpdr[i] = GPDR(i * 32);
|
||||
saved_pgsr[i] = PGSR(i);
|
||||
|
||||
GPDR(i * 32) = gpdr_lpm[i];
|
||||
}
|
||||
@ -346,6 +348,7 @@ static int pxa2xx_mfp_resume(struct sys_device *d)
|
||||
GAFR_L(i) = saved_gafr[0][i];
|
||||
GAFR_U(i) = saved_gafr[1][i];
|
||||
GPDR(i * 32) = saved_gpdr[i];
|
||||
PGSR(i) = saved_pgsr[i];
|
||||
}
|
||||
PSSR = PSSR_RDH | PSSR_PH;
|
||||
return 0;
|
||||
@ -374,6 +377,9 @@ static int __init pxa2xx_mfp_init(void)
|
||||
if (cpu_is_pxa27x())
|
||||
pxa27x_mfp_init();
|
||||
|
||||
/* clear RDH bit to enable GPIO receivers after reset/sleep exit */
|
||||
PSSR = PSSR_RDH;
|
||||
|
||||
/* initialize gafr_run[], pgsr_lpm[] from existing values */
|
||||
for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++)
|
||||
gpdr_lpm[i] = GPDR(i * 32);
|
||||
|
@ -62,6 +62,8 @@ static unsigned long palmld_pin_config[] __initdata = {
|
||||
GPIO29_AC97_SDATA_IN_0,
|
||||
GPIO30_AC97_SDATA_OUT,
|
||||
GPIO31_AC97_SYNC,
|
||||
GPIO89_AC97_SYSCLK,
|
||||
GPIO95_AC97_nRESET,
|
||||
|
||||
/* IrDA */
|
||||
GPIO108_GPIO, /* ir disable */
|
||||
|
@ -64,6 +64,7 @@ static unsigned long palmt5_pin_config[] __initdata = {
|
||||
GPIO29_AC97_SDATA_IN_0,
|
||||
GPIO30_AC97_SDATA_OUT,
|
||||
GPIO31_AC97_SYNC,
|
||||
GPIO89_AC97_SYSCLK,
|
||||
GPIO95_AC97_nRESET,
|
||||
|
||||
/* IrDA */
|
||||
|
@ -65,6 +65,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
||||
GPIO29_AC97_SDATA_IN_0,
|
||||
GPIO30_AC97_SDATA_OUT,
|
||||
GPIO31_AC97_SYNC,
|
||||
GPIO89_AC97_SYSCLK,
|
||||
GPIO95_AC97_nRESET,
|
||||
|
||||
/* IrDA */
|
||||
|
@ -20,7 +20,7 @@ static void do_hw_reset(void);
|
||||
|
||||
static int reset_gpio = -1;
|
||||
|
||||
int init_gpio_reset(int gpio, int output)
|
||||
int init_gpio_reset(int gpio, int output, int level)
|
||||
{
|
||||
int rc;
|
||||
|
||||
@ -31,7 +31,7 @@ int init_gpio_reset(int gpio, int output)
|
||||
}
|
||||
|
||||
if (output)
|
||||
rc = gpio_direction_output(gpio, 0);
|
||||
rc = gpio_direction_output(gpio, level);
|
||||
else
|
||||
rc = gpio_direction_input(gpio);
|
||||
if (rc) {
|
||||
|
@ -531,9 +531,15 @@ static int spitz_ohci_init(struct device *dev)
|
||||
return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1);
|
||||
}
|
||||
|
||||
static void spitz_ohci_exit(struct device *dev)
|
||||
{
|
||||
gpio_free(SPITZ_GPIO_USB_HOST);
|
||||
}
|
||||
|
||||
static struct pxaohci_platform_data spitz_ohci_platform_data = {
|
||||
.port_mode = PMM_NPS_MODE,
|
||||
.init = spitz_ohci_init,
|
||||
.exit = spitz_ohci_exit,
|
||||
.flags = ENABLE_PORT_ALL | NO_OC_PROTECTION,
|
||||
.power_budget = 150,
|
||||
};
|
||||
@ -731,7 +737,7 @@ static void spitz_restart(char mode, const char *cmd)
|
||||
|
||||
static void __init common_init(void)
|
||||
{
|
||||
init_gpio_reset(SPITZ_GPIO_ON_RESET, 1);
|
||||
init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0);
|
||||
pm_power_off = spitz_poweroff;
|
||||
arm_pm_restart = spitz_restart;
|
||||
|
||||
|
@ -897,7 +897,7 @@ static void __init tosa_init(void)
|
||||
gpio_set_wake(MFP_PIN_GPIO1, 1);
|
||||
/* We can't pass to gpio-keys since it will drop the Reset altfunc */
|
||||
|
||||
init_gpio_reset(TOSA_GPIO_ON_RESET, 0);
|
||||
init_gpio_reset(TOSA_GPIO_ON_RESET, 0, 0);
|
||||
|
||||
pm_power_off = tosa_poweroff;
|
||||
arm_pm_restart = tosa_restart;
|
||||
|
@ -12,7 +12,7 @@
|
||||
#
|
||||
# http://www.arm.linux.org.uk/developer/machines/?action=new
|
||||
#
|
||||
# Last update: Mon Mar 23 20:09:01 2009
|
||||
# Last update: Fri May 29 10:14:20 2009
|
||||
#
|
||||
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
|
||||
#
|
||||
@ -916,7 +916,7 @@ nxdb500 MACH_NXDB500 NXDB500 905
|
||||
apf9328 MACH_APF9328 APF9328 906
|
||||
omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907
|
||||
omap_twip MACH_OMAP_TWIP OMAP_TWIP 908
|
||||
palmt650 MACH_PALMT650 PALMT650 909
|
||||
treo650 MACH_TREO650 TREO650 909
|
||||
acumen MACH_ACUMEN ACUMEN 910
|
||||
xp100 MACH_XP100 XP100 911
|
||||
fs2410 MACH_FS2410 FS2410 912
|
||||
@ -1232,7 +1232,7 @@ ql202b MACH_QL202B QL202B 1226
|
||||
vpac270 MACH_VPAC270 VPAC270 1227
|
||||
rd129 MACH_RD129 RD129 1228
|
||||
htcwizard MACH_HTCWIZARD HTCWIZARD 1229
|
||||
xscale_treo680 MACH_XSCALE_TREO680 XSCALE_TREO680 1230
|
||||
treo680 MACH_TREO680 TREO680 1230
|
||||
tecon_tmezon MACH_TECON_TMEZON TECON_TMEZON 1231
|
||||
zylonite MACH_ZYLONITE ZYLONITE 1233
|
||||
gene1270 MACH_GENE1270 GENE1270 1234
|
||||
@ -1418,10 +1418,10 @@ looxc550 MACH_LOOXC550 LOOXC550 1417
|
||||
cnty_titan MACH_CNTY_TITAN CNTY_TITAN 1418
|
||||
app3xx MACH_APP3XX APP3XX 1419
|
||||
sideoatsgrama MACH_SIDEOATSGRAMA SIDEOATSGRAMA 1420
|
||||
palmtreo700p MACH_PALMTREO700P PALMTREO700P 1421
|
||||
palmtreo700w MACH_PALMTREO700W PALMTREO700W 1422
|
||||
palmtreo750 MACH_PALMTREO750 PALMTREO750 1423
|
||||
palmtreo755p MACH_PALMTREO755P PALMTREO755P 1424
|
||||
treo700p MACH_TREO700P TREO700P 1421
|
||||
treo700w MACH_TREO700W TREO700W 1422
|
||||
treo750 MACH_TREO750 TREO750 1423
|
||||
treo755p MACH_TREO755P TREO755P 1424
|
||||
ezreganut9200 MACH_EZREGANUT9200 EZREGANUT9200 1425
|
||||
sarge MACH_SARGE SARGE 1426
|
||||
a696 MACH_A696 A696 1427
|
||||
@ -1721,7 +1721,7 @@ sapphire MACH_SAPPHIRE SAPPHIRE 1729
|
||||
csb637xo MACH_CSB637XO CSB637XO 1730
|
||||
evisiong MACH_EVISIONG EVISIONG 1731
|
||||
stmp37xx MACH_STMP37XX STMP37XX 1732
|
||||
stmp378x MACH_STMP38XX STMP38XX 1733
|
||||
stmp378x MACH_STMP378X STMP378X 1733
|
||||
tnt MACH_TNT TNT 1734
|
||||
tbxt MACH_TBXT TBXT 1735
|
||||
playmate MACH_PLAYMATE PLAYMATE 1736
|
||||
@ -1817,7 +1817,7 @@ smdkc100 MACH_SMDKC100 SMDKC100 1826
|
||||
tavorevb MACH_TAVOREVB TAVOREVB 1827
|
||||
saar MACH_SAAR SAAR 1828
|
||||
deister_eyecam MACH_DEISTER_EYECAM DEISTER_EYECAM 1829
|
||||
at91sam9m10ek MACH_AT91SAM9M10EK AT91SAM9M10EK 1830
|
||||
at91sam9m10g45ek MACH_AT91SAM9M10G45EK AT91SAM9M10G45EK 1830
|
||||
linkstation_produo MACH_LINKSTATION_PRODUO LINKSTATION_PRODUO 1831
|
||||
hit_b0 MACH_HIT_B0 HIT_B0 1832
|
||||
adx_rmu MACH_ADX_RMU ADX_RMU 1833
|
||||
@ -2132,3 +2132,116 @@ apollo MACH_APOLLO APOLLO 2141
|
||||
at91cap9stk MACH_AT91CAP9STK AT91CAP9STK 2142
|
||||
spc300 MACH_SPC300 SPC300 2143
|
||||
eko MACH_EKO EKO 2144
|
||||
ccw9m2443 MACH_CCW9M2443 CCW9M2443 2145
|
||||
ccw9m2443js MACH_CCW9M2443JS CCW9M2443JS 2146
|
||||
m2m_router_device MACH_M2M_ROUTER_DEVICE M2M_ROUTER_DEVICE 2147
|
||||
str9104nas MACH_STAR9104NAS STAR9104NAS 2148
|
||||
pca100 MACH_PCA100 PCA100 2149
|
||||
z3_dm365_mod_01 MACH_Z3_DM365_MOD_01 Z3_DM365_MOD_01 2150
|
||||
hipox MACH_HIPOX HIPOX 2151
|
||||
omap3_piteds MACH_OMAP3_PITEDS OMAP3_PITEDS 2152
|
||||
bm150r MACH_BM150R BM150R 2153
|
||||
tbone MACH_TBONE TBONE 2154
|
||||
merlin MACH_MERLIN MERLIN 2155
|
||||
falcon MACH_FALCON FALCON 2156
|
||||
davinci_da850_evm MACH_DAVINCI_DA850_EVM DAVINCI_DA850_EVM 2157
|
||||
s5p6440 MACH_S5P6440 S5P6440 2158
|
||||
at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159
|
||||
omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160
|
||||
lpc313x MACH_LPC313X LPC313X 2161
|
||||
magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162
|
||||
magx_em30 MACH_MAGX_EM30 MAGX_EM30 2163
|
||||
magx_ve66 MACH_MAGX_VE66 MAGX_VE66 2164
|
||||
meesc MACH_MEESC MEESC 2165
|
||||
otc570 MACH_OTC570 OTC570 2166
|
||||
bcu2412 MACH_BCU2412 BCU2412 2167
|
||||
beacon MACH_BEACON BEACON 2168
|
||||
actia_tgw MACH_ACTIA_TGW ACTIA_TGW 2169
|
||||
e4430 MACH_E4430 E4430 2170
|
||||
ql300 MACH_QL300 QL300 2171
|
||||
btmavb101 MACH_BTMAVB101 BTMAVB101 2172
|
||||
btmawb101 MACH_BTMAWB101 BTMAWB101 2173
|
||||
sq201 MACH_SQ201 SQ201 2174
|
||||
quatro45xx MACH_QUATRO45XX QUATRO45XX 2175
|
||||
openpad MACH_OPENPAD OPENPAD 2176
|
||||
tx25 MACH_TX25 TX25 2177
|
||||
omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178
|
||||
htcraphael_k MACH_HTCRAPHAEL_K HTCRAPHAEL_K 2179
|
||||
lal43 MACH_LAL43 LAL43 2181
|
||||
htcraphael_cdma500 MACH_HTCRAPHAEL_CDMA500 HTCRAPHAEL_CDMA500 2182
|
||||
anw6410 MACH_ANW6410 ANW6410 2183
|
||||
htcprophet MACH_HTCPROPHET HTCPROPHET 2185
|
||||
cfa_10022 MACH_CFA_10022 CFA_10022 2186
|
||||
imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187
|
||||
px2imx27 MACH_PX2IMX27 PX2IMX27 2188
|
||||
stm3210e_eval MACH_STM3210E_EVAL STM3210E_EVAL 2189
|
||||
dvs10 MACH_DVS10 DVS10 2190
|
||||
portuxg20 MACH_PORTUXG20 PORTUXG20 2191
|
||||
arm_spv MACH_ARM_SPV ARM_SPV 2192
|
||||
smdkc110 MACH_SMDKC110 SMDKC110 2193
|
||||
cabespresso MACH_CABESPRESSO CABESPRESSO 2194
|
||||
hmc800 MACH_HMC800 HMC800 2195
|
||||
sholes MACH_SHOLES SHOLES 2196
|
||||
btmxc31 MACH_BTMXC31 BTMXC31 2197
|
||||
dt501 MACH_DT501 DT501 2198
|
||||
ktx MACH_KTX KTX 2199
|
||||
omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200
|
||||
netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201
|
||||
netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202
|
||||
d2net_v2 MACH_D2NET_V2 D2NET_V2 2203
|
||||
net2big_v2 MACH_NET2BIG_V2 NET2BIG_V2 2204
|
||||
net4big_v2 MACH_NET4BIG_V2 NET4BIG_V2 2205
|
||||
net5big_v2 MACH_NET5BIG_V2 NET5BIG_V2 2206
|
||||
endb2443 MACH_ENDB2443 ENDB2443 2207
|
||||
inetspace_v2 MACH_INETSPACE_V2 INETSPACE_V2 2208
|
||||
tros MACH_TROS TROS 2209
|
||||
pelco_homer MACH_PELCO_HOMER PELCO_HOMER 2210
|
||||
ofsp8 MACH_OFSP8 OFSP8 2211
|
||||
at91sam9g45ekes MACH_AT91SAM9G45EKES AT91SAM9G45EKES 2212
|
||||
guf_cupid MACH_GUF_CUPID GUF_CUPID 2213
|
||||
eab1r MACH_EAB1R EAB1R 2214
|
||||
desirec MACH_DESIREC DESIREC 2215
|
||||
cordoba MACH_CORDOBA CORDOBA 2216
|
||||
irvine MACH_IRVINE IRVINE 2217
|
||||
sff772 MACH_SFF772 SFF772 2218
|
||||
pelco_milano MACH_PELCO_MILANO PELCO_MILANO 2219
|
||||
pc7302 MACH_PC7302 PC7302 2220
|
||||
bip6000 MACH_BIP6000 BIP6000 2221
|
||||
silvermoon MACH_SILVERMOON SILVERMOON 2222
|
||||
vc0830 MACH_VC0830 VC0830 2223
|
||||
dt430 MACH_DT430 DT430 2224
|
||||
ji42pf MACH_JI42PF JI42PF 2225
|
||||
gnet_ksm MACH_GNET_KSM GNET_KSM 2226
|
||||
gnet_sgm MACH_GNET_SGM GNET_SGM 2227
|
||||
gnet_sgr MACH_GNET_SGR GNET_SGR 2228
|
||||
omap3_icetekevm MACH_OMAP3_ICETEKEVM OMAP3_ICETEKEVM 2229
|
||||
pnp MACH_PNP PNP 2230
|
||||
ctera_2bay_k MACH_CTERA_2BAY_K CTERA_2BAY_K 2231
|
||||
ctera_2bay_u MACH_CTERA_2BAY_U CTERA_2BAY_U 2232
|
||||
sas_c MACH_SAS_C SAS_C 2233
|
||||
vma2315 MACH_VMA2315 VMA2315 2234
|
||||
vcs MACH_VCS VCS 2235
|
||||
spear600 MACH_SPEAR600 SPEAR600 2236
|
||||
spear300 MACH_SPEAR300 SPEAR300 2237
|
||||
spear1300 MACH_SPEAR1300 SPEAR1300 2238
|
||||
lilly1131 MACH_LILLY1131 LILLY1131 2239
|
||||
arvoo_ax301 MACH_ARVOO_AX301 ARVOO_AX301 2240
|
||||
mapphone MACH_MAPPHONE MAPPHONE 2241
|
||||
legend MACH_LEGEND LEGEND 2242
|
||||
salsa MACH_SALSA SALSA 2243
|
||||
lounge MACH_LOUNGE LOUNGE 2244
|
||||
vision MACH_VISION VISION 2245
|
||||
vmb20 MACH_VMB20 VMB20 2246
|
||||
hy2410 MACH_HY2410 HY2410 2247
|
||||
hy9315 MACH_HY9315 HY9315 2248
|
||||
bullwinkle MACH_BULLWINKLE BULLWINKLE 2249
|
||||
arm_ultimator2 MACH_ARM_ULTIMATOR2 ARM_ULTIMATOR2 2250
|
||||
vs_v210 MACH_VS_V210 VS_V210 2252
|
||||
vs_v212 MACH_VS_V212 VS_V212 2253
|
||||
hmt MACH_HMT HMT 2254
|
||||
suen3 MACH_SUEN3 SUEN3 2255
|
||||
vesper MACH_VESPER VESPER 2256
|
||||
str9 MACH_STR9 STR9 2257
|
||||
omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258
|
||||
simcom MACH_SIMCOM SIMCOM 2259
|
||||
mcwebio MACH_MCWEBIO MCWEBIO 2260
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.28-rc3
|
||||
# Tue Nov 11 19:36:51 2008
|
||||
# Linux kernel version: 2.6.30-rc7
|
||||
# Mon May 25 14:53:25 2009
|
||||
#
|
||||
# CONFIG_PPC64 is not set
|
||||
|
||||
@ -14,6 +14,7 @@ CONFIG_6xx=y
|
||||
# CONFIG_40x is not set
|
||||
# CONFIG_44x is not set
|
||||
# CONFIG_E200 is not set
|
||||
CONFIG_PPC_BOOK3S=y
|
||||
CONFIG_PPC_FPU=y
|
||||
CONFIG_ALTIVEC=y
|
||||
CONFIG_PPC_STD_MMU=y
|
||||
@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
CONFIG_PPC=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_GENERIC_NVRAM=y
|
||||
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
|
||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
||||
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
|
||||
CONFIG_PPC_OF=y
|
||||
CONFIG_OF=y
|
||||
@ -52,12 +53,14 @@ CONFIG_OF=y
|
||||
CONFIG_AUDIT_ARCH=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_DTC=y
|
||||
# CONFIG_DEFAULT_UIMAGE is not set
|
||||
CONFIG_HIBERNATE_32=y
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
# CONFIG_PPC_DCR_NATIVE is not set
|
||||
# CONFIG_PPC_DCR_MMIO is not set
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
@ -72,14 +75,24 @@ CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_POSIX_MQUEUE_SYSCTL=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
# CONFIG_CGROUPS is not set
|
||||
# CONFIG_GROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_RELAY is not set
|
||||
@ -88,23 +101,27 @@ CONFIG_NAMESPACES=y
|
||||
# CONFIG_IPC_NS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
# CONFIG_NET_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
@ -114,10 +131,12 @@ CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_PCI_QUIRKS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_TRACEPOINTS=y
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_OPROFILE=y
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
@ -127,10 +146,10 @@ CONFIG_HAVE_IOREMAP_PROT=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
# CONFIG_TINY_SHMEM is not set
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
# CONFIG_MODULE_FORCE_LOAD is not set
|
||||
@ -138,11 +157,8 @@ CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
# CONFIG_MODVERSIONS is not set
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_KMOD=y
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
CONFIG_LSF=y
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
@ -158,14 +174,11 @@ CONFIG_DEFAULT_AS=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
CONFIG_FREEZER=y
|
||||
|
||||
#
|
||||
# Platform support
|
||||
#
|
||||
CONFIG_PPC_MULTIPLATFORM=y
|
||||
CONFIG_CLASSIC32=y
|
||||
# CONFIG_PPC_CHRP is not set
|
||||
# CONFIG_MPC5121_ADS is not set
|
||||
# CONFIG_MPC5121_GENERIC is not set
|
||||
@ -178,7 +191,9 @@ CONFIG_PPC_PMAC=y
|
||||
# CONFIG_PPC_83xx is not set
|
||||
# CONFIG_PPC_86xx is not set
|
||||
# CONFIG_EMBEDDED6xx is not set
|
||||
# CONFIG_AMIGAONE is not set
|
||||
CONFIG_PPC_NATIVE=y
|
||||
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
|
||||
# CONFIG_IPIC is not set
|
||||
CONFIG_MPIC=y
|
||||
# CONFIG_MPIC_WEIRD is not set
|
||||
@ -212,11 +227,12 @@ CONFIG_CPU_FREQ_PMAC=y
|
||||
CONFIG_PPC601_SYNC_FIX=y
|
||||
# CONFIG_TAU is not set
|
||||
# CONFIG_FSL_ULI1575 is not set
|
||||
# CONFIG_SIMPLE_GPIO is not set
|
||||
|
||||
#
|
||||
# Kernel options
|
||||
#
|
||||
# CONFIG_HIGHMEM is not set
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
@ -239,6 +255,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
|
||||
CONFIG_ARCH_HAS_WALK_MEMORY=y
|
||||
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
|
||||
# CONFIG_KEXEC is not set
|
||||
# CONFIG_CRASH_DUMP is not set
|
||||
CONFIG_ARCH_FLATMEM_ENABLE=y
|
||||
CONFIG_ARCH_POPULATES_NODE_MAP=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
@ -250,12 +267,17 @@ CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_MIGRATION is not set
|
||||
# CONFIG_RESOURCES_64BIT is not set
|
||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=1
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_PPC_4K_PAGES=y
|
||||
# CONFIG_PPC_16K_PAGES is not set
|
||||
# CONFIG_PPC_64K_PAGES is not set
|
||||
# CONFIG_PPC_256K_PAGES is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
# CONFIG_CMDLINE_BOOL is not set
|
||||
@ -288,6 +310,8 @@ CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCI_IOV is not set
|
||||
CONFIG_PCCARD=m
|
||||
# CONFIG_PCMCIA_DEBUG is not set
|
||||
CONFIG_PCMCIA=m
|
||||
@ -397,6 +421,8 @@ CONFIG_NETFILTER_XTABLES=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
|
||||
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
|
||||
CONFIG_NETFILTER_XT_TARGET_HL=m
|
||||
# CONFIG_NETFILTER_XT_TARGET_LED is not set
|
||||
CONFIG_NETFILTER_XT_TARGET_MARK=m
|
||||
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
|
||||
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
|
||||
@ -405,6 +431,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
|
||||
CONFIG_NETFILTER_XT_TARGET_TRACE=m
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
|
||||
@ -415,6 +442,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_ESP=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_HELPER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_HL=m
|
||||
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
|
||||
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
|
||||
@ -478,17 +506,15 @@ CONFIG_IP_NF_ARPFILTER=m
|
||||
CONFIG_IP_NF_ARP_MANGLE=m
|
||||
CONFIG_IP_DCCP=m
|
||||
CONFIG_INET_DCCP_DIAG=m
|
||||
CONFIG_IP_DCCP_ACKVEC=y
|
||||
|
||||
#
|
||||
# DCCP CCIDs Configuration (EXPERIMENTAL)
|
||||
#
|
||||
CONFIG_IP_DCCP_CCID2=m
|
||||
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
|
||||
CONFIG_IP_DCCP_CCID3=m
|
||||
CONFIG_IP_DCCP_CCID3=y
|
||||
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
|
||||
CONFIG_IP_DCCP_CCID3_RTO=100
|
||||
CONFIG_IP_DCCP_TFRC_LIB=m
|
||||
CONFIG_IP_DCCP_TFRC_LIB=y
|
||||
|
||||
#
|
||||
# DCCP Kernel Hacking
|
||||
@ -508,13 +534,16 @@ CONFIG_IP_DCCP_TFRC_LIB=m
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
CONFIG_NET_CLS_ROUTE=y
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
#
|
||||
# Network testing
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
# CONFIG_NET_DROP_MONITOR is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_CAN is not set
|
||||
CONFIG_IRDA=m
|
||||
@ -577,8 +606,6 @@ CONFIG_BT_HIDP=m
|
||||
#
|
||||
# Bluetooth device drivers
|
||||
#
|
||||
CONFIG_BT_HCIUSB=m
|
||||
# CONFIG_BT_HCIUSB_SCO is not set
|
||||
# CONFIG_BT_HCIBTUSB is not set
|
||||
# CONFIG_BT_HCIUART is not set
|
||||
CONFIG_BT_HCIBCM203X=m
|
||||
@ -590,31 +617,27 @@ CONFIG_BT_HCIBFUSB=m
|
||||
# CONFIG_BT_HCIBTUART is not set
|
||||
# CONFIG_BT_HCIVHCI is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_PHONET is not set
|
||||
CONFIG_WIRELESS=y
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_NL80211=y
|
||||
# CONFIG_CFG80211_REG_DEBUG is not set
|
||||
CONFIG_WIRELESS_OLD_REGULATORY=y
|
||||
CONFIG_WIRELESS_EXT=y
|
||||
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||
# CONFIG_LIB80211 is not set
|
||||
CONFIG_MAC80211=m
|
||||
|
||||
#
|
||||
# Rate control algorithm selection
|
||||
#
|
||||
CONFIG_MAC80211_RC_PID=y
|
||||
# CONFIG_MAC80211_RC_MINSTREL is not set
|
||||
CONFIG_MAC80211_RC_DEFAULT_PID=y
|
||||
# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
|
||||
CONFIG_MAC80211_RC_DEFAULT="pid"
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
# CONFIG_MAC80211_RC_DEFAULT_PID is not set
|
||||
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
||||
CONFIG_MAC80211_RC_DEFAULT="minstrel"
|
||||
# CONFIG_MAC80211_MESH is not set
|
||||
CONFIG_MAC80211_LEDS=y
|
||||
# CONFIG_MAC80211_DEBUGFS is not set
|
||||
# CONFIG_MAC80211_DEBUG_MENU is not set
|
||||
CONFIG_IEEE80211=m
|
||||
# CONFIG_IEEE80211_DEBUG is not set
|
||||
CONFIG_IEEE80211_CRYPT_WEP=m
|
||||
CONFIG_IEEE80211_CRYPT_CCMP=m
|
||||
CONFIG_IEEE80211_CRYPT_TKIP=m
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
||||
@ -662,17 +685,27 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_PHANTOM is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
# CONFIG_ICS932S401 is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_HP_ILO is not set
|
||||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
# EEPROM support
|
||||
#
|
||||
# CONFIG_EEPROM_AT24 is not set
|
||||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
CONFIG_IDE=y
|
||||
|
||||
#
|
||||
# Please see Documentation/ide/ide.txt for help/info on IDE drives
|
||||
#
|
||||
CONFIG_IDE_XFER_MODE=y
|
||||
CONFIG_IDE_TIMINGS=y
|
||||
CONFIG_IDE_ATAPI=y
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
@ -684,7 +717,6 @@ CONFIG_BLK_DEV_IDECS=m
|
||||
CONFIG_BLK_DEV_IDECD=y
|
||||
CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
|
||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||
CONFIG_BLK_DEV_IDESCSI=y
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
CONFIG_IDE_PROC_FS=y
|
||||
|
||||
@ -714,6 +746,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
|
||||
# CONFIG_BLK_DEV_JMICRON is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
# CONFIG_BLK_DEV_PIIX is not set
|
||||
# CONFIG_BLK_DEV_IT8172 is not set
|
||||
# CONFIG_BLK_DEV_IT8213 is not set
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
@ -728,7 +761,6 @@ CONFIG_BLK_DEV_SL82C105=y
|
||||
# CONFIG_BLK_DEV_TC86C001 is not set
|
||||
CONFIG_BLK_DEV_IDE_PMAC=y
|
||||
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
|
||||
CONFIG_BLK_DEV_IDEDMA_PMAC=y
|
||||
CONFIG_BLK_DEV_IDEDMA=y
|
||||
|
||||
#
|
||||
@ -772,6 +804,7 @@ CONFIG_SCSI_FC_ATTRS=y
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_SCSI_CXGB3_ISCSI is not set
|
||||
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
|
||||
# CONFIG_SCSI_3W_9XXX is not set
|
||||
# CONFIG_SCSI_ACARD is not set
|
||||
@ -791,8 +824,12 @@ CONFIG_SCSI_AIC7XXX_OLD=m
|
||||
# CONFIG_MEGARAID_NEWGEN is not set
|
||||
# CONFIG_MEGARAID_LEGACY is not set
|
||||
# CONFIG_MEGARAID_SAS is not set
|
||||
# CONFIG_SCSI_MPT2SAS is not set
|
||||
# CONFIG_SCSI_HPTIOP is not set
|
||||
# CONFIG_SCSI_BUSLOGIC is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_FCOE is not set
|
||||
# CONFIG_SCSI_DMX3191D is not set
|
||||
# CONFIG_SCSI_EATA is not set
|
||||
# CONFIG_SCSI_FUTURE_DOMAIN is not set
|
||||
@ -822,6 +859,7 @@ CONFIG_SCSI_MAC53C94=y
|
||||
# CONFIG_SCSI_SRP is not set
|
||||
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=m
|
||||
@ -881,6 +919,7 @@ CONFIG_THERM_ADT746X=m
|
||||
# CONFIG_ANSLCD is not set
|
||||
CONFIG_PMAC_RACKMETER=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
CONFIG_DUMMY=m
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
@ -898,6 +937,8 @@ CONFIG_BMAC=y
|
||||
CONFIG_SUNGEM=y
|
||||
# CONFIG_CASSINI is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_NET_TULIP is not set
|
||||
# CONFIG_HP100 is not set
|
||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||
@ -913,7 +954,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_ADAPTEC_STARFIRE is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_FORCEDETH is not set
|
||||
# CONFIG_EEPRO100 is not set
|
||||
# CONFIG_E100 is not set
|
||||
# CONFIG_FEALNX is not set
|
||||
# CONFIG_NATSEMI is not set
|
||||
@ -923,6 +963,7 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_R6040 is not set
|
||||
# CONFIG_SIS900 is not set
|
||||
# CONFIG_EPIC100 is not set
|
||||
# CONFIG_SMSC9420 is not set
|
||||
# CONFIG_SUNDANCE is not set
|
||||
# CONFIG_TLAN is not set
|
||||
# CONFIG_VIA_RHINE is not set
|
||||
@ -935,6 +976,7 @@ CONFIG_NETDEV_1000=y
|
||||
# CONFIG_E1000E is not set
|
||||
# CONFIG_IP1000 is not set
|
||||
# CONFIG_IGB is not set
|
||||
# CONFIG_IGBVF is not set
|
||||
# CONFIG_NS83820 is not set
|
||||
# CONFIG_HAMACHI is not set
|
||||
# CONFIG_YELLOWFIN is not set
|
||||
@ -945,18 +987,20 @@ CONFIG_NETDEV_1000=y
|
||||
# CONFIG_VIA_VELOCITY is not set
|
||||
# CONFIG_TIGON3 is not set
|
||||
# CONFIG_BNX2 is not set
|
||||
# CONFIG_MV643XX_ETH is not set
|
||||
# CONFIG_QLA3XXX is not set
|
||||
# CONFIG_ATL1 is not set
|
||||
# CONFIG_ATL1E is not set
|
||||
# CONFIG_ATL1C is not set
|
||||
# CONFIG_JME is not set
|
||||
CONFIG_NETDEV_10000=y
|
||||
# CONFIG_CHELSIO_T1 is not set
|
||||
CONFIG_CHELSIO_T3_DEPENDS=y
|
||||
# CONFIG_CHELSIO_T3 is not set
|
||||
# CONFIG_ENIC is not set
|
||||
# CONFIG_IXGBE is not set
|
||||
# CONFIG_IXGB is not set
|
||||
# CONFIG_S2IO is not set
|
||||
# CONFIG_VXGE is not set
|
||||
# CONFIG_MYRI10GE is not set
|
||||
# CONFIG_NETXEN_NIC is not set
|
||||
# CONFIG_NIU is not set
|
||||
@ -966,6 +1010,7 @@ CONFIG_NETDEV_10000=y
|
||||
# CONFIG_BNX2X is not set
|
||||
# CONFIG_QLGE is not set
|
||||
# CONFIG_SFC is not set
|
||||
# CONFIG_BE2NET is not set
|
||||
# CONFIG_TR is not set
|
||||
|
||||
#
|
||||
@ -974,20 +1019,11 @@ CONFIG_NETDEV_10000=y
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
CONFIG_WLAN_80211=y
|
||||
# CONFIG_PCMCIA_RAYCS is not set
|
||||
# CONFIG_IPW2100 is not set
|
||||
# CONFIG_IPW2200 is not set
|
||||
# CONFIG_LIBERTAS is not set
|
||||
# CONFIG_LIBERTAS_THINFIRM is not set
|
||||
# CONFIG_AIRO is not set
|
||||
CONFIG_HERMES=m
|
||||
CONFIG_APPLE_AIRPORT=m
|
||||
# CONFIG_PLX_HERMES is not set
|
||||
# CONFIG_TMD_HERMES is not set
|
||||
# CONFIG_NORTEL_HERMES is not set
|
||||
CONFIG_PCI_HERMES=m
|
||||
CONFIG_PCMCIA_HERMES=m
|
||||
# CONFIG_PCMCIA_SPECTRUM is not set
|
||||
# CONFIG_ATMEL is not set
|
||||
# CONFIG_AT76C50X_USB is not set
|
||||
# CONFIG_AIRO_CS is not set
|
||||
# CONFIG_PCMCIA_WL3501 is not set
|
||||
CONFIG_PRISM54=m
|
||||
@ -997,15 +1033,17 @@ CONFIG_PRISM54=m
|
||||
# CONFIG_RTL8187 is not set
|
||||
# CONFIG_ADM8211 is not set
|
||||
# CONFIG_MAC80211_HWSIM is not set
|
||||
# CONFIG_MWL8K is not set
|
||||
CONFIG_P54_COMMON=m
|
||||
# CONFIG_P54_USB is not set
|
||||
# CONFIG_P54_PCI is not set
|
||||
CONFIG_P54_LEDS=y
|
||||
# CONFIG_ATH5K is not set
|
||||
# CONFIG_ATH9K is not set
|
||||
# CONFIG_IWLCORE is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
# CONFIG_IWLAGN is not set
|
||||
# CONFIG_IWL3945 is not set
|
||||
# CONFIG_AR9170_USB is not set
|
||||
# CONFIG_IPW2100 is not set
|
||||
# CONFIG_IPW2200 is not set
|
||||
# CONFIG_IWLWIFI is not set
|
||||
# CONFIG_HOSTAP is not set
|
||||
CONFIG_B43=m
|
||||
CONFIG_B43_PCI_AUTOSELECT=y
|
||||
@ -1025,6 +1063,19 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||
# CONFIG_B43LEGACY_PIO_MODE is not set
|
||||
# CONFIG_ZD1211RW is not set
|
||||
# CONFIG_RT2X00 is not set
|
||||
CONFIG_HERMES=m
|
||||
CONFIG_HERMES_CACHE_FW_ON_INIT=y
|
||||
CONFIG_APPLE_AIRPORT=m
|
||||
# CONFIG_PLX_HERMES is not set
|
||||
# CONFIG_TMD_HERMES is not set
|
||||
# CONFIG_NORTEL_HERMES is not set
|
||||
CONFIG_PCI_HERMES=m
|
||||
CONFIG_PCMCIA_HERMES=m
|
||||
# CONFIG_PCMCIA_SPECTRUM is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
#
|
||||
|
||||
#
|
||||
# USB Network Adapters
|
||||
@ -1036,6 +1087,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||
CONFIG_USB_USBNET=m
|
||||
CONFIG_USB_NET_AX8817X=m
|
||||
CONFIG_USB_NET_CDCETHER=m
|
||||
# CONFIG_USB_NET_CDC_EEM is not set
|
||||
# CONFIG_USB_NET_DM9601 is not set
|
||||
# CONFIG_USB_NET_SMSC95XX is not set
|
||||
# CONFIG_USB_NET_GL620A is not set
|
||||
@ -1099,7 +1151,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
CONFIG_MOUSE_APPLETOUCH=y
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
# CONFIG_MOUSE_VSXXXAA is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
@ -1150,10 +1202,13 @@ CONFIG_SERIAL_PMACZILOG_TTYS=y
|
||||
# CONFIG_SERIAL_JSM is not set
|
||||
# CONFIG_SERIAL_OF_PLATFORM is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
# CONFIG_HVC_UDBG is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
CONFIG_NVRAM=y
|
||||
CONFIG_GEN_RTC=y
|
||||
# CONFIG_GEN_RTC_X is not set
|
||||
@ -1232,12 +1287,9 @@ CONFIG_I2C_POWERMAC=y
|
||||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_EEPROM_AT24 is not set
|
||||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_PCA9539 is not set
|
||||
# CONFIG_SENSORS_PCF8591 is not set
|
||||
# CONFIG_SENSORS_MAX6875 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
@ -1259,11 +1311,11 @@ CONFIG_BATTERY_PMU=y
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_THERMAL_HWMON is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
CONFIG_SSB=m
|
||||
CONFIG_SSB_SPROM=y
|
||||
CONFIG_SSB_PCIHOST_POSSIBLE=y
|
||||
@ -1281,18 +1333,13 @@ CONFIG_SSB_DRIVER_PCICORE=y
|
||||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
|
||||
#
|
||||
# Voltage and Current regulators
|
||||
#
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
# CONFIG_REGULATOR is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
@ -1390,6 +1437,7 @@ CONFIG_FB_ATY_BACKLIGHT=y
|
||||
# CONFIG_FB_KYRO is not set
|
||||
CONFIG_FB_3DFX=y
|
||||
# CONFIG_FB_3DFX_ACCEL is not set
|
||||
CONFIG_FB_3DFX_I2C=y
|
||||
# CONFIG_FB_VOODOO1 is not set
|
||||
# CONFIG_FB_VT8623 is not set
|
||||
# CONFIG_FB_TRIDENT is not set
|
||||
@ -1399,12 +1447,14 @@ CONFIG_FB_3DFX=y
|
||||
# CONFIG_FB_IBM_GXT4500 is not set
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_MB862XX is not set
|
||||
# CONFIG_FB_BROADSHEET is not set
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=m
|
||||
# CONFIG_LCD_ILI9320 is not set
|
||||
# CONFIG_LCD_PLATFORM is not set
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
# CONFIG_BACKLIGHT_CORGI is not set
|
||||
CONFIG_BACKLIGHT_GENERIC=y
|
||||
|
||||
#
|
||||
# Display device support
|
||||
@ -1444,11 +1494,13 @@ CONFIG_SND_MIXER_OSS=m
|
||||
CONFIG_SND_PCM_OSS=m
|
||||
CONFIG_SND_PCM_OSS_PLUGINS=y
|
||||
CONFIG_SND_SEQUENCER_OSS=y
|
||||
# CONFIG_SND_HRTIMER is not set
|
||||
# CONFIG_SND_DYNAMIC_MINORS is not set
|
||||
CONFIG_SND_SUPPORT_OLD_API=y
|
||||
CONFIG_SND_VERBOSE_PROCFS=y
|
||||
# CONFIG_SND_VERBOSE_PRINTK is not set
|
||||
# CONFIG_SND_DEBUG is not set
|
||||
CONFIG_SND_VMASTER=y
|
||||
CONFIG_SND_DRIVERS=y
|
||||
CONFIG_SND_DUMMY=m
|
||||
# CONFIG_SND_VIRMIDI is not set
|
||||
@ -1486,6 +1538,8 @@ CONFIG_SND_PCI=y
|
||||
# CONFIG_SND_INDIGO is not set
|
||||
# CONFIG_SND_INDIGOIO is not set
|
||||
# CONFIG_SND_INDIGODJ is not set
|
||||
# CONFIG_SND_INDIGOIOX is not set
|
||||
# CONFIG_SND_INDIGODJX is not set
|
||||
# CONFIG_SND_EMU10K1 is not set
|
||||
# CONFIG_SND_EMU10K1X is not set
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
@ -1551,28 +1605,31 @@ CONFIG_USB_HID=y
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_COMPAT=y
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_BRIGHT=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DELL=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
@ -1603,6 +1660,7 @@ CONFIG_USB_EHCI_HCD=m
|
||||
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
|
||||
# CONFIG_USB_EHCI_HCD_PPC_OF is not set
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
# CONFIG_USB_ISP116X_HCD is not set
|
||||
# CONFIG_USB_ISP1760_HCD is not set
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
@ -1625,24 +1683,23 @@ CONFIG_USB_PRINTER=m
|
||||
# CONFIG_USB_TMC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
|
||||
#
|
||||
# may also be needed; see USB_STORAGE Help for more information
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=m
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_DATAFAB is not set
|
||||
# CONFIG_USB_STORAGE_FREECOM is not set
|
||||
# CONFIG_USB_STORAGE_ISD200 is not set
|
||||
# CONFIG_USB_STORAGE_DPCM is not set
|
||||
# CONFIG_USB_STORAGE_USBAT is not set
|
||||
# CONFIG_USB_STORAGE_SDDR09 is not set
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_STORAGE_ALAUDA is not set
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=m
|
||||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
@ -1665,7 +1722,7 @@ CONFIG_USB_EZUSB=y
|
||||
# CONFIG_USB_SERIAL_CH341 is not set
|
||||
# CONFIG_USB_SERIAL_WHITEHEAT is not set
|
||||
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
|
||||
# CONFIG_USB_SERIAL_CP2101 is not set
|
||||
# CONFIG_USB_SERIAL_CP210X is not set
|
||||
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
|
||||
# CONFIG_USB_SERIAL_EMPEG is not set
|
||||
# CONFIG_USB_SERIAL_FTDI_SIO is not set
|
||||
@ -1701,15 +1758,19 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
||||
# CONFIG_USB_SERIAL_NAVMAN is not set
|
||||
# CONFIG_USB_SERIAL_PL2303 is not set
|
||||
# CONFIG_USB_SERIAL_OTI6858 is not set
|
||||
# CONFIG_USB_SERIAL_QUALCOMM is not set
|
||||
# CONFIG_USB_SERIAL_SPCP8X5 is not set
|
||||
# CONFIG_USB_SERIAL_HP4X is not set
|
||||
# CONFIG_USB_SERIAL_SAFE is not set
|
||||
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
|
||||
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
|
||||
# CONFIG_USB_SERIAL_SYMBOL is not set
|
||||
# CONFIG_USB_SERIAL_TI is not set
|
||||
# CONFIG_USB_SERIAL_CYBERJACK is not set
|
||||
# CONFIG_USB_SERIAL_XIRCOM is not set
|
||||
# CONFIG_USB_SERIAL_OPTION is not set
|
||||
# CONFIG_USB_SERIAL_OMNINET is not set
|
||||
# CONFIG_USB_SERIAL_OPTICON is not set
|
||||
# CONFIG_USB_SERIAL_DEBUG is not set
|
||||
|
||||
#
|
||||
@ -1726,7 +1787,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_PHIDGET is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
CONFIG_USB_APPLEDISPLAY=m
|
||||
@ -1738,6 +1798,11 @@ CONFIG_USB_APPLEDISPLAY=m
|
||||
# CONFIG_USB_ISIGHTFW is not set
|
||||
# CONFIG_USB_VST is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
#
|
||||
# OTG and related infrastructure
|
||||
#
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
# CONFIG_UWB is not set
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
@ -1748,7 +1813,9 @@ CONFIG_LEDS_CLASS=y
|
||||
# LED drivers
|
||||
#
|
||||
# CONFIG_LEDS_PCA9532 is not set
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
|
||||
#
|
||||
# LED Triggers
|
||||
@ -1759,11 +1826,16 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y
|
||||
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
|
||||
#
|
||||
# iptables trigger is under Netfilter config (LED target)
|
||||
#
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_INFINIBAND is not set
|
||||
# CONFIG_EDAC is not set
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
@ -1774,6 +1846,7 @@ CONFIG_EXT2_FS=y
|
||||
# CONFIG_EXT2_FS_XATTR is not set
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_EXT3_FS_XATTR=y
|
||||
CONFIG_EXT3_FS_POSIX_ACL=y
|
||||
# CONFIG_EXT3_FS_SECURITY is not set
|
||||
@ -1783,7 +1856,9 @@ CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
# CONFIG_EXT4_FS_SECURITY is not set
|
||||
CONFIG_JBD=y
|
||||
# CONFIG_JBD_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
# CONFIG_JBD2_DEBUG is not set
|
||||
CONFIG_FS_MBCACHE=y
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
@ -1792,6 +1867,7 @@ CONFIG_FILE_LOCKING=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
@ -1800,6 +1876,11 @@ CONFIG_INOTIFY_USER=y
|
||||
CONFIG_AUTOFS4_FS=m
|
||||
CONFIG_FUSE_FS=m
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
@ -1831,10 +1912,7 @@ CONFIG_TMPFS=y
|
||||
# CONFIG_TMPFS_POSIX_ACL is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
|
||||
#
|
||||
# Miscellaneous filesystems
|
||||
#
|
||||
CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_ADFS_FS is not set
|
||||
# CONFIG_AFFS_FS is not set
|
||||
CONFIG_HFS_FS=m
|
||||
@ -1843,6 +1921,7 @@ CONFIG_HFSPLUS_FS=m
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_OMFS_FS is not set
|
||||
@ -1851,6 +1930,7 @@ CONFIG_HFSPLUS_FS=m
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
@ -1868,7 +1948,6 @@ CONFIG_NFS_ACL_SUPPORT=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
CONFIG_SUNRPC_GSS=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
CONFIG_SMB_FS=m
|
||||
@ -1940,11 +2019,13 @@ CONFIG_NLS_ISO8859_1=m
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
CONFIG_NLS_UTF8=m
|
||||
# CONFIG_DLM is not set
|
||||
CONFIG_BINARY_PRINTF=y
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_BITREVERSE=y
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
@ -1954,15 +2035,18 @@ CONFIG_CRC32=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
CONFIG_TEXTSEARCH=y
|
||||
CONFIG_TEXTSEARCH_KMP=m
|
||||
CONFIG_TEXTSEARCH_BM=m
|
||||
CONFIG_TEXTSEARCH_FSM=m
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAVE_LMB=y
|
||||
CONFIG_NLATTR=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
@ -1973,13 +2057,16 @@ CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
@ -1994,6 +2081,7 @@ CONFIG_SCHEDSTATS=y
|
||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||
CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
@ -2001,6 +2089,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
@ -2009,7 +2098,14 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
CONFIG_LATENCYTOP=y
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
CONFIG_NOP_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_TRACING=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
@ -2017,12 +2113,19 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_FTRACE_STARTUP_TEST is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_DEBUG_STACKOVERFLOW is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
@ -2033,6 +2136,7 @@ CONFIG_XMON_DEFAULT=y
|
||||
CONFIG_XMON_DISASSEMBLY=y
|
||||
CONFIG_DEBUGGER=y
|
||||
CONFIG_IRQSTACKS=y
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
# CONFIG_BDI_SWITCH is not set
|
||||
CONFIG_BOOTX_TEXT=y
|
||||
# CONFIG_PPC_EARLY_DEBUG is not set
|
||||
@ -2051,13 +2155,20 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_AEAD=y
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_PCOMP=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
CONFIG_CRYPTO_NULL=m
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
CONFIG_CRYPTO_AUTHENC=y
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
@ -2127,6 +2238,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
|
||||
# Compression
|
||||
#
|
||||
CONFIG_CRYPTO_DEFLATE=m
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
|
||||
#
|
||||
|
@ -208,8 +208,9 @@ do { unsigned long new_flags = current_thread_info()->flags; \
|
||||
else \
|
||||
clear_thread_flag(TIF_ABI_PENDING); \
|
||||
/* flush_thread will update pgd cache */ \
|
||||
if (current->personality != PER_LINUX32) \
|
||||
set_personality(PER_LINUX); \
|
||||
if (personality(current->personality) != PER_LINUX32) \
|
||||
set_personality(PER_LINUX | \
|
||||
(current->personality & (~PER_MASK))); \
|
||||
} while (0)
|
||||
|
||||
#endif /* !(__ASM_SPARC64_ELF_H) */
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#define EX_LD(x) \
|
||||
98: x; \
|
||||
.section .fixup; \
|
||||
.section .fixup, "ax"; \
|
||||
.align 4; \
|
||||
99: retl; \
|
||||
mov -1, %o0; \
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#define EX_ST(x) \
|
||||
98: x; \
|
||||
.section .fixup; \
|
||||
.section .fixup,"ax"; \
|
||||
.align 4; \
|
||||
99: retl; \
|
||||
mov -1, %o0; \
|
||||
|
@ -693,8 +693,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
|
||||
if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&
|
||||
policy->cpuinfo.transition_latency > 20 * 1000) {
|
||||
policy->cpuinfo.transition_latency = 20 * 1000;
|
||||
printk_once(KERN_INFO "Capping off P-state tranision"
|
||||
" latency at 20 uS\n");
|
||||
printk_once(KERN_INFO
|
||||
"P-state transition latency capped at 20 uS\n");
|
||||
}
|
||||
|
||||
/* table init */
|
||||
|
@ -1 +1,2 @@
|
||||
obj-y := i386_head.o boot.o
|
||||
CFLAGS_boot.o := $(call cc-option, -fno-stack-protector)
|
||||
|
@ -67,6 +67,7 @@
|
||||
#include <asm/mce.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/i387.h>
|
||||
#include <asm/stackprotector.h>
|
||||
#include <asm/reboot.h> /* for struct machine_ops */
|
||||
|
||||
/*G:010 Welcome to the Guest!
|
||||
@ -1088,13 +1089,21 @@ __init void lguest_init(void)
|
||||
* lguest_init() where the rest of the fairly chaotic boot setup
|
||||
* occurs. */
|
||||
|
||||
/* The stack protector is a weird thing where gcc places a canary
|
||||
* value on the stack and then checks it on return. This file is
|
||||
* compiled with -fno-stack-protector it, so we got this far without
|
||||
* problems. The value of the canary is kept at offset 20 from the
|
||||
* %gs register, so we need to set that up before calling C functions
|
||||
* in other files. */
|
||||
setup_stack_canary_segment(0);
|
||||
/* We could just call load_stack_canary_segment(), but we might as
|
||||
* call switch_to_new_gdt() which loads the whole table and sets up
|
||||
* the per-cpu segment descriptor register %fs as well. */
|
||||
switch_to_new_gdt(0);
|
||||
|
||||
/* As described in head_32.S, we map the first 128M of memory. */
|
||||
max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT;
|
||||
|
||||
/* Load the %fs segment register (the per-cpu segment register) with
|
||||
* the normal data segment to get through booting. */
|
||||
asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory");
|
||||
|
||||
/* The Host<->Guest Switcher lives at the top of our address space, and
|
||||
* the Host told us how big it is when we made LGUEST_INIT hypercall:
|
||||
* it put the answer in lguest_data.reserve_mem */
|
||||
|
@ -82,10 +82,11 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
walk->offset = 0;
|
||||
|
||||
if (nbytes)
|
||||
if (nbytes) {
|
||||
walk->offset = 0;
|
||||
walk->pg++;
|
||||
return hash_walk_next(walk);
|
||||
}
|
||||
|
||||
if (!walk->total)
|
||||
return 0;
|
||||
|
@ -116,9 +116,6 @@ int acpi_pci_bind(struct acpi_device *device)
|
||||
struct acpi_pci_data *pdata;
|
||||
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
acpi_handle handle;
|
||||
struct pci_dev *dev;
|
||||
struct pci_bus *bus;
|
||||
|
||||
|
||||
if (!device || !device->parent)
|
||||
return -EINVAL;
|
||||
@ -176,20 +173,9 @@ int acpi_pci_bind(struct acpi_device *device)
|
||||
* Locate matching device in PCI namespace. If it doesn't exist
|
||||
* this typically means that the device isn't currently inserted
|
||||
* (e.g. docking station, port replicator, etc.).
|
||||
* We cannot simply search the global pci device list, since
|
||||
* PCI devices are added to the global pci list when the root
|
||||
* bridge start ops are run, which may not have happened yet.
|
||||
*/
|
||||
bus = pci_find_bus(data->id.segment, data->id.bus);
|
||||
if (bus) {
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
if (dev->devfn == PCI_DEVFN(data->id.device,
|
||||
data->id.function)) {
|
||||
data->dev = dev;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
data->dev = pci_get_slot(pdata->bus,
|
||||
PCI_DEVFN(data->id.device, data->id.function));
|
||||
if (!data->dev) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Device %04x:%02x:%02x.%d not present in PCI namespace\n",
|
||||
@ -259,9 +245,10 @@ int acpi_pci_bind(struct acpi_device *device)
|
||||
|
||||
end:
|
||||
kfree(buffer.pointer);
|
||||
if (result)
|
||||
if (result) {
|
||||
pci_dev_put(data->dev);
|
||||
kfree(data);
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -303,6 +290,7 @@ static int acpi_pci_unbind(struct acpi_device *device)
|
||||
if (data->dev->subordinate) {
|
||||
acpi_pci_irq_del_prt(data->id.segment, data->bus->number);
|
||||
}
|
||||
pci_dev_put(data->dev);
|
||||
kfree(data);
|
||||
|
||||
end:
|
||||
|
@ -148,6 +148,9 @@ static void acpi_timer_check_state(int state, struct acpi_processor *pr,
|
||||
if (cpu_has(&cpu_data(pr->id), X86_FEATURE_ARAT))
|
||||
return;
|
||||
|
||||
if (boot_cpu_has(X86_FEATURE_AMDC1E))
|
||||
type = ACPI_STATE_C1;
|
||||
|
||||
/*
|
||||
* Check, if one of the previous states already marked the lapic
|
||||
* unstable
|
||||
@ -611,6 +614,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
|
||||
switch (cx->type) {
|
||||
case ACPI_STATE_C1:
|
||||
cx->valid = 1;
|
||||
acpi_timer_check_state(i, pr, cx);
|
||||
break;
|
||||
|
||||
case ACPI_STATE_C2:
|
||||
@ -830,11 +834,12 @@ static int acpi_idle_enter_c1(struct cpuidle_device *dev,
|
||||
|
||||
/* Do not access any ACPI IO ports in suspend path */
|
||||
if (acpi_idle_suspend) {
|
||||
acpi_safe_halt();
|
||||
local_irq_enable();
|
||||
cpu_relax();
|
||||
return 0;
|
||||
}
|
||||
|
||||
acpi_state_timer_broadcast(pr, cx, 1);
|
||||
kt1 = ktime_get_real();
|
||||
acpi_idle_do_entry(cx);
|
||||
kt2 = ktime_get_real();
|
||||
@ -842,6 +847,7 @@ static int acpi_idle_enter_c1(struct cpuidle_device *dev,
|
||||
|
||||
local_irq_enable();
|
||||
cx->usage++;
|
||||
acpi_state_timer_broadcast(pr, cx, 0);
|
||||
|
||||
return idle_time;
|
||||
}
|
||||
|
@ -309,9 +309,15 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
|
||||
(u32) px->bus_master_latency,
|
||||
(u32) px->control, (u32) px->status));
|
||||
|
||||
if (!px->core_frequency) {
|
||||
printk(KERN_ERR PREFIX
|
||||
"Invalid _PSS data: freq is zero\n");
|
||||
/*
|
||||
* Check that ACPI's u64 MHz will be valid as u32 KHz in cpufreq
|
||||
*/
|
||||
if (!px->core_frequency ||
|
||||
((u32)(px->core_frequency * 1000) !=
|
||||
(px->core_frequency * 1000))) {
|
||||
printk(KERN_ERR FW_BUG PREFIX
|
||||
"Invalid BIOS _PSS frequency: 0x%llx MHz\n",
|
||||
px->core_frequency);
|
||||
result = -EFAULT;
|
||||
kfree(pr->performance->states);
|
||||
goto end;
|
||||
|
@ -840,7 +840,7 @@ static int acpi_processor_get_throttling_ptc(struct acpi_processor *pr)
|
||||
state = acpi_get_throttling_state(pr, value);
|
||||
if (state == -1) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"Invalid throttling state, reset\n"));
|
||||
"Invalid throttling state, reset"));
|
||||
state = 0;
|
||||
ret = acpi_processor_set_throttling(pr, state);
|
||||
if (ret)
|
||||
|
@ -570,6 +570,22 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710Z"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = video_set_bqc_offset,
|
||||
.ident = "eMachines E510",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "EMACHINES"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "eMachines E510"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = video_set_bqc_offset,
|
||||
.ident = "Acer Aspire 5315",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"),
|
||||
},
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
@ -2334,7 +2350,7 @@ static int __init acpi_video_init(void)
|
||||
return acpi_video_register();
|
||||
}
|
||||
|
||||
void __exit acpi_video_exit(void)
|
||||
void acpi_video_exit(void)
|
||||
{
|
||||
|
||||
acpi_bus_unregister_driver(&acpi_video_bus);
|
||||
|
@ -20,13 +20,24 @@
|
||||
|
||||
/* No PIO or DMA methods needed for this device */
|
||||
|
||||
static unsigned int netcell_read_id(struct ata_device *adev,
|
||||
struct ata_taskfile *tf, u16 *id)
|
||||
{
|
||||
unsigned int err_mask = ata_do_dev_read_id(adev, tf, id);
|
||||
/* Firmware forgets to mark words 85-87 valid */
|
||||
if (err_mask == 0)
|
||||
id[ATA_ID_CSF_DEFAULT] |= 0x0400;
|
||||
return err_mask;
|
||||
}
|
||||
|
||||
static struct scsi_host_template netcell_sht = {
|
||||
ATA_BMDMA_SHT(DRV_NAME),
|
||||
};
|
||||
|
||||
static struct ata_port_operations netcell_ops = {
|
||||
.inherits = &ata_bmdma_port_ops,
|
||||
.cable_detect = ata_cable_80wire,
|
||||
.cable_detect = ata_cable_80wire,
|
||||
.read_id = netcell_read_id,
|
||||
};
|
||||
|
||||
|
||||
|
@ -694,6 +694,9 @@ static ssize_t read_zero(struct file * file, char __user * buf,
|
||||
written += chunk - unwritten;
|
||||
if (unwritten)
|
||||
break;
|
||||
/* Consider changing this to just 'signal_pending()' with lots of testing */
|
||||
if (fatal_signal_pending(current))
|
||||
return written ? written : -EINTR;
|
||||
buf += chunk;
|
||||
count -= chunk;
|
||||
cond_resched();
|
||||
|
@ -179,9 +179,14 @@ static void dma_halt(struct fsl_dma_chan *fsl_chan)
|
||||
static void set_ld_eol(struct fsl_dma_chan *fsl_chan,
|
||||
struct fsl_desc_sw *desc)
|
||||
{
|
||||
u64 snoop_bits;
|
||||
|
||||
snoop_bits = ((fsl_chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_83XX)
|
||||
? FSL_DMA_SNEN : 0;
|
||||
|
||||
desc->hw.next_ln_addr = CPU_TO_DMA(fsl_chan,
|
||||
DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL,
|
||||
64);
|
||||
DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL
|
||||
| snoop_bits, 64);
|
||||
}
|
||||
|
||||
static void append_ld_queue(struct fsl_dma_chan *fsl_chan,
|
||||
@ -313,8 +318,8 @@ static void fsl_chan_toggle_ext_start(struct fsl_dma_chan *fsl_chan, int enable)
|
||||
|
||||
static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx)
|
||||
{
|
||||
struct fsl_desc_sw *desc = tx_to_fsl_desc(tx);
|
||||
struct fsl_dma_chan *fsl_chan = to_fsl_chan(tx->chan);
|
||||
struct fsl_desc_sw *desc;
|
||||
unsigned long flags;
|
||||
dma_cookie_t cookie;
|
||||
|
||||
@ -322,14 +327,17 @@ static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx)
|
||||
spin_lock_irqsave(&fsl_chan->desc_lock, flags);
|
||||
|
||||
cookie = fsl_chan->common.cookie;
|
||||
cookie++;
|
||||
if (cookie < 0)
|
||||
cookie = 1;
|
||||
desc->async_tx.cookie = cookie;
|
||||
fsl_chan->common.cookie = desc->async_tx.cookie;
|
||||
list_for_each_entry(desc, &tx->tx_list, node) {
|
||||
cookie++;
|
||||
if (cookie < 0)
|
||||
cookie = 1;
|
||||
|
||||
append_ld_queue(fsl_chan, desc);
|
||||
list_splice_init(&desc->async_tx.tx_list, fsl_chan->ld_queue.prev);
|
||||
desc->async_tx.cookie = cookie;
|
||||
}
|
||||
|
||||
fsl_chan->common.cookie = cookie;
|
||||
append_ld_queue(fsl_chan, tx_to_fsl_desc(tx));
|
||||
list_splice_init(&tx->tx_list, fsl_chan->ld_queue.prev);
|
||||
|
||||
spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
|
||||
|
||||
@ -454,8 +462,8 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
|
||||
{
|
||||
struct fsl_dma_chan *fsl_chan;
|
||||
struct fsl_desc_sw *first = NULL, *prev = NULL, *new;
|
||||
struct list_head *list;
|
||||
size_t copy;
|
||||
LIST_HEAD(link_chain);
|
||||
|
||||
if (!chan)
|
||||
return NULL;
|
||||
@ -472,7 +480,7 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
|
||||
if (!new) {
|
||||
dev_err(fsl_chan->dev,
|
||||
"No free memory for link descriptor\n");
|
||||
return NULL;
|
||||
goto fail;
|
||||
}
|
||||
#ifdef FSL_DMA_LD_DEBUG
|
||||
dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new);
|
||||
@ -507,7 +515,19 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
|
||||
/* Set End-of-link to the last link descriptor of new list*/
|
||||
set_ld_eol(fsl_chan, new);
|
||||
|
||||
return first ? &first->async_tx : NULL;
|
||||
return &first->async_tx;
|
||||
|
||||
fail:
|
||||
if (!first)
|
||||
return NULL;
|
||||
|
||||
list = &first->async_tx.tx_list;
|
||||
list_for_each_entry_safe_reverse(new, prev, list, node) {
|
||||
list_del(&new->node);
|
||||
dma_pool_free(fsl_chan->desc_pool, new, new->async_tx.phys);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -598,15 +618,16 @@ static void fsl_chan_xfer_ld_queue(struct fsl_dma_chan *fsl_chan)
|
||||
dma_addr_t next_dest_addr;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&fsl_chan->desc_lock, flags);
|
||||
|
||||
if (!dma_is_idle(fsl_chan))
|
||||
return;
|
||||
goto out_unlock;
|
||||
|
||||
dma_halt(fsl_chan);
|
||||
|
||||
/* If there are some link descriptors
|
||||
* not transfered in queue. We need to start it.
|
||||
*/
|
||||
spin_lock_irqsave(&fsl_chan->desc_lock, flags);
|
||||
|
||||
/* Find the first un-transfer desciptor */
|
||||
for (ld_node = fsl_chan->ld_queue.next;
|
||||
@ -617,19 +638,20 @@ static void fsl_chan_xfer_ld_queue(struct fsl_dma_chan *fsl_chan)
|
||||
fsl_chan->common.cookie) == DMA_SUCCESS);
|
||||
ld_node = ld_node->next);
|
||||
|
||||
spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
|
||||
|
||||
if (ld_node != &fsl_chan->ld_queue) {
|
||||
/* Get the ld start address from ld_queue */
|
||||
next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys;
|
||||
dev_dbg(fsl_chan->dev, "xfer LDs staring from %p\n",
|
||||
(void *)next_dest_addr);
|
||||
dev_dbg(fsl_chan->dev, "xfer LDs staring from 0x%llx\n",
|
||||
(unsigned long long)next_dest_addr);
|
||||
set_cdar(fsl_chan, next_dest_addr);
|
||||
dma_start(fsl_chan);
|
||||
} else {
|
||||
set_cdar(fsl_chan, 0);
|
||||
set_ndar(fsl_chan, 0);
|
||||
}
|
||||
|
||||
out_unlock:
|
||||
spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -734,8 +756,9 @@ static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data)
|
||||
*/
|
||||
if (stat & FSL_DMA_SR_EOSI) {
|
||||
dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n");
|
||||
dev_dbg(fsl_chan->dev, "event: clndar %p, nlndar %p\n",
|
||||
(void *)get_cdar(fsl_chan), (void *)get_ndar(fsl_chan));
|
||||
dev_dbg(fsl_chan->dev, "event: clndar 0x%llx, nlndar 0x%llx\n",
|
||||
(unsigned long long)get_cdar(fsl_chan),
|
||||
(unsigned long long)get_ndar(fsl_chan));
|
||||
stat &= ~FSL_DMA_SR_EOSI;
|
||||
update_cookie = 1;
|
||||
}
|
||||
@ -830,7 +853,7 @@ static int __devinit fsl_dma_chan_probe(struct fsl_dma_device *fdev,
|
||||
new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1);
|
||||
|
||||
new_fsl_chan->id = ((new_fsl_chan->reg.start - 0x100) & 0xfff) >> 7;
|
||||
if (new_fsl_chan->id > FSL_DMA_MAX_CHANS_PER_DEVICE) {
|
||||
if (new_fsl_chan->id >= FSL_DMA_MAX_CHANS_PER_DEVICE) {
|
||||
dev_err(fdev->dev, "There is no %d channel!\n",
|
||||
new_fsl_chan->id);
|
||||
err = -EINVAL;
|
||||
@ -925,8 +948,8 @@ static int __devinit of_fsl_dma_probe(struct of_device *dev,
|
||||
}
|
||||
|
||||
dev_info(&dev->dev, "Probe the Freescale DMA driver for %s "
|
||||
"controller at %p...\n",
|
||||
match->compatible, (void *)fdev->reg.start);
|
||||
"controller at 0x%llx...\n",
|
||||
match->compatible, (unsigned long long)fdev->reg.start);
|
||||
fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end
|
||||
- fdev->reg.start + 1);
|
||||
|
||||
|
@ -173,7 +173,7 @@ static int ioat_dma_enumerate_channels(struct ioatdma_device *device)
|
||||
xfercap = (xfercap_scale == 0 ? -1 : (1UL << xfercap_scale));
|
||||
|
||||
#ifdef CONFIG_I7300_IDLE_IOAT_CHANNEL
|
||||
if (i7300_idle_platform_probe(NULL, NULL) == 0) {
|
||||
if (i7300_idle_platform_probe(NULL, NULL, 1) == 0) {
|
||||
device->common.chancnt--;
|
||||
}
|
||||
#endif
|
||||
|
@ -67,12 +67,18 @@ config DRM_I830
|
||||
will load the correct one.
|
||||
|
||||
config DRM_I915
|
||||
tristate "i915 driver"
|
||||
select FB_CFB_FILLRECT
|
||||
select FB_CFB_COPYAREA
|
||||
select FB_CFB_IMAGEBLIT
|
||||
select FB
|
||||
select FRAMEBUFFER_CONSOLE if !EMBEDDED
|
||||
tristate "i915 driver"
|
||||
# i915 depends on ACPI_VIDEO when ACPI is enabled
|
||||
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
|
||||
select VIDEO_OUTPUT_CONTROL if ACPI
|
||||
select BACKLIGHT_CLASS_DEVICE if ACPI
|
||||
select INPUT if ACPI
|
||||
select ACPI_VIDEO if ACPI
|
||||
help
|
||||
Choose this option if you have a system that has Intel 830M, 845G,
|
||||
852GM, 855GM 865G or 915G integrated graphics. If M is selected, the
|
||||
@ -84,12 +90,6 @@ config DRM_I915
|
||||
config DRM_I915_KMS
|
||||
bool "Enable modesetting on intel by default"
|
||||
depends on DRM_I915
|
||||
# i915 KMS depends on ACPI_VIDEO when ACPI is enabled
|
||||
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
|
||||
select VIDEO_OUTPUT_CONTROL if ACPI
|
||||
select BACKLIGHT_CLASS_DEVICE if ACPI
|
||||
select INPUT if ACPI
|
||||
select ACPI_VIDEO if ACPI
|
||||
help
|
||||
Choose this option if you want kernel modesetting enabled by default,
|
||||
and you have a new enough userspace to support this. Running old
|
||||
|
@ -371,7 +371,8 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,
|
||||
list->user_token = list->hash.key << PAGE_SHIFT;
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
|
||||
list->master = dev->primary->master;
|
||||
if (!(map->flags & _DRM_DRIVER))
|
||||
list->master = dev->primary->master;
|
||||
*maplist = list;
|
||||
return 0;
|
||||
}
|
||||
|
@ -2294,7 +2294,12 @@ int drm_mode_connector_property_set_ioctl(struct drm_device *dev,
|
||||
}
|
||||
}
|
||||
|
||||
if (connector->funcs->set_property)
|
||||
/* Do DPMS ourselves */
|
||||
if (property == connector->dev->mode_config.dpms_property) {
|
||||
if (connector->funcs->dpms)
|
||||
(*connector->funcs->dpms)(connector, (int) out_resp->value);
|
||||
ret = 0;
|
||||
} else if (connector->funcs->set_property)
|
||||
ret = connector->funcs->set_property(connector, property, out_resp->value);
|
||||
|
||||
/* store the property value if succesful */
|
||||
|
@ -198,6 +198,29 @@ static void drm_helper_add_std_modes(struct drm_device *dev,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_helper_encoder_in_use - check if a given encoder is in use
|
||||
* @encoder: encoder to check
|
||||
*
|
||||
* LOCKING:
|
||||
* Caller must hold mode config lock.
|
||||
*
|
||||
* Walk @encoders's DRM device's mode_config and see if it's in use.
|
||||
*
|
||||
* RETURNS:
|
||||
* True if @encoder is part of the mode_config, false otherwise.
|
||||
*/
|
||||
bool drm_helper_encoder_in_use(struct drm_encoder *encoder)
|
||||
{
|
||||
struct drm_connector *connector;
|
||||
struct drm_device *dev = encoder->dev;
|
||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
|
||||
if (connector->encoder == encoder)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_helper_encoder_in_use);
|
||||
|
||||
/**
|
||||
* drm_helper_crtc_in_use - check if a given CRTC is in a mode_config
|
||||
* @crtc: CRTC to check
|
||||
@ -216,7 +239,7 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc)
|
||||
struct drm_device *dev = crtc->dev;
|
||||
/* FIXME: Locking around list access? */
|
||||
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head)
|
||||
if (encoder->crtc == crtc)
|
||||
if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@ -240,7 +263,7 @@ void drm_helper_disable_unused_functions(struct drm_device *dev)
|
||||
|
||||
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
|
||||
encoder_funcs = encoder->helper_private;
|
||||
if (!encoder->crtc)
|
||||
if (!drm_helper_encoder_in_use(encoder))
|
||||
(*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
||||
}
|
||||
|
||||
@ -935,6 +958,88 @@ bool drm_helper_initial_config(struct drm_device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL(drm_helper_initial_config);
|
||||
|
||||
static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder)
|
||||
{
|
||||
int dpms = DRM_MODE_DPMS_OFF;
|
||||
struct drm_connector *connector;
|
||||
struct drm_device *dev = encoder->dev;
|
||||
|
||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
|
||||
if (connector->encoder == encoder)
|
||||
if (connector->dpms < dpms)
|
||||
dpms = connector->dpms;
|
||||
return dpms;
|
||||
}
|
||||
|
||||
static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
|
||||
{
|
||||
int dpms = DRM_MODE_DPMS_OFF;
|
||||
struct drm_connector *connector;
|
||||
struct drm_device *dev = crtc->dev;
|
||||
|
||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
|
||||
if (connector->encoder && connector->encoder->crtc == crtc)
|
||||
if (connector->dpms < dpms)
|
||||
dpms = connector->dpms;
|
||||
return dpms;
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_helper_connector_dpms
|
||||
* @connector affected connector
|
||||
* @mode DPMS mode
|
||||
*
|
||||
* Calls the low-level connector DPMS function, then
|
||||
* calls appropriate encoder and crtc DPMS functions as well
|
||||
*/
|
||||
void drm_helper_connector_dpms(struct drm_connector *connector, int mode)
|
||||
{
|
||||
struct drm_encoder *encoder = connector->encoder;
|
||||
struct drm_crtc *crtc = encoder ? encoder->crtc : NULL;
|
||||
int old_dpms;
|
||||
|
||||
if (mode == connector->dpms)
|
||||
return;
|
||||
|
||||
old_dpms = connector->dpms;
|
||||
connector->dpms = mode;
|
||||
|
||||
/* from off to on, do crtc then encoder */
|
||||
if (mode < old_dpms) {
|
||||
if (crtc) {
|
||||
struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
|
||||
if (crtc_funcs->dpms)
|
||||
(*crtc_funcs->dpms) (crtc,
|
||||
drm_helper_choose_crtc_dpms(crtc));
|
||||
}
|
||||
if (encoder) {
|
||||
struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
||||
if (encoder_funcs->dpms)
|
||||
(*encoder_funcs->dpms) (encoder,
|
||||
drm_helper_choose_encoder_dpms(encoder));
|
||||
}
|
||||
}
|
||||
|
||||
/* from on to off, do encoder then crtc */
|
||||
if (mode > old_dpms) {
|
||||
if (encoder) {
|
||||
struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
||||
if (encoder_funcs->dpms)
|
||||
(*encoder_funcs->dpms) (encoder,
|
||||
drm_helper_choose_encoder_dpms(encoder));
|
||||
}
|
||||
if (crtc) {
|
||||
struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
|
||||
if (crtc_funcs->dpms)
|
||||
(*crtc_funcs->dpms) (crtc,
|
||||
drm_helper_choose_crtc_dpms(crtc));
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_helper_connector_dpms);
|
||||
|
||||
/**
|
||||
* drm_hotplug_stage_two
|
||||
* @dev DRM device
|
||||
|
@ -289,6 +289,11 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev,
|
||||
struct drm_display_mode *mode;
|
||||
struct detailed_pixel_timing *pt = &timing->data.pixel_data;
|
||||
|
||||
/* ignore tiny modes */
|
||||
if (((pt->hactive_hi << 8) | pt->hactive_lo) < 64 ||
|
||||
((pt->vactive_hi << 8) | pt->hactive_lo) < 64)
|
||||
return NULL;
|
||||
|
||||
if (pt->stereo) {
|
||||
printk(KERN_WARNING "stereo mode not supported\n");
|
||||
return NULL;
|
||||
|
@ -196,6 +196,7 @@ int drm_irq_install(struct drm_device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned long sh_flags = 0;
|
||||
char *irqname;
|
||||
|
||||
if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
|
||||
return -EINVAL;
|
||||
@ -227,8 +228,13 @@ int drm_irq_install(struct drm_device *dev)
|
||||
if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
|
||||
sh_flags = IRQF_SHARED;
|
||||
|
||||
if (dev->devname)
|
||||
irqname = dev->devname;
|
||||
else
|
||||
irqname = dev->driver->name;
|
||||
|
||||
ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler,
|
||||
sh_flags, dev->devname, dev);
|
||||
sh_flags, irqname, dev);
|
||||
|
||||
if (ret < 0) {
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
|
@ -147,7 +147,7 @@ static ssize_t status_show(struct device *device,
|
||||
enum drm_connector_status status;
|
||||
|
||||
status = connector->funcs->detect(connector);
|
||||
return snprintf(buf, PAGE_SIZE, "%s",
|
||||
return snprintf(buf, PAGE_SIZE, "%s\n",
|
||||
drm_get_connector_status_name(status));
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ static ssize_t dpms_show(struct device *device,
|
||||
if (ret)
|
||||
return 0;
|
||||
|
||||
return snprintf(buf, PAGE_SIZE, "%s",
|
||||
return snprintf(buf, PAGE_SIZE, "%s\n",
|
||||
drm_get_dpms_name((int)dpms_status));
|
||||
}
|
||||
|
||||
@ -176,7 +176,7 @@ static ssize_t enabled_show(struct device *device,
|
||||
{
|
||||
struct drm_connector *connector = to_drm_connector(device);
|
||||
|
||||
return snprintf(buf, PAGE_SIZE, connector->encoder ? "enabled" :
|
||||
return snprintf(buf, PAGE_SIZE, "%s\n", connector->encoder ? "enabled" :
|
||||
"disabled");
|
||||
}
|
||||
|
||||
@ -317,6 +317,7 @@ static struct device_attribute connector_attrs_opt1[] = {
|
||||
|
||||
static struct bin_attribute edid_attr = {
|
||||
.attr.name = "edid",
|
||||
.attr.mode = 0444,
|
||||
.size = 128,
|
||||
.read = edid_show,
|
||||
};
|
||||
|
@ -987,12 +987,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
int fb_bar = IS_I9XX(dev) ? 2 : 0;
|
||||
int ret = 0;
|
||||
|
||||
dev->devname = kstrdup(DRIVER_NAME, GFP_KERNEL);
|
||||
if (!dev->devname) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) &
|
||||
0xff000000;
|
||||
|
||||
@ -1006,7 +1000,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
|
||||
ret = i915_probe_agp(dev, &agp_size, &prealloc_size);
|
||||
if (ret)
|
||||
goto kfree_devname;
|
||||
goto out;
|
||||
|
||||
/* Basic memrange allocator for stolen space (aka vram) */
|
||||
drm_mm_init(&dev_priv->vram, 0, prealloc_size);
|
||||
@ -1024,7 +1018,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
|
||||
ret = i915_gem_init_ringbuffer(dev);
|
||||
if (ret)
|
||||
goto kfree_devname;
|
||||
goto out;
|
||||
|
||||
/* Allow hardware batchbuffers unless told otherwise.
|
||||
*/
|
||||
@ -1056,8 +1050,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
|
||||
destroy_ringbuffer:
|
||||
i915_gem_cleanup_ringbuffer(dev);
|
||||
kfree_devname:
|
||||
kfree(dev->devname);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
@ -2260,9 +2260,6 @@ try_again:
|
||||
goto try_again;
|
||||
}
|
||||
|
||||
BUG_ON(old_obj_priv->active ||
|
||||
(reg->obj->write_domain & I915_GEM_GPU_DOMAINS));
|
||||
|
||||
/*
|
||||
* Zap this virtual mapping so we can set up a fence again
|
||||
* for this object next time we need it.
|
||||
|
@ -381,11 +381,6 @@ static int intel_crt_set_property(struct drm_connector *connector,
|
||||
struct drm_property *property,
|
||||
uint64_t value)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
|
||||
if (property == dev->mode_config.dpms_property && connector->encoder)
|
||||
intel_crt_dpms(connector->encoder, (uint32_t)(value & 0xf));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -402,6 +397,7 @@ static const struct drm_encoder_helper_funcs intel_crt_helper_funcs = {
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_crt_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.detect = intel_crt_detect,
|
||||
.fill_modes = drm_helper_probe_single_connector_modes,
|
||||
.destroy = intel_crt_destroy,
|
||||
|
@ -316,6 +316,7 @@ static const struct drm_encoder_helper_funcs intel_dvo_helper_funcs = {
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_dvo_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.save = intel_dvo_save,
|
||||
.restore = intel_dvo_restore,
|
||||
.detect = intel_dvo_detect,
|
||||
|
@ -219,6 +219,7 @@ static const struct drm_encoder_helper_funcs intel_hdmi_helper_funcs = {
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.save = intel_hdmi_save,
|
||||
.restore = intel_hdmi_restore,
|
||||
.detect = intel_hdmi_detect,
|
||||
|
@ -343,11 +343,6 @@ static int intel_lvds_set_property(struct drm_connector *connector,
|
||||
struct drm_property *property,
|
||||
uint64_t value)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
|
||||
if (property == dev->mode_config.dpms_property && connector->encoder)
|
||||
intel_lvds_dpms(connector->encoder, (uint32_t)(value & 0xf));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -366,6 +361,7 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_lvds_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.save = intel_lvds_save,
|
||||
.restore = intel_lvds_restore,
|
||||
.detect = intel_lvds_detect,
|
||||
@ -391,7 +387,7 @@ static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
|
||||
}
|
||||
|
||||
/* These systems claim to have LVDS, but really don't */
|
||||
static const struct dmi_system_id __initdata intel_no_lvds[] = {
|
||||
static const struct dmi_system_id intel_no_lvds[] = {
|
||||
{
|
||||
.callback = intel_no_lvds_dmi_callback,
|
||||
.ident = "Apple Mac Mini (Core series)",
|
||||
|
@ -1616,6 +1616,7 @@ static const struct drm_encoder_helper_funcs intel_sdvo_helper_funcs = {
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.save = intel_sdvo_save,
|
||||
.restore = intel_sdvo_restore,
|
||||
.detect = intel_sdvo_detect,
|
||||
|
@ -1626,6 +1626,7 @@ static const struct drm_encoder_helper_funcs intel_tv_helper_funcs = {
|
||||
};
|
||||
|
||||
static const struct drm_connector_funcs intel_tv_connector_funcs = {
|
||||
.dpms = drm_helper_connector_dpms,
|
||||
.save = intel_tv_save,
|
||||
.restore = intel_tv_restore,
|
||||
.detect = intel_tv_detect,
|
||||
|
@ -2185,9 +2185,9 @@ void radeon_commit_ring(drm_radeon_private_t *dev_priv)
|
||||
|
||||
/* check if the ring is padded out to 16-dword alignment */
|
||||
|
||||
tail_aligned = dev_priv->ring.tail & 0xf;
|
||||
tail_aligned = dev_priv->ring.tail & (RADEON_RING_ALIGN-1);
|
||||
if (tail_aligned) {
|
||||
int num_p2 = 16 - tail_aligned;
|
||||
int num_p2 = RADEON_RING_ALIGN - tail_aligned;
|
||||
|
||||
ring = dev_priv->ring.start;
|
||||
/* pad with some CP_PACKET2 */
|
||||
|
@ -1964,11 +1964,14 @@ do { \
|
||||
|
||||
#define RING_LOCALS int write, _nr, _align_nr; unsigned int mask; u32 *ring;
|
||||
|
||||
#define RADEON_RING_ALIGN 16
|
||||
|
||||
#define BEGIN_RING( n ) do { \
|
||||
if ( RADEON_VERBOSE ) { \
|
||||
DRM_INFO( "BEGIN_RING( %d )\n", (n)); \
|
||||
} \
|
||||
_align_nr = (n + 0xf) & ~0xf; \
|
||||
_align_nr = RADEON_RING_ALIGN - ((dev_priv->ring.tail + n) & (RADEON_RING_ALIGN-1)); \
|
||||
_align_nr += n; \
|
||||
if (dev_priv->ring.space <= (_align_nr * sizeof(u32))) { \
|
||||
COMMIT_RING(); \
|
||||
radeon_wait_ring( dev_priv, _align_nr * sizeof(u32)); \
|
||||
|
@ -182,7 +182,7 @@ static struct platform_driver lm78_isa_driver = {
|
||||
.name = "lm78",
|
||||
},
|
||||
.probe = lm78_isa_probe,
|
||||
.remove = lm78_isa_remove,
|
||||
.remove = __devexit_p(lm78_isa_remove),
|
||||
};
|
||||
|
||||
|
||||
|
@ -33,6 +33,16 @@ static int ide_generic_all; /* Set to claim all devices */
|
||||
module_param_named(all_generic_ide, ide_generic_all, bool, 0444);
|
||||
MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers.");
|
||||
|
||||
static void netcell_quirkproc(ide_drive_t *drive)
|
||||
{
|
||||
/* mark words 85-87 as valid */
|
||||
drive->id[ATA_ID_CSF_DEFAULT] |= 0x4000;
|
||||
}
|
||||
|
||||
static const struct ide_port_ops netcell_port_ops = {
|
||||
.quirkproc = netcell_quirkproc,
|
||||
};
|
||||
|
||||
#define DECLARE_GENERIC_PCI_DEV(extra_flags) \
|
||||
{ \
|
||||
.name = DRV_NAME, \
|
||||
@ -74,6 +84,7 @@ static const struct ide_port_info generic_chipsets[] __devinitdata = {
|
||||
|
||||
{ /* 6: Revolution */
|
||||
.name = DRV_NAME,
|
||||
.port_ops = &netcell_port_ops,
|
||||
.host_flags = IDE_HFLAG_CLEAR_SIMPLEX |
|
||||
IDE_HFLAG_TRUST_BIOS_FOR_DMA |
|
||||
IDE_HFLAG_OFF_BOARD,
|
||||
|
@ -41,6 +41,10 @@ static int debug;
|
||||
module_param_named(debug, debug, uint, 0644);
|
||||
MODULE_PARM_DESC(debug, "Enable debug printks in this driver");
|
||||
|
||||
static int forceload;
|
||||
module_param_named(forceload, forceload, uint, 0644);
|
||||
MODULE_PARM_DESC(debug, "Enable driver testing on unvalidated i5000");
|
||||
|
||||
#define dprintk(fmt, arg...) \
|
||||
do { if (debug) printk(KERN_INFO I7300_PRINT fmt, ##arg); } while (0)
|
||||
|
||||
@ -552,7 +556,7 @@ static int __init i7300_idle_init(void)
|
||||
cpus_clear(idle_cpumask);
|
||||
total_us = 0;
|
||||
|
||||
if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev))
|
||||
if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev, forceload))
|
||||
return -ENODEV;
|
||||
|
||||
if (i7300_idle_thrt_save())
|
||||
|
@ -480,9 +480,13 @@ static int pnp_registered;
|
||||
|
||||
#ifdef CONFIG_EISA
|
||||
static struct eisa_device_id el3_eisa_ids[] = {
|
||||
{ "TCM5090" },
|
||||
{ "TCM5091" },
|
||||
{ "TCM5092" },
|
||||
{ "TCM5093" },
|
||||
{ "TCM5094" },
|
||||
{ "TCM5095" },
|
||||
{ "TCM5098" },
|
||||
{ "" }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(eisa, el3_eisa_ids);
|
||||
|
@ -37,6 +37,7 @@ char atl1e_driver_version[] = DRV_VERSION;
|
||||
*/
|
||||
static struct pci_device_id atl1e_pci_tbl[] = {
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L1E)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, 0x1066)},
|
||||
/* required last entry */
|
||||
{ 0 }
|
||||
};
|
||||
|
@ -82,6 +82,12 @@
|
||||
|
||||
#include "atl1.h"
|
||||
|
||||
#define ATLX_DRIVER_VERSION "2.1.3"
|
||||
MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \
|
||||
Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(ATLX_DRIVER_VERSION);
|
||||
|
||||
/* Temporary hack for merging atl1 and atl2 */
|
||||
#include "atlx.c"
|
||||
|
||||
|
@ -29,12 +29,6 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define ATLX_DRIVER_VERSION "2.1.3"
|
||||
MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \
|
||||
Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(ATLX_DRIVER_VERSION);
|
||||
|
||||
#define ATLX_ERR_PHY 2
|
||||
#define ATLX_ERR_PHY_SPEED 7
|
||||
#define ATLX_ERR_PHY_RES 8
|
||||
|
@ -979,22 +979,7 @@ static int bfin_mac_open(struct net_device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops bfin_mac_netdev_ops = {
|
||||
.ndo_open = bfin_mac_open,
|
||||
.ndo_stop = bfin_mac_close,
|
||||
.ndo_start_xmit = bfin_mac_hard_start_xmit,
|
||||
.ndo_set_mac_address = bfin_mac_set_mac_address,
|
||||
.ndo_tx_timeout = bfin_mac_timeout,
|
||||
.ndo_set_multicast_list = bfin_mac_set_multicast_list,
|
||||
.ndo_validate_addr = eth_validate_addr,
|
||||
.ndo_change_mtu = eth_change_mtu,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_poll_controller = bfin_mac_poll,
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
*
|
||||
* this makes the board clean up everything that it can
|
||||
* and not talk to the outside world. Caused by
|
||||
* an 'ifconfig ethX down'
|
||||
@ -1019,6 +1004,20 @@ static int bfin_mac_close(struct net_device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops bfin_mac_netdev_ops = {
|
||||
.ndo_open = bfin_mac_open,
|
||||
.ndo_stop = bfin_mac_close,
|
||||
.ndo_start_xmit = bfin_mac_hard_start_xmit,
|
||||
.ndo_set_mac_address = bfin_mac_set_mac_address,
|
||||
.ndo_tx_timeout = bfin_mac_timeout,
|
||||
.ndo_set_multicast_list = bfin_mac_set_multicast_list,
|
||||
.ndo_validate_addr = eth_validate_addr,
|
||||
.ndo_change_mtu = eth_change_mtu,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_poll_controller = bfin_mac_poll,
|
||||
#endif
|
||||
};
|
||||
|
||||
static int __devinit bfin_mac_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct net_device *ndev;
|
||||
|
@ -85,8 +85,8 @@ struct fl_pg_chunk {
|
||||
struct page *page;
|
||||
void *va;
|
||||
unsigned int offset;
|
||||
u64 *p_cnt;
|
||||
DECLARE_PCI_UNMAP_ADDR(mapping);
|
||||
unsigned long *p_cnt;
|
||||
dma_addr_t mapping;
|
||||
};
|
||||
|
||||
struct rx_desc;
|
||||
|
@ -2496,14 +2496,16 @@ static void check_link_status(struct adapter *adapter)
|
||||
for_each_port(adapter, i) {
|
||||
struct net_device *dev = adapter->port[i];
|
||||
struct port_info *p = netdev_priv(dev);
|
||||
int link_fault;
|
||||
|
||||
spin_lock_irq(&adapter->work_lock);
|
||||
if (p->link_fault) {
|
||||
link_fault = p->link_fault;
|
||||
spin_unlock_irq(&adapter->work_lock);
|
||||
|
||||
if (link_fault) {
|
||||
t3_link_fault(adapter, i);
|
||||
spin_unlock_irq(&adapter->work_lock);
|
||||
continue;
|
||||
}
|
||||
spin_unlock_irq(&adapter->work_lock);
|
||||
|
||||
if (!(p->phy.caps & SUPPORTED_IRQ) && netif_running(dev)) {
|
||||
t3_xgm_intr_disable(adapter, i);
|
||||
|
@ -355,7 +355,7 @@ static void clear_rx_desc(struct pci_dev *pdev, const struct sge_fl *q,
|
||||
(*d->pg_chunk.p_cnt)--;
|
||||
if (!*d->pg_chunk.p_cnt)
|
||||
pci_unmap_page(pdev,
|
||||
pci_unmap_addr(&d->pg_chunk, mapping),
|
||||
d->pg_chunk.mapping,
|
||||
q->alloc_size, PCI_DMA_FROMDEVICE);
|
||||
|
||||
put_page(d->pg_chunk.page);
|
||||
@ -454,7 +454,7 @@ static int alloc_pg_chunk(struct adapter *adapter, struct sge_fl *q,
|
||||
q->pg_chunk.offset = 0;
|
||||
mapping = pci_map_page(adapter->pdev, q->pg_chunk.page,
|
||||
0, q->alloc_size, PCI_DMA_FROMDEVICE);
|
||||
pci_unmap_addr_set(&q->pg_chunk, mapping, mapping);
|
||||
q->pg_chunk.mapping = mapping;
|
||||
}
|
||||
sd->pg_chunk = q->pg_chunk;
|
||||
|
||||
@ -511,8 +511,7 @@ static int refill_fl(struct adapter *adap, struct sge_fl *q, int n, gfp_t gfp)
|
||||
nomem: q->alloc_failed++;
|
||||
break;
|
||||
}
|
||||
mapping = pci_unmap_addr(&sd->pg_chunk, mapping) +
|
||||
sd->pg_chunk.offset;
|
||||
mapping = sd->pg_chunk.mapping + sd->pg_chunk.offset;
|
||||
pci_unmap_addr_set(sd, dma_addr, mapping);
|
||||
|
||||
add_one_rx_chunk(mapping, d, q->gen);
|
||||
@ -881,7 +880,7 @@ recycle:
|
||||
(*sd->pg_chunk.p_cnt)--;
|
||||
if (!*sd->pg_chunk.p_cnt)
|
||||
pci_unmap_page(adap->pdev,
|
||||
pci_unmap_addr(&sd->pg_chunk, mapping),
|
||||
sd->pg_chunk.mapping,
|
||||
fl->alloc_size,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
if (!skb) {
|
||||
@ -2096,7 +2095,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
|
||||
(*sd->pg_chunk.p_cnt)--;
|
||||
if (!*sd->pg_chunk.p_cnt)
|
||||
pci_unmap_page(adap->pdev,
|
||||
pci_unmap_addr(&sd->pg_chunk, mapping),
|
||||
sd->pg_chunk.mapping,
|
||||
fl->alloc_size,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
|
||||
|
@ -1274,6 +1274,11 @@ void t3_link_fault(struct adapter *adapter, int port_id)
|
||||
A_XGM_INT_STATUS + mac->offset);
|
||||
link_fault &= F_LINKFAULTCHANGE;
|
||||
|
||||
link_ok = lc->link_ok;
|
||||
speed = lc->speed;
|
||||
duplex = lc->duplex;
|
||||
fc = lc->fc;
|
||||
|
||||
phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc);
|
||||
|
||||
if (link_fault) {
|
||||
|
@ -4027,8 +4027,9 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
|
||||
length = le16_to_cpu(rx_desc->length);
|
||||
|
||||
if (unlikely(!(status & E1000_RXD_STAT_EOP))) {
|
||||
/* !EOP means multiple descriptors were used to store a single
|
||||
* packet, also make sure the frame isn't just CRC only */
|
||||
if (unlikely(!(status & E1000_RXD_STAT_EOP) || (length <= 4))) {
|
||||
/* All receives must fit into a single buffer */
|
||||
E1000_DBG("%s: Receive packet consumed multiple"
|
||||
" buffers\n", netdev->name);
|
||||
|
@ -897,6 +897,12 @@ enum {
|
||||
};
|
||||
static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED;
|
||||
|
||||
/*
|
||||
* Power down phy when interface is down (persists through reboot;
|
||||
* older Linux and other OSes may not power it up again)
|
||||
*/
|
||||
static int phy_power_down = 0;
|
||||
|
||||
static inline struct fe_priv *get_nvpriv(struct net_device *dev)
|
||||
{
|
||||
return netdev_priv(dev);
|
||||
@ -1485,7 +1491,10 @@ static int phy_init(struct net_device *dev)
|
||||
|
||||
/* restart auto negotiation, power down phy */
|
||||
mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ);
|
||||
mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE | BMCR_PDOWN);
|
||||
mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE);
|
||||
if (phy_power_down) {
|
||||
mii_control |= BMCR_PDOWN;
|
||||
}
|
||||
if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control)) {
|
||||
return PHY_ERROR;
|
||||
}
|
||||
@ -5513,7 +5522,7 @@ static int nv_close(struct net_device *dev)
|
||||
|
||||
nv_drain_rxtx(dev);
|
||||
|
||||
if (np->wolenabled) {
|
||||
if (np->wolenabled || !phy_power_down) {
|
||||
writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags);
|
||||
nv_start_rx(dev);
|
||||
} else {
|
||||
@ -6367,6 +6376,8 @@ module_param(dma_64bit, int, 0);
|
||||
MODULE_PARM_DESC(dma_64bit, "High DMA is enabled by setting to 1 and disabled by setting to 0.");
|
||||
module_param(phy_cross, int, 0);
|
||||
MODULE_PARM_DESC(phy_cross, "Phy crossover detection for Realtek 8201 phy is enabled by setting to 1 and disabled by setting to 0.");
|
||||
module_param(phy_power_down, int, 0);
|
||||
MODULE_PARM_DESC(phy_power_down, "Power down phy and disable link when interface is down (1), or leave phy powered up (0).");
|
||||
|
||||
MODULE_AUTHOR("Manfred Spraul <manfred@colorfullife.com>");
|
||||
MODULE_DESCRIPTION("Reverse Engineered nForce ethernet driver");
|
||||
|
@ -259,7 +259,7 @@ extern const char gfar_driver_version[];
|
||||
(IEVENT_RXC | IEVENT_BSY | IEVENT_EBERR | IEVENT_MSRO | \
|
||||
IEVENT_BABT | IEVENT_TXC | IEVENT_TXE | IEVENT_LC \
|
||||
| IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR \
|
||||
| IEVENT_MAG)
|
||||
| IEVENT_MAG | IEVENT_BABR)
|
||||
|
||||
#define IMASK_INIT_CLEAR 0x00000000
|
||||
#define IMASK_BABR 0x80000000
|
||||
|
@ -489,7 +489,7 @@ static const struct net_device_ops mac8390_netdev_ops = {
|
||||
.ndo_set_mac_address = eth_mac_addr,
|
||||
.ndo_change_mtu = eth_change_mtu,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_poll_controller = ei_poll,
|
||||
.ndo_poll_controller = __ei_poll,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -426,7 +426,7 @@ void mlx4_en_poll_tx_cq(unsigned long data)
|
||||
|
||||
INC_PERF_COUNTER(priv->pstats.tx_poll);
|
||||
|
||||
if (!spin_trylock(&ring->comp_lock)) {
|
||||
if (!spin_trylock_irq(&ring->comp_lock)) {
|
||||
mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT);
|
||||
return;
|
||||
}
|
||||
@ -439,7 +439,7 @@ void mlx4_en_poll_tx_cq(unsigned long data)
|
||||
if (inflight && priv->port_up)
|
||||
mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT);
|
||||
|
||||
spin_unlock(&ring->comp_lock);
|
||||
spin_unlock_irq(&ring->comp_lock);
|
||||
}
|
||||
|
||||
static struct mlx4_en_tx_desc *mlx4_en_bounce_to_desc(struct mlx4_en_priv *priv,
|
||||
@ -482,9 +482,9 @@ static inline void mlx4_en_xmit_poll(struct mlx4_en_priv *priv, int tx_ind)
|
||||
|
||||
/* Poll the CQ every mlx4_en_TX_MODER_POLL packets */
|
||||
if ((++ring->poll_cnt & (MLX4_EN_TX_POLL_MODER - 1)) == 0)
|
||||
if (spin_trylock(&ring->comp_lock)) {
|
||||
if (spin_trylock_irq(&ring->comp_lock)) {
|
||||
mlx4_en_process_tx_cq(priv->dev, cq);
|
||||
spin_unlock(&ring->comp_lock);
|
||||
spin_unlock_irq(&ring->comp_lock);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -430,6 +430,7 @@ config RTL8187
|
||||
ASUS P5B Deluxe
|
||||
Toshiba Satellite Pro series of laptops
|
||||
Asus Wireless Link
|
||||
Linksys WUSB54GC-EU
|
||||
|
||||
Thanks to Realtek for their support!
|
||||
|
||||
|
@ -1873,18 +1873,18 @@ static void at76_dwork_hw_scan(struct work_struct *work)
|
||||
if (ret != CMD_STATUS_COMPLETE) {
|
||||
queue_delayed_work(priv->hw->workqueue, &priv->dwork_hw_scan,
|
||||
SCAN_POLL_INTERVAL);
|
||||
goto exit;
|
||||
mutex_unlock(&priv->mtx);
|
||||
return;
|
||||
}
|
||||
|
||||
ieee80211_scan_completed(priv->hw, false);
|
||||
|
||||
if (is_valid_ether_addr(priv->bssid))
|
||||
at76_join(priv);
|
||||
|
||||
ieee80211_wake_queues(priv->hw);
|
||||
|
||||
exit:
|
||||
mutex_unlock(&priv->mtx);
|
||||
|
||||
ieee80211_scan_completed(priv->hw, false);
|
||||
|
||||
ieee80211_wake_queues(priv->hw);
|
||||
}
|
||||
|
||||
static int at76_hw_scan(struct ieee80211_hw *hw,
|
||||
|
@ -71,6 +71,8 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
|
||||
{USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187},
|
||||
/* AirLive */
|
||||
{USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187},
|
||||
/* Linksys */
|
||||
{USB_DEVICE(0x1737, 0x0073), .driver_info = DEVICE_RTL8187B},
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -614,7 +614,10 @@ parport_register_device(struct parport *port, const char *name,
|
||||
* pardevice fields. -arca
|
||||
*/
|
||||
port->ops->init_state(tmp, tmp->state);
|
||||
parport_device_proc_register(tmp);
|
||||
if (!test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) {
|
||||
port->proc_device = tmp;
|
||||
parport_device_proc_register(tmp);
|
||||
}
|
||||
return tmp;
|
||||
|
||||
out_free_all:
|
||||
@ -646,10 +649,14 @@ void parport_unregister_device(struct pardevice *dev)
|
||||
}
|
||||
#endif
|
||||
|
||||
parport_device_proc_unregister(dev);
|
||||
|
||||
port = dev->port->physport;
|
||||
|
||||
if (port->proc_device == dev) {
|
||||
port->proc_device = NULL;
|
||||
clear_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags);
|
||||
parport_device_proc_unregister(dev);
|
||||
}
|
||||
|
||||
if (port->cad == dev) {
|
||||
printk(KERN_DEBUG "%s: %s forgot to release port\n",
|
||||
port->name, dev->name);
|
||||
|
@ -129,7 +129,6 @@ struct acpiphp_func {
|
||||
struct acpiphp_bridge *bridge; /* Ejectable PCI-to-PCI bridge */
|
||||
|
||||
struct list_head sibling;
|
||||
struct pci_dev *pci_dev;
|
||||
struct notifier_block nb;
|
||||
acpi_handle handle;
|
||||
|
||||
|
@ -32,9 +32,6 @@
|
||||
|
||||
/*
|
||||
* Lifetime rules for pci_dev:
|
||||
* - The one in acpiphp_func has its refcount elevated by pci_get_slot()
|
||||
* when the driver is loaded or when an insertion event occurs. It loses
|
||||
* a refcount when its ejected or the driver unloads.
|
||||
* - The one in acpiphp_bridge has its refcount elevated by pci_get_slot()
|
||||
* when the bridge is scanned and it loses a refcount when the bridge
|
||||
* is removed.
|
||||
@ -130,6 +127,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
|
||||
unsigned long long adr, sun;
|
||||
int device, function, retval;
|
||||
struct pci_bus *pbus = bridge->pci_bus;
|
||||
struct pci_dev *pdev;
|
||||
|
||||
if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle))
|
||||
return AE_OK;
|
||||
@ -213,10 +211,10 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
|
||||
newfunc->slot = slot;
|
||||
list_add_tail(&newfunc->sibling, &slot->funcs);
|
||||
|
||||
/* associate corresponding pci_dev */
|
||||
newfunc->pci_dev = pci_get_slot(pbus, PCI_DEVFN(device, function));
|
||||
if (newfunc->pci_dev) {
|
||||
pdev = pci_get_slot(pbus, PCI_DEVFN(device, function));
|
||||
if (pdev) {
|
||||
slot->flags |= (SLOT_ENABLED | SLOT_POWEREDON);
|
||||
pci_dev_put(pdev);
|
||||
}
|
||||
|
||||
if (is_dock_device(handle)) {
|
||||
@ -617,7 +615,6 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge)
|
||||
if (ACPI_FAILURE(status))
|
||||
err("failed to remove notify handler\n");
|
||||
}
|
||||
pci_dev_put(func->pci_dev);
|
||||
list_del(list);
|
||||
kfree(func);
|
||||
}
|
||||
@ -1101,22 +1098,24 @@ static int __ref enable_device(struct acpiphp_slot *slot)
|
||||
pci_enable_bridges(bus);
|
||||
pci_bus_add_devices(bus);
|
||||
|
||||
/* associate pci_dev to our representation */
|
||||
list_for_each (l, &slot->funcs) {
|
||||
func = list_entry(l, struct acpiphp_func, sibling);
|
||||
func->pci_dev = pci_get_slot(bus, PCI_DEVFN(slot->device,
|
||||
func->function));
|
||||
if (!func->pci_dev)
|
||||
dev = pci_get_slot(bus, PCI_DEVFN(slot->device,
|
||||
func->function));
|
||||
if (!dev)
|
||||
continue;
|
||||
|
||||
if (func->pci_dev->hdr_type != PCI_HEADER_TYPE_BRIDGE &&
|
||||
func->pci_dev->hdr_type != PCI_HEADER_TYPE_CARDBUS)
|
||||
if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE &&
|
||||
dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) {
|
||||
pci_dev_put(dev);
|
||||
continue;
|
||||
}
|
||||
|
||||
status = find_p2p_bridge(func->handle, (u32)1, bus, NULL);
|
||||
if (ACPI_FAILURE(status))
|
||||
warn("find_p2p_bridge failed (error code = 0x%x)\n",
|
||||
status);
|
||||
pci_dev_put(dev);
|
||||
}
|
||||
|
||||
slot->flags |= SLOT_ENABLED;
|
||||
@ -1142,17 +1141,14 @@ static void disable_bridges(struct pci_bus *bus)
|
||||
*/
|
||||
static int disable_device(struct acpiphp_slot *slot)
|
||||
{
|
||||
int retval = 0;
|
||||
struct acpiphp_func *func;
|
||||
struct list_head *l;
|
||||
struct pci_dev *pdev;
|
||||
|
||||
/* is this slot already disabled? */
|
||||
if (!(slot->flags & SLOT_ENABLED))
|
||||
goto err_exit;
|
||||
|
||||
list_for_each (l, &slot->funcs) {
|
||||
func = list_entry(l, struct acpiphp_func, sibling);
|
||||
|
||||
list_for_each_entry(func, &slot->funcs, sibling) {
|
||||
if (func->bridge) {
|
||||
/* cleanup p2p bridges under this P2P bridge */
|
||||
cleanup_p2p_bridge(func->bridge->handle,
|
||||
@ -1160,35 +1156,28 @@ static int disable_device(struct acpiphp_slot *slot)
|
||||
func->bridge = NULL;
|
||||
}
|
||||
|
||||
if (func->pci_dev) {
|
||||
pci_stop_bus_device(func->pci_dev);
|
||||
if (func->pci_dev->subordinate) {
|
||||
disable_bridges(func->pci_dev->subordinate);
|
||||
pci_disable_device(func->pci_dev);
|
||||
pdev = pci_get_slot(slot->bridge->pci_bus,
|
||||
PCI_DEVFN(slot->device, func->function));
|
||||
if (pdev) {
|
||||
pci_stop_bus_device(pdev);
|
||||
if (pdev->subordinate) {
|
||||
disable_bridges(pdev->subordinate);
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
pci_remove_bus_device(pdev);
|
||||
pci_dev_put(pdev);
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each (l, &slot->funcs) {
|
||||
func = list_entry(l, struct acpiphp_func, sibling);
|
||||
|
||||
list_for_each_entry(func, &slot->funcs, sibling) {
|
||||
acpiphp_unconfigure_ioapics(func->handle);
|
||||
acpiphp_bus_trim(func->handle);
|
||||
/* try to remove anyway.
|
||||
* acpiphp_bus_add might have been failed */
|
||||
|
||||
if (!func->pci_dev)
|
||||
continue;
|
||||
|
||||
pci_remove_bus_device(func->pci_dev);
|
||||
pci_dev_put(func->pci_dev);
|
||||
func->pci_dev = NULL;
|
||||
}
|
||||
|
||||
slot->flags &= (~SLOT_ENABLED);
|
||||
|
||||
err_exit:
|
||||
return retval;
|
||||
err_exit:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
1
firmware/cis/.gitignore
vendored
Normal file
1
firmware/cis/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.cis
|
@ -311,7 +311,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
||||
ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
|
||||
if (ret < 0) {
|
||||
if (ret != -ENOENT)
|
||||
goto out_sem;
|
||||
goto out_header;
|
||||
/* skip hole */
|
||||
ret = 0;
|
||||
continue;
|
||||
@ -344,7 +344,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
||||
continue;
|
||||
printk(KERN_ERR "%s: cannot delete block\n",
|
||||
__func__);
|
||||
goto out_sem;
|
||||
goto out_header;
|
||||
}
|
||||
}
|
||||
|
||||
@ -361,6 +361,8 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
||||
nilfs_mdt_mark_dirty(cpfile);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
}
|
||||
|
||||
out_header:
|
||||
brelse(header_bh);
|
||||
|
||||
out_sem:
|
||||
|
@ -103,7 +103,7 @@ extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast);
|
||||
static inline int
|
||||
kmem_shake_allow(gfp_t gfp_mask)
|
||||
{
|
||||
return (gfp_mask & __GFP_WAIT) != 0;
|
||||
return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS));
|
||||
}
|
||||
|
||||
#endif /* __XFS_SUPPORT_KMEM_H__ */
|
||||
|
@ -347,13 +347,15 @@ xfs_swap_extents(
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_SWAPEXT);
|
||||
|
||||
out_unlock:
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
|
||||
xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
|
||||
out:
|
||||
kmem_free(tempifp);
|
||||
return error;
|
||||
|
||||
out_unlock:
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
|
||||
xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
|
||||
goto out;
|
||||
|
||||
out_trans_cancel:
|
||||
xfs_trans_cancel(tp, 0);
|
||||
goto out_unlock;
|
||||
|
@ -160,7 +160,7 @@ xfs_growfs_data_private(
|
||||
nagcount = new + (nb_mod != 0);
|
||||
if (nb_mod && nb_mod < XFS_MIN_AG_BLOCKS) {
|
||||
nagcount--;
|
||||
nb = nagcount * mp->m_sb.sb_agblocks;
|
||||
nb = (xfs_rfsblock_t)nagcount * mp->m_sb.sb_agblocks;
|
||||
if (nb < mp->m_sb.sb_dblocks)
|
||||
return XFS_ERROR(EINVAL);
|
||||
}
|
||||
|
@ -471,6 +471,9 @@ struct drm_connector {
|
||||
u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY];
|
||||
uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY];
|
||||
|
||||
/* requested DPMS state */
|
||||
int dpms;
|
||||
|
||||
void *helper_private;
|
||||
|
||||
uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
|
||||
|
@ -99,6 +99,8 @@ extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
|
||||
struct drm_framebuffer *old_fb);
|
||||
extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
|
||||
|
||||
extern void drm_helper_connector_dpms(struct drm_connector *connector, int mode);
|
||||
|
||||
extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
|
||||
struct drm_mode_fb_cmd *mode_cmd);
|
||||
|
||||
|
@ -14,13 +14,12 @@
|
||||
#ifndef _LINUX_AUTO_FS_H
|
||||
#define _LINUX_AUTO_FS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/fs.h>
|
||||
#include <linux/limits.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
#else
|
||||
#include <asm/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
@ -16,35 +16,33 @@
|
||||
struct fbd_ioat {
|
||||
unsigned int vendor;
|
||||
unsigned int ioat_dev;
|
||||
unsigned int enabled;
|
||||
};
|
||||
|
||||
/*
|
||||
* The i5000 chip-set has the same hooks as the i7300
|
||||
* but support is disabled by default because this driver
|
||||
* has not been validated on that platform.
|
||||
* but it is not enabled by default and must be manually
|
||||
* manually enabled with "forceload=1" because it is
|
||||
* only lightly validated.
|
||||
*/
|
||||
#define SUPPORT_I5000 0
|
||||
|
||||
static const struct fbd_ioat fbd_ioat_list[] = {
|
||||
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB},
|
||||
#if SUPPORT_I5000
|
||||
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT},
|
||||
#endif
|
||||
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1},
|
||||
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
/* table of devices that work with this driver */
|
||||
static const struct pci_device_id pci_tbl[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) },
|
||||
#if SUPPORT_I5000
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) },
|
||||
#endif
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
/* Check for known platforms with I/O-AT */
|
||||
static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,
|
||||
struct pci_dev **ioat_dev)
|
||||
struct pci_dev **ioat_dev,
|
||||
int enable_all)
|
||||
{
|
||||
int i;
|
||||
struct pci_dev *memdev, *dmadev;
|
||||
@ -69,6 +67,8 @@ static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,
|
||||
for (i = 0; fbd_ioat_list[i].vendor != 0; i++) {
|
||||
if (dmadev->vendor == fbd_ioat_list[i].vendor &&
|
||||
dmadev->device == fbd_ioat_list[i].ioat_dev) {
|
||||
if (!(fbd_ioat_list[i].enabled || enable_all))
|
||||
continue;
|
||||
if (fbd_dev)
|
||||
*fbd_dev = memdev;
|
||||
if (ioat_dev)
|
||||
|
@ -1,6 +1,7 @@
|
||||
#ifndef __NET_DROPMON_H
|
||||
#define __NET_DROPMON_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/netlink.h>
|
||||
|
||||
struct net_dm_drop_point {
|
||||
|
@ -35,6 +35,9 @@ enum tcp_conntrack {
|
||||
/* Has unacknowledged data */
|
||||
#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10
|
||||
|
||||
/* The field td_maxack has been set */
|
||||
#define IP_CT_TCP_FLAG_MAXACK_SET 0x20
|
||||
|
||||
struct nf_ct_tcp_flags {
|
||||
__u8 flags;
|
||||
__u8 mask;
|
||||
@ -46,6 +49,7 @@ struct ip_ct_tcp_state {
|
||||
u_int32_t td_end; /* max of seq + len */
|
||||
u_int32_t td_maxend; /* max of ack + max(win, 1) */
|
||||
u_int32_t td_maxwin; /* max(win) */
|
||||
u_int32_t td_maxack; /* max of ack */
|
||||
u_int8_t td_scale; /* window scale factor */
|
||||
u_int8_t flags; /* per direction options */
|
||||
};
|
||||
|
@ -324,6 +324,10 @@ struct parport {
|
||||
int spintime;
|
||||
atomic_t ref_count;
|
||||
|
||||
unsigned long devflags;
|
||||
#define PARPORT_DEVPROC_REGISTERED 0
|
||||
struct pardevice *proc_device; /* Currently register proc device */
|
||||
|
||||
struct list_head full_list;
|
||||
struct parport *slaves[3];
|
||||
};
|
||||
|
@ -90,9 +90,6 @@ static void add_conn(struct work_struct *work)
|
||||
struct hci_conn *conn = container_of(work, struct hci_conn, work_add);
|
||||
struct hci_dev *hdev = conn->hdev;
|
||||
|
||||
/* ensure previous del is complete */
|
||||
flush_work(&conn->work_del);
|
||||
|
||||
dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle);
|
||||
|
||||
if (device_add(&conn->dev) < 0) {
|
||||
@ -118,9 +115,6 @@ static void del_conn(struct work_struct *work)
|
||||
struct hci_conn *conn = container_of(work, struct hci_conn, work_del);
|
||||
struct hci_dev *hdev = conn->hdev;
|
||||
|
||||
/* ensure previous add is complete */
|
||||
flush_work(&conn->work_add);
|
||||
|
||||
if (!device_is_registered(&conn->dev))
|
||||
return;
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <linux/netfilter/nfnetlink_conntrack.h>
|
||||
#include <net/netfilter/nf_conntrack.h>
|
||||
#include <net/netfilter/nf_conntrack_l4proto.h>
|
||||
#include <net/netfilter/nf_conntrack_ecache.h>
|
||||
#include <net/netfilter/nf_log.h>
|
||||
|
||||
static DEFINE_RWLOCK(dccp_lock);
|
||||
@ -553,6 +554,9 @@ static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb,
|
||||
ct->proto.dccp.state = new_state;
|
||||
write_unlock_bh(&dccp_lock);
|
||||
|
||||
if (new_state != old_state)
|
||||
nf_conntrack_event_cache(IPCT_PROTOINFO, ct);
|
||||
|
||||
dn = dccp_pernet(net);
|
||||
nf_ct_refresh_acct(ct, ctinfo, skb, dn->dccp_timeout[new_state]);
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user