From 95ab40dfc8bbb89f1579b5b5e2167459c97fcf8f Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 7 Mar 2007 02:46:35 +0000 Subject: linux 2.6.14: Add kernel for acern30 (vanilla + patches). * Based on the Letux distribution (www.letux.org, materials from http://www.openembedded.org/~koen/letux/), contributed by Dr. H. Nikolaus Schaller. --- packages/linux/linux/acern30/.mtn2git_empty | 0 packages/linux/linux/acern30/defconfig | 1199 ++++++++++++++++++++ packages/linux/linux/acern30/gcc4-fixes.patch | 97 ++ packages/linux/linux/acern30/gpio-sysfs.patch | 252 ++++ packages/linux/linux/acern30/mmc-plus.patch | 17 + packages/linux/linux/acern30/n30-apm.patch | 73 ++ packages/linux/linux/acern30/n30-backlight.patch | 97 ++ packages/linux/linux/acern30/n30-batt.patch | 242 ++++ packages/linux/linux/acern30/n30-buttons.patch | 100 ++ packages/linux/linux/acern30/n30-cleanup.patch | 30 + packages/linux/linux/acern30/n30-hardcode.patch | 158 +++ packages/linux/linux/acern30/n30-lcd.patch | 66 ++ packages/linux/linux/acern30/n30-mmc-power.patch | 24 + .../linux/linux/acern30/n30-mmc-wprotect.patch | 54 + packages/linux/linux/acern30/n30-mmc.patch | 53 + packages/linux/linux/acern30/n30-nand-hack.patch | 32 + packages/linux/linux/acern30/n30-nand.patch | 97 ++ packages/linux/linux/acern30/n30-pm.patch | 296 +++++ packages/linux/linux/acern30/n30-ts.patch | 43 + packages/linux/linux/acern30/n30-usbstart.patch | 59 + packages/linux/linux/acern30/n35.patch | 80 ++ packages/linux/linux/acern30/regdump.patch | 279 +++++ packages/linux/linux/acern30/s3c2410-nand-pm.patch | 53 + packages/linux/linux/acern30/s3c2410_lcd-pm.c | 80 ++ packages/linux/linux/acern30/s3c2410_ts-pm.patch | 73 ++ .../linux/linux/acern30/s3c2410fb-resume.patch | 13 + packages/linux/linux/acern30/s3c2410mci-pm.patch | 84 ++ packages/linux/linux/acern30/series | 27 + packages/linux/linux/acern30/spi.patch | 121 ++ packages/linux/linux/acern30/wingel-hacking.patch | 1146 +++++++++++++++++++ packages/linux/linux_2.6.14.bb | 51 + 31 files changed, 4996 insertions(+) create mode 100644 packages/linux/linux/acern30/.mtn2git_empty create mode 100644 packages/linux/linux/acern30/defconfig create mode 100644 packages/linux/linux/acern30/gcc4-fixes.patch create mode 100644 packages/linux/linux/acern30/gpio-sysfs.patch create mode 100644 packages/linux/linux/acern30/mmc-plus.patch create mode 100644 packages/linux/linux/acern30/n30-apm.patch create mode 100644 packages/linux/linux/acern30/n30-backlight.patch create mode 100644 packages/linux/linux/acern30/n30-batt.patch create mode 100644 packages/linux/linux/acern30/n30-buttons.patch create mode 100644 packages/linux/linux/acern30/n30-cleanup.patch create mode 100644 packages/linux/linux/acern30/n30-hardcode.patch create mode 100644 packages/linux/linux/acern30/n30-lcd.patch create mode 100644 packages/linux/linux/acern30/n30-mmc-power.patch create mode 100644 packages/linux/linux/acern30/n30-mmc-wprotect.patch create mode 100644 packages/linux/linux/acern30/n30-mmc.patch create mode 100644 packages/linux/linux/acern30/n30-nand-hack.patch create mode 100644 packages/linux/linux/acern30/n30-nand.patch create mode 100644 packages/linux/linux/acern30/n30-pm.patch create mode 100644 packages/linux/linux/acern30/n30-ts.patch create mode 100644 packages/linux/linux/acern30/n30-usbstart.patch create mode 100644 packages/linux/linux/acern30/n35.patch create mode 100644 packages/linux/linux/acern30/regdump.patch create mode 100644 packages/linux/linux/acern30/s3c2410-nand-pm.patch create mode 100644 packages/linux/linux/acern30/s3c2410_lcd-pm.c create mode 100644 packages/linux/linux/acern30/s3c2410_ts-pm.patch create mode 100644 packages/linux/linux/acern30/s3c2410fb-resume.patch create mode 100644 packages/linux/linux/acern30/s3c2410mci-pm.patch create mode 100644 packages/linux/linux/acern30/series create mode 100644 packages/linux/linux/acern30/spi.patch create mode 100644 packages/linux/linux/acern30/wingel-hacking.patch create mode 100644 packages/linux/linux_2.6.14.bb diff --git a/packages/linux/linux/acern30/.mtn2git_empty b/packages/linux/linux/acern30/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/linux/linux/acern30/defconfig b/packages/linux/linux/acern30/defconfig new file mode 100644 index 0000000000..860dc9b12c --- /dev/null +++ b/packages/linux/linux/acern30/defconfig @@ -0,0 +1,1199 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.14-h1940 +# Mon Jan 9 17:37:51 2006 +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_HOTPLUG=y +CONFIG_KOBJECT_UEVENT=y +# CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +# CONFIG_BASE_FULL is not set +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_SHMEM is not set +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_TINY_SHMEM=y +CONFIG_BASE_SMALL=1 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# System Type +# +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +CONFIG_ARCH_S3C2410=y +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set + +# +# S3C24XX Implementations +# +# CONFIG_MACH_ANUBIS is not set +# CONFIG_ARCH_BAST is not set +CONFIG_ARCH_H1940=y +CONFIG_MACH_N30=y +CONFIG_MACH_N35=y +# CONFIG_ARCH_SMDK2410 is not set +# CONFIG_ARCH_S3C2440 is not set +# CONFIG_MACH_VR1000 is not set +# CONFIG_MACH_RX3715 is not set +# CONFIG_MACH_OTOM is not set +# CONFIG_MACH_NEXCODER_2440 is not set +CONFIG_CPU_S3C2410=y + +# +# S3C2410 Boot +# + +# +# S3C2410 Setup +# +CONFIG_S3C2410_DMA=y +# CONFIG_S3C2410_DMA_DEBUG is not set +CONFIG_S3C2410_PM_DEBUG=y +CONFIG_S3C2410_PM_CHECK=y +CONFIG_S3C2410_PM_CHECK_CHUNKSIZE=64 +CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM920T=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4T=y +CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set + +# +# Bus support +# +CONFIG_ISA_DMA_API=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_PREEMPT is not set +CONFIG_NO_IDLE_HZ=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="rw root=/dev/ram console=tty0 console=ttySAC2,115200n8 verbose panic=30" +# CONFIG_XIP_KERNEL is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Power management options +# +CONFIG_PM=y +CONFIG_APM=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +CONFIG_IRCOMM=y +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +# CONFIG_NSC_FIR is not set +# CONFIG_WINBOND_FIR is not set +# CONFIG_SMC_IRCC_FIR is not set +# CONFIG_ALI_FIR is not set +# CONFIG_VIA_FIR is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +# CONFIG_BT_BNEP_MC_FILTER is not set +# CONFIG_BT_BNEP_PROTO_FILTER is not set +CONFIG_BT_HIDP=y + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIUSB is not set +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_NAND_S3C2410=y +# CONFIG_MTD_NAND_S3C2410_DEBUG is not set +CONFIG_MTD_NAND_S3C2410_HWECC=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_CDROM_PKTCDVD is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_S3C2410_BUTTONS=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_S3C2410=y +# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_LIBPS2 is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_S3C2410=y +CONFIG_SERIAL_S3C2410_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=10 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +CONFIG_S3C2410_RTC=y +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_PARPORT_LIGHT is not set +CONFIG_I2C_S3C2410=y +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SOFT_CURSOR=y +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_S3C2410=y +# CONFIG_FB_S3C2410_DEBUG is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_CLEAN_4x6 is not set +CONFIG_FONT_CLEAN_5x8=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_DEVICE=y +CONFIG_BACKLIGHT_S3C2410=y + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_STORAGE is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_USB_HIDINPUT=y +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=y +# CONFIG_USB_SERIAL_CONSOLE is not set +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_BELKIN 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_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set +CONFIG_USB_SERIAL_PL2303=y +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE 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_OMNINET is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +CONFIG_USB_GADGET_S3C2410=y +CONFIG_USB_S3C2410=y +# CONFIG_USB_S3C2410_DEBUG is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_WBSD is not set +CONFIG_MMC_S3C2410=y + +# +# File systems +# +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_POSIX_ACL is not set +# CONFIG_EXT2_FS_SECURITY is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +CONFIG_NLS_ISO8859_15=y +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_LOG_BUF_SHIFT=16 +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_FS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_WAITQ is not set +# CONFIG_DEBUG_ERRORS is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_DEBUG_S3C2410_PORT=y +CONFIG_DEBUG_S3C2410_UART=0 + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/linux/acern30/gcc4-fixes.patch b/packages/linux/linux/acern30/gcc4-fixes.patch new file mode 100644 index 0000000000..722bca7c73 --- /dev/null +++ b/packages/linux/linux/acern30/gcc4-fixes.patch @@ -0,0 +1,97 @@ +--- linux-2.6.14/arch/arm/mm/alignment.c.org 2007-03-06 22:50:23.000000000 +0000 ++++ linux-2.6.14/arch/arm/mm/alignment.c 2007-03-06 22:49:21.000000000 +0000 +@@ -110,7 +110,7 @@ + return len; + } + +-static int proc_alignment_write(struct file *file, const char __user *buffer, ++static int proc_alignment_write(struct file *file, /*const*/ char __user *buffer, + unsigned long count, void *data) + { + char mode; +--- linux-2.6.14/lib/bitmap.c.org 2005-10-28 00:02:08.000000000 +0000 ++++ linux-2.6.14/lib/bitmap.c 2007-03-07 00:49:39.000000000 +0000 +@@ -345,11 +345,12 @@ + * characters and for grouping errors such as "1,,5", ",44", "," and "". + * Leading and trailing whitespace accepted, but not embedded whitespace. + */ +-int bitmap_parse(const char __user *ubuf, unsigned int ubuflen, ++int bitmap_parse(const char __user *_ubuf, unsigned int ubuflen, + unsigned long *maskp, int nmaskbits) + { + int c, old_c, totaldigits, ndigits, nchunks, nbits; + u32 chunk; ++ char __user *ubuf = _ubuf; + + bitmap_zero(maskp, nmaskbits); + +--- linux-2.6.14/arch/arm/nwfpe/fpa11_cpdt.c.org 2005-10-28 00:02:08.000000000 +0000 ++++ linux-2.6.14/arch/arm/nwfpe/fpa11_cpdt.c 2007-03-06 22:52:09.000000000 +0000 +@@ -29,14 +29,14 @@ + + #include + +-static inline void loadSingle(const unsigned int Fn, const unsigned int __user *pMem) ++static inline void loadSingle(const unsigned int Fn, /*const*/ unsigned int __user *pMem) + { + FPA11 *fpa11 = GET_FPA11(); + fpa11->fType[Fn] = typeSingle; + get_user(fpa11->fpreg[Fn].fSingle, pMem); + } + +-static inline void loadDouble(const unsigned int Fn, const unsigned int __user *pMem) ++static inline void loadDouble(const unsigned int Fn, /*const*/ unsigned int __user *pMem) + { + FPA11 *fpa11 = GET_FPA11(); + unsigned int *p; +@@ -52,7 +52,7 @@ + } + + #ifdef CONFIG_FPE_NWFPE_XP +-static inline void loadExtended(const unsigned int Fn, const unsigned int __user *pMem) ++static inline void loadExtended(const unsigned int Fn, /*const*/ unsigned int __user *pMem) + { + FPA11 *fpa11 = GET_FPA11(); + unsigned int *p; +@@ -64,7 +64,7 @@ + } + #endif + +-static inline void loadMultiple(const unsigned int Fn, const unsigned int __user *pMem) ++static inline void loadMultiple(const unsigned int Fn, /*const*/ unsigned int __user *pMem) + { + FPA11 *fpa11 = GET_FPA11(); + register unsigned int *p; +--- linux-2.6.14/fs/proc/proc_misc.c.org 2005-10-28 00:02:08.000000000 +0000 ++++ linux-2.6.14/fs/proc/proc_misc.c 2007-03-06 23:17:01.000000000 +0000 +@@ -535,7 +535,7 @@ + /* + * writing 'C' to /proc/sysrq-trigger is like sysrq-C + */ +-static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf, ++static ssize_t write_sysrq_trigger(struct file *file, /*const*/ char __user *buf, + size_t count, loff_t *ppos) + { + if (count) { +--- linux-2.6.14/drivers/char/vc_screen.c.org 2007-03-06 22:43:07.000000000 +0000 ++++ linux-2.6.14/drivers/char/vc_screen.c 2007-03-07 00:02:25.000000000 +0000 +@@ -419,7 +419,7 @@ + while (this_round > 1) { + unsigned short w; + +- w = get_unaligned(((const unsigned short *)con_buf0)); ++ w = get_unaligned(((/*const*/ unsigned short *)con_buf0)); + vcs_scr_writew(vc, w, org++); + con_buf0 += 2; + this_round -= 2; +--- linux-2.6.14/drivers/input/mousedev.c.org 2007-03-07 01:28:18.000000000 +0000 ++++ linux-2.6.14/drivers/input/mousedev.c 2007-03-07 01:37:01.000000000 +0000 +@@ -495,7 +495,7 @@ + } + + +-static ssize_t mousedev_write(struct file * file, const char __user * buffer, size_t count, loff_t *ppos) ++static ssize_t mousedev_write(struct file * file, /*const*/ char __user * buffer, size_t count, loff_t *ppos) + { + struct mousedev_list *list = file->private_data; + unsigned char c; diff --git a/packages/linux/linux/acern30/gpio-sysfs.patch b/packages/linux/linux/acern30/gpio-sysfs.patch new file mode 100644 index 0000000000..b3fde0f9d6 --- /dev/null +++ b/packages/linux/linux/acern30/gpio-sysfs.patch @@ -0,0 +1,252 @@ +This patch adds a lot of sysfs entries for the different GPIO lines. +It allows me to poke at different parts of the hardware to see what +happens. This allowed me to discover the Bluetooth cutoff switch for +example. + +Index: linux-2.6.14/arch/arm/mach-s3c2410/Makefile +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/Makefile ++++ linux-2.6.14/arch/arm/mach-s3c2410/Makefile +@@ -42,3 +42,5 @@ obj-$(CONFIG_MACH_VR1000) += mach-vr1000 + obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o + obj-$(CONFIG_MACH_OTOM) += mach-otom.o + obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o ++ ++obj-y += gpio-sysfs.o +Index: linux-2.6.14/arch/arm/mach-s3c2410/gpio-sysfs.c +=================================================================== +--- /dev/null ++++ linux-2.6.14/arch/arm/mach-s3c2410/gpio-sysfs.c +@@ -0,0 +1,232 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include ++ ++static ssize_t s3c2410_gpio_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct platform_device *pdev = to_platform_device(dev); ++ ++ return snprintf(buf, PAGE_SIZE, "%d\n", pdev->id); ++} ++ ++static ssize_t s3c2410_gpio_val_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct platform_device *pdev = to_platform_device(dev); ++ ++ return snprintf(buf, PAGE_SIZE, "%d\n", ++ s3c2410_gpio_getpin(pdev->id) ? 1 : 0); ++} ++ ++static ssize_t s3c2410_gpio_val_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t count) ++{ ++ struct platform_device *pdev = to_platform_device(dev); ++ int val; ++ char *endp; ++ ++ val = simple_strtoul(buf, &endp, 0); ++ if (*endp && !isspace(*endp)) ++ return -EINVAL; ++ ++ s3c2410_gpio_setpin(pdev->id, val ? 1 : 0); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(name, 0444, ++ s3c2410_gpio_name_show, ++ NULL); ++ ++static DEVICE_ATTR(val, 0666, ++ s3c2410_gpio_val_show, ++ s3c2410_gpio_val_store); ++ ++ ++static int __init s3c2410_gpio_probe(struct device *dev) ++{ ++ device_create_file(dev, &dev_attr_name); ++ device_create_file(dev, &dev_attr_val); ++ return 0; ++} ++ ++static int s3c2410_gpio_remove(struct device *dev) ++{ ++ return 0; ++} ++ ++static struct device_driver s3c2410_gpio_driver = { ++ .name = "s3c2410-gpio", ++ .bus = &platform_bus_type, ++ .probe = s3c2410_gpio_probe, ++ .remove = s3c2410_gpio_remove, ++}; ++ ++static struct platform_device s3c_device_gpio[32 * 8]; ++ ++static ssize_t s3c2410_clkslow_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ unsigned long clkslow = __raw_readl(S3C2410_CLKSLOW); ++ ++ return snprintf(buf, PAGE_SIZE, "0x%08lx\n", clkslow); ++} ++ ++static ssize_t s3c2410_clkslow_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t count) ++{ ++ unsigned long val; ++ char *endp; ++ ++ val = simple_strtoul(buf, &endp, 0); ++ if (*endp && !isspace(*endp)) ++ return -EINVAL; ++ ++ printk("CLKSLOW <= 0x%lx\n", val); ++ ++ __raw_writel(val, S3C2410_CLKSLOW); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(clkslow, 0666, ++ s3c2410_clkslow_show, ++ s3c2410_clkslow_store); ++ ++static ssize_t s3c2410_clkcon_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ unsigned long clkclkcon = __raw_readl(S3C2410_CLKCON); ++ ++ return snprintf(buf, PAGE_SIZE, "0x%08lx\n", clkclkcon); ++} ++ ++static ssize_t s3c2410_clkcon_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t count) ++{ ++ unsigned long val; ++ char *endp; ++ ++ val = simple_strtoul(buf, &endp, 0); ++ if (*endp && !isspace(*endp)) ++ return -EINVAL; ++ ++ printk("CLKCON <= 0x%lx\n", val); ++ ++ __raw_writel(val, S3C2410_CLKCON); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(clkcon, 0666, ++ s3c2410_clkcon_show, ++ s3c2410_clkcon_store); ++ ++static ssize_t s3c2410_misccr_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ unsigned long misccr = __raw_readl(S3C2410_MISCCR); ++ ++ return snprintf(buf, PAGE_SIZE, "0x%08lx\n", misccr); ++} ++ ++static ssize_t s3c2410_misccr_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t count) ++{ ++ unsigned long val; ++ char *endp; ++ ++ val = simple_strtoul(buf, &endp, 0); ++ if (*endp && !isspace(*endp)) ++ return -EINVAL; ++ ++ printk("MISCCR <= 0x%lx\n", val); ++ ++ __raw_writel(val, S3C2410_MISCCR); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(misccr, 0666, ++ s3c2410_misccr_show, ++ s3c2410_misccr_store); ++ ++static int __init s3c2410_regs_probe(struct device *dev) ++{ ++ device_create_file(dev, &dev_attr_clkslow); ++ device_create_file(dev, &dev_attr_clkcon); ++ device_create_file(dev, &dev_attr_misccr); ++ return 0; ++} ++ ++static int s3c2410_regs_remove(struct device *dev) ++{ ++ return 0; ++} ++ ++ ++static struct device_driver s3c2410_regs_driver = { ++ .name = "s3c2410-regs", ++ .bus = &platform_bus_type, ++ .probe = s3c2410_regs_probe, ++ .remove = s3c2410_regs_remove, ++}; ++ ++static struct platform_device s3c_device_regs = { ++ .name = "s3c2410-regs", ++ .id = -1, ++}; ++ ++static int __init s3c2410_gpio_init(void) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(s3c_device_gpio); i++) { ++ s3c_device_gpio[i].name = "s3c2410-gpio"; ++ s3c_device_gpio[i].id = i; ++ platform_device_register(&s3c_device_gpio[i]); ++ } ++ ++ driver_register(&s3c2410_gpio_driver); ++ driver_register(&s3c2410_regs_driver); ++ ++ platform_device_register(&s3c_device_regs); ++ ++ return 0; ++} ++ ++static void __exit s3c2410_gpio_cleanup(void) ++{ ++ driver_unregister(&s3c2410_regs_driver); ++ driver_unregister(&s3c2410_gpio_driver); ++} ++ ++module_init(s3c2410_gpio_init); ++module_exit(s3c2410_gpio_cleanup); ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Christer Weinigel "); ++MODULE_DESCRIPTION("S3C2410 GPIO Driver"); ++ ++/* ++ Local variables: ++ compile-command: "make -k -C ../../../.. linux " ++ c-basic-offset: 8 ++ End: ++*/ diff --git a/packages/linux/linux/acern30/mmc-plus.patch b/packages/linux/linux/acern30/mmc-plus.patch new file mode 100644 index 0000000000..d88ac531cf --- /dev/null +++ b/packages/linux/linux/acern30/mmc-plus.patch @@ -0,0 +1,17 @@ +Treat MMCA version 4 cards a version 3 cards. It seem to work for me, +but it may break things horribly. + +So you may not want to use this patch. + +Index: linux-2.6.14/drivers/mmc/mmc.c +=================================================================== +--- linux-2.6.14.orig/drivers/mmc/mmc.c ++++ linux-2.6.14/drivers/mmc/mmc.c +@@ -495,6 +495,7 @@ static void mmc_decode_cid(struct mmc_ca + + case 2: /* MMC v2.0 - v2.2 */ + case 3: /* MMC v3.1 - v3.3 */ ++ case 4: /* MMC Plus? */ + card->cid.manfid = UNSTUFF_BITS(resp, 120, 8); + card->cid.oemid = UNSTUFF_BITS(resp, 104, 16); + card->cid.prod_name[0] = UNSTUFF_BITS(resp, 96, 8); diff --git a/packages/linux/linux/acern30/n30-apm.patch b/packages/linux/linux/acern30/n30-apm.patch new file mode 100644 index 0000000000..00b34c9a46 --- /dev/null +++ b/packages/linux/linux/acern30/n30-apm.patch @@ -0,0 +1,73 @@ +Implement a apm_get_power_status handler for the n30. The handler +gets the battery charge from the msp430 chip using i2c and sets the ac +line information based on GPG1 (charger power) and GPC7 (usb power). + +Index: linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/mach-n30.c ++++ linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -44,6 +45,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -527,6 +529,37 @@ static int n30_usbstart_thread(void *unu + return 0; + } + ++#ifdef CONFIG_APM ++static void n30_get_power_status(struct apm_power_info *info) ++{ ++#ifdef CONFIG_I2C_S3C2410 ++ u8 charge; ++ struct i2c_adapter *adap; ++ struct i2c_msg msg[] = { ++ { .addr = 0x0b, .flags = I2C_M_RD, .buf = &charge, .len = 1 } ++ }; ++ ++ if ((adap = i2c_get_adapter(0)) != NULL) { ++ if (i2c_transfer(adap, msg, 1) == 1) ++ info->battery_life = charge; ++ i2c_put_adapter(adap); ++ } ++#endif ++ ++ if (s3c2410_gpio_getpin(S3C2410_GPC7)) ++ info->ac_line_status = 0x01; /* on charger power */ ++ else if (s3c2410_gpio_getpin(S3C2410_GPG1)) ++ info->ac_line_status = 0x02; /* on USB power */ ++ else ++ info->ac_line_status = 0x00; /* on battery power */ ++ ++ /* TODO I could put some values in these variables based on ++ * the battery life and the ac_line_status. --wingel */ ++ info->battery_status = 0xff; ++ info->battery_flag = 0xff; ++} ++#endif ++ + static void __init n30_init(void) + { + s3c24xx_fb_set_platdata(&n30_lcdcfg); +@@ -550,6 +583,10 @@ static void __init n30_init(void) + s3c2410_gpio_setpin(S3C2410_GPC5, 1); + + kthread_run(n30_usbstart_thread, NULL, "n30_usbstart"); ++ ++#ifdef CONFIG_APM ++ apm_get_power_status = n30_get_power_status; ++#endif + } + + MACHINE_START(N30, "Acer-N30") diff --git a/packages/linux/linux/acern30/n30-backlight.patch b/packages/linux/linux/acern30/n30-backlight.patch new file mode 100644 index 0000000000..2b339960f7 --- /dev/null +++ b/packages/linux/linux/acern30/n30-backlight.patch @@ -0,0 +1,97 @@ +This patch adds a few functions to control the backlight on the n30. + +Index: linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/mach-n30.c ++++ linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +@@ -45,8 +45,10 @@ + #include + #include + #include ++#include + #include + #include ++#include + + #include + +@@ -121,9 +123,71 @@ static struct s3c2410fb_mach_info n30_lc + .bpp= {16,16,16}, + }; + ++static void n30_backlight_power(int on) ++{ ++ s3c2410_gpio_pullup(S3C2410_GPB1, 1); ++ s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_OUTP); ++ s3c2410_gpio_setpin(S3C2410_GPB1, on); ++} ++ ++static void n30_lcd_power(int on) ++{ ++ /* Turning these off will save about 10mA */ ++ s3c2410_gpio_setpin(S3C2410_GPB8, on); /* CLOCK driver? */ ++ s3c2410_gpio_setpin(S3C2410_GPB9, on); /* VSYNC driver? */ ++ s3c2410_gpio_setpin(S3C2410_GPB10, on); /* HSYYNC driver? */ ++} ++ ++#define BRIGHTNESS_MAX 28 ++#define BRIGHTNESS_OFFSET 5 ++ ++static void n30_set_brightness(int level) ++{ ++ unsigned long tcmpb0; ++ unsigned long tcon; ++ ++ if (level < 0) ++ level = 0; ++ ++ if (level > BRIGHTNESS_MAX) ++ level = BRIGHTNESS_MAX; ++ ++ tcmpb0 = level ? level + BRIGHTNESS_OFFSET : 0; ++ ++ printk("brightness level %d, tcmpb0 %lu\n", level, tcmpb0); ++ ++ /* configure power on/off */ ++ n30_backlight_power(level ? 1 : 0); ++ ++ writel(34, S3C2410_TCNTB(0)); ++ ++ tcon = readl(S3C2410_TCON); ++ tcon &= ~0x0F; ++ tcon |= S3C2410_TCON_T0RELOAD; ++ tcon |= S3C2410_TCON_T0MANUALUPD; ++ ++ writel(tcon, S3C2410_TCON); ++ writel(0x22, S3C2410_TCNTB(0)); ++ writel(tcmpb0, S3C2410_TCMPB(0)); ++ ++ /* start the timer running */ ++ tcon |= S3C2410_TCON_T0START; ++ tcon &= ~S3C2410_TCON_T0MANUALUPD; ++ writel(tcon, S3C2410_TCON); ++} ++ ++static struct s3c2410_bl_mach_info n30_blcfg __initdata = { ++ .backlight_max = BRIGHTNESS_MAX, ++ .backlight_default = BRIGHTNESS_MAX / 2, ++ .backlight_power = n30_backlight_power, ++ .set_brightness = n30_set_brightness, ++ .lcd_power = n30_lcd_power ++}; ++ + static struct platform_device *n30_devices[] __initdata = { + &s3c_device_usb, + &s3c_device_lcd, ++ &s3c_device_bl, + &s3c_device_wdt, + &s3c_device_i2c, + &s3c_device_iis, +@@ -160,6 +224,7 @@ static void __init n30_init_irq(void) + static void __init n30_init(void) + { + s3c24xx_fb_set_platdata(&n30_lcdcfg); ++ set_s3c2410bl_info(&n30_blcfg); + + s3c_device_i2c.dev.platform_data = &n30_i2ccfg; + diff --git a/packages/linux/linux/acern30/n30-batt.patch b/packages/linux/linux/acern30/n30-batt.patch new file mode 100644 index 0000000000..e5eb9e7812 --- /dev/null +++ b/packages/linux/linux/acern30/n30-batt.patch @@ -0,0 +1,242 @@ +A battery controller i2c driver for the n30. + +I don't use this driver any more, it was much nicer to use the ARM APM +emulation to expose this data. + +Index: linux-2.6.14/drivers/hwmon/Kconfig +=================================================================== +--- linux-2.6.14.orig/drivers/hwmon/Kconfig ++++ linux-2.6.14/drivers/hwmon/Kconfig +@@ -290,6 +290,16 @@ + This driver can also be built as a module. If so, the module + will be called max1619. + ++config SENSORS_N30_BATT ++ tristate "Acer N30 Battery Controller" ++ depends on HWMON && I2C && MACH_N30 ++ help ++ If you say yes here you get support for the battery controller ++ found inside the Acer N30 PDA. ++ ++ This driver can also be built as a module. If so, the module ++ will be called n30_batt. ++ + config SENSORS_PC87360 + tristate "National Semiconductor PC87360 family" + depends on HWMON && I2C && EXPERIMENTAL +Index: linux-2.6.14/drivers/hwmon/Makefile +=================================================================== +--- linux-2.6.14.orig/drivers/hwmon/Makefile ++++ linux-2.6.14/drivers/hwmon/Makefile +@@ -35,6 +35,7 @@ + obj-$(CONFIG_SENSORS_LM90) += lm90.o + obj-$(CONFIG_SENSORS_LM92) += lm92.o + obj-$(CONFIG_SENSORS_MAX1619) += max1619.o ++obj-$(CONFIG_SENSORS_N30_BATT) += n30_batt.o + obj-$(CONFIG_SENSORS_PC87360) += pc87360.o + obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o + obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o +Index: linux-2.6.14/drivers/hwmon/n30_batt.c +=================================================================== +--- linux-2.6.14.orig/drivers/hwmon/n30_batt.c ++++ linux-2.6.14/drivers/hwmon/n30_batt.c +@@ -0,0 +1,199 @@ ++/* ++ * n30_batt.c - Support for the Acer N30 Battery Controller ++ * Copyright (c) 2005 Christer Weinigel ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned short normal_i2c[] = { I2C_CLIENT_END, I2C_CLIENT_END }; ++static unsigned short probe[] = { I2C_CLIENT_END, I2C_CLIENT_END }; ++static unsigned short ignore[] = { I2C_CLIENT_END, I2C_CLIENT_END }; ++static unsigned short force[] = { -1, 0x0b, I2C_CLIENT_END, I2C_CLIENT_END }; ++static unsigned short *forces[] = { force, NULL }; ++ ++static struct i2c_client_address_data addr_data = { ++ .normal_i2c = normal_i2c, ++ .probe = probe, ++ .ignore = ignore, ++ .forces = forces, ++}; ++ ++struct n30_batt_data { ++ struct i2c_client client; ++ struct semaphore update_lock; ++ unsigned long last_updated; /* last update in jiffies */ ++ u8 charge; ++}; ++ ++static struct n30_batt_data *n30_batt_update_device(struct device *dev) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct n30_batt_data *data = i2c_get_clientdata(client); ++ ++ down(&data->update_lock); ++ ++ if (time_after(jiffies, data->last_updated + 3 * HZ)) { ++ int value; ++ ++ value = i2c_smbus_read_byte(client); ++ ++ if (value == -1) ++ printk(KERN_WARNING "n30-batt: unable to read charge\n"); ++ else ++ data->charge = value; ++ data->last_updated = jiffies; ++ } ++ ++ up(&data->update_lock); ++ ++ return data; ++} ++ ++static ssize_t show_charge(struct device *dev, struct device_attribute *attr, char *buf) ++{ ++ struct n30_batt_data *data = n30_batt_update_device(dev); ++ return sprintf(buf, "%d\n", data->charge); ++} ++ ++static DEVICE_ATTR(charge, S_IRUGO, show_charge, NULL); ++ ++static struct i2c_driver n30_batt_driver; ++ ++static struct device *n30_batt_dev; ++ ++static int n30_batt_detect(struct i2c_adapter *adapter, int address, int kind) ++{ ++ struct i2c_client *new_client; ++ struct n30_batt_data *data; ++ int err = 0; ++ int value; ++ ++ printk(KERN_INFO "detect n30 Battery controller\n"); ++ ++ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) ++ goto exit; ++ ++ printk(KERN_INFO "kmalloc n30 Battery controller\n"); ++ ++ if (!(data = kmalloc(sizeof(struct n30_batt_data), GFP_KERNEL))) { ++ err = -ENOMEM; ++ goto exit; ++ } ++ memset(data, 0, sizeof(struct n30_batt_data)); ++ ++ new_client = &data->client; ++ i2c_set_clientdata(new_client, data); ++ new_client->addr = address; ++ new_client->adapter = adapter; ++ new_client->driver = &n30_batt_driver; ++ new_client->flags = 0; ++ strlcpy(new_client->name, "n30_batt", I2C_NAME_SIZE); ++ ++ if ((value = i2c_smbus_read_byte(new_client)) == -1) { ++ printk(KERN_ERR "n30_batt: unable to read charge value\n"); ++ err = -ENXIO; ++ goto exit_free; ++ } ++ ++ init_MUTEX(&data->update_lock); ++ data->charge = value; ++ data->last_updated = jiffies; ++ ++ printk(KERN_DEBUG "n30_batt: battery charge is %d%%\n", data->charge); ++ ++ if ((err = i2c_attach_client(new_client))) ++ goto exit_free; ++ ++ device_create_file(&new_client->dev, &dev_attr_charge); ++ ++ n30_batt_dev = &new_client->dev; ++ ++ return 0; ++ ++exit_free: ++ kfree(data); ++exit: ++ return err; ++} ++ ++static int n30_batt_attach_adapter(struct i2c_adapter *adapter) ++{ ++ printk(KERN_INFO "attaching n30 Battery controller\n"); ++ return i2c_probe(adapter, &addr_data, n30_batt_detect); ++} ++ ++static int n30_batt_detach_client(struct i2c_client *client) ++{ ++ n30_batt_dev = NULL; ++ i2c_detach_client(client); ++ kfree(i2c_get_clientdata(client)); ++ return 0; ++} ++ ++static struct i2c_driver n30_batt_driver = { ++ .owner = THIS_MODULE, ++ .name = "n30_batt", ++ .flags = I2C_DF_NOTIFY, ++ .attach_adapter = n30_batt_attach_adapter, ++ .detach_client = n30_batt_detach_client, ++}; ++ ++static void n30_get_power_status(struct apm_power_info *info) ++{ ++ if (n30_batt_dev) { ++ struct n30_batt_data *data = n30_batt_update_device(n30_batt_dev); ++ ++ info->ac_line_status = 0xff; ++ info->battery_status = 0xff; ++ info->battery_flag = 0xff; ++ info->battery_life = data->charge; ++ info->time = -1; ++ info->units = -1; ++ } ++} ++ ++static int __init sensors_n30_batt_init(void) ++{ ++ printk(KERN_INFO "n30 Battery controller\n"); ++ ++ if (!machine_is_n30()) ++ return -ENODEV; ++ printk(KERN_INFO "adding n30 Battery controller\n"); ++ ++ apm_get_power_status = n30_get_power_status; ++ ++ return i2c_add_driver(&n30_batt_driver); ++} ++ ++static void __exit sensors_n30_batt_exit(void) ++{ ++ i2c_del_driver(&n30_batt_driver); ++} ++ ++MODULE_AUTHOR("Christer Weinigel "); ++MODULE_DESCRIPTION("Acer n30 Battery Controller"); ++MODULE_LICENSE("GPL"); ++ ++module_init(sensors_n30_batt_init); ++module_exit(sensors_n30_batt_exit); diff --git a/packages/linux/linux/acern30/n30-buttons.patch b/packages/linux/linux/acern30/n30-buttons.patch new file mode 100644 index 0000000000..ff1214e698 --- /dev/null +++ b/packages/linux/linux/acern30/n30-buttons.patch @@ -0,0 +1,100 @@ +Add support for the buttons on the n30. + +Index: linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/mach-n30.c ++++ linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +@@ -46,10 +46,12 @@ + #include + #include + #include ++#include + #include + #include + #include + #include ++#include + + #include + +@@ -194,11 +196,68 @@ static struct s3c2410_ts_mach_info n30_t + .oversampling_shift = 6, + }; + ++static struct s3c2410_button n30_buttons[] = { ++ { IRQ_EINT0, S3C2410_GPF0, S3C2410_GPF0_EINT0, KEY_POWER, ++ "Power", 0 }, ++ ++ { IRQ_EINT17, S3C2410_GPG9, S3C2410_GPG9_EINT17, KEY_UP, ++ "Up_arrow", 0 }, ++ { IRQ_EINT16, S3C2410_GPG8, S3C2410_GPG8_EINT16, KEY_DOWN, ++ "Down_arrow", 0 }, ++ { IRQ_EINT15, S3C2410_GPG7, S3C2410_GPG7_EINT15, KEY_ENTER, ++ "Select", 0 }, ++ ++ { IRQ_EINT7, S3C2410_GPF7, S3C2410_GPF7_EINT7, KEY_HOMEPAGE, ++ "Home", 0 }, ++ { IRQ_EINT6, S3C2410_GPF6, S3C2410_GPF6_EINT6, KEY_CALENDAR, ++ "Calendar", 0 }, ++ { IRQ_EINT5, S3C2410_GPF5, S3C2410_GPF5_EINT5, KEY_COFFEE, ++ "Contacts", 0 }, /* TODO: find a better key :P */ ++ { IRQ_EINT4, S3C2410_GPF4, S3C2410_GPF4_EINT4, KEY_MAIL, ++ "Mail", 0 }, ++}; ++ ++static struct s3c2410_butt_mach_info n30_buttons_cfg __initdata = { ++ .buttons = n30_buttons, ++ .size = ARRAY_SIZE(n30_buttons), ++}; ++ ++static struct s3c2410_button n35_buttons[] = { ++ { IRQ_EINT0, S3C2410_GPF0, S3C2410_GPF0_EINT0, KEY_POWER, ++ "Power", 0 }, ++ ++ { IRQ_EINT13, S3C2410_GPG5, S3C2410_GPG5_EINT13, KEY_LEFT, ++ "Left_arrow", 0 }, ++ { IRQ_EINT14, S3C2410_GPG6, S3C2410_GPG6_EINT14, KEY_RIGHT, ++ "Right_arrow", 0 }, ++ { IRQ_EINT17, S3C2410_GPG9, S3C2410_GPG9_EINT17, KEY_UP, ++ "Up_arrow", 0 }, ++ { IRQ_EINT16, S3C2410_GPG8, S3C2410_GPG8_EINT16, KEY_DOWN, ++ "Down_arrow", 0 }, ++ { IRQ_EINT15, S3C2410_GPG7, S3C2410_GPG7_EINT15, KEY_ENTER, ++ "Select", 0 }, ++ ++ { IRQ_EINT7, S3C2410_GPF7, S3C2410_GPF7_EINT7, KEY_HOMEPAGE, ++ "Home", 0 }, ++ { IRQ_EINT6, S3C2410_GPF6, S3C2410_GPF6_EINT6, KEY_CALENDAR, ++ "Calendar", 0 }, ++ { IRQ_EINT5, S3C2410_GPF5, S3C2410_GPF5_EINT5, KEY_COFFEE, ++ "Contacts", 0 }, /* TODO: find a better key :P */ ++ { IRQ_EINT4, S3C2410_GPF4, S3C2410_GPF4_EINT4, KEY_MAIL, ++ "Mail", 0 }, ++}; ++ ++static struct s3c2410_butt_mach_info n35_buttons_cfg __initdata = { ++ .buttons = n35_buttons, ++ .size = ARRAY_SIZE(n35_buttons), ++}; ++ + static struct platform_device *n30_devices[] __initdata = { + &s3c_device_usb, + &s3c_device_lcd, + &s3c_device_bl, + &s3c_device_ts, ++ &s3c_device_buttons, + &s3c_device_wdt, + &s3c_device_i2c, + &s3c_device_iis, +@@ -238,6 +297,11 @@ static void __init n30_init(void) + set_s3c2410bl_info(&n30_blcfg); + set_s3c2410ts_info(&n30_ts_cfg); + ++ if (machine_is_n30()) ++ s3c24xx_butt_set_platdata(&n30_buttons_cfg); ++ if (machine_is_n35()) ++ s3c24xx_butt_set_platdata(&n35_buttons_cfg); ++ + s3c_device_i2c.dev.platform_data = &n30_i2ccfg; + + /* Turn off suspend on both USB ports, and switch the diff --git a/packages/linux/linux/acern30/n30-cleanup.patch b/packages/linux/linux/acern30/n30-cleanup.patch new file mode 100644 index 0000000000..ea1c966ae9 --- /dev/null +++ b/packages/linux/linux/acern30/n30-cleanup.patch @@ -0,0 +1,30 @@ +Clean up some junk from the official kernel. + +The s3c2410.h include isn't needed. + +The compile-command is something that's only useful for me personally +and doesn't belong in the mainstream kernel. + +Index: linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/mach-n30.c ++++ linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +@@ -39,7 +39,6 @@ + + #include + +-#include "s3c2410.h" + #include "clock.h" + #include "devs.h" + #include "cpu.h" +@@ -137,10 +136,3 @@ MACHINE_START(N30, "Acer-N30") + .init_irq = n30_init_irq, + .map_io = n30_map_io, + MACHINE_END +- +-/* +- Local variables: +- compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.." +- c-basic-offset: 8 +- End: +-*/ diff --git a/packages/linux/linux/acern30/n30-hardcode.patch b/packages/linux/linux/acern30/n30-hardcode.patch new file mode 100644 index 0000000000..735e18ca4c --- /dev/null +++ b/packages/linux/linux/acern30/n30-hardcode.patch @@ -0,0 +1,158 @@ +This patch hardcodes a lot of register settings so that I can boot +directly from flash on the n30. + +Is there a nicer way of doing this? + +Index: linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +=================================================================== +--- linux-2.6.14.orig/arch/arm/mach-s3c2410/mach-n30.c ++++ linux-2.6.14/arch/arm/mach-s3c2410/mach-n30.c +@@ -349,9 +349,148 @@ static struct s3c24xx_board n30_board __ + .devices_count = ARRAY_SIZE(n30_devices) + }; + ++/* Lots of hardcoded stuff, but it sets up the hardware in a useful ++ * state so that we can boot Linux directly from flash. */ ++static void __init n30_hwinit(void) ++{ ++ /* GPA0-11 special functions -- unknown what they do ++ * GPA12 N30 special function -- unknown what it does ++ * N35/PiN output -- unknown what it does ++ * ++ * A12 is nGCS1 on the N30 and an output on the N35/PiN. I ++ * don't think it does anything useful on the N30, so I ought ++ * to make it an output there too since it always driven to 0 ++ * as far as I can tell. */ ++ if (machine_is_n30()) ++ __raw_writel(0x007fffff, S3C2410_GPACON); ++ if (machine_is_n35()) ++ __raw_writel(0x007fefff, S3C2410_GPACON); ++ __raw_writel(0x00000000, S3C2410_GPADAT); ++ ++ /* GPB0 TOUT0 backlight level ++ * GPB1 output 1=backlight on ++ * GPB2 output IrDA enable 0=transceiver enabled, 1=disabled ++ * GPB3 output USB D+ pull up 0=disabled, 1=enabled ++ * GPB4 N30 output -- unknown function ++ * N30/PiN GPS control 0=GPS enabled, 1=GPS disabled ++ * GPB5 output -- unknown function ++ * GPB6 input -- unknown function ++ * GPB7 output -- unknown function ++ * GPB8 output -- probably LCD driver enable ++ * GPB9 output -- probably LCD VSYNC driver enable ++ * GPB10 output -- probably LCD HSYNC driver enable ++ */ ++ __raw_writel(0x00154556, S3C2410_GPBCON); ++ __raw_writel(0x00000750, S3C2410_GPBDAT); ++ __raw_writel(0x0000007d, S3C2410_GPBUP); ++ ++ /* GPC0 input RS232 DCD/DSR/RI ++ * GPC1 LCD ++ * GPC2 output RS232 DTR? ++ * GPC3 input RS232 DCD/DSR/RI ++ * GPC4 LCD ++ * GPC5 output 0=NAND write enabled, 1=NAND write protect ++ * GPC6 input -- unknown function ++ * GPC7 input charger status 0=charger connected ++ * this input can be triggered by power on the USB device ++ * port too, but will go back to disconnected soon after. ++ * GPC8 N30/N35 output -- unknown function, always driven to 1 ++ * PiN input -- unknown function, always read as 1 ++ * Make it an input with a pull up for all models. ++ * GPC9-15 LCD ++ */ ++ __raw_writel(0xaaa80618, S3C2410_GPCCON); ++ __raw_writel(0x0000014c, S3C2410_GPCDAT); ++ __raw_writel(0x0000fef2, S3C2410_GPCUP); ++ ++ /* GPD0 input -- unknown function ++ * GPD1-D7 LCD ++ * GPD8 N30 output -- unknown function ++ * N35/PiN output 1=GPS LED on ++ * GPD9 output 0=power led blinks red, 1=normal power led function ++ * GPD10 output -- unknown function ++ * GPD11-15 LCD drivers ++ */ ++ __raw_writel(0xaa95aaa4, S3C2410_GPDCON); ++ __raw_writel(0x00000601, S3C2410_GPDDAT); ++ __raw_writel(0x0000fbfe, S3C2410_GPDUP); ++ ++ /* GPE0-4 I2S audio bus ++ * GPE5-10 SD/MMC bus ++ * E11-13 outputs -- unknown function, probably power management ++ * E14-15 I2C bus connected to the battery controller ++ */ ++ __raw_writel(0xa56aaaaa, S3C2410_GPECON); ++ __raw_writel(0x0000efc5, S3C2410_GPEDAT); ++ __raw_writel(0x0000f81f, S3C2410_GPEUP); ++ ++ /* GPF0 input 0=power button pressed ++ * GPF1 input SD/MMC switch 0=card present ++ * GPF2 N30 1=reset button pressed (inverted compared to the rest) ++ * N35/PiN 0=reset button pressed ++ * GPF3 N30/PiN input -- unknown function ++ * N35 input GPS antenna position, 0=antenna closed, 1=open ++ * GPF4 input 0=button 4 pressed ++ * GPF5 input 0=button 3 pressed ++ * GPF6 input 0=button 2 pressed ++ * GPF7 input 0=button 1 pressed ++ */ ++ __raw_writel(0x0000aaaa, S3C2410_GPFCON); ++ __raw_writel(0x00000000, S3C2410_GPFDAT); ++ __raw_writel(0x000000ff, S3C2410_GPFUP); ++ ++ /* GPG0 input RS232 DCD/DSR/RI ++ * GPG1 input 1=USB gadget port has power from a host ++ * GPG2 N30 input -- unknown function ++ * N35/PiN input 0=headphones plugged in, 1=not plugged in ++ * GPG3 N30 output -- unknown function ++ * N35/PiN input with unknown function ++ * GPG4 N30 output 0=MMC enabled, 1=MMC disabled ++ * GPG5 N30 output 0=BlueTooth chip disabled, 1=enabled ++ * N35/PiN input joystick right ++ * GPG6 N30 output 0=blue led on, 1=off ++ * N35/PiN input joystick left ++ * GPG7 input 0=thumbwheel pressed ++ * GPG8 input 0=thumbwheel down ++ * GPG9 input 0=thumbwheel up ++ * GPG10 input SD/MMC write protect switch ++ * GPG11 N30 input -- unknown function ++ * N35 output 0=GPS antenna powered, 1=not powered ++ * PiN output -- unknown function ++ * GPG12-15 touch screen functions ++ * ++ * The pullups differ between the models, so enable all ++ * pullups that are enabled on any of the models. ++ */ ++ if (machine_is_n30()) ++ __raw_writel(0xff0a956a, S3C2410_GPGCON); ++ if (machine_is_n35()) ++ __raw_writel(0xff4aa92a, S3C2410_GPGCON); ++ __raw_writel(0x0000e800, S3C2410_GPGDAT); ++ __r