diff options
Diffstat (limited to 'packages/linux')
-rw-r--r-- | packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz | 403 | ||||
-rw-r--r-- | packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb | 15 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel.inc | 4 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch | 139 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel_2.6.12.2.bb | 3 |
5 files changed, 401 insertions, 163 deletions
diff --git a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz index ed5010d5c8..02437440c5 100644 --- a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz +++ b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.12-rc3-mm2 -# Wed May 11 22:20:58 2005 +# Linux kernel version: 2.6.13-rc5-mm1 +# Fri Aug 12 08:40:57 2005 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y # # Code maturity level options @@ -23,7 +22,6 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # General setup # CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -87,6 +85,7 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_VERSATILE is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set # # Intel PXA2xx Implementations @@ -95,12 +94,13 @@ CONFIG_ARCH_PXA=y # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set CONFIG_PXA_SHARPSL=y -# CONFIG_MACH_POODLE is not set -# CONFIG_MACH_CORGI is not set -# CONFIG_MACH_SHEPHERD is not set -# CONFIG_MACH_HUSKY is not set +# CONFIG_MACH_HX2750 is not set +# CONFIG_PXA_SHARPSL_25x is not set +CONFIG_PXA_SHARPSL_27x=y CONFIG_MACH_SPITZ=y +# CONFIG_MACH_AKITA is not set CONFIG_PXA27x=y +# CONFIG_PXA_KEYS is not set # # Processor Type @@ -111,7 +111,6 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y # # Processor Features @@ -124,6 +123,7 @@ CONFIG_SHARP_SCOOP=y # # Bus support # +CONFIG_ISA_DMA_API=y # # PCCARD (PCMCIA/CardBus) support @@ -143,11 +143,16 @@ CONFIG_PCMCIA_PXA2XX=y # # Kernel Features # +# CONFIG_SMP is not set CONFIG_PREEMPT=y +# CONFIG_NO_IDLE_HZ is not set +# 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_ALIGNMENT_TRAP=y # @@ -155,7 +160,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 " +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug " # CONFIG_XIP_KERNEL is not set # @@ -184,6 +189,139 @@ 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 is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# 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_IP_TCPDIAG=y +# CONFIG_IP_TCPDIAG_IPV6 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_NETFILTER_NETLINK is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# 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_PXA_FICP=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_BCSP_TXCRC=y +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +# CONFIG_IEEE80211 is not set + +# # Device Drivers # @@ -349,137 +487,8 @@ CONFIG_IDE_GENERIC=y # # -# Networking support -# -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_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# 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_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER 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 - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_KGDBOE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_HAMRADIO is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -# CONFIG_IRTTY_SIR is not set - -# -# Dongle support -# - -# -# Old SIR device drivers -# -# CONFIG_IRPORT_SIR is not set - -# -# Old Serial dongle support +# Network device support # - -# -# FIR device drivers -# -# 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_PXA_FICP=m -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_BCSP_TXCRC=y -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m -# CONFIG_IEEE80211 is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -487,6 +496,10 @@ CONFIG_NETDEVICES=y # CONFIG_TUN is not set # +# PHY device support +# + +# # Ethernet (10 or 100Mbit) # # CONFIG_NET_ETHERNET is not set @@ -521,6 +534,11 @@ CONFIG_NETDEVICES=y # CONFIG_SLIP is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set +# CONFIG_KGDBOE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +# CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem @@ -545,10 +563,22 @@ CONFIG_INPUT_POWER=y # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +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_KEYBOARD_CORGI is not set +CONFIG_KEYBOARD_SPITZ=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_CORGI=y +# 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 is not set # @@ -560,7 +590,9 @@ CONFIG_INPUT_POWER=y # # Character devices # -# CONFIG_VT is not set +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y # CONFIG_SERIAL_NONSTANDARD is not set # @@ -595,7 +627,6 @@ CONFIG_SA1100_RTC=y # # Ftape, the floppy tape device driver # -# CONFIG_DRM is not set # # PCMCIA character devices @@ -611,12 +642,24 @@ CONFIG_SA1100_RTC=y # I2C support # # CONFIG_I2C is not set +# CONFIG_I2C_SENSOR is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set # # Misc devices # # +# SoC drivers +# +# CONFIG_SOC is not set + +# # Multimedia devices # # CONFIG_VIDEO_DEV is not set @@ -629,7 +672,54 @@ CONFIG_SA1100_RTC=y # # Graphics support # -# CONFIG_FB is not set +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 is not set +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_ELPP is not set +CONFIG_FB_PXA=y +# CONFIG_FB_W100 is not set +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_S1D13XXX 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=y +CONFIG_FONT_8x16=y +# 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_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set +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_CORGI is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set # # Sound @@ -651,7 +741,12 @@ CONFIG_USB_ARCH_HAS_OHCI=y # # MMC/SD Card support # -# CONFIG_MMC is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_BULKTRANSFER is not set +CONFIG_MMC_PXA=y +# CONFIG_MMC_WBSD is not set # # File systems @@ -660,8 +755,11 @@ CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT3_FS is not set -# CONFIG_JBD 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_REISER4_FS is not set # CONFIG_REISERFS_FS is not set @@ -679,11 +777,6 @@ CONFIG_INOTIFY=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set - -# -# Caches -# -# CONFIG_FSCACHE is not set # CONFIG_FUSE_FS is not set # @@ -707,12 +800,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set # CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y # CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set # CONFIG_RELAYFS_FS is not set # @@ -720,6 +813,7 @@ CONFIG_RAMFS=y # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set +# CONFIG_ASFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -766,6 +860,7 @@ CONFIG_SMB_NLS_REMOTE="cp437" # 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 diff --git a/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb b/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb index 1ab1eecffa..fd6dd9ee37 100644 --- a/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb +++ b/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb @@ -5,7 +5,7 @@ LICENSE = "GPL" #KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}" KV = "${@bb.data.getVar('PV',d,True)}" -PR = "r1" +PR = "r3" DOSRC = "http://www.do13.in-berlin.de/openzaurus/patches" RPSRC = "http://www.rpsys.net/openzaurus/patches" @@ -78,6 +78,11 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.gz \ ${DOSRC}/tosa-lcd-r3.patch;patch=1 \ ${DOSRC}/tosa-2.6.13-r1.patch;patch=1 \ ${RPSRC}/temp/tosa-bl-r5.patch;patch=1 \ + ${RPSRC}/pxa27x_extraregs-r0.patch;patch=1 \ + ${RPSRC}/spitzbase-r0.patch;patch=1 \ + ${RPSRC}/spitzkbd-r0.patch;patch=1 \ + ${RPSRC}/spitzssp-r0.patch;patch=1 \ + ${RPSRC}/spitzlcd-r0.patch;patch=1 \ file://add-oz-release-string.patch;patch=1 \ file://add-elpp-stuff.patch;patch=1 \ file://pxa-serial-hack.patch;patch=1 \ @@ -104,10 +109,8 @@ SRC_URI_append_tosa = "${DOSRC}/nand-readid-r1.patch;patch=1 \ ${DOSRC}/wm9712-ts-r2.patch;patch=1 \ ${DOSRC}/tosa-pxaac97-r1.patch;patch=1 \ ${DOSRC}/tosa-bluetooth-r0.patch;patch=1 " - -SRC_URI_append_spitz = "${BASRC}/spitz-cf-support-r0.patch;patch=1 \ - ${BASRC}/spitz-base-r2.patch;patch=1 " - +SRC_URI_append_spitz = "${RPSRC}/spitzcf-r0.patch;patch=1 \ + ${RPSRC}/spitzts-r0.patch;patch=1 " S = "${WORKDIR}/linux-2.6.12" @@ -133,7 +136,7 @@ export mem = ${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "32"} export rd = ${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "32"} CMDLINE_MEM_collie = "mem=${mem}M" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_MEM}" +CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_MEM} debug" ############################################################### # Enable or disable ELPP via local.conf - default is "no" diff --git a/packages/linux/nslu2-kernel.inc b/packages/linux/nslu2-kernel.inc index f5d7135c88..8946822574 100644 --- a/packages/linux/nslu2-kernel.inc +++ b/packages/linux/nslu2-kernel.inc @@ -221,8 +221,8 @@ CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_DEBUG} ${CMDLINE_CONSOLE}" # Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as # required. Notice that this has to be done for each separately built # module as well! -KERNEL_CC += "${TARGET_CC_ARCH} -mno-thumb-interwork" -# KERNEL_LD += +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" # By putting the added files in place in a separate task before # do_patch it becomes possible to patch these files. diff --git a/packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch b/packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch new file mode 100644 index 0000000000..b5ce101d68 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch @@ -0,0 +1,139 @@ +--- nslu2-io.c.old 2da1d3f5c0aa0804c5769588337077ddcb35c5e9 ++++ linux-2.6.12.2/arch/arm/mach-ixp4xx/nslu2-io.c e895da638b4aae16a11fafe52ae0b063645a9a12 +@@ -158,6 +158,8 @@ + #define LED_DISK2 3 + #define LED_ALL 4 + ++static int nslu2_shutdown_in_progress = 0; ++ + static unsigned long init_jiffy = 0; //jiffies at init time + static unsigned long rb_presses = 0; //number of reset button presses + static unsigned long ontime = 50; +@@ -503,40 +505,20 @@ + static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) + { + void *ret; +- +- wake_up(&n2pb_waitq); +- remove_proc_entry(PWR_OFF_STR, NULL); //no parent +- n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); +- ret = create_proc_entry(PWR_OFF_STR, 0, NULL); +- nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret)); +- +-// WARNING: This is RUDE...it unconditionally pulls the power plug. +-// Your data will be at risk...since this is just a test system +-// I am leaving it enabled...eventually userland needs to get the +-// message, do an orderly shutdown and use an ioctl or something in +-// /proc/powerdowm to actually have us pull the plug. +- +- machine_power_off(); +- ++ if (!nslu2_shutdown_in_progress++) { ++ wake_up(&n2pb_waitq); ++ remove_proc_entry(PWR_OFF_STR, NULL); //no parent ++ n2_buzz(N2_BEEP_PITCH_HIGH, N2_BEEP_DUR_SHORT); // Short, high-pitched "OK" ++ ret = create_proc_entry(PWR_OFF_STR, 0, NULL); ++ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed. Shutting down. cpe ret = %p\n", ret)); ++ kill_proc(1,SIGINT,1); // Signal init to shut down ++ } else { ++ n2_buzz(N2_BEEP_PITCH_LOW, N2_BEEP_DUR_MED); // Make a scary noise! ++ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed while already in shutdown")); // Whine! ++ } + return IRQ_HANDLED; + } + +-//================================================================================================== +-// +-//static void do_rb_timeout(unsigned long data) +-//{ +-// int i; +-// +-// for (i = 0; i < rb_presses; i++) +-// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); +-// return; +-//} +-// +-//================================================================================================== +-// does nothing -- waiting for userland to define +-// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so +-// we hang in a loop until the button is no longer pressed +- + struct testr { + int ctl; + long param; +@@ -544,72 +526,11 @@ + + static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) + { ++// This doesn't reset the NSLU2. It powers it off. Close enough, since reset is unreliable + +- static struct testr test[] = { +- { N2LM_ALL_OFF,0 }, +- { N2LM_ON,0 }, +- { N2LM_OFF,0 }, +- { N2LM_ON,1 }, +- { N2LM_ALL_OFF,1 }, +- { N2LM_ON,2 }, +- { N2LM_OFF,2 }, +- { N2LM_ON,3 }, +- { N2LM_OFF,3 }, +- { N2LM_BLINK,0 }, +- { N2LM_OFF,0 }, +- { N2LM_BLINK,1 }, +- { N2LM_OFF,1 }, +- { N2LM_BLINK,2 }, +- { N2LM_OFF,2 }, +- { N2LM_BLINK,3 }, +- { N2LM_OFF,3 }, +- { N2LM_ALL_OFF,0 }, +- { N2LM_ALT,1 }, +- { N2LM_OFF,1 }, +- { N2LM_ALL_ON,0 } +- }; +- +- nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long))); +- + wake_up(&n2rb_waitq); +- while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) +- ; //wait for button release +- +- if (rb_presses > 20) +- rb_presses = 0; +- tone = (rb_presses * 50) + 200; +- ontime = (rb_presses*10) + 100; +- offtime = 500 - (rb_presses*20); +- nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone)); +- rb_presses++; +- +- n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); +- n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); +-// if (rb_presses == 0) { +-// init_jiffy = jiffies; +-// init_timer (&n2rb_timer); +-// n2rb_timer.function = do_rb_timeout; +-// }; +-// +-// if (rb_presses == 8) +-// rb_presses = 0; +-// if (rb_presses & 1) +-// n2lm_ledon(test[rb_presses]); +-// else +-// n2lm_ledoff(test[rb_presses]); +-// +-// n2rb_timer.expires = (jiffies + RB_DELAY); +-// add_timer (&n2rb_timer); +-// if (rb_presses < 5) { +-// if (rb_presses > 0) +-// n2lm_ledoff(rb_presses); +-// n2lm_ledon(++rb_presses); +-// n2lm_timer_start(rb_presses); +-// }; +- +- nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies)); +- return IRQ_HANDLED; +- ++ machine_power_off(); ++ return IRQ_HANDLED; // So we don't get a nobody cared error :-P + } + + //================================================================================================== diff --git a/packages/linux/nslu2-kernel_2.6.12.2.bb b/packages/linux/nslu2-kernel_2.6.12.2.bb index 177fa8cb3f..a536e866e6 100644 --- a/packages/linux/nslu2-kernel_2.6.12.2.bb +++ b/packages/linux/nslu2-kernel_2.6.12.2.bb @@ -1,5 +1,5 @@ # Kernel for NSLU2 -PR = "r8" +PR = "r9" include nslu2-kernel.inc # N2K_EXTRA_PATCHES - list of patches to apply (can include @@ -23,4 +23,5 @@ N2K_PATCHES = "\ file://mtd-shutdown.patch;patch=1 \ file://missing-exports.patch;patch=1 \ file://timer.patch;patch=1 \ + file://nslu2-io_rpbutton.patch;patch=1 \ " |