Merge git://git.infradead.org/users/dwmw2/random-2.6
* git://git.infradead.org/users/dwmw2/random-2.6: Fix autoloading of MacBook Pro backlight driver. Automatic MODULE_ALIAS() for DMI match tables. Remove asm/a.out.h files for all architectures without a.out support. Introduce HAVE_AOUT symbol to remove hard-coded arch list for BINFMT_AOUT Remove redundant CONFIG_ARCH_SUPPORTS_AOUT S390: Update comments about why we don't use <asm-generic/statfs.h> SPARC: Use <asm-generic/statfs.h> PowerPC: Use <asm-generic/statfs.h> PARISC: Use <asm-generic/statfs.h> x86_64: Use <asm-generic/statfs.h> IA64: Use <asm-generic/statfs.h> ARM: Use <asm-generic/statfs.h> Make <asm-generic/statfs.h> suitable for 64-bit platforms. Define and use PCI_DEVICE_ID_MARVELL_88ALP01_CCIC for CAFÉ camera driver [MTD] [NAND] Define and use PCI_DEVICE_ID_MARVELL_88ALP01_NAND for CAFÉ Use PCI_DEVICE_ID_88ALP01 for CAFÉ chip, rather than PCI_DEVICE_ID_CAFE. EFS: Don't set f_fsid in statfs().
This commit is contained in:
commit
244dc4e54b
57 changed files with 204 additions and 683 deletions
|
@ -5,6 +5,7 @@
|
|||
config ALPHA
|
||||
bool
|
||||
default y
|
||||
select HAVE_AOUT
|
||||
select HAVE_IDE
|
||||
select HAVE_OPROFILE
|
||||
help
|
||||
|
@ -68,9 +69,6 @@ config AUTO_IRQ_AFFINITY
|
|||
depends on SMP
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
#ifndef _ALPHA_STATFS_H
|
||||
#define _ALPHA_STATFS_H
|
||||
|
||||
/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't
|
||||
even seem to implement statfs64 */
|
||||
#define __statfs_word __u32
|
||||
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration"
|
|||
config ARM
|
||||
bool
|
||||
default y
|
||||
select HAVE_AOUT
|
||||
select HAVE_IDE
|
||||
select RTC_LIB
|
||||
select SYS_SUPPORTS_APM_EMULATION
|
||||
|
@ -140,9 +141,6 @@ config GENERIC_CALIBRATE_DELAY
|
|||
bool
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config ARCH_MAY_HAVE_PC_FDC
|
||||
bool
|
||||
|
||||
|
|
|
@ -1,42 +1,12 @@
|
|||
#ifndef _ASMARM_STATFS_H
|
||||
#define _ASMARM_STATFS_H
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
# include <linux/types.h>
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
#endif
|
||||
|
||||
struct statfs {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u32 f_blocks;
|
||||
__u32 f_bfree;
|
||||
__u32 f_bavail;
|
||||
__u32 f_files;
|
||||
__u32 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
|
||||
/*
|
||||
* With EABI there is 4 bytes of padding added to this structure.
|
||||
* Let's pack it so the padding goes away to simplify dual ABI support.
|
||||
* Note that user space does NOT have to pack this structure.
|
||||
*/
|
||||
struct statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
} __attribute__ ((packed,aligned(4)));
|
||||
#define ARCH_PACK_STATFS64 __attribute__((packed,aligned(4)))
|
||||
|
||||
#include <asm-generic/statfs.h>
|
||||
#endif
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef __ASM_AVR32_A_OUT_H
|
||||
#define __ASM_AVR32_A_OUT_H
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* __ASM_AVR32_A_OUT_H */
|
|
@ -1,19 +0,0 @@
|
|||
#ifndef __BFIN_A_OUT_H__
|
||||
#define __BFIN_A_OUT_H__
|
||||
|
||||
struct exec {
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* __BFIN_A_OUT_H__ */
|
|
@ -30,7 +30,6 @@
|
|||
#include <sys/sysmacros.h>
|
||||
#include <unistd.h> /* contains read/write */
|
||||
#include <fcntl.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define MINIX_HEADER 32
|
||||
|
|
|
@ -66,9 +66,6 @@ config TIME_LOW_RES
|
|||
bool
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config NO_IOPORT
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef __H8300_A_OUT_H__
|
||||
#define __H8300_A_OUT_H__
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* __H8300_A_OUT_H__ */
|
|
@ -34,7 +34,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/fs.h>
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
#ifndef _ASM_IA64_A_OUT_H
|
||||
#define _ASM_IA64_A_OUT_H
|
||||
|
||||
/*
|
||||
* No a.out format has been (or should be) defined so this file is
|
||||
* just a dummy that allows us to get binfmt_elf compiled. It
|
||||
* probably would be better to clean up binfmt_elf.c so it does not
|
||||
* necessarily depend on there being a.out support.
|
||||
*
|
||||
* Modified 1998-2002
|
||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct exec {
|
||||
unsigned long a_info;
|
||||
unsigned long a_text;
|
||||
unsigned long a_data;
|
||||
unsigned long a_bss;
|
||||
unsigned long a_entry;
|
||||
};
|
||||
|
||||
#define N_TXTADDR(x) 0
|
||||
#define N_DATADDR(x) 0
|
||||
#define N_BSSADDR(x) 0
|
||||
#define N_DRSIZE(x) 0
|
||||
#define N_TRSIZE(x) 0
|
||||
#define N_SYMSIZE(x) 0
|
||||
#define N_TXTOFF(x) 0
|
||||
|
||||
#endif /* _ASM_IA64_A_OUT_H */
|
|
@ -8,55 +8,13 @@
|
|||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
|
||||
*/
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
# include <linux/types.h>
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is ugly --- we're already 64-bit, so just duplicate the definitions
|
||||
* We need compat_statfs64 to be packed, because the i386 ABI won't
|
||||
* add padding at the end to bring it to a multiple of 8 bytes, but
|
||||
* the IA64 ABI will.
|
||||
*/
|
||||
struct statfs {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
#define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4)))
|
||||
|
||||
|
||||
struct statfs64 {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
} __attribute__((packed));
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif /* _ASM_IA64_STATFS_H */
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/kexec.h>
|
||||
|
||||
#include <asm/a.out.h>
|
||||
#include <asm/dma.h>
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/io.h>
|
||||
|
|
|
@ -36,9 +36,6 @@ config NO_IOPORT
|
|||
config NO_DMA
|
||||
def_bool y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config HZ
|
||||
int
|
||||
default 100
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
config M68K
|
||||
bool
|
||||
default y
|
||||
select HAVE_AOUT
|
||||
select HAVE_IDE
|
||||
|
||||
config MMU
|
||||
|
@ -53,9 +54,6 @@ config NO_IOPORT
|
|||
config NO_DMA
|
||||
def_bool SUN3
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config HZ
|
||||
int
|
||||
default 100
|
||||
|
|
|
@ -73,9 +73,6 @@ config GENERIC_CLOCKEVENTS
|
|||
config NO_IOPORT
|
||||
def_bool y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
menu "Processor type and features"
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
#include <asm-m68k/a.out.h>
|
|
@ -25,7 +25,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/fs.h>
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/linkage.h>
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 1994 - 1999, 2003 by Ralf Baechle
|
||||
*/
|
||||
#ifndef _ASM_A_OUT_H
|
||||
#define _ASM_A_OUT_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for
|
||||
file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file,
|
||||
in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in
|
||||
bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* _ASM_A_OUT_H */
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/personality.h>
|
||||
#include <linux/sys.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/kallsyms.h>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
|
||||
* Copyright (C) 2001 MIPS Technologies, Inc.
|
||||
*/
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/capability.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/linkage.h>
|
||||
|
|
|
@ -53,9 +53,6 @@ config QUICKLIST
|
|||
config ARCH_HAS_ILOG2_U32
|
||||
def_bool y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool n
|
||||
|
||||
# Use the generic interrupt handling code in kernel/irq/
|
||||
config GENERIC_HARDIRQS
|
||||
def_bool y
|
||||
|
|
|
@ -76,9 +76,6 @@ config IRQ_PER_CPU
|
|||
bool
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
# unless you want to implement ACPI on PA-RISC ... ;-)
|
||||
config PM
|
||||
bool
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef _ASM_POWERPC_A_OUT_H
|
||||
#define _ASM_POWERPC_A_OUT_H
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* _ASM_POWERPC_A_OUT_H */
|
|
@ -1,60 +1,6 @@
|
|||
#ifndef _ASM_POWERPC_STATFS_H
|
||||
#define _ASM_POWERPC_STATFS_H
|
||||
|
||||
/* For ppc32 we just use the generic definitions, not so simple on ppc64 */
|
||||
|
||||
#ifndef __powerpc64__
|
||||
#include <asm-generic/statfs.h>
|
||||
#else
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#include <linux/types.h>
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We're already 64-bit, so duplicate the definition
|
||||
*/
|
||||
struct statfs {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct statfs64 {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
#endif /* ! __powerpc64__ */
|
||||
#endif
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#include <asm/pgtable.h>
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/major.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/delay.h>
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/delay.h>
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include <linux/unistd.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/major.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
|
|
@ -12,19 +12,16 @@
|
|||
#ifndef __s390x__
|
||||
#include <asm-generic/statfs.h>
|
||||
#else
|
||||
/*
|
||||
* We can't use <asm-generic/statfs.h> because in 64-bit mode
|
||||
* we mix ints of different sizes in our struct statfs.
|
||||
*/
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is ugly -- we're already 64-bit clean, so just duplicate the
|
||||
* definitions.
|
||||
*/
|
||||
struct statfs {
|
||||
int f_type;
|
||||
int f_bsize;
|
||||
|
|
|
@ -15,8 +15,6 @@ header-y += signal_32.h
|
|||
header-y += signal_64.h
|
||||
header-y += stat_32.h
|
||||
header-y += stat_64.h
|
||||
header-y += statfs_32.h
|
||||
header-y += statfs_64.h
|
||||
header-y += unistd_32.h
|
||||
header-y += unistd_64.h
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef ___ASM_SPARC_STATFS_H
|
||||
#define ___ASM_SPARC_STATFS_H
|
||||
#if defined(__sparc__) && defined(__arch64__)
|
||||
#include <asm/statfs_64.h>
|
||||
#else
|
||||
#include <asm/statfs_32.h>
|
||||
#endif
|
||||
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#ifndef _SPARC_STATFS_H
|
||||
#define _SPARC_STATFS_H
|
||||
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif
|
|
@ -1,54 +0,0 @@
|
|||
#ifndef _SPARC64_STATFS_H
|
||||
#define _SPARC64_STATFS_H
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
|
||||
#endif
|
||||
|
||||
struct statfs {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct statfs64 {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
|
||||
#endif
|
|
@ -9,8 +9,9 @@ config UML_X86
|
|||
default y
|
||||
|
||||
config X86_32
|
||||
bool
|
||||
default y
|
||||
bool
|
||||
default y
|
||||
select HAVE_AOUT
|
||||
|
||||
config RWSEM_XCHGADD_ALGORITHM
|
||||
def_bool y
|
||||
|
@ -42,6 +43,3 @@ config ARCH_REUSE_HOST_VSYSCALL_AREA
|
|||
config GENERIC_HWEIGHT
|
||||
bool
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
|
|
@ -37,6 +37,3 @@ config SMP_BROKEN
|
|||
config GENERIC_HWEIGHT
|
||||
bool
|
||||
default y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
|
|
@ -18,6 +18,7 @@ config X86_64
|
|||
### Arch settings
|
||||
config X86
|
||||
def_bool y
|
||||
select HAVE_AOUT if X86_32
|
||||
select HAVE_UNSTABLE_SCHED_CLOCK
|
||||
select HAVE_IDE
|
||||
select HAVE_OPROFILE
|
||||
|
@ -152,9 +153,6 @@ config AUDIT_ARCH
|
|||
bool
|
||||
default X86_64
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config ARCH_SUPPORTS_OPTIMIZED_INLINING
|
||||
def_bool y
|
||||
|
||||
|
@ -1885,7 +1883,7 @@ config IA32_EMULATION
|
|||
|
||||
config IA32_AOUT
|
||||
tristate "IA32 a.out support"
|
||||
depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT
|
||||
depends on IA32_EMULATION
|
||||
help
|
||||
Support old a.out binaries in the 32bit emulation.
|
||||
|
||||
|
|
|
@ -2092,15 +2092,8 @@ static int cafe_pci_probe(struct pci_dev *pdev,
|
|||
const struct pci_device_id *id)
|
||||
{
|
||||
int ret;
|
||||
u16 classword;
|
||||
struct cafe_camera *cam;
|
||||
/*
|
||||
* Make sure we have a camera here - we'll get calls for
|
||||
* the other cafe devices as well.
|
||||
*/
|
||||
pci_read_config_word(pdev, PCI_CLASS_DEVICE, &classword);
|
||||
if (classword != PCI_CLASS_MULTIMEDIA_VIDEO)
|
||||
return -ENODEV;
|
||||
|
||||
/*
|
||||
* Start putting together one of our big camera structures.
|
||||
*/
|
||||
|
@ -2288,8 +2281,8 @@ static int cafe_pci_resume(struct pci_dev *pdev)
|
|||
|
||||
|
||||
static struct pci_device_id cafe_ids[] = {
|
||||
{ PCI_DEVICE(0x11ab, 0x4100) }, /* Eventual real ID */
|
||||
{ PCI_DEVICE(0x11ab, 0x4102) }, /* Really eventual real ID */
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL,
|
||||
PCI_DEVICE_ID_MARVELL_88ALP01_CCIC) },
|
||||
{ 0, }
|
||||
};
|
||||
|
||||
|
|
|
@ -327,7 +327,7 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
|
|||
|
||||
{
|
||||
.vendor = PCI_VENDOR_ID_MARVELL,
|
||||
.device = PCI_DEVICE_ID_MARVELL_CAFE_SD,
|
||||
.device = PCI_DEVICE_ID_MARVELL_88ALP01_SD,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
.driver_data = (kernel_ulong_t)&sdhci_cafe,
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
/*
|
||||
* Driver for One Laptop Per Child ‘CAFÉ’ controller, aka Marvell 88ALP01
|
||||
*
|
||||
* The data sheet for this device can be found at:
|
||||
* http://www.marvell.com/products/pcconn/88ALP01.jsp
|
||||
*
|
||||
* Copyright © 2006 Red Hat, Inc.
|
||||
* Copyright © 2006 David Woodhouse <dwmw2@infradead.org>
|
||||
*/
|
||||
|
@ -842,7 +845,8 @@ static void __devexit cafe_nand_remove(struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
static struct pci_device_id cafe_nand_tbl[] = {
|
||||
{ 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_88ALP01_NAND,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
@ -111,6 +111,4 @@ module_exit(mbp_exit);
|
|||
MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>");
|
||||
MODULE_DESCRIPTION("Nvidia-based Macbook Pro Backlight Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,1");
|
||||
MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,2");
|
||||
MODULE_ALIAS("svnAppleInc.:pnMacBookPro4,1");
|
||||
MODULE_DEVICE_TABLE(dmi, mbp_device_table);
|
||||
|
|
|
@ -59,10 +59,12 @@ config BINFMT_SHARED_FLAT
|
|||
help
|
||||
Support FLAT shared libraries
|
||||
|
||||
config HAVE_AOUT
|
||||
def_bool n
|
||||
|
||||
config BINFMT_AOUT
|
||||
tristate "Kernel support for a.out and ECOFF binaries"
|
||||
depends on ARCH_SUPPORTS_AOUT && \
|
||||
(X86_32 || ALPHA || ARM || M68K)
|
||||
depends on HAVE_AOUT
|
||||
---help---
|
||||
A.out (Assembler.OUTput) is a set of formats for libraries and
|
||||
executables used in the earliest versions of UNIX. Linux used
|
||||
|
|
|
@ -341,8 +341,6 @@ static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) {
|
|||
sb->inode_blocks *
|
||||
(EFS_BLOCKSIZE / sizeof(struct efs_dinode));
|
||||
buf->f_ffree = sb->inode_free; /* free inodes */
|
||||
buf->f_fsid.val[0] = (sb->fs_magic >> 16) & 0xffff; /* fs ID */
|
||||
buf->f_fsid.val[1] = sb->fs_magic & 0xffff; /* fs ID */
|
||||
buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
#ifndef __CRIS_A_OUT_H__
|
||||
#define __CRIS_A_OUT_H__
|
||||
|
||||
/* we don't support a.out binaries on Linux/CRIS anyway, so this is
|
||||
* not really used but still needed because binfmt_elf.c for some reason
|
||||
* wants to know about a.out even if there is no interpreter available...
|
||||
*/
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif
|
|
@ -6,33 +6,64 @@
|
|||
typedef __kernel_fsid_t fsid_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'.
|
||||
* Yes, they differ in signedness as well as size.
|
||||
* Special cases can override it for themselves -- except for S390x, which
|
||||
* is just a little too special for us. And MIPS, which I'm not touching
|
||||
* with a 10' pole.
|
||||
*/
|
||||
#ifndef __statfs_word
|
||||
#if BITS_PER_LONG == 64
|
||||
#define __statfs_word long
|
||||
#else
|
||||
#define __statfs_word __u32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
struct statfs {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u32 f_blocks;
|
||||
__u32 f_bfree;
|
||||
__u32 f_bavail;
|
||||
__u32 f_files;
|
||||
__u32 f_ffree;
|
||||
__statfs_word f_type;
|
||||
__statfs_word f_bsize;
|
||||
__statfs_word f_blocks;
|
||||
__statfs_word f_bfree;
|
||||
__statfs_word f_bavail;
|
||||
__statfs_word f_files;
|
||||
__statfs_word f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
__statfs_word f_namelen;
|
||||
__statfs_word f_frsize;
|
||||
__statfs_word f_spare[5];
|
||||
};
|
||||
|
||||
/*
|
||||
* ARM needs to avoid the 32-bit padding at the end, for consistency
|
||||
* between EABI and OABI
|
||||
*/
|
||||
#ifndef ARCH_PACK_STATFS64
|
||||
#define ARCH_PACK_STATFS64
|
||||
#endif
|
||||
|
||||
struct statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__statfs_word f_type;
|
||||
__statfs_word f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
__statfs_word f_namelen;
|
||||
__statfs_word f_frsize;
|
||||
__statfs_word f_spare[5];
|
||||
} ARCH_PACK_STATFS64;
|
||||
|
||||
/*
|
||||
* IA64 and x86_64 need to avoid the 32-bit padding at the end,
|
||||
* to be compatible with the i386 ABI
|
||||
*/
|
||||
#ifndef ARCH_PACK_COMPAT_STATFS64
|
||||
#define ARCH_PACK_COMPAT_STATFS64
|
||||
#endif
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
|
@ -46,6 +77,6 @@ struct compat_statfs64 {
|
|||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
} ARCH_PACK_COMPAT_STATFS64;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef _ASM_M32R_A_OUT_H
|
||||
#define _ASM_M32R_A_OUT_H
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* _ASM_M32R_A_OUT_H */
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef __PARISC_A_OUT_H__
|
||||
#define __PARISC_A_OUT_H__
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned int a_info; /* Use macros N_MAGIC, etc for access */
|
||||
unsigned a_text; /* length of text, in bytes */
|
||||
unsigned a_data; /* length of data, in bytes */
|
||||
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
||||
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
||||
unsigned a_entry; /* start address */
|
||||
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
||||
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
||||
};
|
||||
|
||||
#define N_TRSIZE(a) ((a).a_trsize)
|
||||
#define N_DRSIZE(a) ((a).a_drsize)
|
||||
#define N_SYMSIZE(a) ((a).a_syms)
|
||||
|
||||
#endif /* __A_OUT_GNU_H__ */
|
|
@ -1,58 +1,7 @@
|
|||
#ifndef _PARISC_STATFS_H
|
||||
#define _PARISC_STATFS_H
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* It appears that PARISC could be 64 _or_ 32 bit.
|
||||
* 64-bit fields must be explicitly 64-bit in statfs64.
|
||||
*/
|
||||
struct statfs {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct statfs64 {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
};
|
||||
#define __statfs_word long
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,63 +1,12 @@
|
|||
#ifndef ASM_X86__STATFS_H
|
||||
#define ASM_X86__STATFS_H
|
||||
|
||||
#ifdef __i386__
|
||||
#include <asm-generic/statfs.h>
|
||||
#else
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is ugly -- we're already 64-bit clean, so just duplicate the
|
||||
* definitions.
|
||||
* We need compat_statfs64 to be packed, because the i386 ABI won't
|
||||
* add padding at the end to bring it to a multiple of 8 bytes, but
|
||||
* the x86_64 ABI will.
|
||||
*/
|
||||
struct statfs {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
#define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4)))
|
||||
|
||||
struct statfs64 {
|
||||
long f_type;
|
||||
long f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
long f_namelen;
|
||||
long f_frsize;
|
||||
long f_spare[5];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_spare[5];
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif /* !__i386__ */
|
||||
#include <asm-generic/statfs.h>
|
||||
#endif /* ASM_X86__STATFS_H */
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
/*
|
||||
* include/asm-xtensa/a.out.h
|
||||
*
|
||||
* Dummy a.out file. Xtensa does not support the a.out format, but the kernel
|
||||
* seems to depend on it.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 2001 - 2005 Tensilica Inc.
|
||||
*/
|
||||
|
||||
#ifndef _XTENSA_A_OUT_H
|
||||
#define _XTENSA_A_OUT_H
|
||||
|
||||
struct exec
|
||||
{
|
||||
unsigned long a_info;
|
||||
unsigned a_text;
|
||||
unsigned a_data;
|
||||
unsigned a_bss;
|
||||
unsigned a_syms;
|
||||
unsigned a_entry;
|
||||
unsigned a_trsize;
|
||||
unsigned a_drsize;
|
||||
};
|
||||
|
||||
#endif /* _XTENSA_A_OUT_H */
|
|
@ -2,29 +2,9 @@
|
|||
#define __DMI_H__
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
enum dmi_field {
|
||||
DMI_NONE,
|
||||
DMI_BIOS_VENDOR,
|
||||
DMI_BIOS_VERSION,
|
||||
DMI_BIOS_DATE,
|
||||
DMI_SYS_VENDOR,
|
||||
DMI_PRODUCT_NAME,
|
||||
DMI_PRODUCT_VERSION,
|
||||
DMI_PRODUCT_SERIAL,
|
||||
DMI_PRODUCT_UUID,
|
||||
DMI_BOARD_VENDOR,
|
||||
DMI_BOARD_NAME,
|
||||
DMI_BOARD_VERSION,
|
||||
DMI_BOARD_SERIAL,
|
||||
DMI_BOARD_ASSET_TAG,
|
||||
DMI_CHASSIS_VENDOR,
|
||||
DMI_CHASSIS_TYPE,
|
||||
DMI_CHASSIS_VERSION,
|
||||
DMI_CHASSIS_SERIAL,
|
||||
DMI_CHASSIS_ASSET_TAG,
|
||||
DMI_STRING_MAX,
|
||||
};
|
||||
/* enum dmi_field is in mod_devicetable.h */
|
||||
|
||||
enum dmi_device_type {
|
||||
DMI_DEV_TYPE_ANY = 0,
|
||||
|
@ -48,23 +28,6 @@ struct dmi_header {
|
|||
u16 handle;
|
||||
};
|
||||
|
||||
/*
|
||||
* DMI callbacks for problem boards
|
||||
*/
|
||||
struct dmi_strmatch {
|
||||
u8 slot;
|
||||
char *substr;
|
||||
};
|
||||
|
||||
struct dmi_system_id {
|
||||
int (*callback)(const struct dmi_system_id *);
|
||||
const char *ident;
|
||||
struct dmi_strmatch matches[4];
|
||||
void *driver_data;
|
||||
};
|
||||
|
||||
#define DMI_MATCH(a, b) { a, b }
|
||||
|
||||
struct dmi_device {
|
||||
struct list_head list;
|
||||
int type;
|
||||
|
|
|
@ -388,5 +388,52 @@ struct i2c_device_id {
|
|||
__attribute__((aligned(sizeof(kernel_ulong_t))));
|
||||
};
|
||||
|
||||
/* dmi */
|
||||
enum dmi_field {
|
||||
DMI_NONE,
|
||||
DMI_BIOS_VENDOR,
|
||||
DMI_BIOS_VERSION,
|
||||
DMI_BIOS_DATE,
|
||||
DMI_SYS_VENDOR,
|
||||
DMI_PRODUCT_NAME,
|
||||
DMI_PRODUCT_VERSION,
|
||||
DMI_PRODUCT_SERIAL,
|
||||
DMI_PRODUCT_UUID,
|
||||
DMI_BOARD_VENDOR,
|
||||
DMI_BOARD_NAME,
|
||||
DMI_BOARD_VERSION,
|
||||
DMI_BOARD_SERIAL,
|
||||
DMI_BOARD_ASSET_TAG,
|
||||
DMI_CHASSIS_VENDOR,
|
||||
DMI_CHASSIS_TYPE,
|
||||
DMI_CHASSIS_VERSION,
|
||||
DMI_CHASSIS_SERIAL,
|
||||
DMI_CHASSIS_ASSET_TAG,
|
||||
DMI_STRING_MAX,
|
||||
};
|
||||
|
||||
struct dmi_strmatch {
|
||||
unsigned char slot;
|
||||
char substr[79];
|
||||
};
|
||||
|
||||
#ifndef __KERNEL__
|
||||
struct dmi_system_id {
|
||||
kernel_ulong_t callback;
|
||||
kernel_ulong_t ident;
|
||||
struct dmi_strmatch matches[4];
|
||||
kernel_ulong_t driver_data
|
||||
__attribute__((aligned(sizeof(kernel_ulong_t))));
|
||||
};
|
||||
#else
|
||||
struct dmi_system_id {
|
||||
int (*callback)(const struct dmi_system_id *);
|
||||
const char *ident;
|
||||
struct dmi_strmatch matches[4];
|
||||
void *driver_data;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define DMI_MATCH(a, b) { a, b }
|
||||
|
||||
#endif /* LINUX_MOD_DEVICETABLE_H */
|
||||
|
|
|
@ -1533,7 +1533,9 @@
|
|||
#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430
|
||||
#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460
|
||||
#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480
|
||||
#define PCI_DEVICE_ID_MARVELL_CAFE_SD 0x4101
|
||||
#define PCI_DEVICE_ID_MARVELL_88ALP01_NAND 0x4100
|
||||
#define PCI_DEVICE_ID_MARVELL_88ALP01_SD 0x4101
|
||||
#define PCI_DEVICE_ID_MARVELL_88ALP01_CCIC 0x4102
|
||||
|
||||
#define PCI_VENDOR_ID_V3 0x11b0
|
||||
#define PCI_DEVICE_ID_V3_V960 0x0001
|
||||
|
|
|
@ -629,6 +629,59 @@ static int do_i2c_entry(const char *filename, struct i2c_device_id *id,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static const struct dmifield {
|
||||
const char *prefix;
|
||||
int field;
|
||||
} dmi_fields[] = {
|
||||
{ "bvn", DMI_BIOS_VENDOR },
|
||||
{ "bvr", DMI_BIOS_VERSION },
|
||||
{ "bd", DMI_BIOS_DATE },
|
||||
{ "svn", DMI_SYS_VENDOR },
|
||||
{ "pn", DMI_PRODUCT_NAME },
|
||||
{ "pvr", DMI_PRODUCT_VERSION },
|
||||
{ "rvn", DMI_BOARD_VENDOR },
|
||||
{ "rn", DMI_BOARD_NAME },
|
||||
{ "rvr", DMI_BOARD_VERSION },
|
||||
{ "cvn", DMI_CHASSIS_VENDOR },
|
||||
{ "ct", DMI_CHASSIS_TYPE },
|
||||
{ "cvr", DMI_CHASSIS_VERSION },
|
||||
{ NULL, DMI_NONE }
|
||||
};
|
||||
|
||||
static void dmi_ascii_filter(char *d, const char *s)
|
||||
{
|
||||
/* Filter out characters we don't want to see in the modalias string */
|
||||
for (; *s; s++)
|
||||
if (*s > ' ' && *s < 127 && *s != ':')
|
||||
*(d++) = *s;
|
||||
|
||||
*d = 0;
|
||||
}
|
||||
|
||||
|
||||
static int do_dmi_entry(const char *filename, struct dmi_system_id *id,
|
||||
char *alias)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
sprintf(alias, "dmi*");
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dmi_fields); i++) {
|
||||
for (j = 0; j < 4; j++) {
|
||||
if (id->matches[j].slot &&
|
||||
id->matches[j].slot == dmi_fields[i].field) {
|
||||
sprintf(alias + strlen(alias), ":%s*",
|
||||
dmi_fields[i].prefix);
|
||||
dmi_ascii_filter(alias + strlen(alias),
|
||||
id->matches[j].substr);
|
||||
strcat(alias, "*");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
strcat(alias, ":");
|
||||
return 1;
|
||||
}
|
||||
/* Ignore any prefix, eg. some architectures prepend _ */
|
||||
static inline int sym_is(const char *symbol, const char *name)
|
||||
{
|
||||
|
@ -760,6 +813,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
|
|||
do_table(symval, sym->st_size,
|
||||
sizeof(struct i2c_device_id), "i2c",
|
||||
do_i2c_entry, mod);
|
||||
else if (sym_is(symname, "__mod_dmi_device_table"))
|
||||
do_table(symval, sym->st_size,
|
||||
sizeof(struct dmi_system_id), "dmi",
|
||||
do_dmi_entry, mod);
|
||||
free(zeros);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue