From e6c20cf7d58302c299dabd106345081efd9c7421 Mon Sep 17 00:00:00 2001 From: Mirko Vogt Date: Sun, 5 Jul 2009 11:37:52 +0000 Subject: purge out config and patches for 2.6.29 as 2.6.30.1 is now default and stable git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16685 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/s3c24xx/config-2.6.29 | 537 - .../patches-2.6.29/000-downgrade-to-rc3.patch | 121447 ------------------ .../patches-2.6.29/001-merge-openmoko.patch | 96378 -------------- .../patches-2.6.29/020-rename-serialdevs.patch | 11 - ...050-dont-override-logo-with-early-printks.patch | 79 - .../patches-2.6.29/051-add-openwrt-logo.patch | 38452 ------ .../s3c24xx/patches-2.6.29/060-patch-ar6000.patch | 36 - 7 files changed, 256940 deletions(-) delete mode 100644 target/linux/s3c24xx/config-2.6.29 delete mode 100644 target/linux/s3c24xx/patches-2.6.29/000-downgrade-to-rc3.patch delete mode 100644 target/linux/s3c24xx/patches-2.6.29/001-merge-openmoko.patch delete mode 100644 target/linux/s3c24xx/patches-2.6.29/020-rename-serialdevs.patch delete mode 100644 target/linux/s3c24xx/patches-2.6.29/050-dont-override-logo-with-early-printks.patch delete mode 100644 target/linux/s3c24xx/patches-2.6.29/051-add-openwrt-logo.patch delete mode 100644 target/linux/s3c24xx/patches-2.6.29/060-patch-ar6000.patch (limited to 'target') diff --git a/target/linux/s3c24xx/config-2.6.29 b/target/linux/s3c24xx/config-2.6.29 deleted file mode 100644 index 98e3600ed4..0000000000 --- a/target/linux/s3c24xx/config-2.6.29 +++ /dev/null @@ -1,537 +0,0 @@ -# CONFIG_AEABI is not set -CONFIG_ALIGNMENT_TRAP=y -CONFIG_APM_EMULATION=y -CONFIG_APM_POWER=y -CONFIG_AR6000_WLAN=y -# CONFIG_AR6000_WLAN_DEBUG is not set -# CONFIG_AR6000_WLAN_RESET is not set -# CONFIG_ARCH_BAST is not set -CONFIG_ARCH_FLATMEM_HAS_HOLES=y -# CONFIG_ARCH_H1940 is not set -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_ARCH_S3C2410=y -CONFIG_ARCH_S3C2440=y -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -# CONFIG_ARCH_SMDK2410 is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARM=y -CONFIG_ARM_THUMB=y -# CONFIG_ARPD is not set -CONFIG_ASHMEM=y -CONFIG_ATAGS_PROC=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_BACKLIGHT_GTA01=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_BACKLIGHT_PWM is not set -CONFIG_BASE_SMALL=0 -CONFIG_BATTERY_BQ27000_HDQ=y -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_GTA01=y -CONFIG_BITREVERSE=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BRIDGE_NETFILTER=y -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_CHARGER_PCF50606=y -CONFIG_CHARGER_PCF50633=y -CONFIG_CMDLINE="unused -- bootloader passes ATAG list" -CONFIG_COMPAT_BRK=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CPU_32=y -CONFIG_CPU_32v4T=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_CACHE_V4WT=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_LLSERIAL_S3C2410=y -CONFIG_CPU_LLSERIAL_S3C2440=y -CONFIG_CPU_PABRT_NOIFAR=y -CONFIG_CPU_S3C2410=y -CONFIG_CPU_S3C2410_DMA=y -CONFIG_CPU_S3C2440=y -CONFIG_CPU_S3C2442=y -CONFIG_CPU_S3C244X=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CRC16=y -CONFIG_CRC_CCITT=y -CONFIG_CRC_T10DIF=y -# CONFIG_CRYPTO_AEAD is not set -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_ANSI_CPRNG=y -CONFIG_CRYPTO_ARC4=y -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_SHA1=y -# CONFIG_DCB is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_FS is not set -CONFIG_DEBUG_MEMORY_INIT=y -CONFIG_DEBUG_S3C_UART=2 -# CONFIG_DEBUG_USER is not set -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -CONFIG_DISPLAY_JBT6K74=y -# CONFIG_DISPLAY_L1K002 is not set -CONFIG_DISPLAY_SUPPORT=y -CONFIG_DMADEVICES=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_ELF_CORE=y -# CONFIG_EMBEDDED is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_FB=y -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -# CONFIG_FB_DDC is not set -# CONFIG_FB_FOREIGN_ENDIAN is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_S3C2410=y -# CONFIG_FB_S3C2410_DEBUG is not set -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_FOPS is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FIND_IRQ_BLOCKERS is not set -CONFIG_FIQ=y -# CONFIG_FIRMWARE_EDID is not set -CONFIG_FONTS=y -# CONFIG_FONT_10x18 is not set -CONFIG_FONT_6x11=y -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_8x16 is not set -# CONFIG_FONT_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FPE_FASTFPE is not set -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -CONFIG_FRAME_POINTER=y -CONFIG_FREEZER=y -# CONFIG_GENERIC_CLOCKEVENTS is not set -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -# CONFIG_GENERIC_TIME is not set -CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HAMRADIO is not set -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAVE_AOUT=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_PWM=y -CONFIG_HDQ_GPIO_BITBANG=y -CONFIG_HID=y -CONFIG_HID_A4TECH=y -CONFIG_HID_APPLE=y -CONFIG_HID_BELKIN=y -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -CONFIG_HID_COMPAT=y -CONFIG_HID_CYPRESS=y -CONFIG_HID_EZKEY=y -CONFIG_HID_GYRATION=y -CONFIG_HID_LOGITECH=y -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -CONFIG_HID_NTRIG=y -CONFIG_HID_PANTHERLORD=y -CONFIG_HID_PETALYNX=y -CONFIG_HID_PID=y -CONFIG_HID_SAMSUNG=y -CONFIG_HID_SONY=y -CONFIG_HID_SUNPLUS=y -CONFIG_HID_SUPPORT=y -CONFIG_HID_TOPSEED=y -CONFIG_HW_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_HZ=200 -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_S3C2410=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_INPUT=y -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_GPIO_BUTTONS is not set -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_LIS302DL=y -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 -CONFIG_INPUT_PCF50606_PMU=y -CONFIG_INPUT_PCF50633_PMU=y -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_IP_PNP=y -# CONFIG_IP_PNP_BOOTP is not set -# CONFIG_IP_PNP_DHCP is not set -# CONFIG_IP_PNP_RARP is not set -# CONFIG_IP_ROUTE_MULTIPATH is not set -# CONFIG_IP_ROUTE_VERBOSE is not set -# CONFIG_ISDN is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_KALLSYMS=y -CONFIG_KEXEC=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_NEO1973=y -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -CONFIG_LCD_CLASS_DEVICE=y -# CONFIG_LCD_ILI9320 is not set -CONFIG_LCD_LTV350QV=y -# CONFIG_LCD_PLATFORM is not set -# CONFIG_LCD_TDO24M is not set -# CONFIG_LCD_VGG2432A4 is not set -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_LP5521 is not set -CONFIG_LEDS_NEO1973_GTA02=y -CONFIG_LEDS_NEO1973_VIBRATOR=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=y -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -CONFIG_LOCK_KERNEL=y -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_CLUT224 is not set -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_OPENWRT_CLUT224=y -CONFIG_LOG_BUF_SHIFT=18 -# CONFIG_MACH_AML_M5900 is not set -# CONFIG_MACH_ANUBIS is not set -# CONFIG_MACH_AT2440EVB is not set -# CONFIG_MACH_JIVE is not set -# CONFIG_MACH_N30 is not set -CONFIG_MACH_NEO1973=y -CONFIG_MACH_NEO1973_GTA01=y -CONFIG_MACH_NEO1973_GTA02=y -# CONFIG_MACH_NEXCODER_2440 is not set -# CONFIG_MACH_OSIRIS is not set -# CONFIG_MACH_OTOM is not set -# CONFIG_MACH_QT2410 is not set -# CONFIG_MACH_RX3715 is not set -CONFIG_MACH_SMDK=y -# CONFIG_MACH_SMDK2412 is not set -# CONFIG_MACH_SMDK2413 is not set -# CONFIG_MACH_SMDK2443 is not set -# CONFIG_MACH_TCT_HAMMER is not set -# CONFIG_MACH_VR1000 is not set -# CONFIG_MACH_VSTMS is not set -CONFIG_MFD_GLAMO=y -CONFIG_MFD_GLAMO_FB=y -# CONFIG_MFD_GLAMO_FB_XGLAMO_WORKAROUND is not set -CONFIG_MFD_GLAMO_MCI=y -CONFIG_MFD_GLAMO_SPI_FB=y -CONFIG_MFD_GLAMO_SPI_GPIO=y -CONFIG_MFD_PCF50606=y -CONFIG_MFD_PCF50633=y -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MISC_DEVICES is not set -CONFIG_MISC_FILESYSTEMS=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_BOUNCE=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_S3C=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_S3C=y -# CONFIG_MMC_SPI is not set -CONFIG_MMC_UNSAFE_RESUME=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_GPIO is not set -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -CONFIG_MTD_ABSENT=y -# CONFIG_MTD_CFI_AMDSTD is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_CONCAT=y -CONFIG_MTD_NAND=y -# CONFIG_MTD_NAND_GPIO is not set -CONFIG_MTD_NAND_S3C2410=y -# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set -# CONFIG_MTD_NAND_S3C2410_DEBUG is not set -CONFIG_MTD_NAND_S3C2410_HWECC=y -CONFIG_MTD_NAND_VERIFY_WRITE=y -CONFIG_MTD_PHYSMAP=y -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_QINFO_PROBE is not set -CONFIG_MTD_ROM=y -CONFIG_NAMESPACES=y -CONFIG_NEO1973_GTA02_2440=y -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETWORK_FILESYSTEMS is not set -# CONFIG_NET_CLS_ACT is not set -# CONFIG_NET_ETHERNET is not set -# CONFIG_NET_NS is not set -# CONFIG_NET_SCH_DRR is not set -CONFIG_NF_CONNTRACK=y -CONFIG_NF_CONNTRACK_IPV4=y -# CONFIG_NF_CONNTRACK_MARK is not set -# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set -CONFIG_NF_DEFRAG_IPV4=y -CONFIG_NO_IOPORT=y -CONFIG_NR_TTY_DEVICES=6 -# CONFIG_NVRAM is not set -# CONFIG_OUTER_CACHE is not set -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCA9632=y -CONFIG_PCF50606_ADC=y -CONFIG_PCF50606_GPO=y -CONFIG_PCF50606_WATCHDOG=y -CONFIG_PCF50633_ADC=y -CONFIG_PCF50633_GPIO=y -# CONFIG_PCI_SYSCALL is not set -CONFIG_PDA_POWER=y -CONFIG_PLAT_S3C=y -CONFIG_PLAT_S3C24XX=y -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_PREEMPT=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_DEBUG=y -CONFIG_REGULATOR_PCF50606=y -CONFIG_REGULATOR_PCF50633=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_DRV_CMOS is not set -CONFIG_RTC_DRV_PCF50606=y -CONFIG_RTC_DRV_PCF50633=y -CONFIG_RTC_DRV_S3C=y -CONFIG_S3C2410_CLOCK=y -CONFIG_S3C2410_DMA=y -# CONFIG_S3C2410_DMA_DEBUG is not set -CONFIG_S3C2410_GPIO=y -CONFIG_S3C2410_PM=y -# CONFIG_S3C2410_PM_CHECK is not set -# CONFIG_S3C2410_PM_DEBUG is not set -CONFIG_S3C2410_WATCHDOG=y -CONFIG_S3C2440_DMA=y -# CONFIG_S3C24XX_ADC is not set -CONFIG_S3C24XX_GPIO_EXTRA=0 -CONFIG_S3C24XX_PWM=y -# CONFIG_S3C_BOOT_ERROR_RESET is not set -CONFIG_S3C_BOOT_UART_FORCE_FIFO=y -# CONFIG_S3C_BOOT_WATCHDOG is not set -CONFIG_S3C_DEV_USB_HOST=y -CONFIG_S3C_DMA=y -CONFIG_S3C_GPIO_SPACE=0 -CONFIG_S3C_GPIO_TRACK=y -CONFIG_S3C_LOWLEVEL_UART_PORT=2 -CONFIG_S3C_PWM=y -CONFIG_SCSI=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SDIO_UART is not set -# CONFIG_SENSORS_PCF50606 is not set -# CONFIG_SERIAL_8250 is not set -CONFIG_SERIAL_S3C2410=y -CONFIG_SERIAL_S3C2440=y -CONFIG_SERIAL_SAMSUNG=y -CONFIG_SERIAL_SAMSUNG_CONSOLE=y -CONFIG_SERIAL_SAMSUNG_UARTS=3 -CONFIG_SERIO=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_SERPORT is not set -CONFIG_SMDK2440_CPU2440=y -CONFIG_SMDK2440_CPU2442=y -CONFIG_SND=m -# CONFIG_SND_ARM is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_PCM=m -CONFIG_SND_S3C24XX_SOC=m -CONFIG_SND_S3C24XX_SOC_I2S=m -# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set -CONFIG_SND_S3C24XX_SOC_NEO1973_GTA02_WM8753=m -# CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753 is not set -# CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X is not set -# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8731 is not set -CONFIG_SND_SOC=m -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_TIMER=m -# CONFIG_SND_USB is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -CONFIG_SOUND=m -# CONFIG_SOUND_OSS_CORE is not set -CONFIG_SPI=y -CONFIG_SPI_BITBANG=y -# CONFIG_SPI_GPIO is not set -CONFIG_SPI_MASTER=y -CONFIG_SPI_S3C24XX=y -CONFIG_SPI_S3C24XX_GPIO=y -# CONFIG_SPI_SPIDEV is not set -CONFIG_SPLIT_PTLOCK_CPUS=4096 -# CONFIG_SQUASHFS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_TCP_MD5SIG=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_ELO is not set -CONFIG_TOUCHSCREEN_FILTER=y -CONFIG_TOUCHSCREEN_FILTER_GROUP=y -CONFIG_TOUCHSCREEN_FILTER_LINEAR=y -CONFIG_TOUCHSCREEN_FILTER_MEAN=y -CONFIG_TOUCHSCREEN_FILTER_MEDIAN=y -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_PCAP7200 is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -CONFIG_TOUCHSCREEN_S3C2410=y -# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -CONFIG_UID16=y -CONFIG_UIO=y -CONFIG_UIO_PDRV=y -# CONFIG_UIO_PDRV_GENIRQ is not set -# CONFIG_UIO_SERCOS3 is not set -# CONFIG_UIO_SMX is not set -CONFIG_UNEVICTABLE_LRU=y -CONFIG_USB=y -CONFIG_USB_ACM=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -# CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_DEVICEFS is not set -CONFIG_USB_ETH=y -CONFIG_USB_ETH_RNDIS=y -# CONFIG_USB_FILE_STORAGE is not set -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_CI13XXX is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_FSL_QE is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_IMX is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_MUSB_HDRC is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_PXA25X is not set -# CONFIG_USB_GADGET_PXA27X is not set -CONFIG_USB_GADGET_S3C2410=y -# CONFIG_USB_GADGET_S3C_OTGD_HS is not set -CONFIG_USB_GADGET_SELECTED=y -CONFIG_USB_GADGET_VBUS_DRAW=500 -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_G_SERIAL is not set -CONFIG_USB_HID=y -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_S3C2410=y -# CONFIG_USB_S3C2410_DEBUG is not set -CONFIG_USB_SERIAL=y -CONFIG_USB_SERIAL_CONSOLE=y -CONFIG_USB_SERIAL_OPTION=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_ZERO is not set -# CONFIG_USER_NS is not set -CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_VGA_CONSOLE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=y -# CONFIG_VLAN_8021Q is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_WIRELESS is not set -# CONFIG_WLAN_80211 is not set -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/s3c24xx/patches-2.6.29/000-downgrade-to-rc3.patch b/target/linux/s3c24xx/patches-2.6.29/000-downgrade-to-rc3.patch deleted file mode 100644 index 4ad0fe6c1b..0000000000 --- a/target/linux/s3c24xx/patches-2.6.29/000-downgrade-to-rc3.patch +++ /dev/null @@ -1,121447 +0,0 @@ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/include/asm/bug.h linux-2.6.29-rc3.owrt/arch/alpha/include/asm/bug.h ---- linux-2.6.29.owrt/arch/alpha/include/asm/bug.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/include/asm/bug.h 2009-05-10 23:48:27.000000000 +0200 -@@ -8,12 +8,17 @@ - - /* ??? Would be nice to use .gprel32 here, but we can't be sure that the - function loaded the GP, so this could fail in modules. */ --#define BUG() do { \ -- __asm__ __volatile__( \ -- "call_pal %0 # bugchk\n\t" \ -- ".long %1\n\t.8byte %2" \ -- : : "i"(PAL_bugchk), "i"(__LINE__), "i"(__FILE__)); \ -- for ( ; ; ); } while (0) -+static inline void ATTRIB_NORET __BUG(const char *file, int line) -+{ -+ __asm__ __volatile__( -+ "call_pal %0 # bugchk\n\t" -+ ".long %1\n\t.8byte %2" -+ : : "i" (PAL_bugchk), "i"(line), "i"(file)); -+ for ( ; ; ) -+ ; -+} -+ -+#define BUG() __BUG(__FILE__, __LINE__) - - #define HAVE_ARCH_BUG - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/include/asm/dma-mapping.h linux-2.6.29-rc3.owrt/arch/alpha/include/asm/dma-mapping.h ---- linux-2.6.29.owrt/arch/alpha/include/asm/dma-mapping.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/include/asm/dma-mapping.h 2009-05-10 23:48:27.000000000 +0200 -@@ -29,8 +29,6 @@ - - #else /* no PCI - no IOMMU. */ - --#include /* for virt_to_phys() */ -- - struct scatterlist; - void *dma_alloc_coherent(struct device *dev, size_t size, - dma_addr_t *dma_handle, gfp_t gfp); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/Kconfig linux-2.6.29-rc3.owrt/arch/alpha/Kconfig ---- linux-2.6.29.owrt/arch/alpha/Kconfig 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/Kconfig 2009-05-10 23:48:27.000000000 +0200 -@@ -8,7 +8,6 @@ - select HAVE_AOUT - select HAVE_IDE - select HAVE_OPROFILE -- select HAVE_SYSCALL_WRAPPERS - help - The Alpha is a 64-bit general-purpose processor designed and - marketed by the Digital Equipment Corporation of blessed memory, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/entry.S linux-2.6.29-rc3.owrt/arch/alpha/kernel/entry.S ---- linux-2.6.29.owrt/arch/alpha/kernel/entry.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/entry.S 2009-05-10 23:48:27.000000000 +0200 -@@ -933,7 +933,7 @@ - osf_sigprocmask: - .prologue 0 - mov $sp, $18 -- jmp $31, sys_osf_sigprocmask -+ jmp $31, do_osf_sigprocmask - .end osf_sigprocmask - - .align 4 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/osf_sys.c linux-2.6.29-rc3.owrt/arch/alpha/kernel/osf_sys.c ---- linux-2.6.29.owrt/arch/alpha/kernel/osf_sys.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/osf_sys.c 2009-05-10 23:48:27.000000000 +0200 -@@ -54,7 +54,8 @@ - * identical to OSF as we don't return 0 on success, but doing otherwise - * would require changes to libc. Hopefully this is good enough. - */ --SYSCALL_DEFINE1(osf_brk, unsigned long, brk) -+asmlinkage unsigned long -+osf_brk(unsigned long brk) - { - unsigned long retval = sys_brk(brk); - if (brk && brk != retval) -@@ -65,9 +66,9 @@ - /* - * This is pure guess-work.. - */ --SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start, -- unsigned long, text_len, unsigned long, bss_start, -- unsigned long, bss_len) -+asmlinkage int -+osf_set_program_attributes(unsigned long text_start, unsigned long text_len, -+ unsigned long bss_start, unsigned long bss_len) - { - struct mm_struct *mm; - -@@ -145,9 +146,9 @@ - return -EFAULT; - } - --SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd, -- struct osf_dirent __user *, dirent, unsigned int, count, -- long __user *, basep) -+asmlinkage int -+osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, -+ unsigned int count, long __user *basep) - { - int error; - struct file *file; -@@ -176,9 +177,9 @@ - - #undef NAME_OFFSET - --SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len, -- unsigned long, prot, unsigned long, flags, unsigned long, fd, -- unsigned long, off) -+asmlinkage unsigned long -+osf_mmap(unsigned long addr, unsigned long len, unsigned long prot, -+ unsigned long flags, unsigned long fd, unsigned long off) - { - struct file *file = NULL; - unsigned long ret = -EBADF; -@@ -253,8 +254,8 @@ - return error; - } - --SYSCALL_DEFINE3(osf_statfs, char __user *, pathname, -- struct osf_statfs __user *, buffer, unsigned long, bufsiz) -+asmlinkage int -+osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned long bufsiz) - { - struct path path; - int retval; -@@ -267,8 +268,8 @@ - return retval; - } - --SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd, -- struct osf_statfs __user *, buffer, unsigned long, bufsiz) -+asmlinkage int -+osf_fstatfs(unsigned long fd, struct osf_statfs __user *buffer, unsigned long bufsiz) - { - struct file *file; - int retval; -@@ -367,8 +368,8 @@ - return do_mount("", dirname, "proc", flags, NULL); - } - --SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path, -- int, flag, void __user *, data) -+asmlinkage int -+osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data) - { - int retval = -EINVAL; - char *name; -@@ -398,7 +399,8 @@ - return retval; - } - --SYSCALL_DEFINE1(osf_utsname, char __user *, name) -+asmlinkage int -+osf_utsname(char __user *name) - { - int error; - -@@ -421,12 +423,14 @@ - return error; - } - --SYSCALL_DEFINE0(getpagesize) -+asmlinkage unsigned long -+sys_getpagesize(void) - { - return PAGE_SIZE; - } - --SYSCALL_DEFINE0(getdtablesize) -+asmlinkage unsigned long -+sys_getdtablesize(void) - { - return sysctl_nr_open; - } -@@ -434,7 +438,8 @@ - /* - * For compatibility with OSF/1 only. Use utsname(2) instead. - */ --SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen) -+asmlinkage int -+osf_getdomainname(char __user *name, int namelen) - { - unsigned len; - int i; -@@ -522,8 +527,8 @@ - PL_DEL = 5, PL_FDEL = 6 - }; - --SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code, -- union pl_args __user *, args) -+asmlinkage long -+osf_proplist_syscall(enum pl_code code, union pl_args __user *args) - { - long error; - int __user *min_buf_size_ptr; -@@ -562,8 +567,8 @@ - return error; - } - --SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss, -- struct sigstack __user *, uoss) -+asmlinkage int -+osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss) - { - unsigned long usp = rdusp(); - unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size; -@@ -603,7 +608,8 @@ - return error; - } - --SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count) -+asmlinkage long -+osf_sysinfo(int command, char __user *buf, long count) - { - char *sysinfo_table[] = { - utsname()->sysname, -@@ -641,8 +647,9 @@ - return err; - } - --SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer, -- unsigned long, nbytes, int __user *, start, void __user *, arg) -+asmlinkage unsigned long -+osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, -+ int __user *start, void __user *arg) - { - unsigned long w; - struct percpu_struct *cpu; -@@ -698,8 +705,9 @@ - return -EOPNOTSUPP; - } - --SYSCALL_DEFINE5(osf_setsysinfo, unsigned long, op, void __user *, buffer, -- unsigned long, nbytes, int __user *, start, void __user *, arg) -+asmlinkage unsigned long -+osf_setsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, -+ int __user *start, void __user *arg) - { - switch (op) { - case SSI_IEEE_FP_CONTROL: { -@@ -872,8 +880,8 @@ - value->tv_sec = jiffies / HZ; - } - --SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv, -- struct timezone __user *, tz) -+asmlinkage int -+osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz) - { - if (tv) { - struct timeval ktv; -@@ -888,8 +896,8 @@ - return 0; - } - --SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv, -- struct timezone __user *, tz) -+asmlinkage int -+osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz) - { - struct timespec kts; - struct timezone ktz; -@@ -908,7 +916,8 @@ - return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); - } - --SYSCALL_DEFINE2(osf_getitimer, int, which, struct itimerval32 __user *, it) -+asmlinkage int -+osf_getitimer(int which, struct itimerval32 __user *it) - { - struct itimerval kit; - int error; -@@ -920,8 +929,8 @@ - return error; - } - --SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in, -- struct itimerval32 __user *, out) -+asmlinkage int -+osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __user *out) - { - struct itimerval kin, kout; - int error; -@@ -943,8 +952,8 @@ - - } - --SYSCALL_DEFINE2(osf_utimes, char __user *, filename, -- struct timeval32 __user *, tvs) -+asmlinkage int -+osf_utimes(char __user *filename, struct timeval32 __user *tvs) - { - struct timespec tv[2]; - -@@ -970,8 +979,9 @@ - #define MAX_SELECT_SECONDS \ - ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) - --SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp, -- fd_set __user *, exp, struct timeval32 __user *, tvp) -+asmlinkage int -+osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, -+ struct timeval32 __user *tvp) - { - struct timespec end_time, *to = NULL; - if (tvp) { -@@ -1016,7 +1026,8 @@ - long ru_nivcsw; /* involuntary " */ - }; - --SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru) -+asmlinkage int -+osf_getrusage(int who, struct rusage32 __user *ru) - { - struct rusage32 r; - -@@ -1042,8 +1053,9 @@ - return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; - } - --SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options, -- struct rusage32 __user *, ur) -+asmlinkage long -+osf_wait4(pid_t pid, int __user *ustatus, int options, -+ struct rusage32 __user *ur) - { - struct rusage r; - long ret, err; -@@ -1089,8 +1101,8 @@ - * seems to be a timeval pointer, and I suspect the second - * one is the time remaining.. Ho humm.. No documentation. - */ --SYSCALL_DEFINE2(osf_usleep_thread, struct timeval32 __user *, sleep, -- struct timeval32 __user *, remain) -+asmlinkage int -+osf_usleep_thread(struct timeval32 __user *sleep, struct timeval32 __user *remain) - { - struct timeval tmp; - unsigned long ticks; -@@ -1143,7 +1155,8 @@ - int :32; int :32; int :32; int :32; - }; - --SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p) -+asmlinkage int -+sys_old_adjtimex(struct timex32 __user *txc_p) - { - struct timex txc; - int ret; -@@ -1254,8 +1267,8 @@ - return 0; - } - --SYSCALL_DEFINE3(osf_readv, unsigned long, fd, -- const struct iovec __user *, vector, unsigned long, count) -+asmlinkage ssize_t -+osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long count) - { - if (unlikely(personality(current->personality) == PER_OSF4)) - if (osf_fix_iov_len(vector, count)) -@@ -1263,8 +1276,8 @@ - return sys_readv(fd, vector, count); - } - --SYSCALL_DEFINE3(osf_writev, unsigned long, fd, -- const struct iovec __user *, vector, unsigned long, count) -+asmlinkage ssize_t -+osf_writev(unsigned long fd, const struct iovec __user * vector, unsigned long count) - { - if (unlikely(personality(current->personality) == PER_OSF4)) - if (osf_fix_iov_len(vector, count)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/pci-noop.c linux-2.6.29-rc3.owrt/arch/alpha/kernel/pci-noop.c ---- linux-2.6.29.owrt/arch/alpha/kernel/pci-noop.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/pci-noop.c 2009-05-10 23:48:27.000000000 +0200 -@@ -109,8 +109,7 @@ - /* Stubs for the routines in pci_iommu.c: */ - - void * --__pci_alloc_consistent(struct pci_dev *pdev, size_t size, -- dma_addr_t *dma_addrp, gfp_t gfp) -+pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp) - { - return NULL; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/process.c linux-2.6.29-rc3.owrt/arch/alpha/kernel/process.c ---- linux-2.6.29.owrt/arch/alpha/kernel/process.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/process.c 2009-05-10 23:48:27.000000000 +0200 -@@ -93,8 +93,8 @@ - if (cpuid != boot_cpuid) { - flags |= 0x00040000UL; /* "remain halted" */ - *pflags = flags; -- set_cpu_present(cpuid, false); -- set_cpu_possible(cpuid, false); -+ cpu_clear(cpuid, cpu_present_map); -+ cpu_clear(cpuid, cpu_possible_map); - halt(); - } - #endif -@@ -120,8 +120,8 @@ - - #ifdef CONFIG_SMP - /* Wait for the secondaries to halt. */ -- set_cpu_present(boot_cpuid, false); -- set_cpu_possible(boot_cpuid, false); -+ cpu_clear(boot_cpuid, cpu_present_map); -+ cpu_clear(boot_cpuid, cpu_possible_map); - while (cpus_weight(cpu_present_map)) - barrier(); - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/signal.c linux-2.6.29-rc3.owrt/arch/alpha/kernel/signal.c ---- linux-2.6.29.owrt/arch/alpha/kernel/signal.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/signal.c 2009-05-10 23:48:27.000000000 +0200 -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -52,8 +51,8 @@ - * Note that we don't need to acquire the kernel lock for SMP - * operation, as all of this is local to this thread. - */ --SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask, -- struct pt_regs *, regs) -+asmlinkage unsigned long -+do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs) - { - unsigned long oldmask = -EINVAL; - -@@ -82,9 +81,9 @@ - return oldmask; - } - --SYSCALL_DEFINE3(osf_sigaction, int, sig, -- const struct osf_sigaction __user *, act, -- struct osf_sigaction __user *, oact) -+asmlinkage int -+osf_sigaction(int sig, const struct osf_sigaction __user *act, -+ struct osf_sigaction __user *oact) - { - struct k_sigaction new_ka, old_ka; - int ret; -@@ -113,9 +112,10 @@ - return ret; - } - --SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act, -- struct sigaction __user *, oact, -- size_t, sigsetsize, void __user *, restorer) -+asmlinkage long -+sys_rt_sigaction(int sig, const struct sigaction __user *act, -+ struct sigaction __user *oact, -+ size_t sigsetsize, void __user *restorer) - { - struct k_sigaction new_ka, old_ka; - int ret; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/smp.c linux-2.6.29-rc3.owrt/arch/alpha/kernel/smp.c ---- linux-2.6.29.owrt/arch/alpha/kernel/smp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/smp.c 2009-05-10 23:48:27.000000000 +0200 -@@ -121,11 +121,10 @@ - { - int cpuid = hard_smp_processor_id(); - -- if (cpu_online(cpuid)) { -+ if (cpu_test_and_set(cpuid, cpu_online_map)) { - printk("??, cpu 0x%x already present??\n", cpuid); - BUG(); - } -- set_cpu_online(cpuid, true); - - /* Turn on machine checks. */ - wrmces(7); -@@ -436,8 +435,8 @@ - ((char *)cpubase + i*hwrpb->processor_size); - if ((cpu->flags & 0x1cc) == 0x1cc) { - smp_num_probed++; -- set_cpu_possible(i, true); -- set_cpu_present(i, true); -+ cpu_set(i, cpu_possible_map); -+ cpu_set(i, cpu_present_map); - cpu->pal_revision = boot_cpu_palrev; - } - -@@ -470,8 +469,8 @@ - - /* Nothing to do on a UP box, or when told not to. */ - if (smp_num_probed == 1 || max_cpus == 0) { -- init_cpu_possible(cpumask_of(boot_cpuid)); -- init_cpu_present(cpumask_of(boot_cpuid)); -+ cpu_possible_map = cpumask_of_cpu(boot_cpuid); -+ cpu_present_map = cpumask_of_cpu(boot_cpuid); - printk(KERN_INFO "SMP mode deactivated.\n"); - return; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/alpha/kernel/systbls.S linux-2.6.29-rc3.owrt/arch/alpha/kernel/systbls.S ---- linux-2.6.29.owrt/arch/alpha/kernel/systbls.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/alpha/kernel/systbls.S 2009-05-10 23:48:27.000000000 +0200 -@@ -17,7 +17,7 @@ - .quad sys_write - .quad alpha_ni_syscall /* 5 */ - .quad sys_close -- .quad sys_osf_wait4 -+ .quad osf_wait4 - .quad alpha_ni_syscall - .quad sys_link - .quad sys_unlink /* 10 */ -@@ -27,11 +27,11 @@ - .quad sys_mknod - .quad sys_chmod /* 15 */ - .quad sys_chown -- .quad sys_osf_brk -+ .quad osf_brk - .quad alpha_ni_syscall - .quad sys_lseek - .quad sys_getxpid /* 20 */ -- .quad sys_osf_mount -+ .quad osf_mount - .quad sys_umount - .quad sys_setuid - .quad sys_getxuid -@@ -53,7 +53,7 @@ - .quad alpha_ni_syscall /* 40 */ - .quad sys_dup - .quad sys_alpha_pipe -- .quad sys_osf_set_program_attributes -+ .quad osf_set_program_attributes - .quad alpha_ni_syscall - .quad sys_open /* 45 */ - .quad alpha_ni_syscall -@@ -81,7 +81,7 @@ - .quad sys_newlstat - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 70 */ -- .quad sys_osf_mmap -+ .quad osf_mmap - .quad alpha_ni_syscall - .quad sys_munmap - .quad sys_mprotect -@@ -94,17 +94,17 @@ - .quad sys_setgroups /* 80 */ - .quad alpha_ni_syscall - .quad sys_setpgid -- .quad sys_osf_setitimer -+ .quad osf_setitimer - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 85 */ -- .quad sys_osf_getitimer -+ .quad osf_getitimer - .quad sys_gethostname - .quad sys_sethostname - .quad sys_getdtablesize - .quad sys_dup2 /* 90 */ - .quad sys_newfstat - .quad sys_fcntl -- .quad sys_osf_select -+ .quad osf_select - .quad sys_poll - .quad sys_fsync /* 95 */ - .quad sys_setpriority -@@ -123,22 +123,22 @@ - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 110 */ - .quad sys_sigsuspend -- .quad sys_osf_sigstack -+ .quad osf_sigstack - .quad sys_recvmsg - .quad sys_sendmsg - .quad alpha_ni_syscall /* 115 */ -- .quad sys_osf_gettimeofday -- .quad sys_osf_getrusage -+ .quad osf_gettimeofday -+ .quad osf_getrusage - .quad sys_getsockopt - .quad alpha_ni_syscall - #ifdef CONFIG_OSF4_COMPAT -- .quad sys_osf_readv /* 120 */ -- .quad sys_osf_writev -+ .quad osf_readv /* 120 */ -+ .quad osf_writev - #else - .quad sys_readv /* 120 */ - .quad sys_writev - #endif -- .quad sys_osf_settimeofday -+ .quad osf_settimeofday - .quad sys_fchown - .quad sys_fchmod - .quad sys_recvfrom /* 125 */ -@@ -154,7 +154,7 @@ - .quad sys_socketpair /* 135 */ - .quad sys_mkdir - .quad sys_rmdir -- .quad sys_osf_utimes -+ .quad osf_utimes - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 140 */ - .quad sys_getpeername -@@ -172,16 +172,16 @@ - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 155 */ -- .quad sys_osf_sigaction -+ .quad osf_sigaction - .quad alpha_ni_syscall - .quad alpha_ni_syscall -- .quad sys_osf_getdirentries -- .quad sys_osf_statfs /* 160 */ -- .quad sys_osf_fstatfs -+ .quad osf_getdirentries -+ .quad osf_statfs /* 160 */ -+ .quad osf_fstatfs - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall -- .quad sys_osf_getdomainname /* 165 */ -+ .quad osf_getdomainname /* 165 */ - .quad sys_setdomainname - .quad alpha_ni_syscall - .quad alpha_ni_syscall -@@ -224,7 +224,7 @@ - .quad sys_semctl - .quad sys_semget /* 205 */ - .quad sys_semop -- .quad sys_osf_utsname -+ .quad osf_utsname - .quad sys_lchown - .quad sys_shmat - .quad sys_shmctl /* 210 */ -@@ -258,23 +258,23 @@ - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 240 */ -- .quad sys_osf_sysinfo -+ .quad osf_sysinfo - .quad alpha_ni_syscall - .quad alpha_ni_syscall -- .quad sys_osf_proplist_syscall -+ .quad osf_proplist_syscall - .quad alpha_ni_syscall /* 245 */ - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 250 */ -- .quad sys_osf_usleep_thread -+ .quad osf_usleep_thread - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad sys_sysfs - .quad alpha_ni_syscall /* 255 */ -- .quad sys_osf_getsysinfo -- .quad sys_osf_setsysinfo -+ .quad osf_getsysinfo -+ .quad osf_setsysinfo - .quad alpha_ni_syscall - .quad alpha_ni_syscall - .quad alpha_ni_syscall /* 260 */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/elf.c linux-2.6.29-rc3.owrt/arch/arm/kernel/elf.c ---- linux-2.6.29.owrt/arch/arm/kernel/elf.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/elf.c 2009-05-10 23:48:27.000000000 +0200 -@@ -74,9 +74,9 @@ - */ - int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) - { -- if (executable_stack != EXSTACK_DISABLE_X) -+ if (executable_stack != EXSTACK_ENABLE_X) - return 1; -- if (cpu_architecture() < CPU_ARCH_ARMv6) -+ if (cpu_architecture() <= CPU_ARCH_ARMv6) - return 1; - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/entry-armv.S linux-2.6.29-rc3.owrt/arch/arm/kernel/entry-armv.S ---- linux-2.6.29.owrt/arch/arm/kernel/entry-armv.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/entry-armv.S 2009-05-10 23:48:27.000000000 +0200 -@@ -650,7 +650,6 @@ - no_fp: mov pc, lr - - __und_usr_unknown: -- enable_irq - mov r0, sp - adr lr, ret_from_exception - b do_undefinstr -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/entry-common.S linux-2.6.29-rc3.owrt/arch/arm/kernel/entry-common.S ---- linux-2.6.29.owrt/arch/arm/kernel/entry-common.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/entry-common.S 2009-05-10 23:48:27.000000000 +0200 -@@ -111,7 +111,6 @@ - .globl mcount_call - mcount_call: - bl ftrace_stub -- ldr lr, [fp, #-4] @ restore lr - ldmia sp!, {r0-r3, pc} - - ENTRY(ftrace_caller) -@@ -123,7 +122,6 @@ - .globl ftrace_call - ftrace_call: - bl ftrace_stub -- ldr lr, [fp, #-4] @ restore lr - ldmia sp!, {r0-r3, pc} - - #else -@@ -135,16 +133,14 @@ - adr r0, ftrace_stub - cmp r0, r2 - bne trace -- ldr lr, [fp, #-4] @ restore lr - ldmia sp!, {r0-r3, pc} - - trace: -- ldr r1, [fp, #-4] @ lr of instrumented routine -+ ldr r1, [fp, #-4] - mov r0, lr - sub r0, r0, #MCOUNT_INSN_SIZE - mov lr, pc - mov pc, r2 -- mov lr, r1 @ restore lr - ldmia sp!, {r0-r3, pc} - - #endif /* CONFIG_DYNAMIC_FTRACE */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/fiq.c linux-2.6.29-rc3.owrt/arch/arm/kernel/fiq.c ---- linux-2.6.29.owrt/arch/arm/kernel/fiq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/fiq.c 2009-05-10 23:48:27.000000000 +0200 -@@ -88,7 +88,7 @@ - * disable irqs for the duration. Note - these functions are almost - * entirely coded in assembly. - */ --void __naked set_fiq_regs(struct pt_regs *regs) -+void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) - { - register unsigned long tmp; - asm volatile ( -@@ -106,7 +106,7 @@ - : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); - } - --void __naked get_fiq_regs(struct pt_regs *regs) -+void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) - { - register unsigned long tmp; - asm volatile ( -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/irq.c linux-2.6.29-rc3.owrt/arch/arm/kernel/irq.c ---- linux-2.6.29.owrt/arch/arm/kernel/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/irq.c 2009-05-10 23:48:27.000000000 +0200 -@@ -101,7 +101,7 @@ - /* Handle bad interrupts */ - static struct irq_desc bad_irq_desc = { - .handle_irq = handle_bad_irq, -- .lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock), -+ .lock = SPIN_LOCK_UNLOCKED - }; - - /* -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/machine_kexec.c linux-2.6.29-rc3.owrt/arch/arm/kernel/machine_kexec.c ---- linux-2.6.29.owrt/arch/arm/kernel/machine_kexec.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/machine_kexec.c 2009-05-10 23:48:27.000000000 +0200 -@@ -13,8 +13,8 @@ - #include - #include - --extern const unsigned char relocate_new_kernel[]; --extern const unsigned int relocate_new_kernel_size; -+const extern unsigned char relocate_new_kernel[]; -+const extern unsigned int relocate_new_kernel_size; - - extern void setup_mm_for_reboot(char mode); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/kernel/setup.c linux-2.6.29-rc3.owrt/arch/arm/kernel/setup.c ---- linux-2.6.29.owrt/arch/arm/kernel/setup.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/kernel/setup.c 2009-05-10 23:48:27.000000000 +0200 -@@ -233,13 +233,12 @@ - unsigned int cachetype = read_cpuid_cachetype(); - unsigned int arch = cpu_architecture(); - -- if (arch >= CPU_ARCH_ARMv6) { -- if ((cachetype & (7 << 29)) == 4 << 29) { -- /* ARMv7 register format */ -- cacheid = CACHEID_VIPT_NONALIASING; -- if ((cachetype & (3 << 14)) == 1 << 14) -- cacheid |= CACHEID_ASID_TAGGED; -- } else if (cachetype & (1 << 23)) -+ if (arch >= CPU_ARCH_ARMv7) { -+ cacheid = CACHEID_VIPT_NONALIASING; -+ if ((cachetype & (3 << 14)) == 1 << 14) -+ cacheid |= CACHEID_ASID_TAGGED; -+ } else if (arch >= CPU_ARCH_ARMv6) { -+ if (cachetype & (1 << 23)) - cacheid = CACHEID_VIPT_ALIASING; - else - cacheid = CACHEID_VIPT_NONALIASING; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/at91cap9_devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91cap9_devices.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/at91cap9_devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91cap9_devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -697,7 +697,7 @@ - * Watchdog - * -------------------------------------------------------------------- */ - --#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) -+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) - static struct platform_device at91cap9_wdt_device = { - .name = "at91_wdt", - .id = -1, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9260_devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9260_devices.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9260_devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9260_devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -643,7 +643,7 @@ - * Watchdog - * -------------------------------------------------------------------- */ - --#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) -+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) - static struct platform_device at91sam9260_wdt_device = { - .name = "at91_wdt", - .id = -1, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9261_devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9261_devices.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9261_devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9261_devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -621,7 +621,7 @@ - * Watchdog - * -------------------------------------------------------------------- */ - --#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) -+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) - static struct platform_device at91sam9261_wdt_device = { - .name = "at91_wdt", - .id = -1, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9263_devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9263_devices.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9263_devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9263_devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -347,111 +347,6 @@ - void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {} - #endif - --/* -------------------------------------------------------------------- -- * Compact Flash (PCMCIA or IDE) -- * -------------------------------------------------------------------- */ -- --#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \ -- defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE) -- --static struct at91_cf_data cf0_data; -- --static struct resource cf0_resources[] = { -- [0] = { -- .start = AT91_CHIPSELECT_4, -- .end = AT91_CHIPSELECT_4 + SZ_256M - 1, -- .flags = IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT, -- } --}; -- --static struct platform_device cf0_device = { -- .id = 0, -- .dev = { -- .platform_data = &cf0_data, -- }, -- .resource = cf0_resources, -- .num_resources = ARRAY_SIZE(cf0_resources), --}; -- --static struct at91_cf_data cf1_data; -- --static struct resource cf1_resources[] = { -- [0] = { -- .start = AT91_CHIPSELECT_5, -- .end = AT91_CHIPSELECT_5 + SZ_256M - 1, -- .flags = IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT, -- } --}; -- --static struct platform_device cf1_device = { -- .id = 1, -- .dev = { -- .platform_data = &cf1_data, -- }, -- .resource = cf1_resources, -- .num_resources = ARRAY_SIZE(cf1_resources), --}; -- --void __init at91_add_device_cf(struct at91_cf_data *data) --{ -- unsigned long ebi0_csa; -- struct platform_device *pdev; -- -- if (!data) -- return; -- -- /* -- * assign CS4 or CS5 to SMC with Compact Flash logic support, -- * we assume SMC timings are configured by board code, -- * except True IDE where timings are controlled by driver -- */ -- ebi0_csa = at91_sys_read(AT91_MATRIX_EBI0CSA); -- switch (data->chipselect) { -- case 4: -- at91_set_A_periph(AT91_PIN_PD6, 0); /* EBI0_NCS4/CFCS0 */ -- ebi0_csa |= AT91_MATRIX_EBI0_CS4A_SMC_CF1; -- cf0_data = *data; -- pdev = &cf0_device; -- break; -- case 5: -- at91_set_A_periph(AT91_PIN_PD7, 0); /* EBI0_NCS5/CFCS1 */ -- ebi0_csa |= AT91_MATRIX_EBI0_CS5A_SMC_CF2; -- cf1_data = *data; -- pdev = &cf1_device; -- break; -- default: -- printk(KERN_ERR "AT91 CF: bad chip-select requested (%u)\n", -- data->chipselect); -- return; -- } -- at91_sys_write(AT91_MATRIX_EBI0CSA, ebi0_csa); -- -- if (data->det_pin) { -- at91_set_gpio_input(data->det_pin, 1); -- at91_set_deglitch(data->det_pin, 1); -- } -- -- if (data->irq_pin) { -- at91_set_gpio_input(data->irq_pin, 1); -- at91_set_deglitch(data->irq_pin, 1); -- } -- -- if (data->vcc_pin) -- /* initially off */ -- at91_set_gpio_output(data->vcc_pin, 0); -- -- /* enable EBI controlled pins */ -- at91_set_A_periph(AT91_PIN_PD5, 1); /* NWAIT */ -- at91_set_A_periph(AT91_PIN_PD8, 0); /* CFCE1 */ -- at91_set_A_periph(AT91_PIN_PD9, 0); /* CFCE2 */ -- at91_set_A_periph(AT91_PIN_PD14, 0); /* CFNRW */ -- -- pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "at91_ide" : "at91_cf"; -- platform_device_register(pdev); --} --#else --void __init at91_add_device_cf(struct at91_cf_data *data) {} --#endif - - /* -------------------------------------------------------------------- - * NAND / SmartMedia -@@ -959,7 +854,7 @@ - * Watchdog - * -------------------------------------------------------------------- */ - --#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) -+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) - static struct platform_device at91sam9263_wdt_device = { - .name = "at91_wdt", - .id = -1, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9rl_devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9rl_devices.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/at91sam9rl_devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/at91sam9rl_devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -609,7 +609,7 @@ - * Watchdog - * -------------------------------------------------------------------- */ - --#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) -+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) - static struct platform_device at91sam9rl_wdt_device = { - .name = "at91_wdt", - .id = -1, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/gpio.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/gpio.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/gpio.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/gpio.c 2009-05-10 23:48:27.000000000 +0200 -@@ -490,8 +490,7 @@ - - /*--------------------------------------------------------------------------*/ - --/* -- * This lock class tells lockdep that GPIO irqs are in a different -+/* This lock class tells lockdep that GPIO irqs are in a different - * category than their parents, so it won't report false recursion. - */ - static struct lock_class_key gpio_lock_class; -@@ -510,6 +509,9 @@ - unsigned id = this->id; - unsigned i; - -+ /* enable PIO controller's clock */ -+ clk_enable(this->clock); -+ - __raw_writel(~0, this->regbase + PIO_IDR); - - for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { -@@ -554,14 +556,7 @@ - data->chipbase = PIN_BASE + i * 32; - data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS; - -- /* enable PIO controller's clock */ -- clk_enable(data->clock); -- -- /* -- * Some processors share peripheral ID between multiple GPIO banks. -- * SAM9263 (PIOC, PIOD, PIOE) -- * CAP9 (PIOA, PIOB, PIOC, PIOD) -- */ -+ /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */ - if (last && last->id == data->id) - last->next = data; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/include/mach/board.h linux-2.6.29-rc3.owrt/arch/arm/mach-at91/include/mach/board.h ---- linux-2.6.29.owrt/arch/arm/mach-at91/include/mach/board.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/include/mach/board.h 2009-05-10 23:48:27.000000000 +0200 -@@ -56,9 +56,6 @@ - u8 vcc_pin; /* power switching */ - u8 rst_pin; /* card reset */ - u8 chipselect; /* EBI Chip Select number */ -- u8 flags; --#define AT91_CF_TRUE_IDE 0x01 --#define AT91_IDE_SWAP_A0_A2 0x02 - }; - extern void __init at91_add_device_cf(struct at91_cf_data *data); - -@@ -96,7 +93,6 @@ - u8 enable_pin; /* chip enable */ - u8 det_pin; /* card detect */ - u8 rdy_pin; /* ready/busy */ -- u8 rdy_pin_active_low; /* rdy_pin value is inverted */ - u8 ale; /* address line number connected to ALE */ - u8 cle; /* address line number connected to CLE */ - u8 bus_width_16; /* buswidth is 16 bit */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-at91/pm.c linux-2.6.29-rc3.owrt/arch/arm/mach-at91/pm.c ---- linux-2.6.29.owrt/arch/arm/mach-at91/pm.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-at91/pm.c 2009-05-10 23:48:27.000000000 +0200 -@@ -332,6 +332,7 @@ - at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR)); - - error: -+ sdram_selfrefresh_disable(); - target_state = PM_SUSPEND_ON; - at91_irq_resume(); - at91_gpio_resume(); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-davinci/board-evm.c linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/board-evm.c ---- linux-2.6.29.owrt/arch/arm/mach-davinci/board-evm.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/board-evm.c 2009-05-10 23:48:27.000000000 +0200 -@@ -311,9 +311,6 @@ - gpio_request(gpio + 7, "nCF_SEL"); - gpio_direction_output(gpio + 7, 1); - -- /* irlml6401 sustains over 3A, switches 5V in under 8 msec */ -- setup_usb(500, 8); -- - return 0; - } - -@@ -420,6 +417,9 @@ - platform_add_devices(davinci_evm_devices, - ARRAY_SIZE(davinci_evm_devices)); - evm_init_i2c(); -+ -+ /* irlml6401 sustains over 3A, switches 5V in under 8 msec */ -+ setup_usb(500, 8); - } - - static __init void davinci_evm_irq_init(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-davinci/clock.c linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/clock.c ---- linux-2.6.29.owrt/arch/arm/mach-davinci/clock.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/clock.c 2009-05-10 23:48:27.000000000 +0200 -@@ -231,11 +231,6 @@ - .lpsc = DAVINCI_LPSC_GPIO, - }, - { -- .name = "usb", -- .rate = &commonrate, -- .lpsc = DAVINCI_LPSC_USB, -- }, -- { - .name = "AEMIFCLK", - .rate = &commonrate, - .lpsc = DAVINCI_LPSC_AEMIF, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-davinci/usb.c linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/usb.c ---- linux-2.6.29.owrt/arch/arm/mach-davinci/usb.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-davinci/usb.c 2009-05-10 23:48:27.000000000 +0200 -@@ -47,7 +47,6 @@ - #elif defined(CONFIG_USB_MUSB_HOST) - .mode = MUSB_HOST, - #endif -- .clock = "usb", - .config = &musb_config, - }; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/gesbc9312.h linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/gesbc9312.h ---- linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/gesbc9312.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/gesbc9312.h 2009-05-10 23:48:27.000000000 +0200 -@@ -0,0 +1,3 @@ -+/* -+ * arch/arm/mach-ep93xx/include/mach/gesbc9312.h -+ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/hardware.h linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/hardware.h ---- linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/hardware.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/hardware.h 2009-05-10 23:48:27.000000000 +0200 -@@ -10,6 +10,7 @@ - - #include "platform.h" - -+#include "gesbc9312.h" - #include "ts72xx.h" - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/platform.h linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/platform.h ---- linux-2.6.29.owrt/arch/arm/mach-ep93xx/include/mach/platform.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-ep93xx/include/mach/platform.h 2009-05-10 23:48:27.000000000 +0200 -@@ -4,8 +4,6 @@ - - #ifndef __ASSEMBLY__ - --struct i2c_board_info; -- - struct ep93xx_eth_data - { - unsigned char dev_addr[6]; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-kirkwood/irq.c linux-2.6.29-rc3.owrt/arch/arm/mach-kirkwood/irq.c ---- linux-2.6.29.owrt/arch/arm/mach-kirkwood/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-kirkwood/irq.c 2009-05-10 23:48:27.000000000 +0200 -@@ -42,7 +42,7 @@ - writel(0, GPIO_EDGE_CAUSE(32)); - - for (i = IRQ_KIRKWOOD_GPIO_START; i < NR_IRQS; i++) { -- set_irq_chip(i, &orion_gpio_irq_chip); -+ set_irq_chip(i, &orion_gpio_irq_level_chip); - set_irq_handler(i, handle_level_irq); - irq_desc[i].status |= IRQ_LEVEL; - set_irq_flags(i, IRQF_VALID); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-msm/board-halibut.c linux-2.6.29-rc3.owrt/arch/arm/mach-msm/board-halibut.c ---- linux-2.6.29.owrt/arch/arm/mach-msm/board-halibut.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-msm/board-halibut.c 2009-05-10 23:48:27.000000000 +0200 -@@ -27,7 +27,6 @@ - #include - #include - --#include - #include - #include - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-mv78xx0/irq.c linux-2.6.29-rc3.owrt/arch/arm/mach-mv78xx0/irq.c ---- linux-2.6.29.owrt/arch/arm/mach-mv78xx0/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-mv78xx0/irq.c 2009-05-10 23:48:27.000000000 +0200 -@@ -40,7 +40,7 @@ - writel(0, GPIO_EDGE_CAUSE(0)); - - for (i = IRQ_MV78XX0_GPIO_START; i < NR_IRQS; i++) { -- set_irq_chip(i, &orion_gpio_irq_chip); -+ set_irq_chip(i, &orion_gpio_irq_level_chip); - set_irq_handler(i, handle_level_irq); - irq_desc[i].status |= IRQ_LEVEL; - set_irq_flags(i, IRQF_VALID); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-mx1/devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-mx1/devices.c ---- linux-2.6.29.owrt/arch/arm/mach-mx1/devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-mx1/devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -23,8 +23,6 @@ - #include - #include - #include -- --#include - #include - - static struct resource imx_csi_resources[] = { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-mx1/mx1ads.c linux-2.6.29-rc3.owrt/arch/arm/mach-mx1/mx1ads.c ---- linux-2.6.29.owrt/arch/arm/mach-mx1/mx1ads.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-mx1/mx1ads.c 2009-05-10 23:48:27.000000000 +0200 -@@ -21,7 +21,6 @@ - #include - #include - --#include - #include - #include - #include -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap1/devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap1/devices.c ---- linux-2.6.29.owrt/arch/arm/mach-omap1/devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap1/devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -181,7 +181,7 @@ - } - size = OMAP1_MMC_SIZE; - -- omap_mmc_add("mmci-omap", i, base, size, irq, mmc_data[i]); -+ omap_mmc_add(i, base, size, irq, mmc_data[i]); - }; - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap1/mcbsp.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap1/mcbsp.c ---- linux-2.6.29.owrt/arch/arm/mach-omap1/mcbsp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap1/mcbsp.c 2009-05-10 23:48:27.000000000 +0200 -@@ -28,8 +28,81 @@ - #define DPS_RSTCT2_PER_EN (1 << 0) - #define DSP_RSTCT2_WD_PER_EN (1 << 1) - -+struct mcbsp_internal_clk { -+ struct clk clk; -+ struct clk **childs; -+ int n_childs; -+}; -+ - #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) --const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" }; -+static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) -+{ -+ const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" }; -+ int i; -+ -+ mclk->n_childs = ARRAY_SIZE(clk_names); -+ mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *), -+ GFP_KERNEL); -+ -+ for (i = 0; i < mclk->n_childs; i++) { -+ /* We fake a platform device to get correct device id */ -+ struct platform_device pdev; -+ -+ pdev.dev.bus = &platform_bus_type; -+ pdev.id = mclk->clk.id; -+ mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]); -+ if (IS_ERR(mclk->childs[i])) -+ printk(KERN_ERR "Could not get clock %s (%d).\n", -+ clk_names[i], mclk->clk.id); -+ } -+} -+ -+static int omap_mcbsp_clk_enable(struct clk *clk) -+{ -+ struct mcbsp_internal_clk *mclk = container_of(clk, -+ struct mcbsp_internal_clk, clk); -+ int i; -+ -+ for (i = 0; i < mclk->n_childs; i++) -+ clk_enable(mclk->childs[i]); -+ return 0; -+} -+ -+static void omap_mcbsp_clk_disable(struct clk *clk) -+{ -+ struct mcbsp_internal_clk *mclk = container_of(clk, -+ struct mcbsp_internal_clk, clk); -+ int i; -+ -+ for (i = 0; i < mclk->n_childs; i++) -+ clk_disable(mclk->childs[i]); -+} -+ -+static struct mcbsp_internal_clk omap_mcbsp_clks[] = { -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 1, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 3, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+}; -+ -+#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks) -+#else -+#define omap_mcbsp_clks_size 0 -+static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks; -+static inline void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) -+{ } - #endif - - static void omap1_mcbsp_request(unsigned int id) -@@ -94,9 +167,8 @@ - .rx_irq = INT_McBSP1RX, - .tx_irq = INT_McBSP1TX, - .ops = &omap1_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 3, -- }, -+ .clk_name = "mcbsp_clk", -+ }, - { - .phys_base = OMAP1510_MCBSP2_BASE, - .dma_rx_sync = OMAP_DMA_MCBSP2_RX, -@@ -112,8 +184,7 @@ - .rx_irq = INT_McBSP3RX, - .tx_irq = INT_McBSP3TX, - .ops = &omap1_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 3, -+ .clk_name = "mcbsp_clk", - }, - }; - #define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata) -@@ -131,8 +202,7 @@ - .rx_irq = INT_McBSP1RX, - .tx_irq = INT_McBSP1TX, - .ops = &omap1_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 3, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP1610_MCBSP2_BASE, -@@ -149,8 +219,7 @@ - .rx_irq = INT_McBSP3RX, - .tx_irq = INT_McBSP3TX, - .ops = &omap1_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 3, -+ .clk_name = "mcbsp_clk", - }, - }; - #define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata) -@@ -161,6 +230,15 @@ - - int __init omap1_mcbsp_init(void) - { -+ int i; -+ -+ for (i = 0; i < omap_mcbsp_clks_size; i++) { -+ if (cpu_is_omap15xx() || cpu_is_omap16xx()) { -+ omap_mcbsp_clk_init(&omap_mcbsp_clks[i]); -+ clk_register(&omap_mcbsp_clks[i].clk); -+ } -+ } -+ - if (cpu_is_omap730()) - omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ; - if (cpu_is_omap15xx()) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/board-ldp.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/board-ldp.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/board-ldp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/board-ldp.c 2009-05-10 23:48:27.000000000 +0200 -@@ -81,7 +81,7 @@ - } - - ldp_smc911x_resources[0].start = cs_mem_base + 0x0; -- ldp_smc911x_resources[0].end = cs_mem_base + 0xff; -+ ldp_smc911x_resources[0].end = cs_mem_base + 0xf; - udelay(100); - - eth_gpio = LDP_SMC911X_GPIO; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/board-omap3beagle.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/board-omap3beagle.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/board-omap3beagle.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/board-omap3beagle.c 2009-05-10 23:48:27.000000000 +0200 -@@ -178,9 +178,7 @@ - #ifdef CONFIG_I2C2_OMAP_BEAGLE - omap_register_i2c_bus(2, 400, NULL, 0); - #endif -- /* Bus 3 is attached to the DVI port where devices like the pico DLP -- * projector don't work reliably with 400kHz */ -- omap_register_i2c_bus(3, 100, NULL, 0); -+ omap_register_i2c_bus(3, 400, NULL, 0); - return 0; - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/clock.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/clock.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/clock.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/clock.c 2009-05-10 23:48:27.000000000 +0200 -@@ -565,7 +565,7 @@ - * - * Given a struct clk of a rate-selectable clksel clock, and a clock divisor, - * find the corresponding register field value. The return register value is -- * the value before left-shifting. Returns ~0 on error -+ * the value before left-shifting. Returns 0xffffffff on error - */ - u32 omap2_divisor_to_clksel(struct clk *clk, u32 div) - { -@@ -577,7 +577,7 @@ - - clks = omap2_get_clksel_by_parent(clk, clk->parent); - if (clks == NULL) -- return ~0; -+ return 0; - - for (clkr = clks->rates; clkr->div; clkr++) { - if ((clkr->flags & cpu_mask) && (clkr->div == div)) -@@ -588,7 +588,7 @@ - printk(KERN_ERR "clock: Could not find divisor %d for " - "clock %s parent %s\n", div, clk->name, - clk->parent->name); -- return ~0; -+ return 0; - } - - return clkr->val; -@@ -708,7 +708,7 @@ - return 0; - - for (clkr = clks->rates; clkr->div; clkr++) { -- if (clkr->flags & cpu_mask && clkr->flags & DEFAULT_RATE) -+ if (clkr->flags & (cpu_mask | DEFAULT_RATE)) - break; /* Found the default rate for this platform */ - } - -@@ -746,7 +746,7 @@ - return -EINVAL; - - if (clk->usecount > 0) -- omap2_clk_disable(clk); -+ _omap2_clk_disable(clk); - - /* Set new source value (previous dividers if any in effect) */ - reg_val = __raw_readl(src_addr) & ~field_mask; -@@ -759,10 +759,10 @@ - wmb(); - } - -- clk->parent = new_parent; -- - if (clk->usecount > 0) -- omap2_clk_enable(clk); -+ _omap2_clk_enable(clk); -+ -+ clk->parent = new_parent; - - /* CLKSEL clocks follow their parents' rates, divided by a divisor */ - clk->rate = new_parent->rate; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/devices.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/devices.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/devices.c 2009-05-10 23:48:27.000000000 +0200 -@@ -421,7 +421,6 @@ - int nr_controllers) - { - int i; -- char *name; - - for (i = 0; i < nr_controllers; i++) { - unsigned long base, size; -@@ -451,14 +450,12 @@ - continue; - } - -- if (cpu_is_omap2420()) { -+ if (cpu_is_omap2420()) - size = OMAP2420_MMC_SIZE; -- name = "mmci-omap"; -- } else { -+ else - size = HSMMC_SIZE; -- name = "mmci-omap-hs"; -- } -- omap_mmc_add(name, i, base, size, irq, mmc_data[i]); -+ -+ omap_mmc_add(i, base, size, irq, mmc_data[i]); - }; - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/id.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/id.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/id.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/id.c 2009-05-10 23:48:27.000000000 +0200 -@@ -172,13 +172,9 @@ - omap_revision = OMAP3430_REV_ES3_0; - rev_name = "ES3.0"; - break; -- case 4: -- omap_revision = OMAP3430_REV_ES3_1; -- rev_name = "ES3.1"; -- break; - default: - /* Use the latest known revision as default */ -- omap_revision = OMAP3430_REV_ES3_1; -+ omap_revision = OMAP3430_REV_ES3_0; - rev_name = "Unknown revision\n"; - } - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/irq.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/irq.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/irq.c 2009-05-10 23:48:27.000000000 +0200 -@@ -134,7 +134,6 @@ - .ack = omap_mask_ack_irq, - .mask = omap_mask_irq, - .unmask = omap_unmask_irq, -- .disable = omap_mask_irq, - }; - - static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/mcbsp.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/mcbsp.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/mcbsp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/mcbsp.c 2009-05-10 23:48:27.000000000 +0200 -@@ -24,7 +24,106 @@ - #include - #include - --const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" }; -+struct mcbsp_internal_clk { -+ struct clk clk; -+ struct clk **childs; -+ int n_childs; -+}; -+ -+#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) -+static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) -+{ -+ const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" }; -+ int i; -+ -+ mclk->n_childs = ARRAY_SIZE(clk_names); -+ mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *), -+ GFP_KERNEL); -+ -+ for (i = 0; i < mclk->n_childs; i++) { -+ /* We fake a platform device to get correct device id */ -+ struct platform_device pdev; -+ -+ pdev.dev.bus = &platform_bus_type; -+ pdev.id = mclk->clk.id; -+ mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]); -+ if (IS_ERR(mclk->childs[i])) -+ printk(KERN_ERR "Could not get clock %s (%d).\n", -+ clk_names[i], mclk->clk.id); -+ } -+} -+ -+static int omap_mcbsp_clk_enable(struct clk *clk) -+{ -+ struct mcbsp_internal_clk *mclk = container_of(clk, -+ struct mcbsp_internal_clk, clk); -+ int i; -+ -+ for (i = 0; i < mclk->n_childs; i++) -+ clk_enable(mclk->childs[i]); -+ return 0; -+} -+ -+static void omap_mcbsp_clk_disable(struct clk *clk) -+{ -+ struct mcbsp_internal_clk *mclk = container_of(clk, -+ struct mcbsp_internal_clk, clk); -+ int i; -+ -+ for (i = 0; i < mclk->n_childs; i++) -+ clk_disable(mclk->childs[i]); -+} -+ -+static struct mcbsp_internal_clk omap_mcbsp_clks[] = { -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 1, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 2, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 3, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 4, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+ { -+ .clk = { -+ .name = "mcbsp_clk", -+ .id = 5, -+ .enable = omap_mcbsp_clk_enable, -+ .disable = omap_mcbsp_clk_disable, -+ }, -+ }, -+}; -+ -+#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks) -+#else -+#define omap_mcbsp_clks_size 0 -+static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks; -+static inline void omap_mcbsp_clk_init(struct clk *clk) -+{ } -+#endif - - static void omap2_mcbsp2_mux_setup(void) - { -@@ -57,8 +156,7 @@ - .rx_irq = INT_24XX_MCBSP1_IRQ_RX, - .tx_irq = INT_24XX_MCBSP1_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP24XX_MCBSP2_BASE, -@@ -67,8 +165,7 @@ - .rx_irq = INT_24XX_MCBSP2_IRQ_RX, - .tx_irq = INT_24XX_MCBSP2_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - }; - #define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata) -@@ -86,8 +183,7 @@ - .rx_irq = INT_24XX_MCBSP1_IRQ_RX, - .tx_irq = INT_24XX_MCBSP1_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP24XX_MCBSP2_BASE, -@@ -96,8 +192,7 @@ - .rx_irq = INT_24XX_MCBSP2_IRQ_RX, - .tx_irq = INT_24XX_MCBSP2_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP2430_MCBSP3_BASE, -@@ -106,8 +201,7 @@ - .rx_irq = INT_24XX_MCBSP3_IRQ_RX, - .tx_irq = INT_24XX_MCBSP3_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP2430_MCBSP4_BASE, -@@ -116,8 +210,7 @@ - .rx_irq = INT_24XX_MCBSP4_IRQ_RX, - .tx_irq = INT_24XX_MCBSP4_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP2430_MCBSP5_BASE, -@@ -126,8 +219,7 @@ - .rx_irq = INT_24XX_MCBSP5_IRQ_RX, - .tx_irq = INT_24XX_MCBSP5_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - }; - #define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata) -@@ -145,8 +237,7 @@ - .rx_irq = INT_24XX_MCBSP1_IRQ_RX, - .tx_irq = INT_24XX_MCBSP1_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP34XX_MCBSP2_BASE, -@@ -155,8 +246,7 @@ - .rx_irq = INT_24XX_MCBSP2_IRQ_RX, - .tx_irq = INT_24XX_MCBSP2_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP34XX_MCBSP3_BASE, -@@ -165,8 +255,7 @@ - .rx_irq = INT_24XX_MCBSP3_IRQ_RX, - .tx_irq = INT_24XX_MCBSP3_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP34XX_MCBSP4_BASE, -@@ -175,8 +264,7 @@ - .rx_irq = INT_24XX_MCBSP4_IRQ_RX, - .tx_irq = INT_24XX_MCBSP4_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - { - .phys_base = OMAP34XX_MCBSP5_BASE, -@@ -185,8 +273,7 @@ - .rx_irq = INT_24XX_MCBSP5_IRQ_RX, - .tx_irq = INT_24XX_MCBSP5_IRQ_TX, - .ops = &omap2_mcbsp_ops, -- .clk_names = clk_names, -- .num_clks = 2, -+ .clk_name = "mcbsp_clk", - }, - }; - #define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata) -@@ -197,6 +284,14 @@ - - static int __init omap2_mcbsp_init(void) - { -+ int i; -+ -+ for (i = 0; i < omap_mcbsp_clks_size; i++) { -+ /* Once we call clk_get inside init, we do not register it */ -+ omap_mcbsp_clk_init(&omap_mcbsp_clks[i]); -+ clk_register(&omap_mcbsp_clks[i].clk); -+ } -+ - if (cpu_is_omap2420()) - omap_mcbsp_count = OMAP2420_MCBSP_PDATA_SZ; - if (cpu_is_omap2430()) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/sleep24xx.S linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/sleep24xx.S ---- linux-2.6.29.owrt/arch/arm/mach-omap2/sleep24xx.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/sleep24xx.S 2009-05-10 23:48:28.000000000 +0200 -@@ -93,8 +93,9 @@ - orr r4, r4, #0x40 @ enable self refresh on idle req - mov r5, #0x2000 @ set delay (DPLL relock + DLL relock) - str r4, [r2] @ make it so -+ mov r2, #0 - nop -- mcr p15, 0, r3, c7, c0, 4 @ wait for interrupt -+ mcr p15, 0, r2, c7, c0, 4 @ wait for interrupt - nop - loop: - subs r5, r5, #0x1 @ awake, wait just a bit -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-omap2/timer-gp.c linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/timer-gp.c ---- linux-2.6.29.owrt/arch/arm/mach-omap2/timer-gp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-omap2/timer-gp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -118,8 +118,7 @@ - clockevent_gpt.max_delta_ns = - clockevent_delta2ns(0xffffffff, &clockevent_gpt); - clockevent_gpt.min_delta_ns = -- clockevent_delta2ns(3, &clockevent_gpt); -- /* Timer internal resynch latency. */ -+ clockevent_delta2ns(1, &clockevent_gpt); - - clockevent_gpt.cpumask = cpumask_of(0); - clockevents_register_device(&clockevent_gpt); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-orion5x/common.c linux-2.6.29-rc3.owrt/arch/arm/mach-orion5x/common.c ---- linux-2.6.29.owrt/arch/arm/mach-orion5x/common.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-orion5x/common.c 2009-05-10 23:48:28.000000000 +0200 -@@ -431,10 +431,6 @@ - /***************************************************************************** - * XOR engine - ****************************************************************************/ --struct mv_xor_platform_shared_data orion5x_xor_shared_data = { -- .dram = &orion5x_mbus_dram_info, --}; -- - static struct resource orion5x_xor_shared_resources[] = { - { - .name = "xor low", -@@ -452,9 +448,6 @@ - static struct platform_device orion5x_xor_shared = { - .name = MV_XOR_SHARED_NAME, - .id = 0, -- .dev = { -- .platform_data = &orion5x_xor_shared_data, -- }, - .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), - .resource = orion5x_xor_shared_resources, - }; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-orion5x/irq.c linux-2.6.29-rc3.owrt/arch/arm/mach-orion5x/irq.c ---- linux-2.6.29.owrt/arch/arm/mach-orion5x/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-orion5x/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -44,7 +44,7 @@ - * User can use set_type() if he wants to use edge types handlers. - */ - for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) { -- set_irq_chip(i, &orion_gpio_irq_chip); -+ set_irq_chip(i, &orion_gpio_irq_level_chip); - set_irq_handler(i, handle_level_irq); - irq_desc[i].status |= IRQ_LEVEL; - set_irq_flags(i, IRQF_VALID); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-pxa/dma.c linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/dma.c ---- linux-2.6.29.owrt/arch/arm/mach-pxa/dma.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/dma.c 2009-05-10 23:48:28.000000000 +0200 -@@ -121,16 +121,6 @@ - if (dma_channels == NULL) - return -ENOMEM; - -- /* dma channel priorities on pxa2xx processors: -- * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH -- * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM -- * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW -- */ -- for (i = 0; i < num_ch; i++) { -- DCSR(i) = 0; -- dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW); -- } -- - ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL); - if (ret) { - printk (KERN_CRIT "Wow! Can't register IRQ for DMA\n"); -@@ -138,6 +128,14 @@ - return ret; - } - -+ /* dma channel priorities on pxa2xx processors: -+ * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH -+ * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM -+ * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW -+ */ -+ for (i = 0; i < num_ch; i++) -+ dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW); -+ - num_dma_channels = num_ch; - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-pxa/include/mach/regs-ac97.h linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/include/mach/regs-ac97.h ---- linux-2.6.29.owrt/arch/arm/mach-pxa/include/mach/regs-ac97.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/include/mach/regs-ac97.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,8 +1,6 @@ - #ifndef __ASM_ARCH_REGS_AC97_H - #define __ASM_ARCH_REGS_AC97_H - --#include -- - /* - * AC97 Controller registers - */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-pxa/include/mach/regs-ssp.h linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/include/mach/regs-ssp.h ---- linux-2.6.29.owrt/arch/arm/mach-pxa/include/mach/regs-ssp.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/include/mach/regs-ssp.h 2009-05-10 23:48:28.000000000 +0200 -@@ -41,9 +41,6 @@ - #elif defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) - #define SSCR0_SCR (0x000fff00) /* Serial Clock Rate (mask) */ - #define SSCR0_SerClkDiv(x) (((x) - 1) << 8) /* Divisor [1..4096] */ --#endif -- --#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) - #define SSCR0_EDSS (1 << 20) /* Extended data size select */ - #define SSCR0_NCS (1 << 21) /* Network clock select */ - #define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-pxa/pxa300.c linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/pxa300.c ---- linux-2.6.29.owrt/arch/arm/mach-pxa/pxa300.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/pxa300.c 2009-05-10 23:48:28.000000000 +0200 -@@ -88,13 +88,13 @@ - static DEFINE_PXA3_CKEN(common_nand, NAND, 156000000, 0); - - static struct clk_lookup common_clkregs[] = { -- INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL), -+ INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", "NANDCLK"), - }; - - static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0); - - static struct clk_lookup pxa310_clkregs[] = { -- INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", NULL), -+ INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", "MMCCLK"), - }; - - static int __init pxa300_init(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-pxa/pxa320.c linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/pxa320.c ---- linux-2.6.29.owrt/arch/arm/mach-pxa/pxa320.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-pxa/pxa320.c 2009-05-10 23:48:28.000000000 +0200 -@@ -83,7 +83,7 @@ - static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0); - - static struct clk_lookup pxa320_clkregs[] = { -- INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL), -+ INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", "NANDCLK"), - }; - - static int __init pxa320_init(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-rpc/riscpc.c linux-2.6.29-rc3.owrt/arch/arm/mach-rpc/riscpc.c ---- linux-2.6.29.owrt/arch/arm/mach-rpc/riscpc.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-rpc/riscpc.c 2009-05-10 23:48:28.000000000 +0200 -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -202,13 +201,8 @@ - &pata_device, - }; - --static struct i2c_board_info i2c_rtc = { -- I2C_BOARD_INFO("pcf8583", 0x50) --}; -- - static int __init rpc_init(void) - { -- i2c_register_board_info(0, &i2c_rtc, 1); - return platform_add_devices(devs, ARRAY_SIZE(devs)); - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-s3c6410/mach-smdk6410.c linux-2.6.29-rc3.owrt/arch/arm/mach-s3c6410/mach-smdk6410.c ---- linux-2.6.29.owrt/arch/arm/mach-s3c6410/mach-smdk6410.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-s3c6410/mach-smdk6410.c 2009-05-10 23:48:28.000000000 +0200 -@@ -129,7 +129,7 @@ - .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, - }; - --static struct map_desc smdk6410_iodesc[] = {}; -+struct map_desc smdk6410_iodesc[] = {}; - - static struct platform_device *smdk6410_devices[] __initdata = { - #ifdef CONFIG_SMDK6410_SD_CH0 -@@ -146,7 +146,7 @@ - - static struct i2c_board_info i2c_devs0[] __initdata = { - { I2C_BOARD_INFO("24c08", 0x50), }, -- { I2C_BOARD_INFO("wm8580", 0x1b), }, -+ { I2C_BOARD_INFO("WM8580", 0X1b), }, - }; - - static struct i2c_board_info i2c_devs1[] __initdata = { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mach-sa1100/generic.c linux-2.6.29-rc3.owrt/arch/arm/mach-sa1100/generic.c ---- linux-2.6.29.owrt/arch/arm/mach-sa1100/generic.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mach-sa1100/generic.c 2009-05-10 23:48:28.000000000 +0200 -@@ -289,7 +289,7 @@ - }; - - static struct platform_device sa11x0mtd_device = { -- .name = "sa1100-mtd", -+ .name = "flash", - .id = -1, - }; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/abort-ev6.S linux-2.6.29-rc3.owrt/arch/arm/mm/abort-ev6.S ---- linux-2.6.29.owrt/arch/arm/mm/abort-ev6.S 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/abort-ev6.S 2009-05-10 23:48:28.000000000 +0200 -@@ -23,8 +23,7 @@ - #ifdef CONFIG_CPU_32v6K - clrex - #else -- sub r1, sp, #4 @ Get unused stack location -- strex r0, r1, [r1] @ Clear the exclusive monitor -+ strex r0, r1, [sp] @ Clear the exclusive monitor - #endif - mrc p15, 0, r1, c5, c0, 0 @ get FSR - mrc p15, 0, r0, c6, c0, 0 @ get FAR -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-feroceon.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-feroceon.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-feroceon.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-feroceon.c 2009-05-10 23:48:28.000000000 +0200 -@@ -13,7 +13,7 @@ - #include - #include - --static void __naked -+static void __attribute__((naked)) - feroceon_copy_user_page(void *kto, const void *kfrom) - { - asm("\ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-v3.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v3.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-v3.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v3.c 2009-05-10 23:48:28.000000000 +0200 -@@ -15,7 +15,7 @@ - * - * FIXME: do we need to handle cache stuff... - */ --static void __naked -+static void __attribute__((naked)) - v3_copy_user_page(void *kto, const void *kfrom) - { - asm("\n\ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-v4mc.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4mc.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-v4mc.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4mc.c 2009-05-10 23:48:28.000000000 +0200 -@@ -44,7 +44,7 @@ - * instruction. If your processor does not supply this, you have to write your - * own copy_user_highpage that does the right thing. - */ --static void __naked -+static void __attribute__((naked)) - mc_copy_user_page(void *from, void *to) - { - asm volatile( -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-v4wb.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4wb.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-v4wb.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4wb.c 2009-05-10 23:48:28.000000000 +0200 -@@ -22,7 +22,7 @@ - * instruction. If your processor does not supply this, you have to write your - * own copy_user_highpage that does the right thing. - */ --static void __naked -+static void __attribute__((naked)) - v4wb_copy_user_page(void *kto, const void *kfrom) - { - asm("\ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-v4wt.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4wt.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-v4wt.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-v4wt.c 2009-05-10 23:48:28.000000000 +0200 -@@ -20,7 +20,7 @@ - * dirty data in the cache. However, we do have to ensure that - * subsequent reads are up to date. - */ --static void __naked -+static void __attribute__((naked)) - v4wt_copy_user_page(void *kto, const void *kfrom) - { - asm("\ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-xsc3.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-xsc3.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-xsc3.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-xsc3.c 2009-05-10 23:48:28.000000000 +0200 -@@ -29,7 +29,7 @@ - * if we eventually end up using our copied page. - * - */ --static void __naked -+static void __attribute__((naked)) - xsc3_mc_copy_user_page(void *kto, const void *kfrom) - { - asm("\ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/copypage-xscale.c linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-xscale.c ---- linux-2.6.29.owrt/arch/arm/mm/copypage-xscale.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/copypage-xscale.c 2009-05-10 23:48:28.000000000 +0200 -@@ -42,7 +42,7 @@ - * Dcache aliasing issue. The writes will be forwarded to the write buffer, - * and merged as appropriate. - */ --static void __naked -+static void __attribute__((naked)) - mc_copy_user_page(void *from, void *to) - { - /* -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/dma-mapping.c linux-2.6.29-rc3.owrt/arch/arm/mm/dma-mapping.c ---- linux-2.6.29.owrt/arch/arm/mm/dma-mapping.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/dma-mapping.c 2009-05-10 23:48:28.000000000 +0200 -@@ -490,30 +490,26 @@ - */ - void dma_cache_maint(const void *start, size_t size, int direction) - { -- void (*inner_op)(const void *, const void *); -- void (*outer_op)(unsigned long, unsigned long); -+ const void *end = start + size; - -- BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1)); -+ BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); - - switch (direction) { - case DMA_FROM_DEVICE: /* invalidate only */ -- inner_op = dmac_inv_range; -- outer_op = outer_inv_range; -+ dmac_inv_range(start, end); -+ outer_inv_range(__pa(start), __pa(end)); - break; - case DMA_TO_DEVICE: /* writeback only */ -- inner_op = dmac_clean_range; -- outer_op = outer_clean_range; -+ dmac_clean_range(start, end); -+ outer_clean_range(__pa(start), __pa(end)); - break; - case DMA_BIDIRECTIONAL: /* writeback and invalidate */ -- inner_op = dmac_flush_range; -- outer_op = outer_flush_range; -+ dmac_flush_range(start, end); -+ outer_flush_range(__pa(start), __pa(end)); - break; - default: - BUG(); - } -- -- inner_op(start, start + size); -- outer_op(__pa(start), __pa(start) + size); - } - EXPORT_SYMBOL(dma_cache_maint); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/fault-armv.c linux-2.6.29-rc3.owrt/arch/arm/mm/fault-armv.c ---- linux-2.6.29.owrt/arch/arm/mm/fault-armv.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/fault-armv.c 2009-05-10 23:48:28.000000000 +0200 -@@ -66,10 +66,7 @@ - * fault (ie, is old), we can safely ignore any issues. - */ - if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) { -- unsigned long pfn = pte_pfn(entry); -- flush_cache_page(vma, address, pfn); -- outer_flush_range((pfn << PAGE_SHIFT), -- (pfn << PAGE_SHIFT) + PAGE_SIZE); -+ flush_cache_page(vma, address, pte_pfn(entry)); - pte_val(entry) &= ~L_PTE_MT_MASK; - pte_val(entry) |= shared_pte_mask; - set_pte_at(vma->vm_mm, address, pte, entry); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/init.c linux-2.6.29-rc3.owrt/arch/arm/mm/init.c ---- linux-2.6.29.owrt/arch/arm/mm/init.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -382,7 +382,7 @@ - for_each_node(node) - bootmem_free_node(node, mi); - -- high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1; -+ high_memory = __va(memend_pfn << PAGE_SHIFT); - - /* - * This doesn't seem to be used by the Linux memory manager any -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/mmap.c linux-2.6.29-rc3.owrt/arch/arm/mm/mmap.c ---- linux-2.6.29.owrt/arch/arm/mm/mmap.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/mmap.c 2009-05-10 23:48:28.000000000 +0200 -@@ -124,7 +124,7 @@ - { - if (addr < PHYS_OFFSET) - return 0; -- if (addr + size >= __pa(high_memory - 1)) -+ if (addr + size > __pa(high_memory)) - return 0; - - return 1; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/mm/mmu.c linux-2.6.29-rc3.owrt/arch/arm/mm/mmu.c ---- linux-2.6.29.owrt/arch/arm/mm/mmu.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/mm/mmu.c 2009-05-10 23:48:28.000000000 +0200 -@@ -693,8 +693,7 @@ - * Check whether this memory bank would entirely overlap - * the vmalloc area. - */ -- if (__va(bank->start) >= VMALLOC_MIN || -- __va(bank->start) < PAGE_OFFSET) { -+ if (__va(bank->start) >= VMALLOC_MIN) { - printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx " - "(vmalloc region overlap).\n", - bank->start, bank->start + bank->size - 1); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-mxc/include/mach/mmc.h linux-2.6.29-rc3.owrt/arch/arm/plat-mxc/include/mach/mmc.h ---- linux-2.6.29.owrt/arch/arm/plat-mxc/include/mach/mmc.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-mxc/include/mach/mmc.h 1970-01-01 01:00:00.000000000 +0100 -@@ -1,36 +0,0 @@ --#ifndef ASMARM_ARCH_MMC_H --#define ASMARM_ARCH_MMC_H -- --#include -- --struct device; -- --/* board specific SDHC data, optional. -- * If not present, a writable card with 3,3V is assumed. -- */ --struct imxmmc_platform_data { -- /* Return values for the get_ro callback should be: -- * 0 for a read/write card -- * 1 for a read-only card -- * -ENOSYS when not supported (equal to NULL callback) -- * or a negative errno value when something bad happened -- */ -- int (*get_ro)(struct device *); -- -- /* board specific hook to (de)initialize the SD slot. -- * The board code can call 'handler' on a card detection -- * change giving data as argument. -- */ -- int (*init)(struct device *dev, irq_handler_t handler, void *data); -- void (*exit)(struct device *dev, void *data); -- -- /* available voltages. If not given, assume -- * MMC_VDD_32_33 | MMC_VDD_33_34 -- */ -- unsigned int ocr_avail; -- -- /* adjust slot voltage */ -- void (*setpower)(struct device *, unsigned int vdd); --}; -- --#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/common.c linux-2.6.29-rc3.owrt/arch/arm/plat-omap/common.c ---- linux-2.6.29.owrt/arch/arm/plat-omap/common.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/common.c 2009-05-10 23:48:28.000000000 +0200 -@@ -200,16 +200,20 @@ - }; - - /* -+ * Rounds down to nearest nsec. -+ */ -+unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k) -+{ -+ return cyc2ns(&clocksource_32k, ticks_32k); -+} -+ -+/* - * Returns current time from boot in nsecs. It's OK for this to wrap - * around for now, as it's just a relative time stamp. - */ - unsigned long long sched_clock(void) - { -- unsigned long long ret; -- -- ret = (unsigned long long)omap_32k_read(); -- ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift; -- return ret; -+ return omap_32k_ticks_to_nsecs(omap_32k_read()); - } - - static int __init omap_init_clocksource_32k(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/devices.c linux-2.6.29-rc3.owrt/arch/arm/plat-omap/devices.c ---- linux-2.6.29.owrt/arch/arm/plat-omap/devices.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/devices.c 2009-05-10 23:48:28.000000000 +0200 -@@ -200,15 +200,14 @@ - /* - * Register MMC devices. Called from mach-omap1 and mach-omap2 device init. - */ --int __init omap_mmc_add(const char *name, int id, unsigned long base, -- unsigned long size, unsigned int irq, -- struct omap_mmc_platform_data *data) -+int __init omap_mmc_add(int id, unsigned long base, unsigned long size, -+ unsigned int irq, struct omap_mmc_platform_data *data) - { - struct platform_device *pdev; - struct resource res[OMAP_MMC_NR_RES]; - int ret; - -- pdev = platform_device_alloc(name, id); -+ pdev = platform_device_alloc("mmci-omap", id); - if (!pdev) - return -ENOMEM; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/dma.c linux-2.6.29-rc3.owrt/arch/arm/plat-omap/dma.c ---- linux-2.6.29.owrt/arch/arm/plat-omap/dma.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/dma.c 2009-05-10 23:48:28.000000000 +0200 -@@ -709,7 +709,6 @@ - chan->dev_name = dev_name; - chan->callback = callback; - chan->data = data; -- chan->flags = 0; - - #ifndef CONFIG_ARCH_OMAP1 - if (cpu_class_is_omap2()) { -@@ -1889,11 +1888,11 @@ - status = dma_read(CSR(ch)); - } - -- dma_write(status, CSR(ch)); -- - if (likely(dma_chan[ch].callback != NULL)) - dma_chan[ch].callback(ch, status, dma_chan[ch].data); - -+ dma_write(status, CSR(ch)); -+ - return 0; - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/common.h linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/common.h ---- linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/common.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/common.h 2009-05-10 23:48:28.000000000 +0200 -@@ -35,7 +35,7 @@ - extern struct sys_timer omap_timer; - extern void omap_serial_init(void); - extern void omap_serial_enable_clocks(int enable); --#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) -+#ifdef CONFIG_I2C_OMAP - extern int omap_register_i2c_bus(int bus_id, u32 clkrate, - struct i2c_board_info const *info, - unsigned len); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/cpu.h linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/cpu.h ---- linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/cpu.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/cpu.h 2009-05-10 23:48:28.000000000 +0200 -@@ -339,7 +339,6 @@ - #define OMAP3430_REV_ES2_0 0x34301034 - #define OMAP3430_REV_ES2_1 0x34302034 - #define OMAP3430_REV_ES3_0 0x34303034 --#define OMAP3430_REV_ES3_1 0x34304034 - - /* - * omap_chip bits -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/mcbsp.h linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/mcbsp.h ---- linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/mcbsp.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/mcbsp.h 2009-05-10 23:48:28.000000000 +0200 -@@ -344,8 +344,7 @@ - u8 dma_rx_sync, dma_tx_sync; - u16 rx_irq, tx_irq; - struct omap_mcbsp_ops *ops; -- char const **clk_names; -- int num_clks; -+ char const *clk_name; - }; - - struct omap_mcbsp { -@@ -377,8 +376,7 @@ - /* Protect the field .free, while checking if the mcbsp is in use */ - spinlock_t lock; - struct omap_mcbsp_platform_data *pdata; -- struct clk **clks; -- int num_clks; -+ struct clk *clk; - }; - extern struct omap_mcbsp **mcbsp_ptr; - extern int omap_mcbsp_count; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/mmc.h linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/mmc.h ---- linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/mmc.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/mmc.h 2009-05-10 23:48:28.000000000 +0200 -@@ -115,9 +115,8 @@ - int nr_controllers); - void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data, - int nr_controllers); --int omap_mmc_add(const char *name, int id, unsigned long base, -- unsigned long size, unsigned int irq, -- struct omap_mmc_platform_data *data); -+int omap_mmc_add(int id, unsigned long base, unsigned long size, -+ unsigned int irq, struct omap_mmc_platform_data *data); - #else - static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, - int nr_controllers) -@@ -127,9 +126,8 @@ - int nr_controllers) - { - } --static inline int omap_mmc_add(const char *name, int id, unsigned long base, -- unsigned long size, unsigned int irq, -- struct omap_mmc_platform_data *data) -+static inline int omap_mmc_add(int id, unsigned long base, unsigned long size, -+ unsigned int irq, struct omap_mmc_platform_data *data) - { - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/pm.h linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/pm.h ---- linux-2.6.29.owrt/arch/arm/plat-omap/include/mach/pm.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/include/mach/pm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -108,7 +108,7 @@ - !defined(CONFIG_ARCH_OMAP15XX) && \ - !defined(CONFIG_ARCH_OMAP16XX) && \ - !defined(CONFIG_ARCH_OMAP24XX) --#warning "Power management for this processor not implemented yet" -+#error "Power management for this processor not implemented yet" - #endif - - #ifndef __ASSEMBLER__ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/Makefile linux-2.6.29-rc3.owrt/arch/arm/plat-omap/Makefile ---- linux-2.6.29.owrt/arch/arm/plat-omap/Makefile 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -18,8 +18,7 @@ - obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o - obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o - obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o --i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o --obj-y += $(i2c-omap-m) $(i2c-omap-y) -+obj-$(CONFIG_I2C_OMAP) += i2c.o - - # OMAP mailbox framework - obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-omap/mcbsp.c linux-2.6.29-rc3.owrt/arch/arm/plat-omap/mcbsp.c ---- linux-2.6.29.owrt/arch/arm/plat-omap/mcbsp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-omap/mcbsp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -214,7 +214,6 @@ - int omap_mcbsp_request(unsigned int id) - { - struct omap_mcbsp *mcbsp; -- int i; - int err; - - if (!omap_mcbsp_check_valid_id(id)) { -@@ -226,8 +225,7 @@ - if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request) - mcbsp->pdata->ops->request(id); - -- for (i = 0; i < mcbsp->num_clks; i++) -- clk_enable(mcbsp->clks[i]); -+ clk_enable(mcbsp->clk); - - spin_lock(&mcbsp->lock); - if (!mcbsp->free) { -@@ -278,7 +276,6 @@ - void omap_mcbsp_free(unsigned int id) - { - struct omap_mcbsp *mcbsp; -- int i; - - if (!omap_mcbsp_check_valid_id(id)) { - printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); -@@ -289,8 +286,7 @@ - if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) - mcbsp->pdata->ops->free(id); - -- for (i = mcbsp->num_clks - 1; i >= 0; i--) -- clk_disable(mcbsp->clks[i]); -+ clk_disable(mcbsp->clk); - - spin_lock(&mcbsp->lock); - if (mcbsp->free) { -@@ -876,7 +872,6 @@ - struct omap_mcbsp_platform_data *pdata = pdev->dev.platform_data; - struct omap_mcbsp *mcbsp; - int id = pdev->id - 1; -- int i; - int ret = 0; - - if (!pdata) { -@@ -921,25 +916,14 @@ - mcbsp->dma_rx_sync = pdata->dma_rx_sync; - mcbsp->dma_tx_sync = pdata->dma_tx_sync; - -- if (pdata->num_clks) { -- mcbsp->num_clks = pdata->num_clks; -- mcbsp->clks = kzalloc(mcbsp->num_clks * sizeof(struct clk *), -- GFP_KERNEL); -- if (!mcbsp->clks) { -- ret = -ENOMEM; -- goto exit; -- } -- for (i = 0; i < mcbsp->num_clks; i++) { -- mcbsp->clks[i] = clk_get(&pdev->dev, pdata->clk_names[i]); -- if (IS_ERR(mcbsp->clks[i])) { -- dev_err(&pdev->dev, -- "Invalid %s configuration for McBSP%d.\n", -- pdata->clk_names[i], mcbsp->id); -- ret = PTR_ERR(mcbsp->clks[i]); -- goto err_clk; -- } -- } -- -+ if (pdata->clk_name) -+ mcbsp->clk = clk_get(&pdev->dev, pdata->clk_name); -+ if (IS_ERR(mcbsp->clk)) { -+ dev_err(&pdev->dev, -+ "Invalid clock configuration for McBSP%d.\n", -+ mcbsp->id); -+ ret = PTR_ERR(mcbsp->clk); -+ goto err_clk; - } - - mcbsp->pdata = pdata; -@@ -948,9 +932,6 @@ - return 0; - - err_clk: -- while (i--) -- clk_put(mcbsp->clks[i]); -- kfree(mcbsp->clks); - iounmap(mcbsp->io_base); - err_ioremap: - mcbsp->free = 0; -@@ -961,7 +942,6 @@ - static int __devexit omap_mcbsp_remove(struct platform_device *pdev) - { - struct omap_mcbsp *mcbsp = platform_get_drvdata(pdev); -- int i; - - platform_set_drvdata(pdev, NULL); - if (mcbsp) { -@@ -970,18 +950,12 @@ - mcbsp->pdata->ops->free) - mcbsp->pdata->ops->free(mcbsp->id); - -- for (i = mcbsp->num_clks - 1; i >= 0; i--) { -- clk_disable(mcbsp->clks[i]); -- clk_put(mcbsp->clks[i]); -- } -+ clk_disable(mcbsp->clk); -+ clk_put(mcbsp->clk); - - iounmap(mcbsp->io_base); - -- if (mcbsp->num_clks) { -- kfree(mcbsp->clks); -- mcbsp->clks = NULL; -- mcbsp->num_clks = 0; -- } -+ mcbsp->clk = NULL; - mcbsp->free = 0; - mcbsp->dev = NULL; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-orion/gpio.c linux-2.6.29-rc3.owrt/arch/arm/plat-orion/gpio.c ---- linux-2.6.29.owrt/arch/arm/plat-orion/gpio.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-orion/gpio.c 2009-05-10 23:48:28.000000000 +0200 -@@ -265,36 +265,51 @@ - * polarity LEVEL mask - * - ****************************************************************************/ -+static void gpio_irq_edge_ack(u32 irq) -+{ -+ int pin = irq_to_gpio(irq); -+ -+ writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin)); -+} - --static void gpio_irq_ack(u32 irq) -+static void gpio_irq_edge_mask(u32 irq) - { -- int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK; -- if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) { -- int pin = irq_to_gpio(irq); -- writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin)); -- } -+ int pin = irq_to_gpio(irq); -+ u32 u; -+ -+ u = readl(GPIO_EDGE_MASK(pin)); -+ u &= ~(1 << (pin & 31)); -+ writel(u, GPIO_EDGE_MASK(pin)); -+} -+ -+static void gpio_irq_edge_unmask(u32 irq) -+{ -+ int pin = irq_to_gpio(irq); -+ u32 u; -+ -+ u = readl(GPIO_EDGE_MASK(pin)); -+ u |= 1 << (pin & 31); -+ writel(u, GPIO_EDGE_MASK(pin)); - } - --static void gpio_irq_mask(u32 irq) -+static void gpio_irq_level_mask(u32 irq) - { - int pin = irq_to_gpio(irq); -- int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK; -- u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ? -- GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin); -- u32 u = readl(reg); -+ u32 u; -+ -+ u = readl(GPIO_LEVEL_MASK(pin)); - u &= ~(1 << (pin & 31)); -- writel(u, reg); -+ writel(u, GPIO_LEVEL_MASK(pin)); - } - --static void gpio_irq_unmask(u32 irq) -+static void gpio_irq_level_unmask(u32 irq) - { - int pin = irq_to_gpio(irq); -- int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK; -- u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ? -- GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin); -- u32 u = readl(reg); -+ u32 u; -+ -+ u = readl(GPIO_LEVEL_MASK(pin)); - u |= 1 << (pin & 31); -- writel(u, reg); -+ writel(u, GPIO_LEVEL_MASK(pin)); - } - - static int gpio_irq_set_type(u32 irq, u32 type) -@@ -316,9 +331,9 @@ - * Set edge/level type. - */ - if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) { -- desc->handle_irq = handle_edge_irq; -+ desc->chip = &orion_gpio_irq_edge_chip; - } else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { -- desc->handle_irq = handle_level_irq; -+ desc->chip = &orion_gpio_irq_level_chip; - } else { - printk(KERN_ERR "failed to set irq=%d (type=%d)\n", irq, type); - return -EINVAL; -@@ -356,11 +371,19 @@ - return 0; - } - --struct irq_chip orion_gpio_irq_chip = { -- .name = "orion_gpio", -- .ack = gpio_irq_ack, -- .mask = gpio_irq_mask, -- .unmask = gpio_irq_unmask, -+struct irq_chip orion_gpio_irq_edge_chip = { -+ .name = "orion_gpio_irq_edge", -+ .ack = gpio_irq_edge_ack, -+ .mask = gpio_irq_edge_mask, -+ .unmask = gpio_irq_edge_unmask, -+ .set_type = gpio_irq_set_type, -+}; -+ -+struct irq_chip orion_gpio_irq_level_chip = { -+ .name = "orion_gpio_irq_level", -+ .mask = gpio_irq_level_mask, -+ .mask_ack = gpio_irq_level_mask, -+ .unmask = gpio_irq_level_unmask, - .set_type = gpio_irq_set_type, - }; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-orion/include/plat/gpio.h linux-2.6.29-rc3.owrt/arch/arm/plat-orion/include/plat/gpio.h ---- linux-2.6.29.owrt/arch/arm/plat-orion/include/plat/gpio.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-orion/include/plat/gpio.h 2009-05-10 23:48:28.000000000 +0200 -@@ -31,7 +31,8 @@ - /* - * GPIO interrupt handling. - */ --extern struct irq_chip orion_gpio_irq_chip; -+extern struct irq_chip orion_gpio_irq_edge_chip; -+extern struct irq_chip orion_gpio_irq_level_chip; - void orion_gpio_irq_handler(int irqoff); - - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/clock.c linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/clock.c ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/clock.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/clock.c 2009-05-10 23:48:28.000000000 +0200 -@@ -248,7 +248,7 @@ - &clk_48m, - }; - --void __init s3c64xx_register_clocks(void) -+void s3c64xx_register_clocks(void) - { - struct clk *clkp; - int ret; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/gpiolib.c linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/gpiolib.c ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/gpiolib.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/gpiolib.c 2009-05-10 23:48:28.000000000 +0200 -@@ -417,4 +417,4 @@ - return 0; - } - --core_initcall(s3c64xx_gpiolib_init); -+arch_initcall(s3c64xx_gpiolib_init); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/include/plat/irqs.h linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/include/plat/irqs.h ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/include/plat/irqs.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/include/plat/irqs.h 2009-05-10 23:48:28.000000000 +0200 -@@ -117,7 +117,7 @@ - #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) - #define IRQ_NFC S3C64XX_IRQ_VIC1(13) - #define IRQ_CFCON S3C64XX_IRQ_VIC1(14) --#define IRQ_USBH S3C64XX_IRQ_VIC1(15) -+#define IRQ_UHOST S3C64XX_IRQ_VIC1(15) - #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) - #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) - #define IRQ_IIC S3C64XX_IRQ_VIC1(18) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/irq.c linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/irq.c ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/irq.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -207,7 +207,7 @@ - - static void __init s3c64xx_uart_irq(struct uart_irq *uirq) - { -- void __iomem *reg_base = uirq->regs; -+ void *reg_base = uirq->regs; - unsigned int irq; - int offs; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/irq-eint.c linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/irq-eint.c ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/irq-eint.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/irq-eint.c 2009-05-10 23:48:28.000000000 +0200 -@@ -14,15 +14,12 @@ - - #include - #include --#include - #include - #include - - #include - - #include --#include --#include - - #include - #include -@@ -58,7 +55,7 @@ - u32 mask; - - mask = __raw_readl(S3C64XX_EINT0MASK); -- mask &= ~eint_irq_to_bit(irq); -+ mask |= eint_irq_to_bit(irq); - __raw_writel(mask, S3C64XX_EINT0MASK); - } - -@@ -77,7 +74,6 @@ - static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) - { - int offs = eint_offset(irq); -- int pin; - int shift; - u32 ctrl, mask; - u32 newvalue = 0; -@@ -129,15 +125,6 @@ - ctrl |= newvalue << shift; - __raw_writel(ctrl, reg); - -- /* set the GPIO pin appropriately */ -- -- if (offs < 23) -- pin = S3C64XX_GPN(offs); -- else -- pin = S3C64XX_GPM(offs - 23); -- -- s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2)); -- - return 0; - } - -@@ -194,7 +181,7 @@ - s3c_irq_demux_eint(20, 27); - } - --static int __init s3c64xx_init_irq_eint(void) -+int __init s3c64xx_init_irq_eint(void) - { - int irq; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/plat-s3c64xx/s3c6400-clock.c linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/s3c6400-clock.c ---- linux-2.6.29.owrt/arch/arm/plat-s3c64xx/s3c6400-clock.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/plat-s3c64xx/s3c6400-clock.c 2009-05-10 23:48:28.000000000 +0200 -@@ -36,7 +36,7 @@ - * ext_xtal_mux for want of an actual name from the manual. - */ - --static struct clk clk_ext_xtal_mux = { -+struct clk clk_ext_xtal_mux = { - .name = "ext_xtal", - .id = -1, - }; -@@ -63,7 +63,7 @@ - void __iomem *reg_divider; - }; - --static struct clk clk_fout_apll = { -+struct clk clk_fout_apll = { - .name = "fout_apll", - .id = -1, - }; -@@ -78,7 +78,7 @@ - .nr_sources = ARRAY_SIZE(clk_src_apll_list), - }; - --static struct clksrc_clk clk_mout_apll = { -+struct clksrc_clk clk_mout_apll = { - .clk = { - .name = "mout_apll", - .id = -1, -@@ -88,7 +88,7 @@ - .sources = &clk_src_apll, - }; - --static struct clk clk_fout_epll = { -+struct clk clk_fout_epll = { - .name = "fout_epll", - .id = -1, - }; -@@ -103,7 +103,7 @@ - .nr_sources = ARRAY_SIZE(clk_src_epll_list), - }; - --static struct clksrc_clk clk_mout_epll = { -+struct clksrc_clk clk_mout_epll = { - .clk = { - .name = "mout_epll", - .id = -1, -@@ -123,7 +123,7 @@ - .nr_sources = ARRAY_SIZE(clk_src_mpll_list), - }; - --static struct clksrc_clk clk_mout_mpll = { -+struct clksrc_clk clk_mout_mpll = { - .clk = { - .name = "mout_mpll", - .id = -1, -@@ -145,7 +145,7 @@ - return rate; - } - --static struct clk clk_dout_mpll = { -+struct clk clk_dout_mpll = { - .name = "dout_mpll", - .id = -1, - .parent = &clk_mout_mpll.clk, -@@ -189,10 +189,10 @@ - }; - - static struct clk *clkset_uhost_list[] = { -- &clk_48m, - &clk_mout_epll.clk, - &clk_dout_mpll, - &clk_fin_epll, -+ &clk_48m, - }; - - static struct clk_sources clkset_uhost = { -@@ -239,12 +239,10 @@ - - rate = clk_round_rate(clk, rate); - div = clk_get_rate(clk->parent) / rate; -- if (div > 16) -- return -EINVAL; - - val = __raw_readl(reg); -- val &= ~(0xf << sclk->shift); -- val |= (div - 1) << sclk->shift; -+ val &= ~sclk->mask; -+ val |= (rate - 1) << sclk->shift; - __raw_writel(val, reg); - - return 0; -@@ -353,7 +351,7 @@ - - static struct clksrc_clk clk_usbhost = { - .clk = { -- .name = "usb-bus-host", -+ .name = "usb-host-bus", - .id = -1, - .ctrlbit = S3C_CLKCON_SCLK_UHOST, - .enable = s3c64xx_sclk_ctrl, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/arm/tools/mach-types linux-2.6.29-rc3.owrt/arch/arm/tools/mach-types ---- linux-2.6.29.owrt/arch/arm/tools/mach-types 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/arm/tools/mach-types 2009-05-10 23:48:28.000000000 +0200 -@@ -12,7 +12,7 @@ - # - # http://www.arm.linux.org.uk/developer/machines/?action=new - # --# Last update: Thu Mar 12 18:01:45 2009 -+# Last update: Sun Nov 30 16:39:36 2008 - # - # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number - # -@@ -1811,7 +1811,7 @@ - jade MACH_JADE JADE 1821 - ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 - gprisc3 MACH_GPRISC3 GPRISC3 1823 --stamp9g20 MACH_STAMP9G20 STAMP9G20 1824 -+stamp9260 MACH_STAMP9260 STAMP9260 1824 - smdk6430 MACH_SMDK6430 SMDK6430 1825 - smdkc100 MACH_SMDKC100 SMDKC100 1826 - tavorevb MACH_TAVOREVB TAVOREVB 1827 -@@ -1993,134 +1993,4 @@ - benzina MACH_BENZINA BENZINA 2003 - blaze MACH_BLAZE BLAZE 2004 - linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 --htckovsky MACH_HTCVENUS HTCVENUS 2006 --sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007 --hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008 --sapphira MACH_SAPPHIRA SAPPHIRA 2009 --dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010 --armbox MACH_ARMBOX ARMBOX 2011 --harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012 --ribaldo MACH_RIBALDO RIBALDO 2013 --agora MACH_AGORA AGORA 2014 --omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015 --a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016 --usg2410 MACH_USG2410 USG2410 2017 --pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018 --mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019 --topas910 MACH_TOPAS910 TOPAS910 2020 --hyena MACH_HYENA HYENA 2021 --pospax MACH_POSPAX POSPAX 2022 --hdl_gx MACH_HDL_GX HDL_GX 2023 --ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024 --ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025 --crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026 --egauge2 MACH_EGAUGE2 EGAUGE2 2027 --didj MACH_DIDJ DIDJ 2028 --m_s3c2443 MACH_MEISTER MEISTER 2029 --htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030 --cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031 --smdk6440 MACH_SMDK6440 SMDK6440 2032 --omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033 --ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034 --pvg610_100 MACH_PVG610 PVG610 2035 --hprw6815 MACH_HPRW6815 HPRW6815 2036 --omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037 --nas4220b MACH_NAS4220B NAS4220B 2038 --htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039 --htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040 --scaler MACH_SCALER SCALER 2041 --zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042 --aspenite MACH_ASPENITE ASPENITE 2043 --teton MACH_TETON TETON 2044 --ttc_dkb MACH_TTC_DKB TTC_DKB 2045 --bishop2 MACH_BISHOP2 BISHOP2 2046 --ippv5 MACH_IPPV5 IPPV5 2047 --farm926 MACH_FARM926 FARM926 2048 --mmccpu MACH_MMCCPU MMCCPU 2049 --sgmsfl MACH_SGMSFL SGMSFL 2050 --tt8000 MACH_TT8000 TT8000 2051 --zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052 --mptc MACH_MPTC MPTC 2053 --h6051 MACH_H6051 H6051 2054 --pvg610_101 MACH_PVG610_101 PVG610_101 2055 --stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056 --pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057 --tny_a9260 MACH_TNY_A9260 TNY_A9260 2058 --tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059 --aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060 --dx900 MACH_DX900 DX900 2061 --cpodc2 MACH_CPODC2 CPODC2 2062 --tilt_8925 MACH_TILT_8925 TILT_8925 2063 --davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064 --swordfish MACH_SWORDFISH SWORDFISH 2065 --corvus MACH_CORVUS CORVUS 2066 --taurus MACH_TAURUS TAURUS 2067 --axm MACH_AXM AXM 2068 --axc MACH_AXC AXC 2069 --baby MACH_BABY BABY 2070 --mp200 MACH_MP200 MP200 2071 --pcm043 MACH_PCM043 PCM043 2072 --hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073 --kbk9g20 MACH_KBK9G20 KBK9G20 2074 --adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075 --avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076 --suc82x MACH_SUC SUC 2077 --at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078 --mendoza MACH_MENDOZA MENDOZA 2079 --kira MACH_KIRA KIRA 2080 --mx1hbm MACH_MX1HBM MX1HBM 2081 --quatro43xx MACH_QUATRO43XX QUATRO43XX 2082 --quatro4230 MACH_QUATRO4230 QUATRO4230 2083 --nsb400 MACH_NSB400 NSB400 2084 --drp255 MACH_DRP255 DRP255 2085 --thoth MACH_THOTH THOTH 2086 --firestone MACH_FIRESTONE FIRESTONE 2087 --asusp750 MACH_ASUSP750 ASUSP750 2088 --ctera_dl MACH_CTERA_DL CTERA_DL 2089 --socr MACH_SOCR SOCR 2090 --htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091 --heroc MACH_HEROC HEROC 2092 --zeno6800 MACH_ZENO6800 ZENO6800 2093 --sc2mcs MACH_SC2MCS SC2MCS 2094 --gene100 MACH_GENE100 GENE100 2095 --as353x MACH_AS353X AS353X 2096 --sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 --at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098 --mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099 --cc9200 MACH_CC9200 CC9200 2100 --sm9200 MACH_SM9200 SM9200 2101 --tp9200 MACH_TP9200 TP9200 2102 --snapperdv MACH_SNAPPERDV SNAPPERDV 2103 --avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 --avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105 --omap3axon MACH_OMAP3AXON OMAP3AXON 2106 --ma8xx MACH_MA8XX MA8XX 2107 --mp201ek MACH_MP201EK MP201EK 2108 --davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109 --mpa1600 MACH_MPA1600 MPA1600 2110 --pelco_troy MACH_PELCO_TROY PELCO_TROY 2111 --nsb667 MACH_NSB667 NSB667 2112 --rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113 --twocom MACH_TWOCOM TWOCOM 2114 --ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115 --hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116 --afeusb MACH_AFEUSB AFEUSB 2117 --t830 MACH_T830 T830 2118 --spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119 --om_3d7k MACH_OM_3D7K OM_3D7K 2120 --picocom2 MACH_PICOCOM2 PICOCOM2 2121 --uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122 --uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123 --cherry MACH_CHERRY CHERRY 2124 --mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 --s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126 --tx37 MACH_TX37 TX37 2127 --sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128 --benzglb MACH_BENZGLB BENZGLB 2129 --benztd MACH_BENZTD BENZTD 2130 --cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131 --solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132 --mx27wallace MACH_MX27WALLACE MX27WALLACE 2133 --fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134 --rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 --smallogger MACH_SMALLOGGER SMALLOGGER 2136 -+htcvenus MACH_HTCVENUS HTCVENUS 2006 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/avr32/mach-at32ap/include/mach/board.h linux-2.6.29-rc3.owrt/arch/avr32/mach-at32ap/include/mach/board.h ---- linux-2.6.29.owrt/arch/avr32/mach-at32ap/include/mach/board.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/avr32/mach-at32ap/include/mach/board.h 2009-05-10 23:48:28.000000000 +0200 -@@ -116,7 +116,6 @@ - int enable_pin; /* chip enable */ - int det_pin; /* card detect */ - int rdy_pin; /* ready/busy */ -- u8 rdy_pin_active_low; /* rdy_pin value is inverted */ - u8 ale; /* address line number connected to ALE */ - u8 cle; /* address line number connected to CLE */ - u8 bus_width_16; /* buswidth is 16 bit */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/bfin_sport.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/bfin_sport.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/bfin_sport.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/bfin_sport.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,9 +1,30 @@ - /* -- * bfin_sport.h - userspace header for bfin sport driver -+ * File: include/asm-blackfin/bfin_sport.h -+ * Based on: -+ * Author: Roy Huang (roy.huang@analog.com) - * -- * Copyright 2004-2008 Analog Devices Inc. -+ * Created: Thu Aug. 24 2006 -+ * Description: - * -- * Licensed under the GPL-2 or later. -+ * Modified: -+ * Copyright 2004-2006 Analog Devices Inc. -+ * -+ * Bugs: Enter bugs at http://blackfin.uclinux.org/ -+ * -+ * 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, see the file COPYING, or write -+ * to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - - #ifndef __BFIN_SPORT_H__ -@@ -21,10 +42,11 @@ - #define NORM_FORMAT 0x0 - #define ALAW_FORMAT 0x2 - #define ULAW_FORMAT 0x3 -+struct sport_register; - - /* Function driver which use sport must initialize the structure */ - struct sport_config { -- /* TDM (multichannels), I2S or other mode */ -+ /*TDM (multichannels), I2S or other mode */ - unsigned int mode:3; - - /* if TDM mode is selected, channels must be set */ -@@ -50,18 +72,12 @@ - int serial_clk; - int fsync_clk; - -- unsigned int data_format:2; /* Normal, u-law or a-law */ -+ unsigned int data_format:2; /*Normal, u-law or a-law */ - - int word_len; /* How length of the word in bits, 3-32 bits */ - int dma_enabled; - }; - --/* Userspace interface */ --#define SPORT_IOC_MAGIC 'P' --#define SPORT_IOC_CONFIG _IOWR('P', 0x01, struct sport_config) -- --#ifdef __KERNEL__ -- - struct sport_register { - unsigned short tcr1; - unsigned short reserved0; -@@ -101,6 +117,9 @@ - unsigned long mrcs3; - }; - -+#define SPORT_IOC_MAGIC 'P' -+#define SPORT_IOC_CONFIG _IOWR('P', 0x01, struct sport_config) -+ - struct sport_dev { - struct cdev cdev; /* Char device structure */ - -@@ -130,8 +149,6 @@ - struct sport_config config; - }; - --#endif -- - #define SPORT_TCR1 0 - #define SPORT_TCR2 1 - #define SPORT_TCLKDIV 2 -@@ -152,4 +169,4 @@ - #define SPORT_MRCS2 22 - #define SPORT_MRCS3 23 - --#endif -+#endif /*__BFIN_SPORT_H__*/ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/checksum.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/checksum.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/checksum.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/checksum.h 2009-05-10 23:48:28.000000000 +0200 -@@ -63,23 +63,23 @@ - csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, - unsigned short proto, __wsum sum) - { -- unsigned int carry; - -- __asm__ ("%0 = %0 + %2;\n\t" -- "CC = AC0;\n\t" -- "%1 = CC;\n\t" -- "%0 = %0 + %1;\n\t" -- "%0 = %0 + %3;\n\t" -- "CC = AC0;\n\t" -- "%1 = CC;\n\t" -- "%0 = %0 + %1;\n\t" -- "%0 = %0 + %4;\n\t" -- "CC = AC0;\n\t" -- "%1 = CC;\n\t" -- "%0 = %0 + %1;\n\t" -- : "=d" (sum), "=&d" (carry) -- : "d" (daddr), "d" (saddr), "d" ((len + proto) << 8), "0"(sum) -- : "CC"); -+ __asm__ ("%0 = %0 + %1;\n\t" -+ "CC = AC0;\n\t" -+ "if !CC jump 4;\n\t" -+ "%0 = %0 + %4;\n\t" -+ "%0 = %0 + %2;\n\t" -+ "CC = AC0;\n\t" -+ "if !CC jump 4;\n\t" -+ "%0 = %0 + %4;\n\t" -+ "%0 = %0 + %3;\n\t" -+ "CC = AC0;\n\t" -+ "if !CC jump 4;\n\t" -+ "%0 = %0 + %4;\n\t" -+ "NOP;\n\t" -+ : "=d" (sum) -+ : "d" (daddr), "d" (saddr), "d" ((ntohs(len)<<16)+proto*256), "d" (1), "0"(sum) -+ : "CC"); - - return (sum); - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/delay.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/delay.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/delay.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/delay.h 2009-05-10 23:48:28.000000000 +0200 -@@ -13,7 +13,29 @@ - - static inline void __delay(unsigned long loops) - { --__asm__ __volatile__ ( -+ if (ANOMALY_05000312) { -+ /* Interrupted loads to loop registers -> bad */ -+ unsigned long tmp; -+ __asm__ __volatile__( -+ "[--SP] = LC0;" -+ "[--SP] = LT0;" -+ "[--SP] = LB0;" -+ "LSETUP (1f,1f) LC0 = %1;" -+ "1: NOP;" -+ /* We take advantage of the fact that LC0 is 0 at -+ * the end of the loop. Otherwise we'd need some -+ * NOPs after the CLI here. -+ */ -+ "CLI %0;" -+ "LB0 = [SP++];" -+ "LT0 = [SP++];" -+ "LC0 = [SP++];" -+ "STI %0;" -+ : "=d" (tmp) -+ : "a" (loops) -+ ); -+ } else -+ __asm__ __volatile__ ( - "LSETUP(1f, 1f) LC0 = %0;" - "1: NOP;" - : -@@ -25,15 +47,16 @@ - #include /* needed for HZ */ - - /* -- * close approximation borrowed from m68knommu to avoid 64-bit math -+ * Use only for very small delays ( < 1 msec). Should probably use a -+ * lookup table, really, as the multiplications take much too long with -+ * short delays. This is a "reasonable" implementation, though (and the -+ * first constant multiplications gets optimized away if the delay is -+ * a constant) - */ -- --#define HZSCALE (268435456 / (1000000/HZ)) -- - static inline void udelay(unsigned long usecs) - { - extern unsigned long loops_per_jiffy; -- __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6); -+ __delay(usecs * loops_per_jiffy / (1000000 / HZ)); - } - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/gpio.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/gpio.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/gpio.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/gpio.h 2009-05-10 23:48:28.000000000 +0200 -@@ -27,6 +27,60 @@ - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -+/* -+* Number BF537/6/4 BF561 BF533/2/1 -+* BF527/5/2 -+* -+* GPIO_0 PF0 PF0 PF0 -+* GPIO_1 PF1 PF1 PF1 -+* GPIO_2 PF2 PF2 PF2 -+* GPIO_3 PF3 PF3 PF3 -+* GPIO_4 PF4 PF4 PF4 -+* GPIO_5 PF5 PF5 PF5 -+* GPIO_6 PF6 PF6 PF6 -+* GPIO_7 PF7 PF7 PF7 -+* GPIO_8 PF8 PF8 PF8 -+* GPIO_9 PF9 PF9 PF9 -+* GPIO_10 PF10 PF10 PF10 -+* GPIO_11 PF11 PF11 PF11 -+* GPIO_12 PF12 PF12 PF12 -+* GPIO_13 PF13 PF13 PF13 -+* GPIO_14 PF14 PF14 PF14 -+* GPIO_15 PF15 PF15 PF15 -+* GPIO_16 PG0 PF16 -+* GPIO_17 PG1 PF17 -+* GPIO_18 PG2 PF18 -+* GPIO_19 PG3 PF19 -+* GPIO_20 PG4 PF20 -+* GPIO_21 PG5 PF21 -+* GPIO_22 PG6 PF22 -+* GPIO_23 PG7 PF23 -+* GPIO_24 PG8 PF24 -+* GPIO_25 PG9 PF25 -+* GPIO_26 PG10 PF26 -+* GPIO_27 PG11 PF27 -+* GPIO_28 PG12 PF28 -+* GPIO_29 PG13 PF29 -+* GPIO_30 PG14 PF30 -+* GPIO_31 PG15 PF31 -+* GPIO_32 PH0 PF32 -+* GPIO_33 PH1 PF33 -+* GPIO_34 PH2 PF34 -+* GPIO_35 PH3 PF35 -+* GPIO_36 PH4 PF36 -+* GPIO_37 PH5 PF37 -+* GPIO_38 PH6 PF38 -+* GPIO_39 PH7 PF39 -+* GPIO_40 PH8 PF40 -+* GPIO_41 PH9 PF41 -+* GPIO_42 PH10 PF42 -+* GPIO_43 PH11 PF43 -+* GPIO_44 PH12 PF44 -+* GPIO_45 PH13 PF45 -+* GPIO_46 PH14 PF46 -+* GPIO_47 PH15 PF47 -+*/ -+ - #ifndef __ARCH_BLACKFIN_GPIO_H__ - #define __ARCH_BLACKFIN_GPIO_H__ - -@@ -241,6 +295,10 @@ - int bfin_gpio_get_value(unsigned gpio); - void bfin_gpio_set_value(unsigned gpio, int value); - -+#ifndef BF548_FAMILY -+#define bfin_gpio_set_value(gpio, value) set_gpio_data(gpio, value) -+#endif -+ - #ifdef CONFIG_GPIOLIB - #include /* cansleep wrappers */ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/ipipe_base.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/ipipe_base.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/ipipe_base.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/ipipe_base.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,5 +1,5 @@ - /* -*- linux-c -*- -- * include/asm-blackfin/ipipe_base.h -+ * include/asm-blackfin/_baseipipe.h - * - * Copyright (C) 2007 Philippe Gerum. - * -@@ -27,9 +27,8 @@ - #define IPIPE_NR_XIRQS NR_IRQS - #define IPIPE_IRQ_ISHIFT 5 /* 2^5 for 32bits arch. */ - --/* Blackfin-specific, per-cpu pipeline status */ --#define IPIPE_SYNCDEFER_FLAG 15 --#define IPIPE_SYNCDEFER_MASK (1L << IPIPE_SYNCDEFER_MASK) -+/* Blackfin-specific, global domain flags */ -+#define IPIPE_ROOTLOCK_FLAG 1 /* Lock pipeline for root */ - - /* Blackfin traps -- i.e. exception vector numbers */ - #define IPIPE_NR_FAULTS 52 /* We leave a gap after VEC_ILL_RES. */ -@@ -49,6 +48,11 @@ - - #ifndef __ASSEMBLY__ - -+#include -+ -+extern int test_bit(int nr, const void *addr); -+ -+ - extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */ - - static inline void __ipipe_stall_root(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/ipipe.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/ipipe.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/ipipe.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/ipipe.h 2009-05-10 23:48:28.000000000 +0200 -@@ -35,9 +35,9 @@ - #include - #include - --#define IPIPE_ARCH_STRING "1.9-00" -+#define IPIPE_ARCH_STRING "1.8-00" - #define IPIPE_MAJOR_NUMBER 1 --#define IPIPE_MINOR_NUMBER 9 -+#define IPIPE_MINOR_NUMBER 8 - #define IPIPE_PATCH_NUMBER 0 - - #ifdef CONFIG_SMP -@@ -83,9 +83,9 @@ - "%2 = CYCLES2\n" \ - "CC = %2 == %0\n" \ - "if ! CC jump 1b\n" \ -- : "=d,a" (((unsigned long *)&t)[1]), \ -- "=d,a" (((unsigned long *)&t)[0]), \ -- "=d,a" (__cy2) \ -+ : "=r" (((unsigned long *)&t)[1]), \ -+ "=r" (((unsigned long *)&t)[0]), \ -+ "=r" (__cy2) \ - : /*no input*/ : "CC"); \ - t; \ - }) -@@ -118,40 +118,35 @@ - - #define __ipipe_disable_irq(irq) (irq_desc[irq].chip->mask(irq)) - --static inline int __ipipe_check_tickdev(const char *devname) --{ -- return 1; --} -+#define __ipipe_lock_root() \ -+ set_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags) - --static inline void __ipipe_lock_root(void) --{ -- set_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status)); --} -- --static inline void __ipipe_unlock_root(void) --{ -- clear_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status)); --} -+#define __ipipe_unlock_root() \ -+ clear_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags) - - void __ipipe_enable_pipeline(void); - - #define __ipipe_hook_critical_ipi(ipd) do { } while (0) - --#define __ipipe_sync_pipeline ___ipipe_sync_pipeline --void ___ipipe_sync_pipeline(unsigned long syncmask); -+#define __ipipe_sync_pipeline(syncmask) \ -+ do { \ -+ struct ipipe_domain *ipd = ipipe_current_domain; \ -+ if (likely(ipd != ipipe_root_domain || !test_bit(IPIPE_ROOTLOCK_FLAG, &ipd->flags))) \ -+ __ipipe_sync_stage(syncmask); \ -+ } while (0) - - void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs); - - int __ipipe_get_irq_priority(unsigned irq); - -+int __ipipe_get_irqthread_priority(unsigned irq); -+ - void __ipipe_stall_root_raw(void); - - void __ipipe_unstall_root_raw(void); - - void __ipipe_serial_debug(const char *fmt, ...); - --asmlinkage void __ipipe_call_irqtail(unsigned long addr); -- - DECLARE_PER_CPU(struct pt_regs, __ipipe_tick_regs); - - extern unsigned long __ipipe_core_clock; -@@ -167,25 +162,42 @@ - - #define __ipipe_run_irqtail() /* Must be a macro */ \ - do { \ -+ asmlinkage void __ipipe_call_irqtail(void); \ - unsigned long __pending; \ -- CSYNC(); \ -+ CSYNC(); \ - __pending = bfin_read_IPEND(); \ - if (__pending & 0x8000) { \ - __pending &= ~0x8010; \ - if (__pending && (__pending & (__pending - 1)) == 0) \ -- __ipipe_call_irqtail(__ipipe_irq_tail_hook); \ -+ __ipipe_call_irqtail(); \ - } \ - } while (0) - - #define __ipipe_run_isr(ipd, irq) \ - do { \ - if (ipd == ipipe_root_domain) { \ -- local_irq_enable_hw(); \ -- if (ipipe_virtual_irq_p(irq)) \ -+ /* \ -+ * Note: the I-pipe implements a threaded interrupt model on \ -+ * this arch for Linux external IRQs. The interrupt handler we \ -+ * call here only wakes up the associated IRQ thread. \ -+ */ \ -+ if (ipipe_virtual_irq_p(irq)) { \ -+ /* No irqtail here; virtual interrupts have no effect \ -+ on IPEND so there is no need for processing \ -+ deferral. */ \ -+ local_irq_enable_nohead(ipd); \ - ipd->irqs[irq].handler(irq, ipd->irqs[irq].cookie); \ -- else \ -+ local_irq_disable_nohead(ipd); \ -+ } else \ -+ /* \ -+ * No need to run the irqtail here either; \ -+ * we can't be preempted by hw IRQs, so \ -+ * non-Linux IRQs cannot stack over the short \ -+ * thread wakeup code. Which in turn means \ -+ * that no irqtail condition could be pending \ -+ * for domains above Linux in the pipeline. \ -+ */ \ - ipd->irqs[irq].handler(irq, &__raw_get_cpu_var(__ipipe_tick_regs)); \ -- local_irq_disable_hw(); \ - } else { \ - __clear_bit(IPIPE_SYNC_FLAG, &ipipe_cpudom_var(ipd, status)); \ - local_irq_enable_nohead(ipd); \ -@@ -205,24 +217,42 @@ - - int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc); - --#ifdef CONFIG_GENERIC_CLOCKEVENTS --#define IRQ_SYSTMR IRQ_CORETMR --#define IRQ_PRIOTMR IRQ_CORETMR --#else -+#define IS_SYSIRQ(irq) ((irq) > IRQ_CORETMR && (irq) <= SYS_IRQS) -+#define IS_GPIOIRQ(irq) ((irq) >= GPIO_IRQ_BASE && (irq) < NR_IRQS) -+ - #define IRQ_SYSTMR IRQ_TIMER0 - #define IRQ_PRIOTMR CONFIG_IRQ_TIMER0 --#endif - --#ifdef CONFIG_BF561 -+#if defined(CONFIG_BF531) || defined(CONFIG_BF532) || defined(CONFIG_BF533) -+#define PRIO_GPIODEMUX(irq) CONFIG_PFA -+#elif defined(CONFIG_BF534) || defined(CONFIG_BF536) || defined(CONFIG_BF537) -+#define PRIO_GPIODEMUX(irq) CONFIG_IRQ_PROG_INTA -+#elif defined(CONFIG_BF52x) -+#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PORTF_INTA ? CONFIG_IRQ_PORTF_INTA : \ -+ (irq) == IRQ_PORTG_INTA ? CONFIG_IRQ_PORTG_INTA : \ -+ (irq) == IRQ_PORTH_INTA ? CONFIG_IRQ_PORTH_INTA : \ -+ -1) -+#elif defined(CONFIG_BF561) -+#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PROG0_INTA ? CONFIG_IRQ_PROG0_INTA : \ -+ (irq) == IRQ_PROG1_INTA ? CONFIG_IRQ_PROG1_INTA : \ -+ (irq) == IRQ_PROG2_INTA ? CONFIG_IRQ_PROG2_INTA : \ -+ -1) - #define bfin_write_TIMER_DISABLE(val) bfin_write_TMRS8_DISABLE(val) - #define bfin_write_TIMER_ENABLE(val) bfin_write_TMRS8_ENABLE(val) - #define bfin_write_TIMER_STATUS(val) bfin_write_TMRS8_STATUS(val) - #define bfin_read_TIMER_STATUS() bfin_read_TMRS8_STATUS() - #elif defined(CONFIG_BF54x) -+#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PINT0 ? CONFIG_IRQ_PINT0 : \ -+ (irq) == IRQ_PINT1 ? CONFIG_IRQ_PINT1 : \ -+ (irq) == IRQ_PINT2 ? CONFIG_IRQ_PINT2 : \ -+ (irq) == IRQ_PINT3 ? CONFIG_IRQ_PINT3 : \ -+ -1) - #define bfin_write_TIMER_DISABLE(val) bfin_write_TIMER_DISABLE0(val) - #define bfin_write_TIMER_ENABLE(val) bfin_write_TIMER_ENABLE0(val) - #define bfin_write_TIMER_STATUS(val) bfin_write_TIMER_STATUS0(val) - #define bfin_read_TIMER_STATUS(val) bfin_read_TIMER_STATUS0(val) -+#else -+# error "no PRIO_GPIODEMUX() for this part" - #endif - - #define __ipipe_root_tick_p(regs) ((regs->ipend & 0x10) != 0) -@@ -245,6 +275,4 @@ - - #endif /* !CONFIG_IPIPE */ - --#define ipipe_update_tick_evtdev(evtdev) do { } while (0) -- - #endif /* !__ASM_BLACKFIN_IPIPE_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/irq.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/irq.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/irq.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/irq.h 2009-05-10 23:48:28.000000000 +0200 -@@ -61,38 +61,20 @@ - #define raw_irqs_disabled_flags(flags) (!irqs_enabled_from_flags_hw(flags)) - #define local_test_iflag_hw(x) irqs_enabled_from_flags_hw(x) - --#define local_save_flags(x) \ -- do { \ -- (x) = __ipipe_test_root() ? \ -- __all_masked_irq_flags : bfin_irq_flags; \ -- barrier(); \ -- } while (0) -- --#define local_irq_save(x) \ -- do { \ -- (x) = __ipipe_test_and_stall_root() ? \ -+#define local_save_flags(x) \ -+ do { \ -+ (x) = __ipipe_test_root() ? \ - __all_masked_irq_flags : bfin_irq_flags; \ -- barrier(); \ - } while (0) - --static inline void local_irq_restore(unsigned long x) --{ -- barrier(); -- __ipipe_restore_root(x == __all_masked_irq_flags); --} -- --#define local_irq_disable() \ -- do { \ -- __ipipe_stall_root(); \ -- barrier(); \ -+#define local_irq_save(x) \ -+ do { \ -+ (x) = __ipipe_test_and_stall_root(); \ - } while (0) - --static inline void local_irq_enable(void) --{ -- barrier(); -- __ipipe_unstall_root(); --} -- -+#define local_irq_restore(x) __ipipe_restore_root(x) -+#define local_irq_disable() __ipipe_stall_root() -+#define local_irq_enable() __ipipe_unstall_root() - #define irqs_disabled() __ipipe_test_root() - - #define local_save_flags_hw(x) \ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/Kbuild linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/Kbuild ---- linux-2.6.29.owrt/arch/blackfin/include/asm/Kbuild 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/Kbuild 2009-05-10 23:48:28.000000000 +0200 -@@ -1,4 +1,3 @@ - include include/asm-generic/Kbuild.asm - --unifdef-y += bfin_sport.h - unifdef-y += fixed_code.h -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/kgdb.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/kgdb.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/kgdb.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/kgdb.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,8 +1,32 @@ --/* Blackfin KGDB header -+/* -+ * File: include/asm-blackfin/kgdb.h -+ * Based on: -+ * Author: Sonic Zhang -+ * -+ * Created: -+ * Description: -+ * -+ * Rev: $Id: kgdb_bfin_linux-2.6.x.patch 4934 2007-02-13 09:32:11Z sonicz $ -+ * -+ * Modified: -+ * Copyright 2005-2006 Analog Devices Inc. -+ * -+ * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright 2005-2009 Analog Devices Inc. -+ * 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. - * -- * Licensed under the GPL-2 or later. -+ * 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, see the file COPYING, or write -+ * to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - - #ifndef __ASM_BLACKFIN_KGDB_H__ -@@ -13,18 +37,17 @@ - /* gdb locks */ - #define KGDB_MAX_NO_CPUS 8 - --/* -- * BUFMAX defines the maximum number of characters in inbound/outbound buffers. -- * At least NUMREGBYTES*2 are needed for register packets. -- * Longer buffer is needed to list all threads. -- */ -+/************************************************************************/ -+/* BUFMAX defines the maximum number of characters in inbound/outbound buffers*/ -+/* at least NUMREGBYTES*2 are needed for register packets */ -+/* Longer buffer is needed to list all threads */ - #define BUFMAX 2048 - - /* -- * Note that this register image is different from -- * the register image that Linux produces at interrupt time. -- * -- * Linux's register image is defined by struct pt_regs in ptrace.h. -+ * Note that this register image is different from -+ * the register image that Linux produces at interrupt time. -+ * -+ * Linux's register image is defined by struct pt_regs in ptrace.h. - */ - enum regnames { - /* Core Registers */ -@@ -81,14 +104,14 @@ - BFIN_RETX, - BFIN_RETN, - BFIN_RETE, -- -+ - /* Pseudo Registers */ - BFIN_PC, - BFIN_CC, - BFIN_EXTRA1, /* Address of .text section. */ - BFIN_EXTRA2, /* Address of .data section. */ - BFIN_EXTRA3, /* Address of .bss section. */ -- BFIN_FDPIC_EXEC, -+ BFIN_FDPIC_EXEC, - BFIN_FDPIC_INTERP, - - /* MMRs */ -@@ -103,7 +126,7 @@ - - static inline void arch_kgdb_breakpoint(void) - { -- asm("EXCPT 2;"); -+ asm(" EXCPT 2;"); - } - #define BREAK_INSTR_SIZE 2 - #define CACHE_FLUSH_IS_SAFE 1 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/mem_init.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/mem_init.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/mem_init.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/mem_init.h 2009-05-10 23:48:28.000000000 +0200 -@@ -115,7 +115,7 @@ - #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) - - /* Enable SCLK Out */ --#define mem_SDGCTL (SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS) -+#define mem_SDGCTL (0x80000000 | SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS) - #else - #define mem_SDRRC CONFIG_MEM_SDRRC - #define mem_SDGCTL CONFIG_MEM_SDGCTL -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/pda.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/pda.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/pda.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/pda.h 2009-05-10 23:48:28.000000000 +0200 -@@ -59,7 +59,6 @@ - unsigned long icplb_fault_addr; - unsigned long retx; - unsigned long seqstat; -- unsigned int __nmi_count; /* number of times NMI asserted on this CPU */ - }; - - extern struct blackfin_pda cpu_pda[]; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/reboot.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/reboot.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/reboot.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/reboot.h 2009-05-10 23:48:28.000000000 +0200 -@@ -15,6 +15,6 @@ - extern void native_machine_power_off(void); - - /* common reboot workarounds */ --extern void bfin_reset_boot_spi_cs(unsigned short pin); -+extern void bfin_gpio_reset_spi0_ssel1(void); - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/include/asm/thread_info.h linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/thread_info.h ---- linux-2.6.29.owrt/arch/blackfin/include/asm/thread_info.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/include/asm/thread_info.h 2009-05-10 23:48:28.000000000 +0200 -@@ -122,7 +122,6 @@ - #define TIF_MEMDIE 4 - #define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ - #define TIF_FREEZE 6 /* is freezing for suspend */ --#define TIF_IRQ_SYNC 7 /* sync pipeline stage */ - - /* as above, but as bit values */ - #define _TIF_SYSCALL_TRACE (1< - #include - #include -@@ -66,61 +119,62 @@ - #define AWA_DUMMY_READ(...) do { } while (0) - #endif - --static struct gpio_port_t * const gpio_array[] = { - #if defined(BF533_FAMILY) || defined(BF538_FAMILY) -+static struct gpio_port_t *gpio_bankb[] = { - (struct gpio_port_t *) FIO_FLAG_D, --#elif defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) -+}; -+#endif -+ -+#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) -+static struct gpio_port_t *gpio_bankb[] = { - (struct gpio_port_t *) PORTFIO, - (struct gpio_port_t *) PORTGIO, - (struct gpio_port_t *) PORTHIO, --#elif defined(BF561_FAMILY) -- (struct gpio_port_t *) FIO0_FLAG_D, -- (struct gpio_port_t *) FIO1_FLAG_D, -- (struct gpio_port_t *) FIO2_FLAG_D, --#elif defined(BF548_FAMILY) -- (struct gpio_port_t *)PORTA_FER, -- (struct gpio_port_t *)PORTB_FER, -- (struct gpio_port_t *)PORTC_FER, -- (struct gpio_port_t *)PORTD_FER, -- (struct gpio_port_t *)PORTE_FER, -- (struct gpio_port_t *)PORTF_FER, -- (struct gpio_port_t *)PORTG_FER, -- (struct gpio_port_t *)PORTH_FER, -- (struct gpio_port_t *)PORTI_FER, -- (struct gpio_port_t *)PORTJ_FER, --#else --# error no gpio arrays defined --#endif - }; - --#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) --static unsigned short * const port_fer[] = { -+static unsigned short *port_fer[] = { - (unsigned short *) PORTF_FER, - (unsigned short *) PORTG_FER, - (unsigned short *) PORTH_FER, - }; -+#endif - --# if !defined(BF537_FAMILY) --static unsigned short * const port_mux[] = { -+#if defined(BF527_FAMILY) || defined(BF518_FAMILY) -+static unsigned short *port_mux[] = { - (unsigned short *) PORTF_MUX, - (unsigned short *) PORTG_MUX, - (unsigned short *) PORTH_MUX, - }; - - static const --u8 pmux_offset[][16] = { --# if defined(BF527_FAMILY) -- { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */ -- { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */ -- { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */ --# elif defined(BF518_FAMILY) -- { 0, 2, 2, 2, 2, 2, 2, 4, 6, 6, 6, 8, 8, 8, 8, 10 }, /* PORTF */ -- { 0, 0, 0, 2, 4, 6, 6, 6, 8, 10, 10, 12, 14, 14, 14, 14 }, /* PORTG */ -- { 0, 0, 0, 0, 2, 2, 4, 6, 10, 10, 10, 10, 10, 10, 10, 10 }, /* PORTH */ --# endif -+u8 pmux_offset[][16] = -+ {{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */ -+ { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */ -+ { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */ -+ }; -+#endif -+ -+#ifdef BF561_FAMILY -+static struct gpio_port_t *gpio_bankb[] = { -+ (struct gpio_port_t *) FIO0_FLAG_D, -+ (struct gpio_port_t *) FIO1_FLAG_D, -+ (struct gpio_port_t *) FIO2_FLAG_D, - }; --# endif -+#endif - -+#ifdef BF548_FAMILY -+static struct gpio_port_t *gpio_array[] = { -+ (struct gpio_port_t *)PORTA_FER, -+ (struct gpio_port_t *)PORTB_FER, -+ (struct gpio_port_t *)PORTC_FER, -+ (struct gpio_port_t *)PORTD_FER, -+ (struct gpio_port_t *)PORTE_FER, -+ (struct gpio_port_t *)PORTF_FER, -+ (struct gpio_port_t *)PORTG_FER, -+ (struct gpio_port_t *)PORTH_FER, -+ (struct gpio_port_t *)PORTI_FER, -+ (struct gpio_port_t *)PORTJ_FER, -+}; - #endif - - static unsigned short reserved_gpio_map[GPIO_BANK_NUM]; -@@ -134,9 +188,35 @@ - } str_ident[MAX_RESOURCES]; - - #if defined(CONFIG_PM) -+#if defined(CONFIG_BF54x) -+static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM]; -+#else -+static unsigned short wakeup_map[GPIO_BANK_NUM]; -+static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS]; - static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM]; -+ -+#ifdef BF533_FAMILY -+static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB}; -+#endif -+ -+#ifdef BF537_FAMILY -+static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX}; -+#endif -+ -+#ifdef BF538_FAMILY -+static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB}; - #endif - -+#if defined(BF527_FAMILY) || defined(BF518_FAMILY) -+static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB}; -+#endif -+ -+#ifdef BF561_FAMILY -+static unsigned int sic_iwr_irqs[] = {IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB}; -+#endif -+#endif -+#endif /* CONFIG_PM */ -+ - inline int check_gpio(unsigned gpio) - { - #if defined(BF548_FAMILY) -@@ -250,10 +330,9 @@ - {.res = P_SPI0_SSEL3, .offset = 0}, - }; - --static void portmux_setup(unsigned short per) -+static void portmux_setup(unsigned short per, unsigned short function) - { - u16 y, offset, muxreg; -- u16 function = P_FUNCT2MUX(per); - - for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) { - if (port_mux_lut[y].res == per) { -@@ -274,33 +353,30 @@ - } - } - #elif defined(BF548_FAMILY) --inline void portmux_setup(unsigned short per) -+inline void portmux_setup(unsigned short portno, unsigned short function) - { - u32 pmux; -- u16 ident = P_IDENT(per); -- u16 function = P_FUNCT2MUX(per); - -- pmux = gpio_array[gpio_bank(ident)]->port_mux; -+ pmux = gpio_array[gpio_bank(portno)]->port_mux; - -- pmux &= ~(0x3 << (2 * gpio_sub_n(ident))); -- pmux |= (function & 0x3) << (2 * gpio_sub_n(ident)); -+ pmux &= ~(0x3 << (2 * gpio_sub_n(portno))); -+ pmux |= (function & 0x3) << (2 * gpio_sub_n(portno)); - -- gpio_array[gpio_bank(ident)]->port_mux = pmux; -+ gpio_array[gpio_bank(portno)]->port_mux = pmux; - } - --inline u16 get_portmux(unsigned short per) -+inline u16 get_portmux(unsigned short portno) - { - u32 pmux; -- u16 ident = P_IDENT(per); - -- pmux = gpio_array[gpio_bank(ident)]->port_mux; -+ pmux = gpio_array[gpio_bank(portno)]->port_mux; - -- return (pmux >> (2 * gpio_sub_n(ident)) & 0x3); -+ return (pmux >> (2 * gpio_sub_n(portno)) & 0x3); - } - #elif defined(BF527_FAMILY) || defined(BF518_FAMILY) --inline void portmux_setup(unsigned short per) -+inline void portmux_setup(unsigned short portno, unsigned short function) - { -- u16 pmux, ident = P_IDENT(per), function = P_FUNCT2MUX(per); -+ u16 pmux, ident = P_IDENT(portno); - u8 offset = pmux_offset[gpio_bank(ident)][gpio_sub_n(ident)]; - - pmux = *port_mux[gpio_bank(ident)]; -@@ -348,71 +424,90 @@ - unsigned long flags; \ - local_irq_save_hw(flags); \ - if (arg) \ -- gpio_array[gpio_bank(gpio)]->name |= gpio_bit(gpio); \ -+ gpio_bankb[gpio_bank(gpio)]->name |= gpio_bit(gpio); \ - else \ -- gpio_array[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \ -+ gpio_bankb[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \ - AWA_DUMMY_READ(name); \ - local_irq_restore_hw(flags); \ - } \ - EXPORT_SYMBOL(set_gpio_ ## name); - --SET_GPIO(dir) /* set_gpio_dir() */ --SET_GPIO(inen) /* set_gpio_inen() */ --SET_GPIO(polar) /* set_gpio_polar() */ --SET_GPIO(edge) /* set_gpio_edge() */ --SET_GPIO(both) /* set_gpio_both() */ -+SET_GPIO(dir) -+SET_GPIO(inen) -+SET_GPIO(polar) -+SET_GPIO(edge) -+SET_GPIO(both) - - -+#if ANOMALY_05000311 || ANOMALY_05000323 - #define SET_GPIO_SC(name) \ - void set_gpio_ ## name(unsigned gpio, unsigned short arg) \ - { \ - unsigned long flags; \ -- if (ANOMALY_05000311 || ANOMALY_05000323) \ -- local_irq_save_hw(flags); \ -+ local_irq_save_hw(flags); \ - if (arg) \ -- gpio_array[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ -+ gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ - else \ -- gpio_array[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ -- if (ANOMALY_05000311 || ANOMALY_05000323) { \ -- AWA_DUMMY_READ(name); \ -- local_irq_restore_hw(flags); \ -- } \ -+ gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ -+ AWA_DUMMY_READ(name); \ -+ local_irq_restore_hw(flags); \ - } \ - EXPORT_SYMBOL(set_gpio_ ## name); -+#else -+#define SET_GPIO_SC(name) \ -+void set_gpio_ ## name(unsigned gpio, unsigned short arg) \ -+{ \ -+ if (arg) \ -+ gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ -+ else \ -+ gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ -+} \ -+EXPORT_SYMBOL(set_gpio_ ## name); -+#endif - - SET_GPIO_SC(maska) - SET_GPIO_SC(maskb) - SET_GPIO_SC(data) - -+#if ANOMALY_05000311 || ANOMALY_05000323 - void set_gpio_toggle(unsigned gpio) - { - unsigned long flags; -- if (ANOMALY_05000311 || ANOMALY_05000323) -- local_irq_save_hw(flags); -- gpio_array[gpio_bank(gpio)]->toggle = gpio_bit(gpio); -- if (ANOMALY_05000311 || ANOMALY_05000323) { -- AWA_DUMMY_READ(toggle); -- local_irq_restore_hw(flags); -- } -+ local_irq_save_hw(flags); -+ gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio); -+ AWA_DUMMY_READ(toggle); -+ local_irq_restore_hw(flags); -+} -+#else -+void set_gpio_toggle(unsigned gpio) -+{ -+ gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio); - } -+#endif - EXPORT_SYMBOL(set_gpio_toggle); - - - /*Set current PORT date (16-bit word)*/ - -+#if ANOMALY_05000311 || ANOMALY_05000323 - #define SET_GPIO_P(name) \ - void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \ - { \ - unsigned long flags; \ -- if (ANOMALY_05000311 || ANOMALY_05000323) \ -- local_irq_save_hw(flags); \ -- gpio_array[gpio_bank(gpio)]->name = arg; \ -- if (ANOMALY_05000311 || ANOMALY_05000323) { \ -- AWA_DUMMY_READ(name); \ -- local_irq_restore_hw(flags); \ -- } \ -+ local_irq_save_hw(flags); \ -+ gpio_bankb[gpio_bank(gpio)]->name = arg; \ -+ AWA_DUMMY_READ(name); \ -+ local_irq_restore_hw(flags); \ -+} \ -+EXPORT_SYMBOL(set_gpiop_ ## name); -+#else -+#define SET_GPIO_P(name) \ -+void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \ -+{ \ -+ gpio_bankb[gpio_bank(gpio)]->name = arg; \ - } \ - EXPORT_SYMBOL(set_gpiop_ ## name); -+#endif - - SET_GPIO_P(data) - SET_GPIO_P(dir) -@@ -424,21 +519,27 @@ - SET_GPIO_P(maskb) - - /* Get a specific bit */ -+#if ANOMALY_05000311 || ANOMALY_05000323 - #define GET_GPIO(name) \ - unsigned short get_gpio_ ## name(unsigned gpio) \ - { \ - unsigned long flags; \ - unsigned short ret; \ -- if (ANOMALY_05000311 || ANOMALY_05000323) \ -- local_irq_save_hw(flags); \ -- ret = 0x01 & (gpio_array[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \ -- if (ANOMALY_05000311 || ANOMALY_05000323) { \ -- AWA_DUMMY_READ(name); \ -- local_irq_restore_hw(flags); \ -- } \ -+ local_irq_save_hw(flags); \ -+ ret = 0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \ -+ AWA_DUMMY_READ(name); \ -+ local_irq_restore_hw(flags); \ - return ret; \ - } \ - EXPORT_SYMBOL(get_gpio_ ## name); -+#else -+#define GET_GPIO(name) \ -+unsigned short get_gpio_ ## name(unsigned gpio) \ -+{ \ -+ return (0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio))); \ -+} \ -+EXPORT_SYMBOL(get_gpio_ ## name); -+#endif - - GET_GPIO(data) - GET_GPIO(dir) -@@ -451,21 +552,27 @@ - - /*Get current PORT date (16-bit word)*/ - -+#if ANOMALY_05000311 || ANOMALY_05000323 - #define GET_GPIO_P(name) \ - unsigned short get_gpiop_ ## name(unsigned gpio) \ - { \ - unsigned long flags; \ - unsigned short ret; \ -- if (ANOMALY_05000311 || ANOMALY_05000323) \ -- local_irq_save_hw(flags); \ -- ret = (gpio_array[gpio_bank(gpio)]->name); \ -- if (ANOMALY_05000311 || ANOMALY_05000323) { \ -- AWA_DUMMY_READ(name); \ -- local_irq_restore_hw(flags); \ -- } \ -+ local_irq_save_hw(flags); \ -+ ret = (gpio_bankb[gpio_bank(gpio)]->name); \ -+ AWA_DUMMY_READ(name); \ -+ local_irq_restore_hw(flags); \ - return ret; \ - } \ - EXPORT_SYMBOL(get_gpiop_ ## name); -+#else -+#define GET_GPIO_P(name) \ -+unsigned short get_gpiop_ ## name(unsigned gpio) \ -+{ \ -+ return (gpio_bankb[gpio_bank(gpio)]->name);\ -+} \ -+EXPORT_SYMBOL(get_gpiop_ ## name); -+#endif - - GET_GPIO_P(data) - GET_GPIO_P(dir) -@@ -478,26 +585,6 @@ - - - #ifdef CONFIG_PM -- --static unsigned short wakeup_map[GPIO_BANK_NUM]; --static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS]; -- --static const unsigned int sic_iwr_irqs[] = { --#if defined(BF533_FAMILY) -- IRQ_PROG_INTB --#elif defined(BF537_FAMILY) -- IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX --#elif defined(BF538_FAMILY) -- IRQ_PORTF_INTB --#elif defined(BF527_FAMILY) || defined(BF518_FAMILY) -- IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB --#elif defined(BF561_FAMILY) -- IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB --#else --# error no SIC_IWR defined --#endif --}; -- - /*********************************************************** - * - * FUNCTIONS: Blackfin PM Setup API -@@ -582,18 +669,18 @@ - mask = wakeup_map[gpio_bank(i)]; - bank = gpio_bank(i); - -- gpio_bank_saved[bank].maskb = gpio_array[bank]->maskb; -- gpio_array[bank]->maskb = 0; -+ gpio_bank_saved[bank].maskb = gpio_bankb[bank]->maskb; -+ gpio_bankb[bank]->maskb = 0; - - if (mask) { - #if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) - gpio_bank_saved[bank].fer = *port_fer[bank]; - #endif -- gpio_bank_saved[bank].inen = gpio_array[bank]->inen; -- gpio_bank_saved[bank].polar = gpio_array[bank]->polar; -- gpio_bank_saved[bank].dir = gpio_array[bank]->dir; -- gpio_bank_saved[bank].edge = gpio_array[bank]->edge; -- gpio_bank_saved[bank].both = gpio_array[bank]->both; -+ gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; -+ gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; -+ gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; -+ gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; -+ gpio_bank_saved[bank].both = gpio_bankb[bank]->both; - gpio_bank_saved[bank].reserved = - reserved_gpio_map[bank]; - -@@ -613,7 +700,7 @@ - } - - bfin_internal_set_wake(sic_iwr_irqs[bank], 1); -- gpio_array[bank]->maskb_set = wakeup_map[gpio_bank(i)]; -+ gpio_bankb[bank]->maskb_set = wakeup_map[gpio_bank(i)]; - } - } - -@@ -634,18 +721,18 @@ - #if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) - *port_fer[bank] = gpio_bank_saved[bank].fer; - #endif -- gpio_array[bank]->inen = gpio_bank_saved[bank].inen; -- gpio_array[bank]->dir = gpio_bank_saved[bank].dir; -- gpio_array[bank]->polar = gpio_bank_saved[bank].polar; -- gpio_array[bank]->edge = gpio_bank_saved[bank].edge; -- gpio_array[bank]->both = gpio_bank_saved[bank].both; -+ gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; -+ gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; -+ gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; -+ gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; -+ gpio_bankb[bank]->both = gpio_bank_saved[bank].both; - - reserved_gpio_map[bank] = - gpio_bank_saved[bank].reserved; - bfin_internal_set_wake(sic_iwr_irqs[bank], 0); - } - -- gpio_array[bank]->maskb = gpio_bank_saved[bank].maskb; -+ gpio_bankb[bank]->maskb = gpio_bank_saved[bank].maskb; - } - AWA_DUMMY_READ(maskb); - } -@@ -658,21 +745,21 @@ - bank = gpio_bank(i); - - #if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) -- gpio_bank_saved[bank].fer = *port_fer[bank]; -+ gpio_bank_saved[bank].fer = *port_fer[bank]; - #if defined(BF527_FAMILY) || defined(BF518_FAMILY) -- gpio_bank_saved[bank].mux = *port_mux[bank]; -+ gpio_bank_saved[bank].mux = *port_mux[bank]; - #else -- if (bank == 0) -- gpio_bank_saved[bank].mux = bfin_read_PORT_MUX(); -+ if (bank == 0) -+ gpio_bank_saved[bank].mux = bfin_read_PORT_MUX(); - #endif - #endif -- gpio_bank_saved[bank].data = gpio_array[bank]->data; -- gpio_bank_saved[bank].inen = gpio_array[bank]->inen; -- gpio_bank_saved[bank].polar = gpio_array[bank]->polar; -- gpio_bank_saved[bank].dir = gpio_array[bank]->dir; -- gpio_bank_saved[bank].edge = gpio_array[bank]->edge; -- gpio_bank_saved[bank].both = gpio_array[bank]->both; -- gpio_bank_saved[bank].maska = gpio_array[bank]->maska; -+ gpio_bank_saved[bank].data = gpio_bankb[bank]->data; -+ gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; -+ gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; -+ gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; -+ gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; -+ gpio_bank_saved[bank].both = gpio_bankb[bank]->both; -+ gpio_bank_saved[bank].maska = gpio_bankb[bank]->maska; - } - - AWA_DUMMY_READ(maska); -@@ -683,27 +770,27 @@ - int i, bank; - - for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { -- bank = gpio_bank(i); -+ bank = gpio_bank(i); - - #if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) - #if defined(BF527_FAMILY) || defined(BF518_FAMILY) -- *port_mux[bank] = gpio_bank_saved[bank].mux; -+ *port_mux[bank] = gpio_bank_saved[bank].mux; - #else -- if (bank == 0) -- bfin_write_PORT_MUX(gpio_bank_saved[bank].mux); -+ if (bank == 0) -+ bfin_write_PORT_MUX(gpio_bank_saved[bank].mux); - #endif -- *port_fer[bank] = gpio_bank_saved[bank].fer; -+ *port_fer[bank] = gpio_bank_saved[bank].fer; - #endif -- gpio_array[bank]->inen = gpio_bank_saved[bank].inen; -- gpio_array[bank]->dir = gpio_bank_saved[bank].dir; -- gpio_array[bank]->polar = gpio_bank_saved[bank].polar; -- gpio_array[bank]->edge = gpio_bank_saved[bank].edge; -- gpio_array[bank]->both = gpio_bank_saved[bank].both; -+ gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; -+ gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; -+ gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; -+ gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; -+ gpio_bankb[bank]->both = gpio_bank_saved[bank].both; - -- gpio_array[bank]->data_set = gpio_bank_saved[bank].data -- | gpio_bank_saved[bank].dir; -+ gpio_bankb[bank]->data_set = gpio_bank_saved[bank].data -+ | gpio_bank_saved[bank].dir; - -- gpio_array[bank]->maska = gpio_bank_saved[bank].maska; -+ gpio_bankb[bank]->maska = gpio_bank_saved[bank].maska; - } - AWA_DUMMY_READ(maska); - } -@@ -730,12 +817,12 @@ - for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { - bank = gpio_bank(i); - -- gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer; -- gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux; -- gpio_bank_saved[bank].data = gpio_array[bank]->data; -- gpio_bank_saved[bank].data = gpio_array[bank]->data; -- gpio_bank_saved[bank].inen = gpio_array[bank]->inen; -- gpio_bank_saved[bank].dir = gpio_array[bank]->dir_set; -+ gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer; -+ gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux; -+ gpio_bank_saved[bank].data = gpio_array[bank]->port_data; -+ gpio_bank_saved[bank].data = gpio_array[bank]->port_data; -+ gpio_bank_saved[bank].inen = gpio_array[bank]->port_inen; -+ gpio_bank_saved[bank].dir = gpio_array[bank]->port_dir_set; - } - } - -@@ -744,21 +831,21 @@ - int i, bank; - - for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { -- bank = gpio_bank(i); -+ bank = gpio_bank(i); - -- gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux; -- gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer; -- gpio_array[bank]->inen = gpio_bank_saved[bank].inen; -- gpio_array[bank]->dir_set = gpio_bank_saved[bank].dir; -- gpio_array[bank]->data_set = gpio_bank_saved[bank].data -- | gpio_bank_saved[bank].dir; -+ gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux; -+ gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer; -+ gpio_array[bank]->port_inen = gpio_bank_saved[bank].inen; -+ gpio_array[bank]->port_dir_set = gpio_bank_saved[bank].dir; -+ gpio_array[bank]->port_set = gpio_bank_saved[bank].data -+ | gpio_bank_saved[bank].dir; - } - } - #endif - - unsigned short get_gpio_dir(unsigned gpio) - { -- return (0x01 & (gpio_array[gpio_bank(gpio)]->dir_clear >> gpio_sub_n(gpio))); -+ return (0x01 & (gpio_array[gpio_bank(gpio)]->port_dir_clear >> gpio_sub_n(gpio))); - } - EXPORT_SYMBOL(get_gpio_dir); - -@@ -818,7 +905,9 @@ - */ - - #ifdef BF548_FAMILY -- if (!((per & P_MAYSHARE) && get_portmux(per) == P_FUNCT2MUX(per))) { -+ u16 funct = get_portmux(ident); -+ -+ if (!((per & P_MAYSHARE) && (funct == P_FUNCT2MUX(per)))) { - #else - if (!(per & P_MAYSHARE)) { - #endif -@@ -842,7 +931,11 @@ - anyway: - reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident); - -- portmux_setup(per); -+#ifdef BF548_FAMILY -+ portmux_setup(ident, P_FUNCT2MUX(per)); -+#else -+ portmux_setup(per, P_FUNCT2MUX(per)); -+#endif - port_setup(ident, PERIPHERAL_USAGE); - - local_irq_restore_hw(flags); -@@ -884,6 +977,9 @@ - if (!(per & P_DEFINED)) - return; - -+ if (check_gpio(ident) < 0) -+ return; -+ - local_irq_save_hw(flags); - - if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) { -@@ -960,15 +1056,9 @@ - local_irq_restore_hw(flags); - return -EBUSY; - } -- if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) { -+ if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) - printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!" - " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio); -- } --#ifndef BF548_FAMILY -- else { /* Reset POLAR setting when acquiring a gpio for the first time */ -- set_gpio_polar(gpio, 0); -- } --#endif - - reserved_gpio_map[gpio_bank(gpio)] |= gpio_bit(gpio); - set_label(gpio, label); -@@ -988,8 +1078,6 @@ - if (check_gpio(gpio) < 0) - return; - -- might_sleep(); -- - local_irq_save_hw(flags); - - if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) { -@@ -1070,16 +1158,8 @@ - local_irq_restore_hw(flags); - } - --static inline void __bfin_gpio_direction_input(unsigned gpio) --{ --#ifdef BF548_FAMILY -- gpio_array[gpio_bank(gpio)]->dir_clear = gpio_bit(gpio); --#else -- gpio_array[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio); --#endif -- gpio_array[gpio_bank(gpio)]->inen |= gpio_bit(gpio); --} - -+#ifdef BF548_FAMILY - int bfin_gpio_direction_input(unsigned gpio) - { - unsigned long flags; -@@ -1090,85 +1170,125 @@ - } - - local_irq_save_hw(flags); -- __bfin_gpio_direction_input(gpio); -- AWA_DUMMY_READ(inen); -+ gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio); -+ gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio); - local_irq_restore_hw(flags); - - return 0; - } - EXPORT_SYMBOL(bfin_gpio_direction_input); - --void bfin_gpio_irq_prepare(unsigned gpio) -+int bfin_gpio_direction_output(unsigned gpio, int value) - { --#ifdef BF548_FAMILY - unsigned long flags; --#endif - -- port_setup(gpio, GPIO_USAGE); -+ if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { -+ gpio_error(gpio); -+ return -EINVAL; -+ } - --#ifdef BF548_FAMILY - local_irq_save_hw(flags); -- __bfin_gpio_direction_input(gpio); -+ gpio_array[gpio_bank(gpio)]->port_inen &= ~gpio_bit(gpio); -+ gpio_set_value(gpio, value); -+ gpio_array[gpio_bank(gpio)]->port_dir_set = gpio_bit(gpio); - local_irq_restore_hw(flags); --#endif -+ -+ return 0; - } -+EXPORT_SYMBOL(bfin_gpio_direction_output); - - void bfin_gpio_set_value(unsigned gpio, int arg) - { - if (arg) -- gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio); -+ gpio_array[gpio_bank(gpio)]->port_set = gpio_bit(gpio); - else -- gpio_array[gpio_bank(gpio)]->data_clear = gpio_bit(gpio); -+ gpio_array[gpio_bank(gpio)]->port_clear = gpio_bit(gpio); - } - EXPORT_SYMBOL(bfin_gpio_set_value); - --int bfin_gpio_direction_output(unsigned gpio, int value) -+int bfin_gpio_get_value(unsigned gpio) -+{ -+ return (1 & (gpio_array[gpio_bank(gpio)]->port_data >> gpio_sub_n(gpio))); -+} -+EXPORT_SYMBOL(bfin_gpio_get_value); -+ -+void bfin_gpio_irq_prepare(unsigned gpio) - { - unsigned long flags; - -- if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { -- gpio_error(gpio); -- return -EINVAL; -- } -+ port_setup(gpio, GPIO_USAGE); - - local_irq_save_hw(flags); -- -- gpio_array[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio); -- gpio_set_value(gpio, value); --#ifdef BF548_FAMILY -- gpio_array[gpio_bank(gpio)]->dir_set = gpio_bit(gpio); --#else -- gpio_array[gpio_bank(gpio)]->dir |= gpio_bit(gpio); --#endif -- -- AWA_DUMMY_READ(dir); -+ gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio); -+ gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio); - local_irq_restore_hw(flags); -- -- return 0; - } --EXPORT_SYMBOL(bfin_gpio_direction_output); -+ -+#else - - int bfin_gpio_get_value(unsigned gpio) - { --#ifdef BF548_FAMILY -- return (1 & (gpio_array[gpio_bank(gpio)]->data >> gpio_sub_n(gpio))); --#else - unsigned long flags; -+ int ret; - - if (unlikely(get_gpio_edge(gpio))) { -- int ret; - local_irq_save_hw(flags); - set_gpio_edge(gpio, 0); - ret = get_gpio_data(gpio); - set_gpio_edge(gpio, 1); - local_irq_restore_hw(flags); -+ - return ret; - } else - return get_gpio_data(gpio); --#endif - } - EXPORT_SYMBOL(bfin_gpio_get_value); - -+ -+int bfin_gpio_direction_input(unsigned gpio) -+{ -+ unsigned long flags; -+ -+ if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { -+ gpio_error(gpio); -+ return -EINVAL; -+ } -+ -+ local_irq_save_hw(flags); -+ gpio_bankb[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio); -+ gpio_bankb[gpio_bank(gpio)]->inen |= gpio_bit(gpio); -+ AWA_DUMMY_READ(inen); -+ local_irq_restore_hw(flags); -+ -+ return 0; -+} -+EXPORT_SYMBOL(bfin_gpio_direction_input); -+ -+int bfin_gpio_direction_output(unsigned gpio, int value) -+{ -+ unsigned long flags; -+ -+ if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { -+ gpio_error(gpio); -+ return -EINVAL; -+ } -+ -+ local_irq_save_hw(flags); -+ gpio_bankb[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio); -+ -+ if (value) -+ gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio); -+ else -+ gpio_bankb[gpio_bank(gpio)]->data_clear = gpio_bit(gpio); -+ -+ gpio_bankb[gpio_bank(gpio)]->dir |= gpio_bit(gpio); -+ AWA_DUMMY_READ(dir); -+ local_irq_restore_hw(flags); -+ -+ return 0; -+} -+EXPORT_SYMBOL(bfin_gpio_direction_output); -+ - /* If we are booting from SPI and our board lacks a strong enough pull up, - * the core can reset and execute the bootrom faster than the resistor can - * pull the signal logically high. To work around this (common) error in -@@ -1179,15 +1299,23 @@ - * lives here as we need to force all the GPIO states w/out going through - * BUG() checks and such. - */ --void bfin_reset_boot_spi_cs(unsigned short pin) -+void bfin_gpio_reset_spi0_ssel1(void) - { -- unsigned short gpio = P_IDENT(pin); -+ u16 gpio = P_IDENT(P_SPI0_SSEL1); -+ - port_setup(gpio, GPIO_USAGE); -- gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio); -+ gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio); - AWA_DUMMY_READ(data_set); - udelay(1); - } - -+void bfin_gpio_irq_prepare(unsigned gpio) -+{ -+ port_setup(gpio, GPIO_USAGE); -+} -+ -+#endif /*BF548_FAMILY */ -+ - #if defined(CONFIG_PROC_FS) - static int gpio_proc_read(char *buf, char **start, off_t offset, - int len, int *unused_i, void *unused_v) -@@ -1241,7 +1369,11 @@ - - void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value) - { -+#ifdef BF548_FAMILY - return bfin_gpio_set_value(gpio, value); -+#else -+ return set_gpio_data(gpio, value); -+#endif - } - - int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/cplb-mpu/cplbinit.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-mpu/cplbinit.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/cplb-mpu/cplbinit.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-mpu/cplbinit.c 2009-05-10 23:48:28.000000000 +0200 -@@ -63,8 +63,10 @@ - dcplb_tbl[cpu][i_d].addr = 0; - dcplb_tbl[cpu][i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB; - -+#if 0 - icplb_tbl[cpu][i_i].addr = 0; -- icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_1KB; -+ icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_4KB; -+#endif - - /* Cover kernel memory with 4M pages. */ - addr = 0; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/cplb-nompu/cplbinit.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-nompu/cplbinit.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/cplb-nompu/cplbinit.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-nompu/cplbinit.c 2009-05-10 23:48:28.000000000 +0200 -@@ -53,13 +53,9 @@ - - i_d = i_i = 0; - --#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO - /* Set up the zero page. */ - d_tbl[i_d].addr = 0; - d_tbl[i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB; -- i_tbl[i_i].addr = 0; -- i_tbl[i_i++].data = SDRAM_OOPS | PAGE_SIZE_1KB; --#endif - - /* Cover kernel memory with 4M pages. */ - addr = 0; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/cplb-nompu/cplbmgr.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-nompu/cplbmgr.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/cplb-nompu/cplbmgr.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/cplb-nompu/cplbmgr.c 2009-05-10 23:48:28.000000000 +0200 -@@ -163,14 +163,12 @@ - nr_icplb_supv_miss[cpu]++; - - base = 0; -- idx = 0; -- do { -+ for (idx = 0; idx < icplb_nr_bounds; idx++) { - eaddr = icplb_bounds[idx].eaddr; - if (addr < eaddr) - break; - base = eaddr; -- } while (++idx < icplb_nr_bounds); -- -+ } - if (unlikely(idx == icplb_nr_bounds)) - return CPLB_NO_ADDR_MATCH; - -@@ -210,14 +208,12 @@ - nr_dcplb_supv_miss[cpu]++; - - base = 0; -- idx = 0; -- do { -+ for (idx = 0; idx < dcplb_nr_bounds; idx++) { - eaddr = dcplb_bounds[idx].eaddr; - if (addr < eaddr) - break; - base = eaddr; -- } while (++idx < dcplb_nr_bounds); -- -+ } - if (unlikely(idx == dcplb_nr_bounds)) - return CPLB_NO_ADDR_MATCH; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/ipipe.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/ipipe.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/ipipe.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/ipipe.c 2009-05-10 23:48:28.000000000 +0200 -@@ -35,8 +35,14 @@ - #include - #include - -+static int create_irq_threads; -+ - DEFINE_PER_CPU(struct pt_regs, __ipipe_tick_regs); - -+static DEFINE_PER_CPU(unsigned long, pending_irqthread_mask); -+ -+static DEFINE_PER_CPU(int [IVG13 + 1], pending_irq_count); -+ - asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs); - - static void __ipipe_no_irqtail(void); -@@ -87,7 +93,6 @@ - */ - void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs) - { -- struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); - struct ipipe_domain *this_domain, *next_domain; - struct list_head *head, *pos; - int m_ack, s = -1; -@@ -99,6 +104,7 @@ - * interrupt. - */ - m_ack = (regs == NULL || irq == IRQ_SYSTMR || irq == IRQ_CORETMR); -+ - this_domain = ipipe_current_domain; - - if (unlikely(test_bit(IPIPE_STICKY_FLAG, &this_domain->irqs[irq].control))) -@@ -108,28 +114,49 @@ - next_domain = list_entry(head, struct ipipe_domain, p_link); - if (likely(test_bit(IPIPE_WIRED_FLAG, &next_domain->irqs[irq].control))) { - if (!m_ack && next_domain->irqs[irq].acknowledge != NULL) -- next_domain->irqs[irq].acknowledge(irq, irq_to_desc(irq)); -- if (test_bit(IPIPE_SYNCDEFER_FLAG, &p->status)) -- s = __test_and_set_bit(IPIPE_STALL_FLAG, &p->status); -+ next_domain->irqs[irq].acknowledge(irq, irq_desc + irq); -+ if (test_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags)) -+ s = __test_and_set_bit(IPIPE_STALL_FLAG, -+ &ipipe_root_cpudom_var(status)); - __ipipe_dispatch_wired(next_domain, irq); -- goto out; -+ goto finalize; -+ return; - } - } - - /* Ack the interrupt. */ - - pos = head; -+ - while (pos != &__ipipe_pipeline) { - next_domain = list_entry(pos, struct ipipe_domain, p_link); -+ /* -+ * For each domain handling the incoming IRQ, mark it -+ * as pending in its log. -+ */ - if (test_bit(IPIPE_HANDLE_FLAG, &next_domain->irqs[irq].control)) { -+ /* -+ * Domains that handle this IRQ are polled for -+ * acknowledging it by decreasing priority -+ * order. The interrupt must be made pending -+ * _first_ in the domain's status flags before -+ * the PIC is unlocked. -+ */ - __ipipe_set_irq_pending(next_domain, irq); -+ - if (!m_ack && next_domain->irqs[irq].acknowledge != NULL) { -- next_domain->irqs[irq].acknowledge(irq, irq_to_desc(irq)); -+ next_domain->irqs[irq].acknowledge(irq, irq_desc + irq); - m_ack = 1; - } - } -+ -+ /* -+ * If the domain does not want the IRQ to be passed -+ * down the interrupt pipe, exit the loop now. -+ */ - if (!test_bit(IPIPE_PASS_FLAG, &next_domain->irqs[irq].control)) - break; -+ - pos = next_domain->p_link.next; - } - -@@ -139,24 +166,18 @@ - * immediately to the current domain if the interrupt has been - * marked as 'sticky'. This search does not go beyond the - * current domain in the pipeline. We also enforce the -- * additional root stage lock (blackfin-specific). -- */ -- if (test_bit(IPIPE_SYNCDEFER_FLAG, &p->status)) -- s = __test_and_set_bit(IPIPE_STALL_FLAG, &p->status); -+ * additional root stage lock (blackfin-specific). */ - -- /* -- * If the interrupt preempted the head domain, then do not -- * even try to walk the pipeline, unless an interrupt is -- * pending for it. -- */ -- if (test_bit(IPIPE_AHEAD_FLAG, &this_domain->flags) && -- ipipe_head_cpudom_var(irqpend_himask) == 0) -- goto out; -+ if (test_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags)) -+ s = __test_and_set_bit(IPIPE_STALL_FLAG, -+ &ipipe_root_cpudom_var(status)); -+finalize: - - __ipipe_walk_pipeline(head); --out: -+ - if (!s) -- __clear_bit(IPIPE_STALL_FLAG, &p->status); -+ __clear_bit(IPIPE_STALL_FLAG, -+ &ipipe_root_cpudom_var(status)); - } - - int __ipipe_check_root(void) -@@ -166,7 +187,7 @@ - - void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq) - { -- struct irq_desc *desc = irq_to_desc(irq); -+ struct irq_desc *desc = irq_desc + irq; - int prio = desc->ic_prio; - - desc->depth = 0; -@@ -178,7 +199,7 @@ - - void __ipipe_disable_irqdesc(struct ipipe_domain *ipd, unsigned irq) - { -- struct irq_desc *desc = irq_to_desc(irq); -+ struct irq_desc *desc = irq_desc + irq; - int prio = desc->ic_prio; - - if (ipd != &ipipe_root && -@@ -215,18 +236,15 @@ - { - unsigned long flags; - -- /* -- * We need to run the IRQ tail hook whenever we don't -+ /* We need to run the IRQ tail hook whenever we don't - * propagate a syscall to higher domains, because we know that - * important operations might be pending there (e.g. Xenomai -- * deferred rescheduling). -- */ -+ * deferred rescheduling). */ - -- if (regs->orig_p0 < NR_syscalls) { -+ if (!__ipipe_syscall_watched_p(current, regs->orig_p0)) { - void (*hook)(void) = (void (*)(void))__ipipe_irq_tail_hook; - hook(); -- if ((current->flags & PF_EVNOTIFY) == 0) -- return 0; -+ return 0; - } - - /* -@@ -294,46 +312,112 @@ - { - unsigned long flags; - --#ifdef CONFIG_IPIPE_DEBUG - if (irq >= IPIPE_NR_IRQS || - (ipipe_virtual_irq_p(irq) - && !test_bit(irq - IPIPE_VIRQ_BASE, &__ipipe_virtual_irq_map))) - return -EINVAL; --#endif - - local_irq_save_hw(flags); -+ - __ipipe_handle_irq(irq, NULL); -+ - local_irq_restore_hw(flags); - - return 1; - } - --asmlinkage void __ipipe_sync_root(void) -+/* Move Linux IRQ to threads. */ -+ -+static int do_irqd(void *__desc) - { -- unsigned long flags; -+ struct irq_desc *desc = __desc; -+ unsigned irq = desc - irq_desc; -+ int thrprio = desc->thr_prio; -+ int thrmask = 1 << thrprio; -+ int cpu = smp_processor_id(); -+ cpumask_t cpumask; -+ -+ sigfillset(¤t->blocked); -+ current->flags |= PF_NOFREEZE; -+ cpumask = cpumask_of_cpu(cpu); -+ set_cpus_allowed(current, cpumask); -+ ipipe_setscheduler_root(current, SCHED_FIFO, 50 + thrprio); -+ -+ while (!kthread_should_stop()) { -+ local_irq_disable(); -+ if (!(desc->status & IRQ_SCHEDULED)) { -+ set_current_state(TASK_INTERRUPTIBLE); -+resched: -+ local_irq_enable(); -+ schedule(); -+ local_irq_disable(); -+ } -+ __set_current_state(TASK_RUNNING); -+ /* -+ * If higher priority interrupt servers are ready to -+ * run, reschedule immediately. We need this for the -+ * GPIO demux IRQ handler to unmask the interrupt line -+ * _last_, after all GPIO IRQs have run. -+ */ -+ if (per_cpu(pending_irqthread_mask, cpu) & ~(thrmask|(thrmask-1))) -+ goto resched; -+ if (--per_cpu(pending_irq_count[thrprio], cpu) == 0) -+ per_cpu(pending_irqthread_mask, cpu) &= ~thrmask; -+ desc->status &= ~IRQ_SCHEDULED; -+ desc->thr_handler(irq, &__raw_get_cpu_var(__ipipe_tick_regs)); -+ local_irq_enable(); -+ } -+ __set_current_state(TASK_RUNNING); -+ return 0; -+} - -- BUG_ON(irqs_disabled()); -+static void kick_irqd(unsigned irq, void *cookie) -+{ -+ struct irq_desc *desc = irq_desc + irq; -+ int thrprio = desc->thr_prio; -+ int thrmask = 1 << thrprio; -+ int cpu = smp_processor_id(); -+ -+ if (!(desc->status & IRQ_SCHEDULED)) { -+ desc->status |= IRQ_SCHEDULED; -+ per_cpu(pending_irqthread_mask, cpu) |= thrmask; -+ ++per_cpu(pending_irq_count[thrprio], cpu); -+ wake_up_process(desc->thread); -+ } -+} - -- local_irq_save_hw(flags); -+int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc) -+{ -+ if (desc->thread || !create_irq_threads) -+ return 0; - -- clear_thread_flag(TIF_IRQ_SYNC); -+ desc->thread = kthread_create(do_irqd, desc, "IRQ %d", irq); -+ if (desc->thread == NULL) { -+ printk(KERN_ERR "irqd: could not create IRQ thread %d!\n", irq); -+ return -ENOMEM; -+ } - -- if (ipipe_root_cpudom_var(irqpend_himask) != 0) -- __ipipe_sync_pipeline(IPIPE_IRQMASK_ANY); -+ wake_up_process(desc->thread); - -- local_irq_restore_hw(flags); -+ desc->thr_handler = ipipe_root_domain->irqs[irq].handler; -+ ipipe_root_domain->irqs[irq].handler = &kick_irqd; -+ -+ return 0; - } - --void ___ipipe_sync_pipeline(unsigned long syncmask) -+void __init ipipe_init_irq_threads(void) - { -- struct ipipe_domain *ipd = ipipe_current_domain; -+ unsigned irq; -+ struct irq_desc *desc; - -- if (ipd == ipipe_root_domain) { -- if (test_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status))) -- return; -- } -+ create_irq_threads = 1; - -- __ipipe_sync_stage(syncmask); -+ for (irq = 0; irq < NR_IRQS; irq++) { -+ desc = irq_desc + irq; -+ if (desc->action != NULL || -+ (desc->status & IRQ_NOREQUEST) != 0) -+ ipipe_start_irq_thread(irq, desc); -+ } - } - - EXPORT_SYMBOL(show_stack); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/irqchip.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/irqchip.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/irqchip.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/irqchip.c 2009-05-10 23:48:28.000000000 +0200 -@@ -35,7 +35,6 @@ - #include - #include - #include --#include - - static atomic_t irq_err_count; - static spinlock_t irq_controller_lock; -@@ -92,13 +91,8 @@ - seq_putc(p, '\n'); - skip: - spin_unlock_irqrestore(&irq_desc[i].lock, flags); -- } else if (i == NR_IRQS) { -- seq_printf(p, "NMI: "); -- for_each_online_cpu(j) -- seq_printf(p, "%10u ", cpu_pda[j].__nmi_count); -- seq_printf(p, " CORE Non Maskable Interrupt\n"); -+ } else if (i == NR_IRQS) - seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); -- } - return 0; - } - -@@ -144,15 +138,11 @@ - #endif - generic_handle_irq(irq); - --#ifndef CONFIG_IPIPE -- /* -- * If we're the only interrupt running (ignoring IRQ15 which -- * is for syscalls), lower our priority to IRQ14 so that -- * softirqs run at that level. If there's another, -- * lower-level interrupt, irq_exit will defer softirqs to -- * that. If the interrupt pipeline is enabled, we are already -- * running at IRQ14 priority, so we don't need this code. -- */ -+#ifndef CONFIG_IPIPE /* Useless and bugous over the I-pipe: IRQs are threaded. */ -+ /* If we're the only interrupt running (ignoring IRQ15 which is for -+ syscalls), lower our priority to IRQ14 so that softirqs run at -+ that level. If there's another, lower-level interrupt, irq_exit -+ will defer softirqs to that. */ - CSYNC(); - pending = bfin_read_IPEND() & ~0x8000; - other_ints = pending & (pending - 1); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/kgdb_test.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/kgdb_test.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/kgdb_test.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/kgdb_test.c 2009-05-10 23:48:28.000000000 +0200 -@@ -20,7 +20,6 @@ - static char cmdline[256]; - static unsigned long len; - --#ifndef CONFIG_SMP - static int num1 __attribute__((l1_data)); - - void kgdb_l1_test(void) __attribute__((l1_text)); -@@ -33,8 +32,6 @@ - printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1); - return ; - } --#endif -- - #if L2_LENGTH - - static int num2 __attribute__((l2)); -@@ -62,12 +59,10 @@ - static int test_proc_output(char *buf) - { - kgdb_test("hello world!", 12, 0x55, 0x10); --#ifndef CONFIG_SMP - kgdb_l1_test(); --#endif --#if L2_LENGTH -+ #if L2_LENGTH - kgdb_l2_test(); --#endif -+ #endif - - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/Makefile linux-2.6.29-rc3.owrt/arch/blackfin/kernel/Makefile ---- linux-2.6.29.owrt/arch/blackfin/kernel/Makefile 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -21,9 +21,5 @@ - obj-$(CONFIG_CPLB_INFO) += cplbinfo.o - obj-$(CONFIG_MODULES) += module.o - obj-$(CONFIG_KGDB) += kgdb.o --obj-$(CONFIG_KGDB_TESTS) += kgdb_test.o -+obj-$(CONFIG_KGDB_TESTCASE) += kgdb_test.o - obj-$(CONFIG_EARLY_PRINTK) += early_printk.o -- --# the kgdb test puts code into L2 and without linker --# relaxation, we need to force long calls to/from it --CFLAGS_kgdb_test.o := -mlong-calls -O0 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/ptrace.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/ptrace.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/ptrace.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/ptrace.c 2009-05-10 23:48:28.000000000 +0200 -@@ -45,7 +45,6 @@ - #include - #include - #include --#include - #include - - #define TEXT_OFFSET 0 -@@ -241,7 +240,7 @@ - - } else if (addr >= FIXED_CODE_START - && addr + sizeof(tmp) <= FIXED_CODE_END) { -- copy_from_user_page(0, 0, 0, &tmp, (const void *)(addr), sizeof(tmp)); -+ memcpy(&tmp, (const void *)(addr), sizeof(tmp)); - copied = sizeof(tmp); - - } else -@@ -321,7 +320,7 @@ - - } else if (addr >= FIXED_CODE_START - && addr + sizeof(data) <= FIXED_CODE_END) { -- copy_to_user_page(0, 0, 0, (void *)(addr), &data, sizeof(data)); -+ memcpy((void *)(addr), &data, sizeof(data)); - copied = sizeof(data); - - } else -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/reboot.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/reboot.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/reboot.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/reboot.c 2009-05-10 23:48:28.000000000 +0200 -@@ -20,8 +20,8 @@ - * reset while the Core B bit (on dual core parts) is cleared by - * the core reset. - */ --__attribute__ ((__l1_text__, __noreturn__)) --static void bfin_reset(void) -+__attribute__((l1_text)) -+static void _bfin_reset(void) - { - /* Wait for completion of "system" events such as cache line - * line fills so that we avoid infinite stalls later on as -@@ -30,11 +30,7 @@ - */ - __builtin_bfin_ssync(); - -- /* The bootrom checks to see how it was reset and will -- * automatically perform a software reset for us when -- * it starts executing after the core reset. -- */ -- if (ANOMALY_05000353 || ANOMALY_05000386) { -+ while (1) { - /* Initiate System software reset. */ - bfin_write_SWRST(0x7); - -@@ -54,11 +50,6 @@ - /* Clear System software reset */ - bfin_write_SWRST(0); - -- /* The BF526 ROM will crash during reset */ --#if defined(__ADSPBF522__) || defined(__ADSPBF524__) || defined(__ADSPBF526__) -- bfin_read_SWRST(); --#endif -- - /* Wait for the SWRST write to complete. Cannot rely on SSYNC - * though as the System state is all reset now. - */ -@@ -69,11 +60,22 @@ - : "a" (15 * 1) - : "LC1", "LB1", "LT1" - ); -- } - -- while (1) - /* Issue core reset */ - asm("raise 1"); -+ } -+} -+ -+static void bfin_reset(void) -+{ -+ if (ANOMALY_05000353 || ANOMALY_05000386) -+ _bfin_reset(); -+ else -+ /* the bootrom checks to see how it was reset and will -+ * automatically perform a software reset for us when -+ * it starts executing boot -+ */ -+ asm("raise 1;"); - } - - __attribute__((weak)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/setup.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/setup.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/setup.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/setup.c 2009-05-10 23:48:28.000000000 +0200 -@@ -60,7 +60,7 @@ - #define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */ - #define BFIN_MEMMAP_RAM 1 - #define BFIN_MEMMAP_RESERVED 2 --static struct bfin_memmap { -+struct bfin_memmap { - int nr_map; - struct bfin_memmap_entry { - unsigned long long addr; /* start of memory segment */ -@@ -824,15 +824,7 @@ - flash_probe(); - #endif - -- printk(KERN_INFO "Boot Mode: %i\n", bfin_read_SYSCR() & 0xF); -- -- /* Newer parts mirror SWRST bits in SYSCR */ --#if defined(CONFIG_BF53x) || defined(CONFIG_BF561) || \ -- defined(CONFIG_BF538) || defined(CONFIG_BF539) - _bfin_swrst = bfin_read_SWRST(); --#else -- _bfin_swrst = bfin_read_SYSCR(); --#endif - - #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT - bfin_write_SWRST(_bfin_swrst & ~DOUBLE_FAULT); -@@ -861,7 +853,7 @@ - else if (_bfin_swrst & RESET_SOFTWARE) - printk(KERN_NOTICE "Reset caused by Software reset\n"); - -- printk(KERN_INFO "Blackfin support (C) 2004-2009 Analog Devices, Inc.\n"); -+ printk(KERN_INFO "Blackfin support (C) 2004-2008 Analog Devices, Inc.\n"); - if (bfin_compiled_revid() == 0xffff) - printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); - else if (bfin_compiled_revid() == -1) -@@ -889,10 +881,6 @@ - CPU, bfin_revid()); - } - -- /* We can't run on BF548-0.1 due to ANOMALY 05000448 */ -- if (bfin_cpuid() == 0x27de && bfin_revid() == 1) -- panic("You can't run on this processor due to 05000448\n"); -- - printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n"); - - printk(KERN_INFO "Processor Speed: %lu MHz core clock and %lu MHz System Clock\n", -@@ -1145,12 +1133,12 @@ - icache_size = 0; - - seq_printf(m, "cache size\t: %d KB(L1 icache) " -- "%d KB(L1 dcache%s) %d KB(L2 cache)\n", -+ "%d KB(L1 dcache-%s) %d KB(L2 cache)\n", - icache_size, dcache_size, - #if defined CONFIG_BFIN_WB -- "-wb" -+ "wb" - #elif defined CONFIG_BFIN_WT -- "-wt" -+ "wt" - #endif - "", 0); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/time.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/time.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/time.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/time.c 2009-05-10 23:48:28.000000000 +0200 -@@ -134,10 +134,7 @@ - - write_seqlock(&xtime_lock); - #if defined(CONFIG_TICK_SOURCE_SYSTMR0) && !defined(CONFIG_IPIPE) -- /* -- * TIMIL0 is latched in __ipipe_grab_irq() when the I-Pipe is -- * enabled. -- */ -+/* FIXME: Here TIMIL0 is not set when IPIPE enabled, why? */ - if (get_gptimer_status(0) & TIMER_STATUS_TIMIL0) { - #endif - do_timer(1); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/kernel/traps.c linux-2.6.29-rc3.owrt/arch/blackfin/kernel/traps.c ---- linux-2.6.29.owrt/arch/blackfin/kernel/traps.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/kernel/traps.c 2009-05-10 23:48:28.000000000 +0200 -@@ -673,14 +673,6 @@ - verbose_printk("RTI"); - else if (opcode == 0x0012) - verbose_printk("RTX"); -- else if (opcode == 0x0013) -- verbose_printk("RTN"); -- else if (opcode == 0x0014) -- verbose_printk("RTE"); -- else if (opcode == 0x0025) -- verbose_printk("EMUEXCPT"); -- else if (opcode == 0x0040 && opcode <= 0x0047) -- verbose_printk("STI R%i", opcode & 7); - else if (opcode >= 0x0050 && opcode <= 0x0057) - verbose_printk("JUMP (P%i)", opcode & 7); - else if (opcode >= 0x0060 && opcode <= 0x0067) -@@ -689,10 +681,6 @@ - verbose_printk("CALL (PC+P%i)", opcode & 7); - else if (opcode >= 0x0080 && opcode <= 0x0087) - verbose_printk("JUMP (PC+P%i)", opcode & 7); -- else if (opcode >= 0x0090 && opcode <= 0x009F) -- verbose_printk("RAISE 0x%x", opcode & 0xF); -- else if (opcode >= 0x00A0 && opcode <= 0x00AF) -- verbose_printk("EXCPT 0x%x", opcode & 0xF); - else if ((opcode >= 0x1000 && opcode <= 0x13FF) || (opcode >= 0x1800 && opcode <= 0x1BFF)) - verbose_printk("IF !CC JUMP"); - else if ((opcode >= 0x1400 && opcode <= 0x17ff) || (opcode >= 0x1c00 && opcode <= 0x1fff)) -@@ -832,8 +820,11 @@ - decode_address(buf, (unsigned int)stack); - printk(KERN_NOTICE " SP: [0x%p] %s\n", stack, buf); - -+ addr = (unsigned int *)((unsigned int)stack & ~0x3F); -+ - /* First thing is to look for a frame pointer */ -- for (addr = (unsigned int *)((unsigned int)stack & ~0xF); addr < endstack; addr++) { -+ for (addr = (unsigned int *)((unsigned int)stack & ~0xF), i = 0; -+ addr < endstack; addr++, i++) { - if (*addr & 0x1) - continue; - ins_addr = (unsigned short *)*addr; -@@ -843,8 +834,7 @@ - - if (fp) { - /* Let's check to see if it is a frame pointer */ -- while (fp >= (addr - 1) && fp < endstack -- && fp && ((unsigned int) fp & 0x3) == 0) -+ while (fp >= (addr - 1) && fp < endstack && fp) - fp = (unsigned int *)*fp; - if (fp == 0 || fp == endstack) { - fp = addr - 1; -@@ -1062,9 +1052,8 @@ - char buf [150]; - struct irqaction *action; - unsigned int i; -- unsigned long flags = 0; -+ unsigned long flags; - unsigned int cpu = smp_processor_id(); -- unsigned char in_atomic = (bfin_read_IPEND() & 0x10) || in_atomic(); - - verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted()); - verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n", -@@ -1084,22 +1073,17 @@ - } - verbose_printk(KERN_NOTICE " EXCAUSE : 0x%lx\n", - fp->seqstat & SEQSTAT_EXCAUSE); -- for (i = 2; i <= 15 ; i++) { -+ for (i = 6; i <= 15 ; i++) { - if (fp->ipend & (1 << i)) { -- if (i != 4) { -- decode_address(buf, bfin_read32(EVT0 + 4*i)); -- verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf); -- } else -- verbose_printk(KERN_NOTICE " interrupts disabled\n"); -+ decode_address(buf, bfin_read32(EVT0 + 4*i)); -+ verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf); - } - } - - /* if no interrupts are going off, don't print this out */ - if (fp->ipend & ~0x3F) { - for (i = 0; i < (NR_IRQS - 1); i++) { -- if (!in_atomic) -- spin_lock_irqsave(&irq_desc[i].lock, flags); -- -+ spin_lock_irqsave(&irq_desc[i].lock, flags); - action = irq_desc[i].action; - if (!action) - goto unlock; -@@ -1112,8 +1096,7 @@ - } - verbose_printk("\n"); - unlock: -- if (!in_atomic) -- spin_unlock_irqrestore(&irq_desc[i].lock, flags); -+ spin_unlock_irqrestore(&irq_desc[i].lock, flags); - } - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf518/boards/ezbrd.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/boards/ezbrd.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf518/boards/ezbrd.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/boards/ezbrd.c 2009-05-10 23:48:28.000000000 +0200 -@@ -46,7 +46,6 @@ - #include - #include - #include --#include - - /* - * Name the Board for the /proc/cpuinfo -@@ -105,33 +104,10 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, --}; -- --#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) --static struct dsa_platform_data ksz8893m_switch_data = { -- .mii_bus = &bfin_mii_bus.dev, -- .netdev = &bfin_mac_device.dev, -- .port_names[0] = NULL, -- .port_names[1] = "eth%d", -- .port_names[2] = "eth%d", -- .port_names[3] = "cpu", --}; -- --static struct platform_device ksz8893m_switch_device = { -- .name = "dsa", -- .id = 0, -- .num_resources = 0, -- .dev.platform_data = &ksz8893m_switch_data, - }; - #endif --#endif - - #if defined(CONFIG_MTD_M25P80) \ - || defined(CONFIG_MTD_M25P80_MODULE) -@@ -171,20 +147,9 @@ - }; - #endif - --#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --#if defined(CONFIG_NET_DSA_KSZ8893M) \ -- || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) --/* SPI SWITCH CHIP */ --static struct bfin5xx_spi_chip spi_switch_info = { -- .enable_dma = 0, -- .bits_per_word = 8, --}; --#endif --#endif -- --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -261,28 +226,23 @@ - }, - #endif - --#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --#if defined(CONFIG_NET_DSA_KSZ8893M) \ -- || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "ksz8893m", -- .max_speed_hz = 5000000, -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 1, -+ .chip_select = 0, - .platform_data = NULL, -- .controller_data = &spi_switch_info, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, --#endif --#endif -- --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -513,6 +473,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) - { -@@ -526,6 +487,7 @@ - }, - #endif - }; -+#endif - - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) - static struct platform_device bfin_sport0_uart_device = { -@@ -622,11 +584,7 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, --#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) -- &ksz8893m_switch_device, --#endif - #endif - - #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) -@@ -674,8 +632,12 @@ - static int __init ezbrd_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif -+ - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); - return 0; -@@ -687,7 +649,7 @@ - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } - - void bfin_get_ether_addr(char *addr) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/anomaly.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,12 +2,12 @@ - * File: include/asm-blackfin/mach-bf518/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - - /* This file shoule be up to date with: -- * - Revision B, 02/03/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List -+ * - ???? - */ - - #ifndef _MACH_ANOMALY_H_ -@@ -19,8 +19,6 @@ - #define ANOMALY_05000122 (1) - /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ - #define ANOMALY_05000245 (1) --/* Incorrect Timer Pulse Width in Single-Shot PWM_OUT Mode with External Clock */ --#define ANOMALY_05000254 (1) - /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ - #define ANOMALY_05000265 (1) - /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ -@@ -55,12 +53,6 @@ - #define ANOMALY_05000443 (1) - /* Incorrect L1 Instruction Bank B Memory Map Location */ - #define ANOMALY_05000444 (1) --/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */ --#define ANOMALY_05000452 (1) --/* PWM_TRIPB Signal Not Available on PG10 */ --#define ANOMALY_05000453 (1) --/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */ --#define ANOMALY_05000455 (1) - - /* Anomalies that don't exist on this proc */ - #define ANOMALY_05000125 (0) -@@ -73,20 +65,15 @@ - #define ANOMALY_05000263 (0) - #define ANOMALY_05000266 (0) - #define ANOMALY_05000273 (0) --#define ANOMALY_05000278 (0) - #define ANOMALY_05000285 (0) --#define ANOMALY_05000305 (0) - #define ANOMALY_05000307 (0) - #define ANOMALY_05000311 (0) - #define ANOMALY_05000312 (0) - #define ANOMALY_05000323 (0) - #define ANOMALY_05000353 (0) - #define ANOMALY_05000363 (0) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000386 (0) - #define ANOMALY_05000412 (0) - #define ANOMALY_05000432 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -144,7 +144,7 @@ - CH_UART0_TX, - CH_UART0_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -@@ -158,7 +158,7 @@ - CH_UART1_TX, - CH_UART1_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART1_CTSRTS - CONFIG_UART1_CTS_PIN, - CONFIG_UART1_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf518/include/mach/portmux.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf518/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -103,8 +103,6 @@ - #define P_SPI1_SSEL4 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(2)) - #define P_SPI1_SSEL5 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2)) - --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2 -- - /* SPORT Port Mux */ - #define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(0)) - #define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(0)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/cm_bf527.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/cm_bf527.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/cm_bf527.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/cm_bf527.c 2009-05-10 23:48:28.000000000 +0200 -@@ -403,13 +403,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -487,9 +482,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -585,13 +580,23 @@ - .controller_data = &ad9960_spi_chip_info, - }, - #endif --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -- .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -788,6 +793,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) - { -@@ -803,6 +809,7 @@ - }, - #endif - }; -+#endif - - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) - static struct platform_device bfin_sport0_uart_device = { -@@ -913,7 +920,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -962,23 +968,27 @@ - &bfin_gpios_device, - }; - --static int __init cm_init(void) -+static int __init stamp_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif -+ - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); - return 0; - } - --arch_initcall(cm_init); -+arch_initcall(stamp_init); - - void native_machine_restart(char *cmd) - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } - - void bfin_get_ether_addr(char *addr) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/ezbrd.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/ezbrd.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/ezbrd.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/ezbrd.c 2009-05-10 23:48:28.000000000 +0200 -@@ -208,13 +208,8 @@ - - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -256,9 +251,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -366,13 +361,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc_dummy", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -585,6 +590,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) - { -@@ -598,6 +604,7 @@ - }, - #endif - }; -+#endif - - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) - static struct platform_device bfin_sport0_uart_device = { -@@ -713,7 +720,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -758,23 +764,27 @@ - &bfin_gpios_device, - }; - --static int __init ezbrd_init(void) -+static int __init stamp_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif -+ - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); - return 0; - } - --arch_initcall(ezbrd_init); -+arch_initcall(stamp_init); - - void native_machine_restart(char *cmd) - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } - - void bfin_get_ether_addr(char *addr) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/ezkit.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/ezkit.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/boards/ezkit.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/boards/ezkit.c 2009-05-10 23:48:28.000000000 +0200 -@@ -425,13 +425,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -835,6 +830,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) - { -@@ -848,6 +844,7 @@ - }, - #endif - }; -+#endif - - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) - static struct platform_device bfin_sport0_uart_device = { -@@ -991,7 +988,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -1052,23 +1048,27 @@ - &bfin_gpios_device, - }; - --static int __init ezkit_init(void) -+static int __init stamp_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif -+ - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); - return 0; - } - --arch_initcall(ezkit_init); -+arch_initcall(stamp_init); - - void native_machine_restart(char *cmd) - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } - - void bfin_get_ether_addr(char *addr) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/anomaly.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - * File: include/asm-blackfin/mach-bf527/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -@@ -167,16 +167,12 @@ - #define ANOMALY_05000263 (0) - #define ANOMALY_05000266 (0) - #define ANOMALY_05000273 (0) --#define ANOMALY_05000278 (0) - #define ANOMALY_05000285 (0) --#define ANOMALY_05000305 (0) - #define ANOMALY_05000307 (0) - #define ANOMALY_05000311 (0) - #define ANOMALY_05000312 (0) - #define ANOMALY_05000323 (0) - #define ANOMALY_05000363 (0) - #define ANOMALY_05000412 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -144,7 +144,7 @@ - CH_UART0_TX, - CH_UART0_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -@@ -158,7 +158,7 @@ - CH_UART1_TX, - CH_UART1_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART1_CTSRTS - CONFIG_UART1_CTS_PIN, - CONFIG_UART1_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf527/include/mach/portmux.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf527/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -73,8 +73,6 @@ - - #define P_HWAIT (P_DONTCARE) - --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1 -- - #define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) - #define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2)) - #define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/blackstamp.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/blackstamp.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/blackstamp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/blackstamp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -101,9 +101,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -129,13 +129,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+ { -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -299,8 +309,10 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - }; -+#endif - - static const unsigned int cclk_vlev_datasheet[] = - { -@@ -378,8 +390,10 @@ - - printk(KERN_INFO "%s(): registering device resources\n", __func__); - -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif - - ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - if (ret < 0) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/cm_bf533.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/cm_bf533.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/cm_bf533.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/cm_bf533.c 2009-05-10 23:48:28.000000000 +0200 -@@ -96,9 +96,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -138,13 +138,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc_dummy", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/generic_board.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/generic_board.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/generic_board.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/generic_board.c 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,126 @@ -+/* -+ * File: arch/blackfin/mach-bf533/generic_board.c -+ * Based on: arch/blackfin/mach-bf533/ezkit.c -+ * Author: Aidan Williams -+ * -+ * Created: 2005 -+ * Description: -+ * -+ * Modified: -+ * Copyright 2005 National ICT Australia (NICTA) -+ * Copyright 2004-2006 Analog Devices Inc. -+ * -+ * Bugs: Enter bugs at http://blackfin.uclinux.org/ -+ * -+ * 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, see the file COPYING, or write -+ * to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+#include -+#include -+#include -+ -+/* -+ * Name the Board for the /proc/cpuinfo -+ */ -+const char bfin_board_name[] = "UNKNOWN BOARD"; -+ -+#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) -+static struct platform_device rtc_device = { -+ .name = "rtc-bfin", -+ .id = -1, -+}; -+#endif -+ -+/* -+ * Driver needs to know address, irq and flag pin. -+ */ -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+static struct resource smc91x_resources[] = { -+ { -+ .start = 0x20300300, -+ .end = 0x20300300 + 16, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = IRQ_PROG_INTB, -+ .end = IRQ_PROG_INTB, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, { -+ .start = IRQ_PF7, -+ .end = IRQ_PF7, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+ -+static struct platform_device smc91x_device = { -+ .name = "smc91x", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(smc91x_resources), -+ .resource = smc91x_resources, -+}; -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+static struct resource bfin_sir0_resources[] = { -+ { -+ .start = 0xFFC00400, -+ .end = 0xFFC004FF, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = IRQ_UART0_RX, -+ .end = IRQ_UART0_RX+1, -+ .flags = IORESOURCE_IRQ, -+ }, -+ { -+ .start = CH_UART0_RX, -+ .end = CH_UART0_RX+1, -+ .flags = IORESOURCE_DMA, -+ }, -+}; -+ -+static struct platform_device bfin_sir0_device = { -+ .name = "bfin_sir", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(bfin_sir0_resources), -+ .resource = bfin_sir0_resources, -+}; -+#endif -+#endif -+ -+static struct platform_device *generic_board_devices[] __initdata = { -+#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) -+ &rtc_device, -+#endif -+ -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+ &smc91x_device, -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+ &bfin_sir0_device, -+#endif -+#endif -+}; -+ -+static int __init generic_board_init(void) -+{ -+ printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ return platform_add_devices(generic_board_devices, ARRAY_SIZE(generic_board_devices)); -+} -+ -+arch_initcall(generic_board_init); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/ip0x.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/ip0x.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/ip0x.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/ip0x.c 2009-05-10 23:48:28.000000000 +0200 -@@ -127,8 +127,8 @@ - #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) - /* all SPI peripherals info goes here */ - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { - /* - * CPOL (Clock Polarity) - * 0 - Active high SCK -@@ -152,13 +152,14 @@ - /* Notice: for blackfin, the speed_hz is the value of register - * SPI_BAUD, not the real baudrate */ - static struct spi_board_info bfin_spi_board_info[] __initdata = { --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 2, - .bus_num = 1, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - }, - #endif - }; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/Kconfig linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/Kconfig ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/Kconfig 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -38,4 +38,9 @@ - help - Core support for IP04/IP04 open hardware IP-PBX. - -+config GENERIC_BF533_BOARD -+ bool "Generic" -+ help -+ Generic or Custom board support. -+ - endchoice -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/Makefile linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/Makefile ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/Makefile 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -2,6 +2,7 @@ - # arch/blackfin/mach-bf533/boards/Makefile - # - -+obj-$(CONFIG_GENERIC_BF533_BOARD) += generic_board.o - obj-$(CONFIG_BFIN533_STAMP) += stamp.o - obj-$(CONFIG_BFIN532_IP0X) += ip0x.o - obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/stamp.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/stamp.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/boards/stamp.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/boards/stamp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -441,6 +441,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) - { -@@ -460,6 +461,7 @@ - }, - #endif - }; -+#endif - - static const unsigned int cclk_vlev_datasheet[] = - { -@@ -548,8 +550,10 @@ - - printk(KERN_INFO "%s(): registering device resources\n", __func__); - -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif - - ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - if (ret < 0) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/anomaly.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - * File: include/asm-blackfin/mach-bf533/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -@@ -160,7 +160,7 @@ - #define ANOMALY_05000301 (__SILICON_REVISION__ < 6) - /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ - #define ANOMALY_05000302 (__SILICON_REVISION__ < 5) --/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ -+/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ - #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) - /* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ - #define ANOMALY_05000306 (__SILICON_REVISION__ < 5) -@@ -278,12 +278,9 @@ - #define ANOMALY_05000266 (0) - #define ANOMALY_05000323 (0) - #define ANOMALY_05000353 (1) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000386 (1) - #define ANOMALY_05000412 (0) - #define ANOMALY_05000432 (0) - #define ANOMALY_05000435 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -134,7 +134,7 @@ - CH_UART_TX, - CH_UART_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf533/include/mach/portmux.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf533/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -54,11 +54,14 @@ - #define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) - #define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) - #define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2 - - #define P_TMR2 (P_DONTCARE) - #define P_TMR1 (P_DONTCARE) - #define P_TMR0 (P_DONTCARE) - #define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF1)) - -+ -+ -+ -+ - #endif /* _MACH_PORTMUX_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/cm_bf537.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/cm_bf537.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/cm_bf537.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/cm_bf537.c 2009-05-10 23:48:28.000000000 +0200 -@@ -108,9 +108,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -160,13 +160,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -- .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 1, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = 7, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -469,13 +479,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -586,7 +591,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/generic_board.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/generic_board.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/generic_board.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/generic_board.c 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,739 @@ -+/* -+ * File: arch/blackfin/mach-bf537/boards/generic_board.c -+ * Based on: arch/blackfin/mach-bf533/boards/ezkit.c -+ * Author: Aidan Williams -+ * -+ * Created: -+ * Description: -+ * -+ * Modified: -+ * Copyright 2005 National ICT Australia (NICTA) -+ * Copyright 2004-2008 Analog Devices Inc. -+ * -+ * Bugs: Enter bugs at http://blackfin.uclinux.org/ -+ * -+ * 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, see the file COPYING, or write -+ * to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) -+#include -+#endif -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* -+ * Name the Board for the /proc/cpuinfo -+ */ -+const char bfin_board_name[] = "UNKNOWN BOARD"; -+ -+/* -+ * Driver needs to know address, irq and flag pin. -+ */ -+ -+#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) -+#include -+static struct resource bfin_isp1760_resources[] = { -+ [0] = { -+ .start = 0x203C0000, -+ .end = 0x203C0000 + 0x000fffff, -+ .flags = IORESOURCE_MEM, -+ }, -+ [1] = { -+ .start = IRQ_PF7, -+ .end = IRQ_PF7, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+static struct isp1760_platform_data isp1760_priv = { -+ .is_isp1761 = 0, -+ .port1_disable = 0, -+ .bus_width_16 = 1, -+ .port1_otg = 0, -+ .analog_oc = 0, -+ .dack_polarity_high = 0, -+ .dreq_polarity_high = 0, -+}; -+ -+static struct platform_device bfin_isp1760_device = { -+ .name = "isp1760-hcd", -+ .id = 0, -+ .dev = { -+ .platform_data = &isp1760_priv, -+ }, -+ .num_resources = ARRAY_SIZE(bfin_isp1760_resources), -+ .resource = bfin_isp1760_resources, -+}; -+#endif -+ -+#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) -+static struct resource bfin_pcmcia_cf_resources[] = { -+ { -+ .start = 0x20310000, /* IO PORT */ -+ .end = 0x20312000, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = 0x20311000, /* Attribute Memory */ -+ .end = 0x20311FFF, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = IRQ_PF4, -+ .end = IRQ_PF4, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, -+ }, { -+ .start = 6, /* Card Detect PF6 */ -+ .end = 6, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+static struct platform_device bfin_pcmcia_cf_device = { -+ .name = "bfin_cf_pcmcia", -+ .id = -1, -+ .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources), -+ .resource = bfin_pcmcia_cf_resources, -+}; -+#endif -+ -+#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) -+static struct platform_device rtc_device = { -+ .name = "rtc-bfin", -+ .id = -1, -+}; -+#endif -+ -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+static struct resource smc91x_resources[] = { -+ { -+ .name = "smc91x-regs", -+ .start = 0x20300300, -+ .end = 0x20300300 + 16, -+ .flags = IORESOURCE_MEM, -+ }, { -+ -+ .start = IRQ_PF7, -+ .end = IRQ_PF7, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+static struct platform_device smc91x_device = { -+ .name = "smc91x", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(smc91x_resources), -+ .resource = smc91x_resources, -+}; -+#endif -+ -+#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) -+static struct resource dm9000_resources[] = { -+ [0] = { -+ .start = 0x203FB800, -+ .end = 0x203FB800 + 1, -+ .flags = IORESOURCE_MEM, -+ }, -+ [1] = { -+ .start = 0x203FB800 + 4, -+ .end = 0x203FB800 + 5, -+ .flags = IORESOURCE_MEM, -+ }, -+ [2] = { -+ .start = IRQ_PF9, -+ .end = IRQ_PF9, -+ .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE), -+ }, -+}; -+ -+static struct platform_device dm9000_device = { -+ .name = "dm9000", -+ .id = -1, -+ .num_resources = ARRAY_SIZE(dm9000_resources), -+ .resource = dm9000_resources, -+}; -+#endif -+ -+#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) -+static struct resource sl811_hcd_resources[] = { -+ { -+ .start = 0x20340000, -+ .end = 0x20340000, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = 0x20340004, -+ .end = 0x20340004, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = CONFIG_USB_SL811_BFIN_IRQ, -+ .end = CONFIG_USB_SL811_BFIN_IRQ, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+ -+#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) -+void sl811_port_power(struct device *dev, int is_on) -+{ -+ gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); -+ gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); -+ -+} -+#endif -+ -+static struct sl811_platform_data sl811_priv = { -+ .potpg = 10, -+ .power = 250, /* == 500mA */ -+#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) -+ .port_power = &sl811_port_power, -+#endif -+}; -+ -+static struct platform_device sl811_hcd_device = { -+ .name = "sl811-hcd", -+ .id = 0, -+ .dev = { -+ .platform_data = &sl811_priv, -+ }, -+ .num_resources = ARRAY_SIZE(sl811_hcd_resources), -+ .resource = sl811_hcd_resources, -+}; -+#endif -+ -+#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) -+static struct resource isp1362_hcd_resources[] = { -+ { -+ .start = 0x20360000, -+ .end = 0x20360000, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = 0x20360004, -+ .end = 0x20360004, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, -+ .end = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+ -+static struct isp1362_platform_data isp1362_priv = { -+ .sel15Kres = 1, -+ .clknotstop = 0, -+ .oc_enable = 0, -+ .int_act_high = 0, -+ .int_edge_triggered = 0, -+ .remote_wakeup_connected = 0, -+ .no_power_switching = 1, -+ .power_switching_mode = 0, -+}; -+ -+static struct platform_device isp1362_hcd_device = { -+ .name = "isp1362-hcd", -+ .id = 0, -+ .dev = { -+ .platform_data = &isp1362_priv, -+ }, -+ .num_resources = ARRAY_SIZE(isp1362_hcd_resources), -+ .resource = isp1362_hcd_resources, -+}; -+#endif -+ -+#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -+static struct platform_device bfin_mac_device = { -+ .name = "bfin_mac", -+}; -+#endif -+ -+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) -+static struct resource net2272_bfin_resources[] = { -+ { -+ .start = 0x20300000, -+ .end = 0x20300000 + 0x100, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = IRQ_PF7, -+ .end = IRQ_PF7, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+ -+static struct platform_device net2272_bfin_device = { -+ .name = "net2272", -+ .id = -1, -+ .num_resources = ARRAY_SIZE(net2272_bfin_resources), -+ .resource = net2272_bfin_resources, -+}; -+#endif -+ -+#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) -+/* all SPI peripherals info goes here */ -+ -+#if defined(CONFIG_MTD_M25P80) \ -+ || defined(CONFIG_MTD_M25P80_MODULE) -+static struct mtd_partition bfin_spi_flash_partitions[] = { -+ { -+ .name = "bootloader(spi)", -+ .size = 0x00020000, -+ .offset = 0, -+ .mask_flags = MTD_CAP_ROM -+ }, { -+ .name = "linux kernel(spi)", -+ .size = 0xe0000, -+ .offset = 0x20000 -+ }, { -+ .name = "file system(spi)", -+ .size = 0x700000, -+ .offset = 0x00100000, -+ } -+}; -+ -+static struct flash_platform_data bfin_spi_flash_data = { -+ .name = "m25p80", -+ .parts = bfin_spi_flash_partitions, -+ .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), -+ .type = "m25p64", -+}; -+ -+/* SPI flash chip (m25p64) */ -+static struct bfin5xx_spi_chip spi_flash_chip_info = { -+ .enable_dma = 0, /* use dma transfer with this chip*/ -+ .bits_per_word = 8, -+}; -+#endif -+ -+#if defined(CONFIG_SPI_ADC_BF533) \ -+ || defined(CONFIG_SPI_ADC_BF533_MODULE) -+/* SPI ADC chip */ -+static struct bfin5xx_spi_chip spi_adc_chip_info = { -+ .enable_dma = 1, /* use dma transfer with this chip*/ -+ .bits_per_word = 16, -+}; -+#endif -+ -+#if defined(CONFIG_SND_BLACKFIN_AD1836) \ -+ || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) -+static struct bfin5xx_spi_chip ad1836_spi_chip_info = { -+ .enable_dma = 0, -+ .bits_per_word = 16, -+}; -+#endif -+ -+#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) -+static struct bfin5xx_spi_chip ad9960_spi_chip_info = { -+ .enable_dma = 0, -+ .bits_per_word = 16, -+}; -+#endif -+ -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, -+ .bits_per_word = 8, -+}; -+#endif -+ -+#if defined(CONFIG_PBX) -+static struct bfin5xx_spi_chip spi_si3xxx_chip_info = { -+ .ctl_reg = 0x4, /* send zero */ -+ .enable_dma = 0, -+ .bits_per_word = 8, -+ .cs_change_per_word = 1, -+}; -+#endif -+ -+#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) -+static struct bfin5xx_spi_chip spi_ad7877_chip_info = { -+ .enable_dma = 0, -+ .bits_per_word = 16, -+}; -+ -+static const struct ad7877_platform_data bfin_ad7877_ts_info = { -+ .model = 7877, -+ .vref_delay_usecs = 50, /* internal, no capacitor */ -+ .x_plate_ohms = 419, -+ .y_plate_ohms = 486, -+ .pressure_max = 1000, -+ .pressure_min = 0, -+ .stopacq_polarity = 1, -+ .first_conversion_delay = 3, -+ .acquisition_time = 1, -+ .averaging = 1, -+ .pen_down_acc_interval = 1, -+}; -+#endif -+ -+static struct spi_board_info bfin_spi_board_info[] __initdata = { -+#if defined(CONFIG_MTD_M25P80) \ -+ || defined(CONFIG_MTD_M25P80_MODULE) -+ { -+ /* the modalias must be the same as spi device driver name */ -+ .modalias = "m25p80", /* Name of spi_driver for this device */ -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, /* Framework bus number */ -+ .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ -+ .platform_data = &bfin_spi_flash_data, -+ .controller_data = &spi_flash_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+#endif -+ -+#if defined(CONFIG_SPI_ADC_BF533) \ -+ || defined(CONFIG_SPI_ADC_BF533_MODULE) -+ { -+ .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */ -+ .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, /* Framework bus number */ -+ .chip_select = 1, /* Framework chip select. */ -+ .platform_data = NULL, /* No spi_driver specific config */ -+ .controller_data = &spi_adc_chip_info, -+ }, -+#endif -+ -+#if defined(CONFIG_SND_BLACKFIN_AD1836) \ -+ || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) -+ { -+ .modalias = "ad1836-spi", -+ .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT, -+ .controller_data = &ad1836_spi_chip_info, -+ }, -+#endif -+#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) -+ { -+ .modalias = "ad9960-spi", -+ .max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 1, -+ .controller_data = &ad9960_spi_chip_info, -+ }, -+#endif -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+ { -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+#endif -+#if defined(CONFIG_PBX) -+ { -+ .modalias = "fxs-spi", -+ .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 8 - CONFIG_J11_JUMPER, -+ .controller_data = &spi_si3xxx_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "fxo-spi", -+ .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 8 - CONFIG_J19_JUMPER, -+ .controller_data = &spi_si3xxx_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+#endif -+#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) -+ { -+ .modalias = "ad7877", -+ .platform_data = &bfin_ad7877_ts_info, -+ .irq = IRQ_PF6, -+ .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 1, -+ .controller_data = &spi_ad7877_chip_info, -+ }, -+#endif -+}; -+ -+/* SPI controller data */ -+static struct bfin5xx_spi_master bfin_spi0_info = { -+ .num_chipselect = 8, -+ .enable_dma = 1, /* master has the ability to do dma transfer */ -+ .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0}, -+}; -+ -+/* SPI (0) */ -+static struct resource bfin_spi0_resource[] = { -+ [0] = { -+ .start = SPI0_REGBASE, -+ .end = SPI0_REGBASE + 0xFF, -+ .flags = IORESOURCE_MEM, -+ }, -+ [1] = { -+ .start = CH_SPI, -+ .end = CH_SPI, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+static struct platform_device bfin_spi0_device = { -+ .name = "bfin-spi", -+ .id = 0, /* Bus number */ -+ .num_resources = ARRAY_SIZE(bfin_spi0_resource), -+ .resource = bfin_spi0_resource, -+ .dev = { -+ .platform_data = &bfin_spi0_info, /* Passed to driver */ -+ }, -+}; -+#endif /* spi master and devices */ -+ -+#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) -+static struct platform_device bfin_fb_device = { -+ .name = "bf537-lq035", -+}; -+#endif -+ -+#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) -+static struct platform_device bfin_fb_adv7393_device = { -+ .name = "bfin-adv7393", -+}; -+#endif -+ -+#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) -+static struct resource bfin_uart_resources[] = { -+ { -+ .start = 0xFFC00400, -+ .end = 0xFFC004FF, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = 0xFFC02000, -+ .end = 0xFFC020FF, -+ .flags = IORESOURCE_MEM, -+ }, -+}; -+ -+static struct platform_device bfin_uart_device = { -+ .name = "bfin-uart", -+ .id = 1, -+ .num_resources = ARRAY_SIZE(bfin_uart_resources), -+ .resource = bfin_uart_resources, -+}; -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+static struct resource bfin_sir0_resources[] = { -+ { -+ .start = 0xFFC00400, -+ .end = 0xFFC004FF, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = IRQ_UART0_RX, -+ .end = IRQ_UART0_RX+1, -+ .flags = IORESOURCE_IRQ, -+ }, -+ { -+ .start = CH_UART0_RX, -+ .end = CH_UART0_RX+1, -+ .flags = IORESOURCE_DMA, -+ }, -+}; -+ -+static struct platform_device bfin_sir0_device = { -+ .name = "bfin_sir", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(bfin_sir0_resources), -+ .resource = bfin_sir0_resources, -+}; -+#endif -+#ifdef CONFIG_BFIN_SIR1 -+static struct resource bfin_sir1_resources[] = { -+ { -+ .start = 0xFFC02000, -+ .end = 0xFFC020FF, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = IRQ_UART1_RX, -+ .end = IRQ_UART1_RX+1, -+ .flags = IORESOURCE_IRQ, -+ }, -+ { -+ .start = CH_UART1_RX, -+ .end = CH_UART1_RX+1, -+ .flags = IORESOURCE_DMA, -+ }, -+}; -+ -+static struct platform_device bfin_sir1_device = { -+ .name = "bfin_sir", -+ .id = 1, -+ .num_resources = ARRAY_SIZE(bfin_sir1_resources), -+ .resource = bfin_sir1_resources, -+}; -+#endif -+#endif -+ -+#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) -+static struct resource bfin_twi0_resource[] = { -+ [0] = { -+ .start = TWI0_REGBASE, -+ .end = TWI0_REGBASE + 0xFF, -+ .flags = IORESOURCE_MEM, -+ }, -+ [1] = { -+ .start = IRQ_TWI, -+ .end = IRQ_TWI, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+static struct platform_device i2c_bfin_twi_device = { -+ .name = "i2c-bfin-twi", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(bfin_twi0_resource), -+ .resource = bfin_twi0_resource, -+}; -+#endif -+ -+#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) -+static struct platform_device bfin_sport0_uart_device = { -+ .name = "bfin-sport-uart", -+ .id = 0, -+}; -+ -+static struct platform_device bfin_sport1_uart_device = { -+ .name = "bfin-sport-uart", -+ .id = 1, -+}; -+#endif -+ -+static struct platform_device *stamp_devices[] __initdata = { -+#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) -+ &bfin_pcmcia_cf_device, -+#endif -+ -+#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) -+ &rtc_device, -+#endif -+ -+#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) -+ &sl811_hcd_device, -+#endif -+ -+#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) -+ &isp1362_hcd_device, -+#endif -+ -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+ &smc91x_device, -+#endif -+ -+#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) -+ &dm9000_device, -+#endif -+ -+#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -+ &bfin_mac_device, -+#endif -+ -+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) -+ &net2272_bfin_device, -+#endif -+ -+#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) -+ &bfin_isp1760_device, -+#endif -+ -+#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) -+ &bfin_spi0_device, -+#endif -+ -+#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) -+ &bfin_fb_device, -+#endif -+ -+#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) -+ &bfin_fb_adv7393_device, -+#endif -+ -+#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) -+ &bfin_uart_device, -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+ &bfin_sir0_device, -+#endif -+#ifdef CONFIG_BFIN_SIR1 -+ &bfin_sir1_device, -+#endif -+#endif -+ -+#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) -+ &i2c_bfin_twi_device, -+#endif -+ -+#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) -+ &bfin_sport0_uart_device, -+ &bfin_sport1_uart_device, -+#endif -+}; -+ -+static int __init stamp_init(void) -+{ -+ printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); -+#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) -+ spi_register_board_info(bfin_spi_board_info, -+ ARRAY_SIZE(bfin_spi_board_info)); -+#endif -+ -+ return 0; -+} -+ -+arch_initcall(stamp_init); -+ -+void native_machine_restart(char *cmd) -+{ -+ /* workaround reboot hang when booting from SPI */ -+ if ((bfin_read_SYSCR() & 0x7) == 0x3) -+ bfin_gpio_reset_spi0_ssel1(); -+} -+ -+#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -+void bfin_get_ether_addr(char *addr) -+{ -+ random_ether_addr(addr); -+ printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__); -+} -+EXPORT_SYMBOL(bfin_get_ether_addr); -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/Kconfig linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/Kconfig ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/Kconfig 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -33,4 +33,9 @@ - help - Board supply package for CSP Minotaur - -+config GENERIC_BF537_BOARD -+ bool "Generic" -+ help -+ Generic or Custom board support. -+ - endchoice -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/Makefile linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/Makefile ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/Makefile 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -2,6 +2,7 @@ - # arch/blackfin/mach-bf537/boards/Makefile - # - -+obj-$(CONFIG_GENERIC_BF537_BOARD) += generic_board.o - obj-$(CONFIG_BFIN537_STAMP) += stamp.o - obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o - obj-$(CONFIG_BFIN537_BLUETECHNIX_TCM) += tcm_bf537.o -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/minotaur.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/minotaur.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/minotaur.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/minotaur.c 2009-05-10 23:48:28.000000000 +0200 -@@ -61,13 +61,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -134,9 +129,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -156,13 +151,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+ { -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 0, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -319,7 +324,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -373,5 +377,5 @@ - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/pnav10.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/pnav10.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/pnav10.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/pnav10.c 2009-05-10 23:48:28.000000000 +0200 -@@ -198,13 +198,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -289,9 +284,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -364,13 +359,23 @@ - .controller_data = &ad9960_spi_chip_info, - }, - #endif --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+ { -+ .modalias = "spi_mmc_dummy", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = 7, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -524,7 +529,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -554,7 +558,7 @@ - #endif - }; - --static int __init pnav_init(void) -+static int __init stamp_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); -@@ -565,7 +569,7 @@ - return 0; - } - --arch_initcall(pnav_init); -+arch_initcall(stamp_init); - - void bfin_get_ether_addr(char *addr) - { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/stamp.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/stamp.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/stamp.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/stamp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -321,13 +321,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -1073,6 +1068,7 @@ - }; - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info[] = { - #if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) - { -@@ -1106,6 +1102,7 @@ - }, - #endif - }; -+#endif - - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) - static struct platform_device bfin_sport0_uart_device = { -@@ -1220,7 +1217,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -1288,8 +1284,12 @@ - static int __init stamp_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info, - ARRAY_SIZE(bfin_i2c_board_info)); -+#endif -+ - bfin_plat_nand_init(); - platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); - spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); -@@ -1307,7 +1307,7 @@ - { - /* workaround reboot hang when booting from SPI */ - if ((bfin_read_SYSCR() & 0x7) == 0x3) -- bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); -+ bfin_gpio_reset_spi0_ssel1(); - } - - /* -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/tcm_bf537.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/tcm_bf537.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/boards/tcm_bf537.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/boards/tcm_bf537.c 2009-05-10 23:48:28.000000000 +0200 -@@ -108,9 +108,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -160,13 +160,23 @@ - }, - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc_dummy", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = 7, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, -+ .mode = SPI_MODE_3, -+ }, -+ { -+ .modalias = "spi_mmc", -+ .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ -+ .bus_num = 0, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -@@ -471,13 +481,8 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) --static struct platform_device bfin_mii_bus = { -- .name = "bfin_mii_bus", --}; -- - static struct platform_device bfin_mac_device = { - .name = "bfin_mac", -- .dev.platform_data = &bfin_mii_bus, - }; - #endif - -@@ -588,7 +593,6 @@ - #endif - - #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) -- &bfin_mii_bus, - &bfin_mac_device, - #endif - -@@ -611,7 +615,7 @@ - &bfin_gpios_device, - }; - --static int __init tcm_bf537_init(void) -+static int __init cm_bf537_init(void) - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); - platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); -@@ -625,7 +629,7 @@ - return 0; - } - --arch_initcall(tcm_bf537_init); -+arch_initcall(cm_bf537_init); - - void bfin_get_ether_addr(char *addr) - { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/anomaly.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - * File: include/asm-blackfin/mach-bf537/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -@@ -110,7 +110,7 @@ - #define ANOMALY_05000301 (1) - /* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ - #define ANOMALY_05000304 (__SILICON_REVISION__ < 3) --/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ -+/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ - #define ANOMALY_05000305 (__SILICON_REVISION__ < 3) - /* SCKELOW Bit Does Not Maintain State Through Hibernate */ - #define ANOMALY_05000307 (__SILICON_REVISION__ < 3) -@@ -168,12 +168,9 @@ - #define ANOMALY_05000323 (0) - #define ANOMALY_05000353 (1) - #define ANOMALY_05000363 (0) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000386 (1) - #define ANOMALY_05000412 (0) - #define ANOMALY_05000432 (0) - #define ANOMALY_05000435 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -144,7 +144,7 @@ - CH_UART0_TX, - CH_UART0_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -@@ -158,7 +158,7 @@ - CH_UART1_TX, - CH_UART1_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART1_CTSRTS - CONFIG_UART1_CTS_PIN, - CONFIG_UART1_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf537/include/mach/portmux.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf537/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -31,7 +31,6 @@ - #define P_PPI0_FS1 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1)) - #define P_TACLK0 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1)) - #define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1)) --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1 - - #define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PG0) | P_FUNCT(0)) - #define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/anomaly.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - * File: include/asm-blackfin/mach-bf538/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -@@ -120,17 +120,13 @@ - #define ANOMALY_05000198 (0) - #define ANOMALY_05000230 (0) - #define ANOMALY_05000263 (0) --#define ANOMALY_05000305 (0) - #define ANOMALY_05000311 (0) - #define ANOMALY_05000323 (0) - #define ANOMALY_05000353 (1) - #define ANOMALY_05000363 (0) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000386 (1) - #define ANOMALY_05000412 (0) - #define ANOMALY_05000432 (0) - #define ANOMALY_05000435 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -144,7 +144,7 @@ - CH_UART0_TX, - CH_UART0_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -@@ -158,7 +158,7 @@ - CH_UART1_TX, - CH_UART1_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART1_CTSRTS - CONFIG_UART1_CTS_PIN, - CONFIG_UART1_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf538/include/mach/portmux.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf538/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -102,6 +102,5 @@ - #define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) - #define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) - #define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2 - - #endif /* _MACH_PORTMUX_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/boards/ezkit.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/boards/ezkit.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/boards/ezkit.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/boards/ezkit.c 2009-05-10 23:48:28.000000000 +0200 -@@ -781,6 +781,7 @@ - #endif - #endif - -+#ifdef CONFIG_I2C_BOARDINFO - static struct i2c_board_info __initdata bfin_i2c_board_info0[] = { - }; - -@@ -799,6 +800,7 @@ - #endif - }; - #endif -+#endif - - #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) - #include -@@ -954,12 +956,14 @@ - { - printk(KERN_INFO "%s(): registering device resources\n", __func__); - -+#ifdef CONFIG_I2C_BOARDINFO - i2c_register_board_info(0, bfin_i2c_board_info0, - ARRAY_SIZE(bfin_i2c_board_info0)); - #if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ - i2c_register_board_info(1, bfin_i2c_board_info1, - ARRAY_SIZE(bfin_i2c_board_info1)); - #endif -+#endif - - platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/anomaly.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,12 +2,12 @@ - * File: include/asm-blackfin/mach-bf548/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - - /* This file shoule be up to date with: -- * - Revision H, 01/16/2009; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List -+ * - Revision G, 08/07/2008; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List - */ - - #ifndef _MACH_ANOMALY_H_ -@@ -91,6 +91,8 @@ - #define ANOMALY_05000371 (__SILICON_REVISION__ < 2) - /* USB DP/DM Data Pins May Lose State When Entering Hibernate */ - #define ANOMALY_05000372 (__SILICON_REVISION__ < 1) -+/* Mobile DDR Operation Not Functional */ -+#define ANOMALY_05000377 (1) - /* Security/Authentication Speedpath Causes Authentication To Fail To Initiate */ - #define ANOMALY_05000378 (__SILICON_REVISION__ < 2) - /* 16-Bit NAND FLASH Boot Mode Is Not Functional */ -@@ -155,22 +157,8 @@ - #define ANOMALY_05000429 (__SILICON_REVISION__ < 2) - /* Software System Reset Corrupts PLL_LOCKCNT Register */ - #define ANOMALY_05000430 (__SILICON_REVISION__ >= 2) --/* Incorrect Use of Stack in Lockbox Firmware During Authentication */ --#define ANOMALY_05000431 (__SILICON_REVISION__ < 3) --/* OTP Write Accesses Not Supported */ --#define ANOMALY_05000442 (__SILICON_REVISION__ < 1) - /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ - #define ANOMALY_05000443 (1) --/* CDMAPRIO and L2DMAPRIO Bits in the SYSCR Register Are Not Functional */ --#define ANOMALY_05000446 (1) --/* UART IrDA Receiver Fails on Extended Bit Pulses */ --#define ANOMALY_05000447 (1) --/* DDR Clock Duty Cycle Spec Violation (tCH, tCL) */ --#define ANOMALY_05000448 (__SILICON_REVISION__ == 1) --/* Reduced Timing Margins on DDR Output Setup and Hold (tDS and tDH) */ --#define ANOMALY_05000449 (__SILICON_REVISION__ == 1) --/* USB DMA Mode 1 Short Packet Data Corruption */ --#define ANOMALY_05000450 (1 - - /* Anomalies that don't exist on this proc */ - #define ANOMALY_05000125 (0) -@@ -183,13 +171,10 @@ - #define ANOMALY_05000263 (0) - #define ANOMALY_05000266 (0) - #define ANOMALY_05000273 (0) --#define ANOMALY_05000278 (0) --#define ANOMALY_05000305 (0) - #define ANOMALY_05000307 (0) - #define ANOMALY_05000311 (0) - #define ANOMALY_05000323 (0) - #define ANOMALY_05000363 (0) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000412 (0) - #define ANOMALY_05000432 (0) - #define ANOMALY_05000435 (0) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/bf548.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/bf548.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/bf548.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/bf548.h 2009-05-10 23:48:28.000000000 +0200 -@@ -104,18 +104,6 @@ - - #define AMGCTLVAL (V_AMBEN | V_AMCKEN) - --#if defined(CONFIG_BF542M) --# define CONFIG_BF542 --#elif defined(CONFIG_BF544M) --# define CONFIG_BF544 --#elif defined(CONFIG_BF547M) --# define CONFIG_BF547 --#elif defined(CONFIG_BF548M) --# define CONFIG_BF548 --#elif defined(CONFIG_BF549M) --# define CONFIG_BF549 --#endif -- - #if defined(CONFIG_BF542) - # define CPU "BF542" - # define CPUID 0x27de -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -63,7 +63,7 @@ - #define UART_ENABLE_INTS(x, v) UART_SET_IER(x, v) - #define UART_DISABLE_INTS(x) UART_CLEAR_IER(x, 0xF) - --#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART2_CTSRTS) -+#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) - # define CONFIG_SERIAL_BFIN_CTSRTS - - # ifndef CONFIG_UART0_CTS_PIN -@@ -74,12 +74,12 @@ - # define CONFIG_UART0_RTS_PIN -1 - # endif - --# ifndef CONFIG_UART2_CTS_PIN --# define CONFIG_UART2_CTS_PIN -1 -+# ifndef CONFIG_UART1_CTS_PIN -+# define CONFIG_UART1_CTS_PIN -1 - # endif - --# ifndef CONFIG_UART2_RTS_PIN --# define CONFIG_UART2_RTS_PIN -1 -+# ifndef CONFIG_UART1_RTS_PIN -+# define CONFIG_UART1_RTS_PIN -1 - # endif - #endif - -@@ -130,7 +130,7 @@ - CH_UART0_TX, - CH_UART0_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -@@ -144,10 +144,6 @@ - CH_UART1_TX, - CH_UART1_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -- 0, -- 0, --#endif - }, - #endif - #ifdef CONFIG_SERIAL_BFIN_UART2 -@@ -158,7 +154,7 @@ - CH_UART2_TX, - CH_UART2_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART2_CTSRTS - CONFIG_UART2_CTS_PIN, - CONFIG_UART2_RTS_PIN, - #endif -@@ -172,10 +168,6 @@ - CH_UART3_TX, - CH_UART3_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -- 0, -- 0, --#endif - }, - #endif - }; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/gpio.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/gpio.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/gpio.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/gpio.h 2009-05-10 23:48:28.000000000 +0200 -@@ -195,17 +195,17 @@ - struct gpio_port_t { - unsigned short port_fer; - unsigned short dummy1; -- unsigned short data; -+ unsigned short port_data; - unsigned short dummy2; -- unsigned short data_set; -+ unsigned short port_set; - unsigned short dummy3; -- unsigned short data_clear; -+ unsigned short port_clear; - unsigned short dummy4; -- unsigned short dir_set; -+ unsigned short port_dir_set; - unsigned short dummy5; -- unsigned short dir_clear; -+ unsigned short port_dir_clear; - unsigned short dummy6; -- unsigned short inen; -+ unsigned short port_inen; - unsigned short dummy7; - unsigned int port_mux; - }; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/irq.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/irq.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/irq.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/irq.h 2009-05-10 23:48:28.000000000 +0200 -@@ -123,8 +123,8 @@ - #define IRQ_MXVR_ERROR BFIN_IRQ(51) /* MXVR Status (Error) Interrupt */ - #define IRQ_MXVR_MSG BFIN_IRQ(52) /* MXVR Message Interrupt */ - #define IRQ_MXVR_PKT BFIN_IRQ(53) /* MXVR Packet Interrupt */ --#define IRQ_EPPI1_ERROR BFIN_IRQ(54) /* EPPI1 Error Interrupt */ --#define IRQ_EPPI2_ERROR BFIN_IRQ(55) /* EPPI2 Error Interrupt */ -+#define IRQ_EPP1_ERROR BFIN_IRQ(54) /* EPPI1 Error Interrupt */ -+#define IRQ_EPP2_ERROR BFIN_IRQ(55) /* EPPI2 Error Interrupt */ - #define IRQ_UART3_ERROR BFIN_IRQ(56) /* UART3 Status (Error) Interrupt */ - #define IRQ_HOST_ERROR BFIN_IRQ(57) /* HOST Status (Error) Interrupt */ - #define IRQ_PIXC_ERROR BFIN_IRQ(59) /* PIXC Status (Error) Interrupt */ -@@ -361,8 +361,8 @@ - #define IRQ_UART2_ERR IRQ_UART2_ERROR - #define IRQ_CAN0_ERR IRQ_CAN0_ERROR - #define IRQ_MXVR_ERR IRQ_MXVR_ERROR --#define IRQ_EPPI1_ERR IRQ_EPPI1_ERROR --#define IRQ_EPPI2_ERR IRQ_EPPI2_ERROR -+#define IRQ_EPP1_ERR IRQ_EPP1_ERROR -+#define IRQ_EPP2_ERR IRQ_EPP2_ERROR - #define IRQ_UART3_ERR IRQ_UART3_ERROR - #define IRQ_HOST_ERR IRQ_HOST_ERROR - #define IRQ_PIXC_ERR IRQ_PIXC_ERROR -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf548/include/mach/portmux.h 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf548/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -125,7 +125,6 @@ - #define P_KEY_COL2 (P_DEFINED | P_IDENT(GPIO_PD14) | P_FUNCT(3)) - #define P_KEY_COL3 (P_DEFINED | P_IDENT(GPIO_PD15) | P_FUNCT(3)) - --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1 - #define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PE0) | P_FUNCT(0)) - #define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PE1) | P_FUNCT(0)) - #define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PE2) | P_FUNCT(0)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/cm_bf561.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/cm_bf561.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/cm_bf561.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/cm_bf561.c 2009-05-10 23:48:28.000000000 +0200 -@@ -105,9 +105,9 @@ - }; - #endif - --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) --static struct bfin5xx_spi_chip mmc_spi_chip_info = { -- .enable_dma = 0, -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) -+static struct bfin5xx_spi_chip spi_mmc_chip_info = { -+ .enable_dma = 1, - .bits_per_word = 8, - }; - #endif -@@ -155,13 +155,14 @@ - .controller_data = &ad9960_spi_chip_info, - }, - #endif --#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) -+#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) - { -- .modalias = "mmc_spi", -+ .modalias = "spi_mmc", - .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ - .bus_num = 0, -- .chip_select = 5, -- .controller_data = &mmc_spi_chip_info, -+ .chip_select = CONFIG_SPI_MMC_CS_CHAN, -+ .platform_data = NULL, -+ .controller_data = &spi_mmc_chip_info, - .mode = SPI_MODE_3, - }, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/generic_board.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/generic_board.c ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/generic_board.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/generic_board.c 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,113 @@ -+/* -+ * File: arch/blackfin/mach-bf561/generic_board.c -+ * Based on: arch/blackfin/mach-bf533/ezkit.c -+ * Author: Aidan Williams -+ * -+ * Created: -+ * Description: -+ * -+ * Modified: -+ * Copyright 2005 National ICT Australia (NICTA) -+ * Copyright 2004-2006 Analog Devices Inc. -+ * -+ * Bugs: Enter bugs at http://blackfin.uclinux.org/ -+ * -+ * 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, see the file COPYING, or write -+ * to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+#include -+#include -+#include -+ -+const char bfin_board_name[] = "UNKNOWN BOARD"; -+ -+/* -+ * Driver needs to know address, irq and flag pin. -+ */ -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+static struct resource smc91x_resources[] = { -+ { -+ .start = 0x2C010300, -+ .end = 0x2C010300 + 16, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .start = IRQ_PROG_INTB, -+ .end = IRQ_PROG_INTB, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, { -+ .start = IRQ_PF9, -+ .end = IRQ_PF9, -+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, -+ }, -+}; -+ -+static struct platform_device smc91x_device = { -+ .name = "smc91x", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(smc91x_resources), -+ .resource = smc91x_resources, -+}; -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+static struct resource bfin_sir0_resources[] = { -+ { -+ .start = 0xFFC00400, -+ .end = 0xFFC004FF, -+ .flags = IORESOURCE_MEM, -+ }, -+ { -+ .start = IRQ_UART0_RX, -+ .end = IRQ_UART0_RX+1, -+ .flags = IORESOURCE_IRQ, -+ }, -+ { -+ .start = CH_UART0_RX, -+ .end = CH_UART0_RX+1, -+ .flags = IORESOURCE_DMA, -+ }, -+}; -+ -+static struct platform_device bfin_sir0_device = { -+ .name = "bfin_sir", -+ .id = 0, -+ .num_resources = ARRAY_SIZE(bfin_sir0_resources), -+ .resource = bfin_sir0_resources, -+}; -+#endif -+#endif -+ -+static struct platform_device *generic_board_devices[] __initdata = { -+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) -+ &smc91x_device, -+#endif -+ -+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) -+#ifdef CONFIG_BFIN_SIR0 -+ &bfin_sir0_device, -+#endif -+#endif -+}; -+ -+static int __init generic_board_init(void) -+{ -+ printk(KERN_INFO "%s(): registering device resources\n", __func__); -+ return platform_add_devices(generic_board_devices, -+ ARRAY_SIZE(generic_board_devices)); -+} -+ -+arch_initcall(generic_board_init); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/Kconfig linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/Kconfig ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/Kconfig 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -19,4 +19,9 @@ - help - CM-BF561 support for EVAL- and DEV-Board. - -+config GENERIC_BF561_BOARD -+ bool "Generic" -+ help -+ Generic or Custom board support. -+ - endchoice -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/Makefile linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/Makefile ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/boards/Makefile 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/boards/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -2,6 +2,7 @@ - # arch/blackfin/mach-bf561/boards/Makefile - # - -+obj-$(CONFIG_GENERIC_BF561_BOARD) += generic_board.o - obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o - obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o - obj-$(CONFIG_BFIN561_TEPLA) += tepla.o -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/anomaly.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/anomaly.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/anomaly.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/anomaly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - * File: include/asm-blackfin/mach-bf561/anomaly.h - * Bugs: Enter bugs at http://blackfin.uclinux.org/ - * -- * Copyright (C) 2004-2009 Analog Devices Inc. -+ * Copyright (C) 2004-2008 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -@@ -224,7 +224,7 @@ - #define ANOMALY_05000301 (1) - /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ - #define ANOMALY_05000302 (1) --/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ -+/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ - #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) - /* SCKELOW Bit Does Not Maintain State Through Hibernate */ - #define ANOMALY_05000307 (__SILICON_REVISION__ < 5) -@@ -283,11 +283,8 @@ - #define ANOMALY_05000273 (0) - #define ANOMALY_05000311 (0) - #define ANOMALY_05000353 (1) --#define ANOMALY_05000380 (0) - #define ANOMALY_05000386 (1) - #define ANOMALY_05000432 (0) - #define ANOMALY_05000435 (0) --#define ANOMALY_05000447 (0) --#define ANOMALY_05000448 (0) - - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h 2009-05-10 23:48:28.000000000 +0200 -@@ -134,7 +134,7 @@ - CH_UART_TX, - CH_UART_RX, - #endif --#ifdef CONFIG_SERIAL_BFIN_CTSRTS -+#ifdef CONFIG_BFIN_UART0_CTSRTS - CONFIG_UART0_CTS_PIN, - CONFIG_UART0_RTS_PIN, - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/defBF561.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/defBF561.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/defBF561.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/defBF561.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1106,8 +1106,6 @@ - #define DLEN_8 0x0 /* PPI Data Length mask for DLEN=8 */ - #define DLEN(x) (((x-9) & 0x07) << 11) /* PPI Data Length (only works for x=10-->x=16) */ - #define POL 0x0000C000 /* PPI Signal Polarities */ --#define POLC 0x4000 /* PPI Clock Polarity */ --#define POLS 0x8000 /* PPI Frame Sync Polarity */ - - /* PPI_STATUS Masks */ - #define FLD 0x00000400 /* Field Indicator */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/portmux.h linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/portmux.h ---- linux-2.6.29.owrt/arch/blackfin/mach-bf561/include/mach/portmux.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-bf561/include/mach/portmux.h 2009-05-10 23:48:28.000000000 +0200 -@@ -85,6 +85,5 @@ - #define P_SPI0_MOSI (P_DONTCARE) - #define P_SPI0_MISO (P_DONTCARE) - #define P_SPI0_SCK (P_DONTCARE) --#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2 - - #endif /* _MACH_PORTMUX_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/arch_checks.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/arch_checks.c ---- linux-2.6.29.owrt/arch/blackfin/mach-common/arch_checks.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/arch_checks.c 2009-05-10 23:48:28.000000000 +0200 -@@ -62,12 +62,3 @@ - #if (CONFIG_BOOT_LOAD & 0x3) - # error "The kernel load address must be 4 byte aligned" - #endif -- --/* The entire kernel must be able to make a 24bit pcrel call to start of L1 */ --#if ((0xffffffff - L1_CODE_START + 1) + CONFIG_BOOT_LOAD) > 0x1000000 --# error "The kernel load address is too high; keep it below 10meg for safety" --#endif -- --#if ANOMALY_05000448 --# error You are using a part with anomaly 05000448, this issue causes random memory read/write failures - that means random crashes. --#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/cache.S linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/cache.S ---- linux-2.6.29.owrt/arch/blackfin/mach-common/cache.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/cache.S 2009-05-10 23:48:28.000000000 +0200 -@@ -66,33 +66,11 @@ - - /* Invalidate all instruction cache lines assocoiated with this memory area */ - ENTRY(_blackfin_icache_flush_range) --/* -- * Walkaround to avoid loading wrong instruction after invalidating icache -- * and following sequence is met. -- * -- * 1) One instruction address is cached in the instruction cache. -- * 2) This instruction in SDRAM is changed. -- * 3) IFLASH[P0] is executed only once in blackfin_icache_flush_range(). -- * 4) This instruction is executed again, but the old one is loaded. -- */ -- P0 = R0; -- IFLUSH[P0]; - do_flush IFLUSH, , nop - ENDPROC(_blackfin_icache_flush_range) - - /* Flush all cache lines assocoiated with this area of memory. */ - ENTRY(_blackfin_icache_dcache_flush_range) --/* -- * Walkaround to avoid loading wrong instruction after invalidating icache -- * and following sequence is met. -- * -- * 1) One instruction address is cached in the instruction cache. -- * 2) This instruction in SDRAM is changed. -- * 3) IFLASH[P0] is executed only once in blackfin_icache_flush_range(). -- * 4) This instruction is executed again, but the old one is loaded. -- */ -- P0 = R0; -- IFLUSH[P0]; - do_flush FLUSH, IFLUSH - ENDPROC(_blackfin_icache_dcache_flush_range) - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/clocks-init.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/clocks-init.c ---- linux-2.6.29.owrt/arch/blackfin/mach-common/clocks-init.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/clocks-init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -14,10 +14,9 @@ - #include - #include - --#define SDGCTL_WIDTH (1 << 31) /* SDRAM external data path width */ - #define PLL_CTL_VAL \ - (((CONFIG_VCO_MULT & 63) << 9) | CLKIN_HALF | \ -- (PLL_BYPASS << 8) | (ANOMALY_05000305 ? 0 : 0x8000)) -+ (PLL_BYPASS << 8) | (ANOMALY_05000265 ? 0x8000 : 0)) - - __attribute__((l1_text)) - static void do_sync(void) -@@ -77,7 +76,7 @@ - bfin_write_PLL_DIV(CONFIG_CCLK_ACT_DIV | CONFIG_SCLK_DIV); - #ifdef EBIU_SDGCTL - bfin_write_EBIU_SDRRC(mem_SDRRC); -- bfin_write_EBIU_SDGCTL((bfin_read_EBIU_SDGCTL() & SDGCTL_WIDTH) | mem_SDGCTL); -+ bfin_write_EBIU_SDGCTL(mem_SDGCTL); - #else - bfin_write_EBIU_RSTCTL(bfin_read_EBIU_RSTCTL() & ~(SRREQ)); - do_sync(); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/dpmc_modes.S linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/dpmc_modes.S ---- linux-2.6.29.owrt/arch/blackfin/mach-common/dpmc_modes.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/dpmc_modes.S 2009-05-10 23:48:28.000000000 +0200 -@@ -376,22 +376,10 @@ - #endif - - #ifdef PINT0_ASSIGN -- PM_SYS_PUSH(PINT0_MASK_SET) -- PM_SYS_PUSH(PINT1_MASK_SET) -- PM_SYS_PUSH(PINT2_MASK_SET) -- PM_SYS_PUSH(PINT3_MASK_SET) - PM_SYS_PUSH(PINT0_ASSIGN) - PM_SYS_PUSH(PINT1_ASSIGN) - PM_SYS_PUSH(PINT2_ASSIGN) - PM_SYS_PUSH(PINT3_ASSIGN) -- PM_SYS_PUSH(PINT0_INVERT_SET) -- PM_SYS_PUSH(PINT1_INVERT_SET) -- PM_SYS_PUSH(PINT2_INVERT_SET) -- PM_SYS_PUSH(PINT3_INVERT_SET) -- PM_SYS_PUSH(PINT0_EDGE_SET) -- PM_SYS_PUSH(PINT1_EDGE_SET) -- PM_SYS_PUSH(PINT2_EDGE_SET) -- PM_SYS_PUSH(PINT3_EDGE_SET) - #endif - - PM_SYS_PUSH(EBIU_AMBCTL0) -@@ -726,22 +714,10 @@ - PM_SYS_POP(EBIU_AMBCTL0) - - #ifdef PINT0_ASSIGN -- PM_SYS_POP(PINT3_EDGE_SET) -- PM_SYS_POP(PINT2_EDGE_SET) -- PM_SYS_POP(PINT1_EDGE_SET) -- PM_SYS_POP(PINT0_EDGE_SET) -- PM_SYS_POP(PINT3_INVERT_SET) -- PM_SYS_POP(PINT2_INVERT_SET) -- PM_SYS_POP(PINT1_INVERT_SET) -- PM_SYS_POP(PINT0_INVERT_SET) - PM_SYS_POP(PINT3_ASSIGN) - PM_SYS_POP(PINT2_ASSIGN) - PM_SYS_POP(PINT1_ASSIGN) - PM_SYS_POP(PINT0_ASSIGN) -- PM_SYS_POP(PINT3_MASK_SET) -- PM_SYS_POP(PINT2_MASK_SET) -- PM_SYS_POP(PINT1_MASK_SET) -- PM_SYS_POP(PINT0_MASK_SET) - #endif - - #ifdef SICA_IWR1 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/entry.S linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/entry.S ---- linux-2.6.29.owrt/arch/blackfin/mach-common/entry.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/entry.S 2009-05-10 23:48:28.000000000 +0200 -@@ -151,6 +151,13 @@ - jump.s _bfin_return_from_exception; - ENDPROC(_ex_syscall) - -+ENTRY(_ex_soft_bp) -+ r7 = retx; -+ r7 += -2; -+ retx = r7; -+ jump.s _ex_trap_c; -+ENDPROC(_ex_soft_bp) -+ - ENTRY(_ex_single_step) - /* If we just returned from an interrupt, the single step event is - for the RTI instruction. */ -@@ -600,19 +607,6 @@ - p2 = [p2]; - - [p2+(TASK_THREAD+THREAD_KSP)] = sp; --#ifdef CONFIG_IPIPE -- r0 = sp; -- SP += -12; -- call ___ipipe_syscall_root; -- SP += 12; -- cc = r0 == 1; -- if cc jump .Lsyscall_really_exit; -- cc = r0 == -1; -- if cc jump .Lresume_userspace; -- r3 = [sp + PT_R3]; -- r4 = [sp + PT_R4]; -- p0 = [sp + PT_ORIG_P0]; --#endif /* CONFIG_IPIPE */ - - /* Check the System Call */ - r7 = __NR_syscall; -@@ -667,17 +661,6 @@ - r7 = r7 & r4; - - .Lsyscall_resched: --#ifdef CONFIG_IPIPE -- cc = BITTST(r7, TIF_IRQ_SYNC); -- if !cc jump .Lsyscall_no_irqsync; -- [--sp] = reti; -- r0 = [sp++]; -- SP += -12; -- call ___ipipe_sync_root; -- SP += 12; -- jump .Lresume_userspace_1; --.Lsyscall_no_irqsync: --#endif - cc = BITTST(r7, TIF_NEED_RESCHED); - if !cc jump .Lsyscall_sigpending; - -@@ -709,10 +692,6 @@ - .Lsyscall_really_exit: - r5 = [sp + PT_RESERVED]; - rets = r5; --#ifdef CONFIG_IPIPE -- [--sp] = reti; -- r5 = [sp++]; --#endif /* CONFIG_IPIPE */ - rts; - ENDPROC(_system_call) - -@@ -799,15 +778,6 @@ - ENDPROC(_resume) - - ENTRY(_ret_from_exception) --#ifdef CONFIG_IPIPE -- [--sp] = rets; -- SP += -12; -- call ___ipipe_check_root -- SP += 12 -- rets = [sp++]; -- cc = r0 == 0; -- if cc jump 4f; /* not on behalf of Linux, get out */ --#endif /* CONFIG_IPIPE */ - p2.l = lo(IPEND); - p2.h = hi(IPEND); - -@@ -864,28 +834,6 @@ - rts; - ENDPROC(_ret_from_exception) - --#ifdef CONFIG_IPIPE -- --_sync_root_irqs: -- [--sp] = reti; /* Reenable interrupts */ -- r0 = [sp++]; -- jump.l ___ipipe_sync_root -- --_resume_kernel_from_int: -- r0.l = _sync_root_irqs -- r0.h = _sync_root_irqs -- [--sp] = rets; -- [--sp] = ( r7:4, p5:3 ); -- SP += -12; -- call ___ipipe_call_irqtail -- SP += 12; -- ( r7:4, p5:3 ) = [sp++]; -- rets = [sp++]; -- rts --#else --#define _resume_kernel_from_int 2f --#endif -- - ENTRY(_return_from_int) - /* If someone else already raised IRQ 15, do nothing. */ - csync; -@@ -907,7 +855,7 @@ - r1 = r0 - r1; - r2 = r0 & r1; - cc = r2 == 0; -- if !cc jump _resume_kernel_from_int; -+ if !cc jump 2f; - - /* Lower the interrupt level to 15. */ - p0.l = lo(EVT15); -@@ -1139,7 +1087,7 @@ - * EXCPT instruction can provide 4 bits of EXCAUSE, allowing 16 to be user defined - */ - .long _ex_syscall /* 0x00 - User Defined - Linux Syscall */ -- .long _ex_trap_c /* 0x01 - User Defined - Software breakpoint */ -+ .long _ex_soft_bp /* 0x01 - User Defined - Software breakpoint */ - #ifdef CONFIG_KGDB - .long _ex_trap_c /* 0x02 - User Defined - KGDB initial connection - and break signal trap */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/head.S linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/head.S ---- linux-2.6.29.owrt/arch/blackfin/mach-common/head.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/head.S 2009-05-10 23:48:28.000000000 +0200 -@@ -17,19 +17,6 @@ - - __INIT - --ENTRY(__init_clear_bss) -- r2 = r2 - r1; -- cc = r2 == 0; -- if cc jump .L_bss_done; -- r2 >>= 2; -- p1 = r1; -- p2 = r2; -- lsetup (1f, 1f) lc0 = p2; --1: [p1++] = r0; --.L_bss_done: -- rts; --ENDPROC(__init_clear_bss) -- - #define INITIAL_STACK (L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12) - - ENTRY(__start) -@@ -157,35 +144,6 @@ - call _init_early_exception_vectors; - #endif - -- r0 = 0 (x); -- /* Zero out all of the fun bss regions */ --#if L1_DATA_A_LENGTH > 0 -- r1.l = __sbss_l1; -- r1.h = __sbss_l1; -- r2.l = __ebss_l1; -- r2.h = __ebss_l1; -- call __init_clear_bss --#endif --#if L1_DATA_B_LENGTH > 0 -- r1.l = __sbss_b_l1; -- r1.h = __sbss_b_l1; -- r2.l = __ebss_b_l1; -- r2.h = __ebss_b_l1; -- call __init_clear_bss --#endif --#if L2_LENGTH > 0 -- r1.l = __sbss_l2; -- r1.h = __sbss_l2; -- r2.l = __ebss_l2; -- r2.h = __ebss_l2; -- call __init_clear_bss --#endif -- r1.l = ___bss_start; -- r1.h = ___bss_start; -- r2.l = ___bss_stop; -- r2.h = ___bss_stop; -- call __init_clear_bss -- - /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ - call _bfin_relocate_l1_mem; - #ifdef CONFIG_BFIN_KERNEL_CLOCK -@@ -227,6 +185,19 @@ - # define WDOG_CTL WDOGA_CTL - #endif - -+ENTRY(__init_clear_bss) -+ r2 = r2 - r1; -+ cc = r2 == 0; -+ if cc jump .L_bss_done; -+ r2 >>= 2; -+ p1 = r1; -+ p2 = r2; -+ lsetup (1f, 1f) lc0 = p2; -+1: [p1++] = r0; -+.L_bss_done: -+ rts; -+ENDPROC(__init_clear_bss) -+ - ENTRY(_real_start) - /* Enable nested interrupts */ - [--sp] = reti; -@@ -238,6 +209,35 @@ - w[p0] = r0; - ssync; - -+ r0 = 0 (x); -+ /* Zero out all of the fun bss regions */ -+#if L1_DATA_A_LENGTH > 0 -+ r1.l = __sbss_l1; -+ r1.h = __sbss_l1; -+ r2.l = __ebss_l1; -+ r2.h = __ebss_l1; -+ call __init_clear_bss -+#endif -+#if L1_DATA_B_LENGTH > 0 -+ r1.l = __sbss_b_l1; -+ r1.h = __sbss_b_l1; -+ r2.l = __ebss_b_l1; -+ r2.h = __ebss_b_l1; -+ call __init_clear_bss -+#endif -+#if L2_LENGTH > 0 -+ r1.l = __sbss_l2; -+ r1.h = __sbss_l2; -+ r2.l = __ebss_l2; -+ r2.h = __ebss_l2; -+ call __init_clear_bss -+#endif -+ r1.l = ___bss_start; -+ r1.h = ___bss_start; -+ r2.l = ___bss_stop; -+ r2.h = ___bss_stop; -+ call __init_clear_bss -+ - /* Pass the u-boot arguments to the global value command line */ - R0 = R7; - call _cmdline_init; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/interrupt.S linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/interrupt.S ---- linux-2.6.29.owrt/arch/blackfin/mach-common/interrupt.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/interrupt.S 2009-05-10 23:48:28.000000000 +0200 -@@ -195,7 +195,7 @@ - /* Interrupt routine for evt2 (NMI). - * We don't actually use this, so just return. - * For inner circle type details, please see: -- * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:nmi -+ * http://docs.blackfin.uclinux.org/doku.php?id=linux:nmi - */ - ENTRY(_evt_nmi) - .weak _evt_nmi -@@ -235,7 +235,6 @@ - - #ifdef CONFIG_IPIPE - ENTRY(___ipipe_call_irqtail) -- p0 = r0; - r0.l = 1f; - r0.h = 1f; - reti = r0; -@@ -243,6 +242,9 @@ - 1: - [--sp] = rets; - [--sp] = ( r7:4, p5:3 ); -+ p0.l = ___ipipe_irq_tail_hook; -+ p0.h = ___ipipe_irq_tail_hook; -+ p0 = [p0]; - sp += -12; - call (p0); - sp += 12; -@@ -257,7 +259,7 @@ - p0.h = hi(EVT14); - [p0] = r0; - csync; -- r0 = 0x401f (z); -+ r0 = 0x401f; - sti r0; - raise 14; - [--sp] = reti; /* IRQs on. */ -@@ -275,7 +277,11 @@ - p0.h = _bfin_irq_flags; - r0 = [p0]; - sti r0; -+#if 0 /* FIXME: this actually raises scheduling latencies */ -+ /* Reenable interrupts */ -+ [--sp] = reti; -+ r0 = [sp++]; -+#endif - rts; - ENDPROC(___ipipe_call_irqtail) -- - #endif /* CONFIG_IPIPE */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/ints-priority.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/ints-priority.c ---- linux-2.6.29.owrt/arch/blackfin/mach-common/ints-priority.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/ints-priority.c 2009-05-10 23:48:28.000000000 +0200 -@@ -161,15 +161,11 @@ - - static void bfin_internal_mask_irq(unsigned int irq) - { -- unsigned long flags; -- - #ifdef CONFIG_BF53x -- local_irq_save_hw(flags); - bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & - ~(1 << SIC_SYSIRQ(irq))); - #else - unsigned mask_bank, mask_bit; -- local_irq_save_hw(flags); - mask_bank = SIC_SYSIRQ(irq) / 32; - mask_bit = SIC_SYSIRQ(irq) % 32; - bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) & -@@ -179,20 +175,15 @@ - ~(1 << mask_bit)); - #endif - #endif -- local_irq_restore_hw(flags); - } - - static void bfin_internal_unmask_irq(unsigned int irq) - { -- unsigned long flags; -- - #ifdef CONFIG_BF53x -- local_irq_save_hw(flags); - bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | - (1 << SIC_SYSIRQ(irq))); - #else - unsigned mask_bank, mask_bit; -- local_irq_save_hw(flags); - mask_bank = SIC_SYSIRQ(irq) / 32; - mask_bit = SIC_SYSIRQ(irq) % 32; - bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) | -@@ -202,7 +193,6 @@ - (1 << mask_bit)); - #endif - #endif -- local_irq_restore_hw(flags); - } - - #ifdef CONFIG_PM -@@ -400,7 +390,7 @@ - static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle) - { - #ifdef CONFIG_IPIPE -- _set_irq_handler(irq, handle_level_irq); -+ _set_irq_handler(irq, handle_edge_irq); - #else - struct irq_desc *desc = irq_desc + irq; - /* May not call generic set_irq_handler() due to spinlock -@@ -1065,18 +1055,13 @@ - #endif - default: - #ifdef CONFIG_IPIPE -- /* -- * We want internal interrupt sources to be -- * masked, because ISRs may trigger interrupts -- * recursively (e.g. DMA), but interrupts are -- * _not_ masked at CPU level. So let's handle -- * most of them as level interrupts, except -- * the timer interrupt which is special. -- */ -- if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR) -- set_irq_handler(irq, handle_simple_irq); -- else -- set_irq_handler(irq, handle_level_irq); -+ /* -+ * We want internal interrupt sources to be masked, because -+ * ISRs may trigger interrupts recursively (e.g. DMA), but -+ * interrupts are _not_ masked at CPU level. So let's handle -+ * them as level interrupts. -+ */ -+ set_irq_handler(irq, handle_level_irq); - #else /* !CONFIG_IPIPE */ - set_irq_handler(irq, handle_simple_irq); - #endif /* !CONFIG_IPIPE */ -@@ -1116,9 +1101,10 @@ - IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | - IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; - --#ifdef SIC_IWR0 -+#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) \ -+ || defined(BF538_FAMILY) || defined(CONFIG_BF51x) - bfin_write_SIC_IWR0(IWR_DISABLE_ALL); --# ifdef SIC_IWR1 -+#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) - /* BF52x/BF51x system reset does not properly reset SIC_IWR1 which - * will screw up the bootrom as it relies on MDMA0/1 waking it - * up from IDLE instructions. See this report for more info: -@@ -1128,8 +1114,10 @@ - bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); - else - bfin_write_SIC_IWR1(IWR_DISABLE_ALL); --# endif --# ifdef SIC_IWR2 -+#else -+ bfin_write_SIC_IWR1(IWR_DISABLE_ALL); -+#endif -+# ifdef CONFIG_BF54x - bfin_write_SIC_IWR2(IWR_DISABLE_ALL); - # endif - #else -@@ -1138,8 +1126,9 @@ - - #ifdef CONFIG_IPIPE - for (irq = 0; irq < NR_IRQS; irq++) { -- struct irq_desc *desc = irq_to_desc(irq); -+ struct irq_desc *desc = irq_desc + irq; - desc->ic_prio = __ipipe_get_irq_priority(irq); -+ desc->thr_prio = __ipipe_get_irqthread_priority(irq); - } - #endif /* CONFIG_IPIPE */ - -@@ -1222,21 +1211,76 @@ - return IVG15; - } - -+int __ipipe_get_irqthread_priority(unsigned irq) -+{ -+ int ient, prio; -+ int demux_irq; -+ -+ /* The returned priority value is rescaled to [0..IVG13+1] -+ * with 0 being the lowest effective priority level. */ -+ -+ if (irq <= IRQ_CORETMR) -+ return IVG13 - irq + 1; -+ -+ /* GPIO IRQs are given the priority of the demux -+ * interrupt. */ -+ if (IS_GPIOIRQ(irq)) { -+#if defined(CONFIG_BF54x) -+ u32 bank = PINT_2_BANK(irq2pint_lut[irq - SYS_IRQS]); -+ demux_irq = (bank == 0 ? IRQ_PINT0 : -+ bank == 1 ? IRQ_PINT1 : -+ bank == 2 ? IRQ_PINT2 : -+ IRQ_PINT3); -+#elif defined(CONFIG_BF561) -+ demux_irq = (irq >= IRQ_PF32 ? IRQ_PROG2_INTA : -+ irq >= IRQ_PF16 ? IRQ_PROG1_INTA : -+ IRQ_PROG0_INTA); -+#elif defined(CONFIG_BF52x) -+ demux_irq = (irq >= IRQ_PH0 ? IRQ_PORTH_INTA : -+ irq >= IRQ_PG0 ? IRQ_PORTG_INTA : -+ IRQ_PORTF_INTA); -+#else -+ demux_irq = irq; -+#endif -+ return IVG13 - PRIO_GPIODEMUX(demux_irq) + 1; -+ } -+ -+ /* The GPIO demux interrupt is given a lower priority -+ * than the GPIO IRQs, so that its threaded handler -+ * unmasks the interrupt line after the decoded IRQs -+ * have been processed. */ -+ prio = PRIO_GPIODEMUX(irq); -+ /* demux irq? */ -+ if (prio != -1) -+ return IVG13 - prio; -+ -+ for (ient = 0; ient < NR_PERI_INTS; ient++) { -+ struct ivgx *ivg = ivg_table + ient; -+ if (ivg->irqno == irq) { -+ for (prio = 0; prio <= IVG13-IVG7; prio++) { -+ if (ivg7_13[prio].ifirst <= ivg && -+ ivg7_13[prio].istop > ivg) -+ return IVG7 - prio; -+ } -+ } -+ } -+ -+ return 0; -+} -+ - /* Hw interrupts are disabled on entry (check SAVE_CONTEXT). */ - #ifdef CONFIG_DO_IRQ_L1 - __attribute__((l1_text)) - #endif - asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) - { -- struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); -- struct ipipe_domain *this_domain = ipipe_current_domain; - struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; - struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; -- int irq, s; -+ int irq; - - if (likely(vec == EVT_IVTMR_P)) { - irq = IRQ_CORETMR; -- goto core_tick; -+ goto handle_irq; - } - - SSYNC(); -@@ -1278,39 +1322,24 @@ - irq = ivg->irqno; - - if (irq == IRQ_SYSTMR) { --#ifdef CONFIG_GENERIC_CLOCKEVENTS --core_tick: --#else - bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ --#endif - /* This is basically what we need from the register frame. */ - __raw_get_cpu_var(__ipipe_tick_regs).ipend = regs->ipend; - __raw_get_cpu_var(__ipipe_tick_regs).pc = regs->pc; -- if (this_domain != ipipe_root_domain) -- __raw_get_cpu_var(__ipipe_tick_regs).ipend &= ~0x10; -- else -+ if (!ipipe_root_domain_p) - __raw_get_cpu_var(__ipipe_tick_regs).ipend |= 0x10; -+ else -+ __raw_get_cpu_var(__ipipe_tick_regs).ipend &= ~0x10; - } - --#ifndef CONFIG_GENERIC_CLOCKEVENTS --core_tick: --#endif -- if (this_domain == ipipe_root_domain) { -- s = __test_and_set_bit(IPIPE_SYNCDEFER_FLAG, &p->status); -- barrier(); -- } -+handle_irq: - - ipipe_trace_irq_entry(irq); - __ipipe_handle_irq(irq, regs); -- ipipe_trace_irq_exit(irq); -+ ipipe_trace_irq_exit(irq); - -- if (this_domain == ipipe_root_domain) { -- set_thread_flag(TIF_IRQ_SYNC); -- if (!s) { -- __clear_bit(IPIPE_SYNCDEFER_FLAG, &p->status); -- return !test_bit(IPIPE_STALL_FLAG, &p->status); -- } -- } -+ if (ipipe_root_domain_p) -+ return !test_bit(IPIPE_STALL_FLAG, &ipipe_root_cpudom_var(status)); - - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/pm.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/pm.c ---- linux-2.6.29.owrt/arch/blackfin/mach-common/pm.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/pm.c 2009-05-10 23:48:28.000000000 +0200 -@@ -82,9 +82,10 @@ - - bfin_pm_standby_restore(); - --#ifdef SIC_IWR0 -+#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) || \ -+ defined(CONFIG_BF538) || defined(CONFIG_BF539) || defined(CONFIG_BF51x) - bfin_write_SIC_IWR0(IWR_DISABLE_ALL); --# ifdef SIC_IWR1 -+#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) - /* BF52x system reset does not properly reset SIC_IWR1 which - * will screw up the bootrom as it relies on MDMA0/1 waking it - * up from IDLE instructions. See this report for more info: -@@ -94,8 +95,10 @@ - bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); - else - bfin_write_SIC_IWR1(IWR_DISABLE_ALL); --# endif --# ifdef SIC_IWR2 -+#else -+ bfin_write_SIC_IWR1(IWR_DISABLE_ALL); -+#endif -+# ifdef CONFIG_BF54x - bfin_write_SIC_IWR2(IWR_DISABLE_ALL); - # endif - #else -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mach-common/smp.c linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/smp.c ---- linux-2.6.29.owrt/arch/blackfin/mach-common/smp.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mach-common/smp.c 2009-05-10 23:48:28.000000000 +0200 -@@ -158,14 +158,10 @@ - kfree(msg); - break; - case BFIN_IPI_CALL_FUNC: -- spin_unlock(&msg_queue->lock); - ipi_call_function(cpu, msg); -- spin_lock(&msg_queue->lock); - break; - case BFIN_IPI_CPU_STOP: -- spin_unlock(&msg_queue->lock); - ipi_cpu_stop(cpu); -- spin_lock(&msg_queue->lock); - kfree(msg); - break; - default: -@@ -461,7 +457,7 @@ - smp_flush_data.start = start; - smp_flush_data.end = end; - -- if (smp_call_function(&ipi_flush_icache, &smp_flush_data, 0)) -+ if (smp_call_function(&ipi_flush_icache, &smp_flush_data, 1)) - printk(KERN_WARNING "SMP: failed to run I-cache flush request on other CPUs\n"); - } - EXPORT_SYMBOL_GPL(smp_icache_flush_range_others); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/Makefile linux-2.6.29-rc3.owrt/arch/blackfin/Makefile ---- linux-2.6.29.owrt/arch/blackfin/Makefile 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -21,67 +21,57 @@ - KBUILD_DEFCONFIG := BF537-STAMP_defconfig - - # setup the machine name and the machine dependent settings --machine-$(CONFIG_BF512) := bf518 --machine-$(CONFIG_BF514) := bf518 --machine-$(CONFIG_BF516) := bf518 --machine-$(CONFIG_BF518) := bf518 --machine-$(CONFIG_BF522) := bf527 --machine-$(CONFIG_BF523) := bf527 --machine-$(CONFIG_BF524) := bf527 --machine-$(CONFIG_BF525) := bf527 --machine-$(CONFIG_BF526) := bf527 --machine-$(CONFIG_BF527) := bf527 --machine-$(CONFIG_BF531) := bf533 --machine-$(CONFIG_BF532) := bf533 --machine-$(CONFIG_BF533) := bf533 --machine-$(CONFIG_BF534) := bf537 --machine-$(CONFIG_BF536) := bf537 --machine-$(CONFIG_BF537) := bf537 --machine-$(CONFIG_BF538) := bf538 --machine-$(CONFIG_BF539) := bf538 --machine-$(CONFIG_BF542) := bf548 --machine-$(CONFIG_BF542M) := bf548 --machine-$(CONFIG_BF544) := bf548 --machine-$(CONFIG_BF544M) := bf548 --machine-$(CONFIG_BF547) := bf548 --machine-$(CONFIG_BF547M) := bf548 --machine-$(CONFIG_BF548) := bf548 --machine-$(CONFIG_BF548M) := bf548 --machine-$(CONFIG_BF549) := bf548 --machine-$(CONFIG_BF549M) := bf548 --machine-$(CONFIG_BF561) := bf561 -+machine-$(CONFIG_BF512) := bf518 -+machine-$(CONFIG_BF514) := bf518 -+machine-$(CONFIG_BF516) := bf518 -+machine-$(CONFIG_BF518) := bf518 -+machine-$(CONFIG_BF522) := bf527 -+machine-$(CONFIG_BF523) := bf527 -+machine-$(CONFIG_BF524) := bf527 -+machine-$(CONFIG_BF525) := bf527 -+machine-$(CONFIG_BF526) := bf527 -+machine-$(CONFIG_BF527) := bf527 -+machine-$(CONFIG_BF531) := bf533 -+machine-$(CONFIG_BF532) := bf533 -+machine-$(CONFIG_BF533) := bf533 -+machine-$(CONFIG_BF534) := bf537 -+machine-$(CONFIG_BF536) := bf537 -+machine-$(CONFIG_BF537) := bf537 -+machine-$(CONFIG_BF538) := bf538 -+machine-$(CONFIG_BF539) := bf538 -+machine-$(CONFIG_BF542) := bf548 -+machine-$(CONFIG_BF544) := bf548 -+machine-$(CONFIG_BF547) := bf548 -+machine-$(CONFIG_BF548) := bf548 -+machine-$(CONFIG_BF549) := bf548 -+machine-$(CONFIG_BF561) := bf561 - MACHINE := $(machine-y) - export MACHINE - --cpu-$(CONFIG_BF512) := bf512 --cpu-$(CONFIG_BF514) := bf514 --cpu-$(CONFIG_BF516) := bf516 --cpu-$(CONFIG_BF518) := bf518 --cpu-$(CONFIG_BF522) := bf522 --cpu-$(CONFIG_BF523) := bf523 --cpu-$(CONFIG_BF524) := bf524 --cpu-$(CONFIG_BF525) := bf525 --cpu-$(CONFIG_BF526) := bf526 --cpu-$(CONFIG_BF527) := bf527 --cpu-$(CONFIG_BF531) := bf531 --cpu-$(CONFIG_BF532) := bf532 --cpu-$(CONFIG_BF533) := bf533 --cpu-$(CONFIG_BF534) := bf534 --cpu-$(CONFIG_BF536) := bf536 --cpu-$(CONFIG_BF537) := bf537 --cpu-$(CONFIG_BF538) := bf538 --cpu-$(CONFIG_BF539) := bf539 --cpu-$(CONFIG_BF542) := bf542 --cpu-$(CONFIG_BF542M) := bf542m --cpu-$(CONFIG_BF544) := bf544 --cpu-$(CONFIG_BF544M) := bf544m --cpu-$(CONFIG_BF547) := bf547 --cpu-$(CONFIG_BF547M) := bf547m --cpu-$(CONFIG_BF548) := bf548 --cpu-$(CONFIG_BF548M) := bf548m --cpu-$(CONFIG_BF549) := bf549 --cpu-$(CONFIG_BF549M) := bf549m --cpu-$(CONFIG_BF561) := bf561 -+cpu-$(CONFIG_BF512) := bf512 -+cpu-$(CONFIG_BF514) := bf514 -+cpu-$(CONFIG_BF516) := bf516 -+cpu-$(CONFIG_BF518) := bf518 -+cpu-$(CONFIG_BF522) := bf522 -+cpu-$(CONFIG_BF523) := bf523 -+cpu-$(CONFIG_BF524) := bf524 -+cpu-$(CONFIG_BF525) := bf525 -+cpu-$(CONFIG_BF526) := bf526 -+cpu-$(CONFIG_BF527) := bf527 -+cpu-$(CONFIG_BF531) := bf531 -+cpu-$(CONFIG_BF532) := bf532 -+cpu-$(CONFIG_BF533) := bf533 -+cpu-$(CONFIG_BF534) := bf534 -+cpu-$(CONFIG_BF536) := bf536 -+cpu-$(CONFIG_BF537) := bf537 -+cpu-$(CONFIG_BF538) := bf538 -+cpu-$(CONFIG_BF539) := bf539 -+cpu-$(CONFIG_BF542) := bf542 -+cpu-$(CONFIG_BF544) := bf544 -+cpu-$(CONFIG_BF547) := bf547 -+cpu-$(CONFIG_BF548) := bf548 -+cpu-$(CONFIG_BF549) := bf549 -+cpu-$(CONFIG_BF561) := bf561 - - rev-$(CONFIG_BF_REV_0_0) := 0.0 - rev-$(CONFIG_BF_REV_0_1) := 0.1 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/blackfin/mm/init.c linux-2.6.29-rc3.owrt/arch/blackfin/mm/init.c ---- linux-2.6.29.owrt/arch/blackfin/mm/init.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/blackfin/mm/init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -104,7 +104,7 @@ - } - } - --asmlinkage void __init init_pda(void) -+asmlinkage void init_pda(void) - { - unsigned int cpu = raw_smp_processor_id(); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/frv/mm/dma-alloc.c linux-2.6.29-rc3.owrt/arch/frv/mm/dma-alloc.c ---- linux-2.6.29.owrt/arch/frv/mm/dma-alloc.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/frv/mm/dma-alloc.c 2009-05-10 23:48:28.000000000 +0200 -@@ -36,10 +36,10 @@ - #include - #include - #include --#include - - #include - #include -+#include - #include - #include - #include -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/hp/common/sba_iommu.c linux-2.6.29-rc3.owrt/arch/ia64/hp/common/sba_iommu.c ---- linux-2.6.29.owrt/arch/ia64/hp/common/sba_iommu.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/hp/common/sba_iommu.c 2009-05-10 23:48:28.000000000 +0200 -@@ -906,7 +906,7 @@ - * @dir: R/W or both. - * @attrs: optional dma attributes - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - dma_addr_t - sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir, -@@ -1024,7 +1024,7 @@ - * @dir: R/W or both. - * @attrs: optional dma attributes - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, - int dir, struct dma_attrs *attrs) -@@ -1102,7 +1102,7 @@ - * @size: number of bytes mapped in driver buffer. - * @dma_handle: IOVA of new buffer. - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - void * - sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags) -@@ -1165,7 +1165,7 @@ - * @vaddr: virtual address IOVA of "consistent" buffer. - * @dma_handler: IO virtual address of "consistent" buffer. - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle) - { -@@ -1420,7 +1420,7 @@ - * @dir: R/W or both. - * @attrs: optional dma attributes - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, - int dir, struct dma_attrs *attrs) -@@ -1512,7 +1512,7 @@ - * @dir: R/W or both. - * @attrs: optional dma attributes - * -- * See Documentation/PCI/PCI-DMA-mapping.txt -+ * See Documentation/DMA-mapping.txt - */ - void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, - int nents, int dir, struct dma_attrs *attrs) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/include/asm/kvm.h linux-2.6.29-rc3.owrt/arch/ia64/include/asm/kvm.h ---- linux-2.6.29.owrt/arch/ia64/include/asm/kvm.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/include/asm/kvm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -25,10 +25,6 @@ - - #include - --/* Select x86 specific features in */ --#define __KVM_HAVE_IOAPIC --#define __KVM_HAVE_DEVICE_ASSIGNMENT -- - /* Architectural interrupt line count. */ - #define KVM_NR_INTERRUPTS 256 - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/include/asm/mmzone.h linux-2.6.29-rc3.owrt/arch/ia64/include/asm/mmzone.h ---- linux-2.6.29.owrt/arch/ia64/include/asm/mmzone.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/include/asm/mmzone.h 2009-05-10 23:48:28.000000000 +0200 -@@ -31,6 +31,10 @@ - #endif - } - -+#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID -+extern int early_pfn_to_nid(unsigned long pfn); -+#endif -+ - #ifdef CONFIG_IA64_DIG /* DIG systems are small */ - # define MAX_PHYSNODE_ID 8 - # define NR_NODE_MEMBLKS (MAX_NUMNODES * 8) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/include/asm/sn/bte.h linux-2.6.29-rc3.owrt/arch/ia64/include/asm/sn/bte.h ---- linux-2.6.29.owrt/arch/ia64/include/asm/sn/bte.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/include/asm/sn/bte.h 2009-05-10 23:48:28.000000000 +0200 -@@ -39,7 +39,7 @@ - /* BTE status register only supports 16 bits for length field */ - #define BTE_LEN_BITS (16) - #define BTE_LEN_MASK ((1 << BTE_LEN_BITS) - 1) --#define BTE_MAX_XFER (BTE_LEN_MASK << L1_CACHE_SHIFT) -+#define BTE_MAX_XFER ((1 << BTE_LEN_BITS) * L1_CACHE_BYTES) - - - /* Define hardware */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/Kconfig linux-2.6.29-rc3.owrt/arch/ia64/Kconfig ---- linux-2.6.29.owrt/arch/ia64/Kconfig 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -221,11 +221,7 @@ - - config IA64_XEN_GUEST - bool "Xen guest" -- select SWIOTLB - depends on XEN -- help -- Build a kernel that runs on Xen guest domain. At this moment only -- 16KB page size in supported. - - endchoice - -@@ -483,7 +479,8 @@ - default y if VIRTUAL_MEM_MAP - - config HAVE_ARCH_EARLY_PFN_TO_NID -- def_bool NUMA && SPARSEMEM -+ def_bool y -+ depends on NEED_MULTIPLE_NODES - - config HAVE_ARCH_NODEDATA_EXTENSION - def_bool y -@@ -638,17 +635,6 @@ - and include PCI device scope covered by these DMA - remapping devices. - --config DMAR_DEFAULT_ON -- def_bool y -- prompt "Enable DMA Remapping Devices by default" -- depends on DMAR -- help -- Selecting this option will enable a DMAR device at boot time if -- one is found. If this option is not selected, DMAR support can -- be enabled by passing intel_iommu=on to the kernel. It is -- recommended you say N here while the DMAR code remains -- experimental. -- - endmenu - - endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/kernel/iosapic.c linux-2.6.29-rc3.owrt/arch/ia64/kernel/iosapic.c ---- linux-2.6.29.owrt/arch/ia64/kernel/iosapic.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/kernel/iosapic.c 2009-05-10 23:48:28.000000000 +0200 -@@ -507,7 +507,7 @@ - if (trigger == IOSAPIC_EDGE) - return -EINVAL; - -- for (i = 0; i < NR_IRQS; i++) { -+ for (i = 0; i <= NR_IRQS; i++) { - info = &iosapic_intr_info[i]; - if (info->trigger == trigger && info->polarity == pol && - (info->dmode == IOSAPIC_FIXED || -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/kernel/smpboot.c linux-2.6.29-rc3.owrt/arch/ia64/kernel/smpboot.c ---- linux-2.6.29.owrt/arch/ia64/kernel/smpboot.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/kernel/smpboot.c 2009-05-10 23:48:28.000000000 +0200 -@@ -736,15 +736,14 @@ - return -EBUSY; - } - -- cpu_clear(cpu, cpu_online_map); -- - if (migrate_platform_irqs(cpu)) { - cpu_set(cpu, cpu_online_map); -- return -EBUSY; -+ return (-EBUSY); - } - - remove_siblinginfo(cpu); - fixup_irqs(); -+ cpu_clear(cpu, cpu_online_map); - local_flush_tlb_all(); - cpu_clear(cpu, cpu_callin_map); - return 0; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/kernel/unwind.c linux-2.6.29-rc3.owrt/arch/ia64/kernel/unwind.c ---- linux-2.6.29.owrt/arch/ia64/kernel/unwind.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/kernel/unwind.c 2009-05-10 23:48:28.000000000 +0200 -@@ -2149,7 +2149,7 @@ - - /* next, remove hash table entries for this table */ - -- for (index = 0; index < UNW_HASH_SIZE; ++index) { -+ for (index = 0; index <= UNW_HASH_SIZE; ++index) { - tmp = unw.cache + unw.hash[index]; - if (unw.hash[index] >= UNW_CACHE_SIZE - || tmp->ip < table->start || tmp->ip >= table->end) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/kvm/kvm-ia64.c linux-2.6.29-rc3.owrt/arch/ia64/kvm/kvm-ia64.c ---- linux-2.6.29.owrt/arch/ia64/kvm/kvm-ia64.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/kvm/kvm-ia64.c 2009-05-10 23:48:28.000000000 +0200 -@@ -1337,10 +1337,6 @@ - } - } - --void kvm_arch_sync_events(struct kvm *kvm) --{ --} -- - void kvm_arch_destroy_vm(struct kvm *kvm) - { - kvm_iommu_unmap_guest(kvm); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/kvm/process.c linux-2.6.29-rc3.owrt/arch/ia64/kvm/process.c ---- linux-2.6.29.owrt/arch/ia64/kvm/process.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/kvm/process.c 2009-05-10 23:48:28.000000000 +0200 -@@ -455,18 +455,13 @@ - if (!vmm_fpswa_interface) - return (fpswa_ret_t) {-1, 0, 0, 0}; - -- memset(&fp_state, 0, sizeof(fp_state_t)); -- - /* -- * compute fp_state. only FP registers f6 - f11 are used by the -- * vmm, so set those bits in the mask and set the low volatile -- * pointer to point to these registers. -+ * Just let fpswa driver to use hardware fp registers. -+ * No fp register is valid in memory. - */ -- fp_state.bitmask_low64 = 0xfc0; /* bit6..bit11 */ -- -- fp_state.fp_state_low_volatile = (fp_state_low_volatile_t *) ®s->f6; -+ memset(&fp_state, 0, sizeof(fp_state_t)); - -- /* -+ /* - * unsigned long (*EFI_FPSWA) ( - * unsigned long trap_type, - * void *Bundle, -@@ -550,6 +545,10 @@ - status = vmm_handle_fpu_swa(0, regs, isr); - if (!status) - return ; -+ else if (-EAGAIN == status) { -+ vcpu_decrement_iip(vcpu); -+ return ; -+ } - break; - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/mm/numa.c linux-2.6.29-rc3.owrt/arch/ia64/mm/numa.c ---- linux-2.6.29.owrt/arch/ia64/mm/numa.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/mm/numa.c 2009-05-10 23:48:28.000000000 +0200 -@@ -58,7 +58,7 @@ - * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where - * the section resides. - */ --int __meminit __early_pfn_to_nid(unsigned long pfn) -+int early_pfn_to_nid(unsigned long pfn) - { - int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec; - -@@ -70,7 +70,7 @@ - return node_memblk[i].nid; - } - -- return -1; -+ return 0; - } - - #ifdef CONFIG_MEMORY_HOTPLUG -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/sn/kernel/bte.c linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/bte.c ---- linux-2.6.29.owrt/arch/ia64/sn/kernel/bte.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/bte.c 2009-05-10 23:48:28.000000000 +0200 -@@ -97,10 +97,9 @@ - return BTE_SUCCESS; - } - -- BUG_ON(len & L1_CACHE_MASK); -- BUG_ON(src & L1_CACHE_MASK); -- BUG_ON(dest & L1_CACHE_MASK); -- BUG_ON(len > BTE_MAX_XFER); -+ BUG_ON((len & L1_CACHE_MASK) || -+ (src & L1_CACHE_MASK) || (dest & L1_CACHE_MASK)); -+ BUG_ON(!(len < ((BTE_LEN_MASK + 1) << L1_CACHE_SHIFT))); - - /* - * Start with interface corresponding to cpu number -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/sn/kernel/io_acpi_init.c linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/io_acpi_init.c ---- linux-2.6.29.owrt/arch/ia64/sn/kernel/io_acpi_init.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/io_acpi_init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -443,7 +443,7 @@ - size = pci_resource_len(dev, PCI_ROM_RESOURCE); - addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], - size); -- image_size = pci_get_rom_size(dev, addr, size); -+ image_size = pci_get_rom_size(addr, size); - dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; - dev->resource[PCI_ROM_RESOURCE].end = - (unsigned long) addr + image_size - 1; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/sn/kernel/io_init.c linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/io_init.c ---- linux-2.6.29.owrt/arch/ia64/sn/kernel/io_init.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/sn/kernel/io_init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -269,7 +269,7 @@ - - rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), - size + 1); -- image_size = pci_get_rom_size(dev, rom, size + 1); -+ image_size = pci_get_rom_size(rom, size + 1); - dev->resource[PCI_ROM_RESOURCE].end = - dev->resource[PCI_ROM_RESOURCE].start + - image_size - 1; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/sn/pci/pcibr/pcibr_dma.c linux-2.6.29-rc3.owrt/arch/ia64/sn/pci/pcibr/pcibr_dma.c ---- linux-2.6.29.owrt/arch/ia64/sn/pci/pcibr/pcibr_dma.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/sn/pci/pcibr/pcibr_dma.c 2009-05-10 23:48:28.000000000 +0200 -@@ -135,10 +135,11 @@ - if (SN_DMA_ADDRTYPE(dma_flags) == SN_DMA_ADDR_PHYS) - pci_addr = IS_PIC_SOFT(pcibus_info) ? - PHYS_TO_DMA(paddr) : -- PHYS_TO_TIODMA(paddr); -+ PHYS_TO_TIODMA(paddr) | dma_attributes; - else -- pci_addr = paddr; -- pci_addr |= dma_attributes; -+ pci_addr = IS_PIC_SOFT(pcibus_info) ? -+ paddr : -+ paddr | dma_attributes; - - /* Handle Bus mode */ - if (IS_PCIX(pcibus_info)) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/xen/Kconfig linux-2.6.29-rc3.owrt/arch/ia64/xen/Kconfig ---- linux-2.6.29.owrt/arch/ia64/xen/Kconfig 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/xen/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -8,7 +8,8 @@ - depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL - select XEN_XENCOMM - select NO_IDLE_HZ -- # followings are required to save/restore. -+ -+ # those are required to save/restore. - select ARCH_SUSPEND_POSSIBLE - select SUSPEND - select PM_SLEEP -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/ia64/xen/xen_pv_ops.c linux-2.6.29-rc3.owrt/arch/ia64/xen/xen_pv_ops.c ---- linux-2.6.29.owrt/arch/ia64/xen/xen_pv_ops.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/ia64/xen/xen_pv_ops.c 2009-05-10 23:48:28.000000000 +0200 -@@ -153,7 +153,7 @@ - xen_setup_vcpu_info_placement(); - } - --static const struct pv_init_ops xen_init_ops __initconst = { -+static const struct pv_init_ops xen_init_ops __initdata = { - .banner = xen_banner, - - .reserve_memory = xen_reserve_memory, -@@ -337,7 +337,7 @@ - HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); - } - --static const struct pv_iosapic_ops xen_iosapic_ops __initconst = { -+static const struct pv_iosapic_ops xen_iosapic_ops __initdata = { - .pcat_compat_init = xen_pcat_compat_init, - .__get_irq_chip = xen_iosapic_get_irq_chip, - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/atari/ataints.c linux-2.6.29-rc3.owrt/arch/m68k/atari/ataints.c ---- linux-2.6.29.owrt/arch/m68k/atari/ataints.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/atari/ataints.c 2009-05-10 23:48:28.000000000 +0200 -@@ -187,8 +187,8 @@ - " jbra ret_from_interrupt\n" \ - : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \ - "n" (PT_OFF_SR), "n" (n), \ -- "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &st_mfp.int_mk_a) \ -- : (n & 16 ? &tt_mfp.int_mk_b : &st_mfp.int_mk_b)), \ -+ "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &mfp.int_mk_a) \ -+ : (n & 16 ? &tt_mfp.int_mk_b : &mfp.int_mk_b)), \ - "m" (preempt_count()), "di" (HARDIRQ_OFFSET) \ - ); \ - for (;;); /* fake noreturn */ \ -@@ -366,14 +366,14 @@ - /* Initialize the MFP(s) */ - - #ifdef ATARI_USE_SOFTWARE_EOI -- st_mfp.vec_adr = 0x48; /* Software EOI-Mode */ -+ mfp.vec_adr = 0x48; /* Software EOI-Mode */ - #else -- st_mfp.vec_adr = 0x40; /* Automatic EOI-Mode */ -+ mfp.vec_adr = 0x40; /* Automatic EOI-Mode */ - #endif -- st_mfp.int_en_a = 0x00; /* turn off MFP-Ints */ -- st_mfp.int_en_b = 0x00; -- st_mfp.int_mk_a = 0xff; /* no Masking */ -- st_mfp.int_mk_b = 0xff; -+ mfp.int_en_a = 0x00; /* turn off MFP-Ints */ -+ mfp.int_en_b = 0x00; -+ mfp.int_mk_a = 0xff; /* no Masking */ -+ mfp.int_mk_b = 0xff; - - if (ATARIHW_PRESENT(TT_MFP)) { - #ifdef ATARI_USE_SOFTWARE_EOI -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/atari/atakeyb.c linux-2.6.29-rc3.owrt/arch/m68k/atari/atakeyb.c ---- linux-2.6.29.owrt/arch/m68k/atari/atakeyb.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/atari/atakeyb.c 2009-05-10 23:48:28.000000000 +0200 -@@ -609,10 +609,10 @@ - ACIA_RHTID : 0); - - /* make sure the interrupt line is up */ -- } while ((st_mfp.par_dt_reg & 0x10) == 0); -+ } while ((mfp.par_dt_reg & 0x10) == 0); - - /* enable ACIA Interrupts */ -- st_mfp.active_edge &= ~0x10; -+ mfp.active_edge &= ~0x10; - atari_turnon_irq(IRQ_MFP_ACIA); - - ikbd_self_test = 1; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/atari/config.c linux-2.6.29-rc3.owrt/arch/m68k/atari/config.c ---- linux-2.6.29.owrt/arch/m68k/atari/config.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/atari/config.c 2009-05-10 23:48:28.000000000 +0200 -@@ -258,7 +258,7 @@ - printk("STND_SHIFTER "); - } - } -- if (hwreg_present(&st_mfp.par_dt_reg)) { -+ if (hwreg_present(&mfp.par_dt_reg)) { - ATARIHW_SET(ST_MFP); - printk("ST_MFP "); - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/atari/debug.c linux-2.6.29-rc3.owrt/arch/m68k/atari/debug.c ---- linux-2.6.29.owrt/arch/m68k/atari/debug.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/atari/debug.c 2009-05-10 23:48:28.000000000 +0200 -@@ -34,9 +34,9 @@ - - static inline void ata_mfp_out(char c) - { -- while (!(st_mfp.trn_stat & 0x80)) /* wait for tx buf empty */ -+ while (!(mfp.trn_stat & 0x80)) /* wait for tx buf empty */ - barrier(); -- st_mfp.usart_dta = c; -+ mfp.usart_dta = c; - } - - static void atari_mfp_console_write(struct console *co, const char *str, -@@ -91,7 +91,7 @@ - /* This a some-seconds timeout in case no printer is connected */ - unsigned long i = loops_per_jiffy > 1 ? loops_per_jiffy : 10000000/HZ; - -- while ((st_mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */ -+ while ((mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */ - ; - if (!i) - return 0; -@@ -131,9 +131,9 @@ - #if 0 - int atari_mfp_console_wait_key(struct console *co) - { -- while (!(st_mfp.rcv_stat & 0x80)) /* wait for rx buf filled */ -+ while (!(mfp.rcv_stat & 0x80)) /* wait for rx buf filled */ - barrier(); -- return st_mfp.usart_dta; -+ return mfp.usart_dta; - } - - int atari_scc_console_wait_key(struct console *co) -@@ -175,12 +175,12 @@ - baud = B9600; /* use default 9600bps for non-implemented rates */ - baud -= B1200; /* baud_table[] starts at 1200bps */ - -- st_mfp.trn_stat &= ~0x01; /* disable TX */ -- st_mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */ -- st_mfp.tim_ct_cd &= 0x70; /* stop timer D */ -- st_mfp.tim_dt_d = baud_table[baud]; -- st_mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */ -- st_mfp.trn_stat |= 0x01; /* enable TX */ -+ mfp.trn_stat &= ~0x01; /* disable TX */ -+ mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */ -+ mfp.tim_ct_cd &= 0x70; /* stop timer D */ -+ mfp.tim_dt_d = baud_table[baud]; -+ mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */ -+ mfp.trn_stat |= 0x01; /* enable TX */ - } - - #define SCC_WRITE(reg, val) \ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/atari/time.c linux-2.6.29-rc3.owrt/arch/m68k/atari/time.c ---- linux-2.6.29.owrt/arch/m68k/atari/time.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/atari/time.c 2009-05-10 23:48:28.000000000 +0200 -@@ -27,9 +27,9 @@ - atari_sched_init(irq_handler_t timer_routine) - { - /* set Timer C data Register */ -- st_mfp.tim_dt_c = INT_TICKS; -+ mfp.tim_dt_c = INT_TICKS; - /* start timer C, div = 1:100 */ -- st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60; -+ mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60; - /* install interrupt service routine for MFP Timer C */ - if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW, - "timer", timer_routine)) -@@ -46,11 +46,11 @@ - unsigned long ticks, offset = 0; - - /* read MFP timer C current value */ -- ticks = st_mfp.tim_dt_c; -+ ticks = mfp.tim_dt_c; - /* The probability of underflow is less than 2% */ - if (ticks > INT_TICKS - INT_TICKS / 50) - /* Check for pending timer interrupt */ -- if (st_mfp.int_pn_b & (1 << 5)) -+ if (mfp.int_pn_b & (1 << 5)) - offset = TICK_SIZE; - - ticks = INT_TICKS - ticks; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/atarihw.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/atarihw.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/atarihw.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/atarihw.h 2009-05-10 23:48:28.000000000 +0200 -@@ -113,7 +113,7 @@ - * of nops on various machines. Somebody claimed that the tstb takes 600 ns. - */ - #define MFPDELAY() \ -- __asm__ __volatile__ ( "tstb %0" : : "m" (st_mfp.par_dt_reg) : "cc" ); -+ __asm__ __volatile__ ( "tstb %0" : : "m" (mfp.par_dt_reg) : "cc" ); - - /* Do cache push/invalidate for DMA read/write. This function obeys the - * snooping on some machines (Medusa) and processors: The Medusa itself can -@@ -565,7 +565,7 @@ - u_char char_dummy23; - u_char usart_dta; - }; --# define st_mfp ((*(volatile struct MFP*)MFP_BAS)) -+# define mfp ((*(volatile struct MFP*)MFP_BAS)) - - /* TT's second MFP */ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/atariints.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/atariints.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/atariints.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/atariints.h 2009-05-10 23:48:28.000000000 +0200 -@@ -113,7 +113,7 @@ - { unsigned char mask, *reg; - - mask = 1 << (irq & 7); -- reg = (unsigned char *)&st_mfp.int_en_a + type*4 + -+ reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - return( *reg & mask ); - } -@@ -123,7 +123,7 @@ - { unsigned char mask, *reg; - - mask = 1 << (irq & 7); -- reg = (unsigned char *)&st_mfp.int_en_a + type*4 + -+ reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - __asm__ __volatile__ ( "orb %0,%1" - : : "di" (mask), "m" (*reg) : "memory" ); -@@ -134,7 +134,7 @@ - { unsigned char mask, *reg; - - mask = ~(1 << (irq & 7)); -- reg = (unsigned char *)&st_mfp.int_en_a + type*4 + -+ reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - if (type == MFP_PENDING || type == MFP_SERVICE) - __asm__ __volatile__ ( "moveb %0,%1" -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/param.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/param.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,26 +1,5 @@ --#ifndef _M68K_PARAM_H --#define _M68K_PARAM_H -- --#ifdef __KERNEL__ --# define HZ CONFIG_HZ /* Internal kernel timer frequency */ --# define USER_HZ 100 /* .. some user interfaces are in "ticks" */ --# define CLOCKS_PER_SEC (USER_HZ) /* like times() */ --#endif -- --#ifndef HZ --#define HZ 100 --#endif -- - #ifdef __uClinux__ --#define EXEC_PAGESIZE 4096 -+#include "param_no.h" - #else --#define EXEC_PAGESIZE 8192 --#endif -- --#ifndef NOGROUP --#define NOGROUP (-1) -+#include "param_mm.h" - #endif -- --#define MAXHOSTNAMELEN 64 /* max length of hostname */ -- --#endif /* _M68K_PARAM_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/param_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/param_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,22 @@ -+#ifndef _M68K_PARAM_H -+#define _M68K_PARAM_H -+ -+#ifdef __KERNEL__ -+# define HZ CONFIG_HZ /* Internal kernel timer frequency */ -+# define USER_HZ 100 /* .. some user interfaces are in "ticks" */ -+# define CLOCKS_PER_SEC (USER_HZ) /* like times() */ -+#endif -+ -+#ifndef HZ -+#define HZ 100 -+#endif -+ -+#define EXEC_PAGESIZE 8192 -+ -+#ifndef NOGROUP -+#define NOGROUP (-1) -+#endif -+ -+#define MAXHOSTNAMELEN 64 /* max length of hostname */ -+ -+#endif /* _M68K_PARAM_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/param_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/param_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/param_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,22 @@ -+#ifndef _M68KNOMMU_PARAM_H -+#define _M68KNOMMU_PARAM_H -+ -+#ifdef __KERNEL__ -+#define HZ CONFIG_HZ -+#define USER_HZ HZ -+#define CLOCKS_PER_SEC (USER_HZ) -+#endif -+ -+#ifndef HZ -+#define HZ 100 -+#endif -+ -+#define EXEC_PAGESIZE 4096 -+ -+#ifndef NOGROUP -+#define NOGROUP (-1) -+#endif -+ -+#define MAXHOSTNAMELEN 64 /* max length of hostname */ -+ -+#endif /* _M68KNOMMU_PARAM_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/ptrace.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/ptrace.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,87 +1,5 @@ --#ifndef _M68K_PTRACE_H --#define _M68K_PTRACE_H -- --#define PT_D1 0 --#define PT_D2 1 --#define PT_D3 2 --#define PT_D4 3 --#define PT_D5 4 --#define PT_D6 5 --#define PT_D7 6 --#define PT_A0 7 --#define PT_A1 8 --#define PT_A2 9 --#define PT_A3 10 --#define PT_A4 11 --#define PT_A5 12 --#define PT_A6 13 --#define PT_D0 14 --#define PT_USP 15 --#define PT_ORIG_D0 16 --#define PT_SR 17 --#define PT_PC 18 -- --#ifndef __ASSEMBLY__ -- --/* this struct defines the way the registers are stored on the -- stack during a system call. */ -- --struct pt_regs { -- long d1; -- long d2; -- long d3; -- long d4; -- long d5; -- long a0; -- long a1; -- long a2; -- long d0; -- long orig_d0; -- long stkadj; --#ifdef CONFIG_COLDFIRE -- unsigned format : 4; /* frame format specifier */ -- unsigned vector : 12; /* vector offset */ -- unsigned short sr; -- unsigned long pc; -+#ifdef __uClinux__ -+#include "ptrace_no.h" - #else -- unsigned short sr; -- unsigned long pc; -- unsigned format : 4; /* frame format specifier */ -- unsigned vector : 12; /* vector offset */ -+#include "ptrace_mm.h" - #endif --}; -- --/* -- * This is the extended stack used by signal handlers and the context -- * switcher: it's pushed after the normal "struct pt_regs". -- */ --struct switch_stack { -- unsigned long d6; -- unsigned long d7; -- unsigned long a3; -- unsigned long a4; -- unsigned long a5; -- unsigned long a6; -- unsigned long retpc; --}; -- --/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ --#define PTRACE_GETREGS 12 --#define PTRACE_SETREGS 13 --#define PTRACE_GETFPREGS 14 --#define PTRACE_SETFPREGS 15 -- --#ifdef __KERNEL__ -- --#ifndef PS_S --#define PS_S (0x2000) --#define PS_M (0x1000) --#endif -- --#define user_mode(regs) (!((regs)->sr & PS_S)) --#define instruction_pointer(regs) ((regs)->pc) --#define profile_pc(regs) instruction_pointer(regs) --extern void show_regs(struct pt_regs *); --#endif /* __KERNEL__ */ --#endif /* __ASSEMBLY__ */ --#endif /* _M68K_PTRACE_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/ptrace_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/ptrace_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,80 @@ -+#ifndef _M68K_PTRACE_H -+#define _M68K_PTRACE_H -+ -+#define PT_D1 0 -+#define PT_D2 1 -+#define PT_D3 2 -+#define PT_D4 3 -+#define PT_D5 4 -+#define PT_D6 5 -+#define PT_D7 6 -+#define PT_A0 7 -+#define PT_A1 8 -+#define PT_A2 9 -+#define PT_A3 10 -+#define PT_A4 11 -+#define PT_A5 12 -+#define PT_A6 13 -+#define PT_D0 14 -+#define PT_USP 15 -+#define PT_ORIG_D0 16 -+#define PT_SR 17 -+#define PT_PC 18 -+ -+#ifndef __ASSEMBLY__ -+ -+/* this struct defines the way the registers are stored on the -+ stack during a system call. */ -+ -+struct pt_regs { -+ long d1; -+ long d2; -+ long d3; -+ long d4; -+ long d5; -+ long a0; -+ long a1; -+ long a2; -+ long d0; -+ long orig_d0; -+ long stkadj; -+ unsigned short sr; -+ unsigned long pc; -+ unsigned format : 4; /* frame format specifier */ -+ unsigned vector : 12; /* vector offset */ -+}; -+ -+/* -+ * This is the extended stack used by signal handlers and the context -+ * switcher: it's pushed after the normal "struct pt_regs". -+ */ -+struct switch_stack { -+ unsigned long d6; -+ unsigned long d7; -+ unsigned long a3; -+ unsigned long a4; -+ unsigned long a5; -+ unsigned long a6; -+ unsigned long retpc; -+}; -+ -+/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ -+#define PTRACE_GETREGS 12 -+#define PTRACE_SETREGS 13 -+#define PTRACE_GETFPREGS 14 -+#define PTRACE_SETFPREGS 15 -+ -+#ifdef __KERNEL__ -+ -+#ifndef PS_S -+#define PS_S (0x2000) -+#define PS_M (0x1000) -+#endif -+ -+#define user_mode(regs) (!((regs)->sr & PS_S)) -+#define instruction_pointer(regs) ((regs)->pc) -+#define profile_pc(regs) instruction_pointer(regs) -+extern void show_regs(struct pt_regs *); -+#endif /* __KERNEL__ */ -+#endif /* __ASSEMBLY__ */ -+#endif /* _M68K_PTRACE_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/ptrace_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/ptrace_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/ptrace_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,87 @@ -+#ifndef _M68K_PTRACE_H -+#define _M68K_PTRACE_H -+ -+#define PT_D1 0 -+#define PT_D2 1 -+#define PT_D3 2 -+#define PT_D4 3 -+#define PT_D5 4 -+#define PT_D6 5 -+#define PT_D7 6 -+#define PT_A0 7 -+#define PT_A1 8 -+#define PT_A2 9 -+#define PT_A3 10 -+#define PT_A4 11 -+#define PT_A5 12 -+#define PT_A6 13 -+#define PT_D0 14 -+#define PT_USP 15 -+#define PT_ORIG_D0 16 -+#define PT_SR 17 -+#define PT_PC 18 -+ -+#ifndef __ASSEMBLY__ -+ -+/* this struct defines the way the registers are stored on the -+ stack during a system call. */ -+ -+struct pt_regs { -+ long d1; -+ long d2; -+ long d3; -+ long d4; -+ long d5; -+ long a0; -+ long a1; -+ long a2; -+ long d0; -+ long orig_d0; -+ long stkadj; -+#ifdef CONFIG_COLDFIRE -+ unsigned format : 4; /* frame format specifier */ -+ unsigned vector : 12; /* vector offset */ -+ unsigned short sr; -+ unsigned long pc; -+#else -+ unsigned short sr; -+ unsigned long pc; -+ unsigned format : 4; /* frame format specifier */ -+ unsigned vector : 12; /* vector offset */ -+#endif -+}; -+ -+/* -+ * This is the extended stack used by signal handlers and the context -+ * switcher: it's pushed after the normal "struct pt_regs". -+ */ -+struct switch_stack { -+ unsigned long d6; -+ unsigned long d7; -+ unsigned long a3; -+ unsigned long a4; -+ unsigned long a5; -+ unsigned long a6; -+ unsigned long retpc; -+}; -+ -+/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ -+#define PTRACE_GETREGS 12 -+#define PTRACE_SETREGS 13 -+#define PTRACE_GETFPREGS 14 -+#define PTRACE_SETFPREGS 15 -+ -+#ifdef __KERNEL__ -+ -+#ifndef PS_S -+#define PS_S (0x2000) -+#define PS_M (0x1000) -+#endif -+ -+#define user_mode(regs) (!((regs)->sr & PS_S)) -+#define instruction_pointer(regs) ((regs)->pc) -+#define profile_pc(regs) instruction_pointer(regs) -+extern void show_regs(struct pt_regs *); -+#endif /* __KERNEL__ */ -+#endif /* __ASSEMBLY__ */ -+#endif /* _M68K_PTRACE_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/setup.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/setup.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/setup.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/setup.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,376 +1,5 @@ --/* --** asm/setup.h -- Definition of the Linux/m68k setup information --** --** Copyright 1992 by Greg Harp --** --** 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. --** --** Created 09/29/92 by Greg Harp --** --** 5/2/94 Roman Hodek: --** Added bi_atari part of the machine dependent union bi_un; for now it --** contains just a model field to distinguish between TT and Falcon. --** 26/7/96 Roman Zippel: --** Renamed to setup.h; added some useful macros to allow gcc some --** optimizations if possible. --** 5/10/96 Geert Uytterhoeven: --** Redesign of the boot information structure; moved boot information --** structure to bootinfo.h --*/ -- --#ifndef _M68K_SETUP_H --#define _M68K_SETUP_H -- -- -- -- /* -- * Linux/m68k Architectures -- */ -- --#define MACH_AMIGA 1 --#define MACH_ATARI 2 --#define MACH_MAC 3 --#define MACH_APOLLO 4 --#define MACH_SUN3 5 --#define MACH_MVME147 6 --#define MACH_MVME16x 7 --#define MACH_BVME6000 8 --#define MACH_HP300 9 --#define MACH_Q40 10 --#define MACH_SUN3X 11 -- --#define COMMAND_LINE_SIZE 256 -- --#ifdef __KERNEL__ -- --#define CL_SIZE COMMAND_LINE_SIZE -- --#ifndef __ASSEMBLY__ --extern unsigned long m68k_machtype; --#endif /* !__ASSEMBLY__ */ -- --#if !defined(CONFIG_AMIGA) --# define MACH_IS_AMIGA (0) --#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ -- || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA) -+#ifdef __uClinux__ -+#include "setup_no.h" - #else --# define MACH_AMIGA_ONLY --# define MACH_IS_AMIGA (1) --# define MACH_TYPE (MACH_AMIGA) -+#include "setup_mm.h" - #endif -- --#if !defined(CONFIG_ATARI) --# define MACH_IS_ATARI (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ -- || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_ATARI (m68k_machtype == MACH_ATARI) --#else --# define MACH_ATARI_ONLY --# define MACH_IS_ATARI (1) --# define MACH_TYPE (MACH_ATARI) --#endif -- --#if !defined(CONFIG_MAC) --# define MACH_IS_MAC (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \ -- || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_MAC (m68k_machtype == MACH_MAC) --#else --# define MACH_MAC_ONLY --# define MACH_IS_MAC (1) --# define MACH_TYPE (MACH_MAC) --#endif -- --#if defined(CONFIG_SUN3) --#define MACH_IS_SUN3 (1) --#define MACH_SUN3_ONLY (1) --#define MACH_TYPE (MACH_SUN3) --#else --#define MACH_IS_SUN3 (0) --#endif -- --#if !defined (CONFIG_APOLLO) --# define MACH_IS_APOLLO (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO) --#else --# define MACH_APOLLO_ONLY --# define MACH_IS_APOLLO (1) --# define MACH_TYPE (MACH_APOLLO) --#endif -- --#if !defined (CONFIG_MVME147) --# define MACH_IS_MVME147 (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x) --# define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147) --#else --# define MACH_MVME147_ONLY --# define MACH_IS_MVME147 (1) --# define MACH_TYPE (MACH_MVME147) --#endif -- --#if !defined (CONFIG_MVME16x) --# define MACH_IS_MVME16x (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x) --#else --# define MACH_MVME16x_ONLY --# define MACH_IS_MVME16x (1) --# define MACH_TYPE (MACH_MVME16x) --#endif -- --#if !defined (CONFIG_BVME6000) --# define MACH_IS_BVME6000 (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ -- || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000) --#else --# define MACH_BVME6000_ONLY --# define MACH_IS_BVME6000 (1) --# define MACH_TYPE (MACH_BVME6000) --#endif -- --#if !defined (CONFIG_HP300) --# define MACH_IS_HP300 (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ -- || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_HP300 (m68k_machtype == MACH_HP300) --#else --# define MACH_HP300_ONLY --# define MACH_IS_HP300 (1) --# define MACH_TYPE (MACH_HP300) --#endif -- --#if !defined (CONFIG_Q40) --# define MACH_IS_Q40 (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ -- || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ -- || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) --# define MACH_IS_Q40 (m68k_machtype == MACH_Q40) --#else --# define MACH_Q40_ONLY --# define MACH_IS_Q40 (1) --# define MACH_TYPE (MACH_Q40) --#endif -- --#if !defined (CONFIG_SUN3X) --# define MACH_IS_SUN3X (0) --#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ -- || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ -- || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ -- || defined(CONFIG_Q40) || defined(CONFIG_MVME147) --# define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X) --#else --# define CONFIG_SUN3X_ONLY --# define MACH_IS_SUN3X (1) --# define MACH_TYPE (MACH_SUN3X) --#endif -- --#ifndef MACH_TYPE --# define MACH_TYPE (m68k_machtype) --#endif -- --#endif /* __KERNEL__ */ -- -- -- /* -- * CPU, FPU and MMU types -- * -- * Note: we may rely on the following equalities: -- * -- * CPU_68020 == MMU_68851 -- * CPU_68030 == MMU_68030 -- * CPU_68040 == FPU_68040 == MMU_68040 -- * CPU_68060 == FPU_68060 == MMU_68060 -- */ -- --#define CPUB_68020 0 --#define CPUB_68030 1 --#define CPUB_68040 2 --#define CPUB_68060 3 -- --#define CPU_68020 (1< -+ -+/* We have a bigger command line buffer. */ -+#undef COMMAND_LINE_SIZE -+ -+#endif /* __KERNEL__ */ -+ -+#define COMMAND_LINE_SIZE 512 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,24 +1,5 @@ --#ifndef _ASM_M68k_SIGCONTEXT_H --#define _ASM_M68k_SIGCONTEXT_H -- --struct sigcontext { -- unsigned long sc_mask; /* old sigmask */ -- unsigned long sc_usp; /* old user stack pointer */ -- unsigned long sc_d0; -- unsigned long sc_d1; -- unsigned long sc_a0; -- unsigned long sc_a1; - #ifdef __uClinux__ -- unsigned long sc_a5; --#endif -- unsigned short sc_sr; -- unsigned long sc_pc; -- unsigned short sc_formatvec; --#ifndef __uClinux__ -- unsigned long sc_fpregs[2*3]; /* room for two fp registers */ -- unsigned long sc_fpcntl[3]; -- unsigned char sc_fpstate[216]; --#endif --}; -- -+#include "sigcontext_no.h" -+#else -+#include "sigcontext_mm.h" - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,19 @@ -+#ifndef _ASM_M68k_SIGCONTEXT_H -+#define _ASM_M68k_SIGCONTEXT_H -+ -+struct sigcontext { -+ unsigned long sc_mask; /* old sigmask */ -+ unsigned long sc_usp; /* old user stack pointer */ -+ unsigned long sc_d0; -+ unsigned long sc_d1; -+ unsigned long sc_a0; -+ unsigned long sc_a1; -+ unsigned short sc_sr; -+ unsigned long sc_pc; -+ unsigned short sc_formatvec; -+ unsigned long sc_fpregs[2*3]; /* room for two fp registers */ -+ unsigned long sc_fpcntl[3]; -+ unsigned char sc_fpstate[216]; -+}; -+ -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/sigcontext_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/sigcontext_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,17 @@ -+#ifndef _ASM_M68KNOMMU_SIGCONTEXT_H -+#define _ASM_M68KNOMMU_SIGCONTEXT_H -+ -+struct sigcontext { -+ unsigned long sc_mask; /* old sigmask */ -+ unsigned long sc_usp; /* old user stack pointer */ -+ unsigned long sc_d0; -+ unsigned long sc_d1; -+ unsigned long sc_a0; -+ unsigned long sc_a1; -+ unsigned long sc_a5; -+ unsigned short sc_sr; -+ unsigned long sc_pc; -+ unsigned short sc_formatvec; -+}; -+ -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/siginfo.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/siginfo.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,97 +1,5 @@ --#ifndef _M68K_SIGINFO_H --#define _M68K_SIGINFO_H -- --#ifndef __uClinux__ --#define HAVE_ARCH_SIGINFO_T --#define HAVE_ARCH_COPY_SIGINFO --#endif -- --#include -- --#ifndef __uClinux__ -- --typedef struct siginfo { -- int si_signo; -- int si_errno; -- int si_code; -- -- union { -- int _pad[SI_PAD_SIZE]; -- -- /* kill() */ -- struct { -- __kernel_pid_t _pid; /* sender's pid */ -- __kernel_uid_t _uid; /* backwards compatibility */ -- __kernel_uid32_t _uid32; /* sender's uid */ -- } _kill; -- -- /* POSIX.1b timers */ -- struct { -- timer_t _tid; /* timer id */ -- int _overrun; /* overrun count */ -- char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; -- sigval_t _sigval; /* same as below */ -- int _sys_private; /* not to be passed to user */ -- } _timer; -- -- /* POSIX.1b signals */ -- struct { -- __kernel_pid_t _pid; /* sender's pid */ -- __kernel_uid_t _uid; /* backwards compatibility */ -- sigval_t _sigval; -- __kernel_uid32_t _uid32; /* sender's uid */ -- } _rt; -- -- /* SIGCHLD */ -- struct { -- __kernel_pid_t _pid; /* which child */ -- __kernel_uid_t _uid; /* backwards compatibility */ -- int _status; /* exit code */ -- clock_t _utime; -- clock_t _stime; -- __kernel_uid32_t _uid32; /* sender's uid */ -- } _sigchld; -- -- /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ -- struct { -- void *_addr; /* faulting insn/memory ref. */ -- } _sigfault; -- -- /* SIGPOLL */ -- struct { -- int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ -- int _fd; -- } _sigpoll; -- } _sifields; --} siginfo_t; -- --#define UID16_SIGINFO_COMPAT_NEEDED -- --/* -- * How these fields are to be accessed. -- */ --#undef si_uid --#ifdef __KERNEL__ --#define si_uid _sifields._kill._uid32 --#define si_uid16 _sifields._kill._uid -+#ifdef __uClinux__ -+#include "siginfo_no.h" - #else --#define si_uid _sifields._kill._uid --#endif -- --#ifdef __KERNEL__ -- --#include -- --static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) --{ -- if (from->si_code < 0) -- memcpy(to, from, sizeof(*to)); -- else -- /* _sigchld is currently the largest know union member */ -- memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); --} -- --#endif /* __KERNEL__ */ --#endif /* !__uClinux__ */ -- -+#include "siginfo_mm.h" - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/siginfo_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/siginfo_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,92 @@ -+#ifndef _M68K_SIGINFO_H -+#define _M68K_SIGINFO_H -+ -+#define HAVE_ARCH_SIGINFO_T -+#define HAVE_ARCH_COPY_SIGINFO -+ -+#include -+ -+typedef struct siginfo { -+ int si_signo; -+ int si_errno; -+ int si_code; -+ -+ union { -+ int _pad[SI_PAD_SIZE]; -+ -+ /* kill() */ -+ struct { -+ __kernel_pid_t _pid; /* sender's pid */ -+ __kernel_uid_t _uid; /* backwards compatibility */ -+ __kernel_uid32_t _uid32; /* sender's uid */ -+ } _kill; -+ -+ /* POSIX.1b timers */ -+ struct { -+ timer_t _tid; /* timer id */ -+ int _overrun; /* overrun count */ -+ char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; -+ sigval_t _sigval; /* same as below */ -+ int _sys_private; /* not to be passed to user */ -+ } _timer; -+ -+ /* POSIX.1b signals */ -+ struct { -+ __kernel_pid_t _pid; /* sender's pid */ -+ __kernel_uid_t _uid; /* backwards compatibility */ -+ sigval_t _sigval; -+ __kernel_uid32_t _uid32; /* sender's uid */ -+ } _rt; -+ -+ /* SIGCHLD */ -+ struct { -+ __kernel_pid_t _pid; /* which child */ -+ __kernel_uid_t _uid; /* backwards compatibility */ -+ int _status; /* exit code */ -+ clock_t _utime; -+ clock_t _stime; -+ __kernel_uid32_t _uid32; /* sender's uid */ -+ } _sigchld; -+ -+ /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ -+ struct { -+ void *_addr; /* faulting insn/memory ref. */ -+ } _sigfault; -+ -+ /* SIGPOLL */ -+ struct { -+ int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ -+ int _fd; -+ } _sigpoll; -+ } _sifields; -+} siginfo_t; -+ -+#define UID16_SIGINFO_COMPAT_NEEDED -+ -+/* -+ * How these fields are to be accessed. -+ */ -+#undef si_uid -+#ifdef __KERNEL__ -+#define si_uid _sifields._kill._uid32 -+#define si_uid16 _sifields._kill._uid -+#else -+#define si_uid _sifields._kill._uid -+#endif -+ -+#ifdef __KERNEL__ -+ -+#include -+ -+static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) -+{ -+ if (from->si_code < 0) -+ memcpy(to, from, sizeof(*to)); -+ else -+ /* _sigchld is currently the largest know union member */ -+ memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); -+} -+ -+#endif /* __KERNEL__ */ -+ -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/siginfo_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/siginfo_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/siginfo_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,6 @@ -+#ifndef _M68KNOMMU_SIGINFO_H -+#define _M68KNOMMU_SIGINFO_H -+ -+#include -+ -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/signal.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/signal.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,213 +1,5 @@ --#ifndef _M68K_SIGNAL_H --#define _M68K_SIGNAL_H -- --#include -- --/* Avoid too many header ordering problems. */ --struct siginfo; -- --#ifdef __KERNEL__ --/* Most things should be clean enough to redefine this at will, if care -- is taken to make libc match. */ -- --#define _NSIG 64 --#define _NSIG_BPW 32 --#define _NSIG_WORDS (_NSIG / _NSIG_BPW) -- --typedef unsigned long old_sigset_t; /* at least 32 bits */ -- --typedef struct { -- unsigned long sig[_NSIG_WORDS]; --} sigset_t; -- -+#ifdef __uClinux__ -+#include "signal_no.h" - #else --/* Here we must cater to libcs that poke about in kernel headers. */ -- --#define NSIG 32 --typedef unsigned long sigset_t; -- --#endif /* __KERNEL__ */ -- --#define SIGHUP 1 --#define SIGINT 2 --#define SIGQUIT 3 --#define SIGILL 4 --#define SIGTRAP 5 --#define SIGABRT 6 --#define SIGIOT 6 --#define SIGBUS 7 --#define SIGFPE 8 --#define SIGKILL 9 --#define SIGUSR1 10 --#define SIGSEGV 11 --#define SIGUSR2 12 --#define SIGPIPE 13 --#define SIGALRM 14 --#define SIGTERM 15 --#define SIGSTKFLT 16 --#define SIGCHLD 17 --#define SIGCONT 18 --#define SIGSTOP 19 --#define SIGTSTP 20 --#define SIGTTIN 21 --#define SIGTTOU 22 --#define SIGURG 23 --#define SIGXCPU 24 --#define SIGXFSZ 25 --#define SIGVTALRM 26 --#define SIGPROF 27 --#define SIGWINCH 28 --#define SIGIO 29 --#define SIGPOLL SIGIO --/* --#define SIGLOST 29 --*/ --#define SIGPWR 30 --#define SIGSYS 31 --#define SIGUNUSED 31 -- --/* These should not be considered constants from userland. */ --#define SIGRTMIN 32 --#define SIGRTMAX _NSIG -- --/* -- * SA_FLAGS values: -- * -- * SA_ONSTACK indicates that a registered stack_t will be used. -- * SA_RESTART flag to get restarting signals (which were the default long ago) -- * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. -- * SA_RESETHAND clears the handler when the signal is delivered. -- * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. -- * SA_NODEFER prevents the current signal from being masked in the handler. -- * -- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single -- * Unix names RESETHAND and NODEFER respectively. -- */ --#define SA_NOCLDSTOP 0x00000001 --#define SA_NOCLDWAIT 0x00000002 --#define SA_SIGINFO 0x00000004 --#define SA_ONSTACK 0x08000000 --#define SA_RESTART 0x10000000 --#define SA_NODEFER 0x40000000 --#define SA_RESETHAND 0x80000000 -- --#define SA_NOMASK SA_NODEFER --#define SA_ONESHOT SA_RESETHAND -- --/* -- * sigaltstack controls -- */ --#define SS_ONSTACK 1 --#define SS_DISABLE 2 -- --#define MINSIGSTKSZ 2048 --#define SIGSTKSZ 8192 -- --#include -- --#ifdef __KERNEL__ --struct old_sigaction { -- __sighandler_t sa_handler; -- old_sigset_t sa_mask; -- unsigned long sa_flags; -- __sigrestore_t sa_restorer; --}; -- --struct sigaction { -- __sighandler_t sa_handler; -- unsigned long sa_flags; -- __sigrestore_t sa_restorer; -- sigset_t sa_mask; /* mask last for extensibility */ --}; -- --struct k_sigaction { -- struct sigaction sa; --}; --#else --/* Here we must cater to libcs that poke about in kernel headers. */ -- --struct sigaction { -- union { -- __sighandler_t _sa_handler; -- void (*_sa_sigaction)(int, struct siginfo *, void *); -- } _u; -- sigset_t sa_mask; -- unsigned long sa_flags; -- void (*sa_restorer)(void); --}; -- --#define sa_handler _u._sa_handler --#define sa_sigaction _u._sa_sigaction -- --#endif /* __KERNEL__ */ -- --typedef struct sigaltstack { -- void __user *ss_sp; -- int ss_flags; -- size_t ss_size; --} stack_t; -- --#ifdef __KERNEL__ --#include -- --#ifndef __uClinux__ --#define __HAVE_ARCH_SIG_BITOPS -- --static inline void sigaddset(sigset_t *set, int _sig) --{ -- asm ("bfset %0{%1,#1}" -- : "+od" (*set) -- : "id" ((_sig - 1) ^ 31) -- : "cc"); --} -- --static inline void sigdelset(sigset_t *set, int _sig) --{ -- asm ("bfclr %0{%1,#1}" -- : "+od" (*set) -- : "id" ((_sig - 1) ^ 31) -- : "cc"); --} -- --static inline int __const_sigismember(sigset_t *set, int _sig) --{ -- unsigned long sig = _sig - 1; -- return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); --} -- --static inline int __gen_sigismember(sigset_t *set, int _sig) --{ -- int ret; -- asm ("bfextu %1{%2,#1},%0" -- : "=d" (ret) -- : "od" (*set), "id" ((_sig-1) ^ 31) -- : "cc"); -- return ret; --} -- --#define sigismember(set,sig) \ -- (__builtin_constant_p(sig) ? \ -- __const_sigismember(set,sig) : \ -- __gen_sigismember(set,sig)) -- --static inline int sigfindinword(unsigned long word) --{ -- asm ("bfffo %1{#0,#0},%0" -- : "=d" (word) -- : "d" (word & -word) -- : "cc"); -- return word ^ 31; --} -- --struct pt_regs; --extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie); -- --#else -- --#undef __HAVE_ARCH_SIG_BITOPS --#define ptrace_signal_deliver(regs, cookie) do { } while (0) -- --#endif /* __uClinux__ */ --#endif /* __KERNEL__ */ -- --#endif /* _M68K_SIGNAL_H */ -+#include "signal_mm.h" -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/signal_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/signal_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,206 @@ -+#ifndef _M68K_SIGNAL_H -+#define _M68K_SIGNAL_H -+ -+#include -+ -+/* Avoid too many header ordering problems. */ -+struct siginfo; -+ -+#ifdef __KERNEL__ -+/* Most things should be clean enough to redefine this at will, if care -+ is taken to make libc match. */ -+ -+#define _NSIG 64 -+#define _NSIG_BPW 32 -+#define _NSIG_WORDS (_NSIG / _NSIG_BPW) -+ -+typedef unsigned long old_sigset_t; /* at least 32 bits */ -+ -+typedef struct { -+ unsigned long sig[_NSIG_WORDS]; -+} sigset_t; -+ -+#else -+/* Here we must cater to libcs that poke about in kernel headers. */ -+ -+#define NSIG 32 -+typedef unsigned long sigset_t; -+ -+#endif /* __KERNEL__ */ -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT 6 -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL SIGIO -+/* -+#define SIGLOST 29 -+*/ -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED 31 -+ -+/* These should not be considered constants from userland. */ -+#define SIGRTMIN 32 -+#define SIGRTMAX _NSIG -+ -+/* -+ * SA_FLAGS values: -+ * -+ * SA_ONSTACK indicates that a registered stack_t will be used. -+ * SA_RESTART flag to get restarting signals (which were the default long ago) -+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. -+ * SA_RESETHAND clears the handler when the signal is delivered. -+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. -+ * SA_NODEFER prevents the current signal from being masked in the handler. -+ * -+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single -+ * Unix names RESETHAND and NODEFER respectively. -+ */ -+#define SA_NOCLDSTOP 0x00000001 -+#define SA_NOCLDWAIT 0x00000002 -+#define SA_SIGINFO 0x00000004 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+ -+#define SA_NOMASK SA_NODEFER -+#define SA_ONESHOT SA_RESETHAND -+ -+/* -+ * sigaltstack controls -+ */ -+#define SS_ONSTACK 1 -+#define SS_DISABLE 2 -+ -+#define MINSIGSTKSZ 2048 -+#define SIGSTKSZ 8192 -+ -+#include -+ -+#ifdef __KERNEL__ -+struct old_sigaction { -+ __sighandler_t sa_handler; -+ old_sigset_t sa_mask; -+ unsigned long sa_flags; -+ __sigrestore_t sa_restorer; -+}; -+ -+struct sigaction { -+ __sighandler_t sa_handler; -+ unsigned long sa_flags; -+ __sigrestore_t sa_restorer; -+ sigset_t sa_mask; /* mask last for extensibility */ -+}; -+ -+struct k_sigaction { -+ struct sigaction sa; -+}; -+#else -+/* Here we must cater to libcs that poke about in kernel headers. */ -+ -+struct sigaction { -+ union { -+ __sighandler_t _sa_handler; -+ void (*_sa_sigaction)(int, struct siginfo *, void *); -+ } _u; -+ sigset_t sa_mask; -+ unsigned long sa_flags; -+ void (*sa_restorer)(void); -+}; -+ -+#define sa_handler _u._sa_handler -+#define sa_sigaction _u._sa_sigaction -+ -+#endif /* __KERNEL__ */ -+ -+typedef struct sigaltstack { -+ void __user *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+} stack_t; -+ -+#ifdef __KERNEL__ -+#include -+ -+#define __HAVE_ARCH_SIG_BITOPS -+ -+static inline void sigaddset(sigset_t *set, int _sig) -+{ -+ asm ("bfset %0{%1,#1}" -+ : "+od" (*set) -+ : "id" ((_sig - 1) ^ 31) -+ : "cc"); -+} -+ -+static inline void sigdelset(sigset_t *set, int _sig) -+{ -+ asm ("bfclr %0{%1,#1}" -+ : "+od" (*set) -+ : "id" ((_sig - 1) ^ 31) -+ : "cc"); -+} -+ -+static inline int __const_sigismember(sigset_t *set, int _sig) -+{ -+ unsigned long sig = _sig - 1; -+ return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); -+} -+ -+static inline int __gen_sigismember(sigset_t *set, int _sig) -+{ -+ int ret; -+ asm ("bfextu %1{%2,#1},%0" -+ : "=d" (ret) -+ : "od" (*set), "id" ((_sig-1) ^ 31) -+ : "cc"); -+ return ret; -+} -+ -+#define sigismember(set,sig) \ -+ (__builtin_constant_p(sig) ? \ -+ __const_sigismember(set,sig) : \ -+ __gen_sigismember(set,sig)) -+ -+static inline int sigfindinword(unsigned long word) -+{ -+ asm ("bfffo %1{#0,#0},%0" -+ : "=d" (word) -+ : "d" (word & -word) -+ : "cc"); -+ return word ^ 31; -+} -+ -+struct pt_regs; -+extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie); -+ -+#endif /* __KERNEL__ */ -+ -+#endif /* _M68K_SIGNAL_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/signal_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/signal_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/signal_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,159 @@ -+#ifndef _M68KNOMMU_SIGNAL_H -+#define _M68KNOMMU_SIGNAL_H -+ -+#include -+ -+/* Avoid too many header ordering problems. */ -+struct siginfo; -+ -+#ifdef __KERNEL__ -+/* Most things should be clean enough to redefine this at will, if care -+ is taken to make libc match. */ -+ -+#define _NSIG 64 -+#define _NSIG_BPW 32 -+#define _NSIG_WORDS (_NSIG / _NSIG_BPW) -+ -+typedef unsigned long old_sigset_t; /* at least 32 bits */ -+ -+typedef struct { -+ unsigned long sig[_NSIG_WORDS]; -+} sigset_t; -+ -+#else -+/* Here we must cater to libcs that poke about in kernel headers. */ -+ -+#define NSIG 32 -+typedef unsigned long sigset_t; -+ -+#endif /* __KERNEL__ */ -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT 6 -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL SIGIO -+/* -+#define SIGLOST 29 -+*/ -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED 31 -+ -+/* These should not be considered constants from userland. */ -+#define SIGRTMIN 32 -+#define SIGRTMAX _NSIG -+ -+/* -+ * SA_FLAGS values: -+ * -+ * SA_ONSTACK indicates that a registered stack_t will be used. -+ * SA_RESTART flag to get restarting signals (which were the default long ago) -+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. -+ * SA_RESETHAND clears the handler when the signal is delivered. -+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. -+ * SA_NODEFER prevents the current signal from being masked in the handler. -+ * -+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single -+ * Unix names RESETHAND and NODEFER respectively. -+ */ -+#define SA_NOCLDSTOP 0x00000001 -+#define SA_NOCLDWAIT 0x00000002 -+#define SA_SIGINFO 0x00000004 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+ -+#define SA_NOMASK SA_NODEFER -+#define SA_ONESHOT SA_RESETHAND -+ -+/* -+ * sigaltstack controls -+ */ -+#define SS_ONSTACK 1 -+#define SS_DISABLE 2 -+ -+#define MINSIGSTKSZ 2048 -+#define SIGSTKSZ 8192 -+ -+#include -+ -+#ifdef __KERNEL__ -+struct old_sigaction { -+ __sighandler_t sa_handler; -+ old_sigset_t sa_mask; -+ unsigned long sa_flags; -+ void (*sa_restorer)(void); -+}; -+ -+struct sigaction { -+ __sighandler_t sa_handler; -+ unsigned long sa_flags; -+ void (*sa_restorer)(void); -+ sigset_t sa_mask; /* mask last for extensibility */ -+}; -+ -+struct k_sigaction { -+ struct sigaction sa; -+}; -+#else -+/* Here we must cater to libcs that poke about in kernel headers. */ -+ -+struct sigaction { -+ union { -+ __sighandler_t _sa_handler; -+ void (*_sa_sigaction)(int, struct siginfo *, void *); -+ } _u; -+ sigset_t sa_mask; -+ unsigned long sa_flags; -+ void (*sa_restorer)(void); -+}; -+ -+#define sa_handler _u._sa_handler -+#define sa_sigaction _u._sa_sigaction -+ -+#endif /* __KERNEL__ */ -+ -+typedef struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+} stack_t; -+ -+#ifdef __KERNEL__ -+ -+#include -+#undef __HAVE_ARCH_SIG_BITOPS -+ -+#define ptrace_signal_deliver(regs, cookie) do { } while (0) -+ -+#endif /* __KERNEL__ */ -+ -+#endif /* _M68KNOMMU_SIGNAL_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/swab.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/swab.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,27 +1,5 @@ --#ifndef _M68K_SWAB_H --#define _M68K_SWAB_H -- --#include --#include -- --#define __SWAB_64_THRU_32__ -- --#if defined (__mcfisaaplus__) || defined (__mcfisac__) --static inline __attribute_const__ __u32 __arch_swab32(__u32 val) --{ -- __asm__("byterev %0" : "=d" (val) : "0" (val)); -- return val; --} -- --#define __arch_swab32 __arch_swab32 --#elif !defined(__uClinux__) -- --static inline __attribute_const__ __u32 __arch_swab32(__u32 val) --{ -- __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val)); -- return val; --} --#define __arch_swab32 __arch_swab32 -+#ifdef __uClinux__ -+#include "swab_no.h" -+#else -+#include "swab_mm.h" - #endif -- --#endif /* _M68K_SWAB_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/swab_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/swab_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,16 @@ -+#ifndef _M68K_SWAB_H -+#define _M68K_SWAB_H -+ -+#include -+#include -+ -+#define __SWAB_64_THRU_32__ -+ -+static inline __attribute_const__ __u32 __arch_swab32(__u32 val) -+{ -+ __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val)); -+ return val; -+} -+#define __arch_swab32 __arch_swab32 -+ -+#endif /* _M68K_SWAB_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/swab_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/swab_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/swab_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,24 @@ -+#ifndef _M68KNOMMU_SWAB_H -+#define _M68KNOMMU_SWAB_H -+ -+#include -+ -+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) -+# define __SWAB_64_THRU_32__ -+#endif -+ -+#if defined (__mcfisaaplus__) || defined (__mcfisac__) -+static inline __attribute_const__ __u32 __arch_swab32(__u32 val) -+{ -+ asm( -+ "byterev %0" -+ : "=d" (val) -+ : "0" (val) -+ ); -+ return val; -+} -+ -+#define __arch_swab32 __arch_swab32 -+#endif -+ -+#endif /* _M68KNOMMU_SWAB_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/unistd.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/unistd.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,372 +1,5 @@ --#ifndef _ASM_M68K_UNISTD_H_ --#define _ASM_M68K_UNISTD_H_ -- --/* -- * This file contains the system call numbers. -- */ -- --#define __NR_restart_syscall 0 --#define __NR_exit 1 --#define __NR_fork 2 --#define __NR_read 3 --#define __NR_write 4 --#define __NR_open 5 --#define __NR_close 6 --#define __NR_waitpid 7 --#define __NR_creat 8 --#define __NR_link 9 --#define __NR_unlink 10 --#define __NR_execve 11 --#define __NR_chdir 12 --#define __NR_time 13 --#define __NR_mknod 14 --#define __NR_chmod 15 --#define __NR_chown 16 --#define __NR_break 17 --#define __NR_oldstat 18 --#define __NR_lseek 19 --#define __NR_getpid 20 --#define __NR_mount 21 --#define __NR_umount 22 --#define __NR_setuid 23 --#define __NR_getuid 24 --#define __NR_stime 25 --#define __NR_ptrace 26 --#define __NR_alarm 27 --#define __NR_oldfstat 28 --#define __NR_pause 29 --#define __NR_utime 30 --#define __NR_stty 31 --#define __NR_gtty 32 --#define __NR_access 33 --#define __NR_nice 34 --#define __NR_ftime 35 --#define __NR_sync 36 --#define __NR_kill 37 --#define __NR_rename 38 --#define __NR_mkdir 39 --#define __NR_rmdir 40 --#define __NR_dup 41 --#define __NR_pipe 42 --#define __NR_times 43 --#define __NR_prof 44 --#define __NR_brk 45 --#define __NR_setgid 46 --#define __NR_getgid 47 --#define __NR_signal 48 --#define __NR_geteuid 49 --#define __NR_getegid 50 --#define __NR_acct 51 --#define __NR_umount2 52 --#define __NR_lock 53 --#define __NR_ioctl 54 --#define __NR_fcntl 55 --#define __NR_mpx 56 --#define __NR_setpgid 57 --#define __NR_ulimit 58 --#define __NR_oldolduname 59 --#define __NR_umask 60 --#define __NR_chroot 61 --#define __NR_ustat 62 --#define __NR_dup2 63 --#define __NR_getppid 64 --#define __NR_getpgrp 65 --#define __NR_setsid 66 --#define __NR_sigaction 67 --#define __NR_sgetmask 68 --#define __NR_ssetmask 69 --#define __NR_setreuid 70 --#define __NR_setregid 71 --#define __NR_sigsuspend 72 --#define __NR_sigpending 73 --#define __NR_sethostname 74 --#define __NR_setrlimit 75 --#define __NR_getrlimit 76 --#define __NR_getrusage 77 --#define __NR_gettimeofday 78 --#define __NR_settimeofday 79 --#define __NR_getgroups 80 --#define __NR_setgroups 81 --#define __NR_select 82 --#define __NR_symlink 83 --#define __NR_oldlstat 84 --#define __NR_readlink 85 --#define __NR_uselib 86 --#define __NR_swapon 87 --#define __NR_reboot 88 --#define __NR_readdir 89 --#define __NR_mmap 90 --#define __NR_munmap 91 --#define __NR_truncate 92 --#define __NR_ftruncate 93 --#define __NR_fchmod 94 --#define __NR_fchown 95 --#define __NR_getpriority 96 --#define __NR_setpriority 97 --#define __NR_profil 98 --#define __NR_statfs 99 --#define __NR_fstatfs 100 --#define __NR_ioperm 101 --#define __NR_socketcall 102 --#define __NR_syslog 103 --#define __NR_setitimer 104 --#define __NR_getitimer 105 --#define __NR_stat 106 --#define __NR_lstat 107 --#define __NR_fstat 108 --#define __NR_olduname 109 --#define __NR_iopl /* 110 */ not supported --#define __NR_vhangup 111 --#define __NR_idle /* 112 */ Obsolete --#define __NR_vm86 /* 113 */ not supported --#define __NR_wait4 114 --#define __NR_swapoff 115 --#define __NR_sysinfo 116 --#define __NR_ipc 117 --#define __NR_fsync 118 --#define __NR_sigreturn 119 --#define __NR_clone 120 --#define __NR_setdomainname 121 --#define __NR_uname 122 --#define __NR_cacheflush 123 --#define __NR_adjtimex 124 --#define __NR_mprotect 125 --#define __NR_sigprocmask 126 --#define __NR_create_module 127 --#define __NR_init_module 128 --#define __NR_delete_module 129 --#define __NR_get_kernel_syms 130 --#define __NR_quotactl 131 --#define __NR_getpgid 132 --#define __NR_fchdir 133 --#define __NR_bdflush 134 --#define __NR_sysfs 135 --#define __NR_personality 136 --#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ --#define __NR_setfsuid 138 --#define __NR_setfsgid 139 --#define __NR__llseek 140 --#define __NR_getdents 141 --#define __NR__newselect 142 --#define __NR_flock 143 --#define __NR_msync 144 --#define __NR_readv 145 --#define __NR_writev 146 --#define __NR_getsid 147 --#define __NR_fdatasync 148 --#define __NR__sysctl 149 --#define __NR_mlock 150 --#define __NR_munlock 151 --#define __NR_mlockall 152 --#define __NR_munlockall 153 --#define __NR_sched_setparam 154 --#define __NR_sched_getparam 155 --#define __NR_sched_setscheduler 156 --#define __NR_sched_getscheduler 157 --#define __NR_sched_yield 158 --#define __NR_sched_get_priority_max 159 --#define __NR_sched_get_priority_min 160 --#define __NR_sched_rr_get_interval 161 --#define __NR_nanosleep 162 --#define __NR_mremap 163 --#define __NR_setresuid 164 --#define __NR_getresuid 165 --#define __NR_getpagesize 166 --#define __NR_query_module 167 --#define __NR_poll 168 --#define __NR_nfsservctl 169 --#define __NR_setresgid 170 --#define __NR_getresgid 171 --#define __NR_prctl 172 --#define __NR_rt_sigreturn 173 --#define __NR_rt_sigaction 174 --#define __NR_rt_sigprocmask 175 --#define __NR_rt_sigpending 176 --#define __NR_rt_sigtimedwait 177 --#define __NR_rt_sigqueueinfo 178 --#define __NR_rt_sigsuspend 179 --#define __NR_pread64 180 --#define __NR_pwrite64 181 --#define __NR_lchown 182 --#define __NR_getcwd 183 --#define __NR_capget 184 --#define __NR_capset 185 --#define __NR_sigaltstack 186 --#define __NR_sendfile 187 --#define __NR_getpmsg 188 /* some people actually want streams */ --#define __NR_putpmsg 189 /* some people actually want streams */ --#define __NR_vfork 190 --#define __NR_ugetrlimit 191 --#define __NR_mmap2 192 --#define __NR_truncate64 193 --#define __NR_ftruncate64 194 --#define __NR_stat64 195 --#define __NR_lstat64 196 --#define __NR_fstat64 197 --#define __NR_chown32 198 --#define __NR_getuid32 199 --#define __NR_getgid32 200 --#define __NR_geteuid32 201 --#define __NR_getegid32 202 --#define __NR_setreuid32 203 --#define __NR_setregid32 204 --#define __NR_getgroups32 205 --#define __NR_setgroups32 206 --#define __NR_fchown32 207 --#define __NR_setresuid32 208 --#define __NR_getresuid32 209 --#define __NR_setresgid32 210 --#define __NR_getresgid32 211 --#define __NR_lchown32 212 --#define __NR_setuid32 213 --#define __NR_setgid32 214 --#define __NR_setfsuid32 215 --#define __NR_setfsgid32 216 --#define __NR_pivot_root 217 --#define __NR_getdents64 220 --#define __NR_gettid 221 --#define __NR_tkill 222 --#define __NR_setxattr 223 --#define __NR_lsetxattr 224 --#define __NR_fsetxattr 225 --#define __NR_getxattr 226 --#define __NR_lgetxattr 227 --#define __NR_fgetxattr 228 --#define __NR_listxattr 229 --#define __NR_llistxattr 230 --#define __NR_flistxattr 231 --#define __NR_removexattr 232 --#define __NR_lremovexattr 233 --#define __NR_fremovexattr 234 --#define __NR_futex 235 --#define __NR_sendfile64 236 --#define __NR_mincore 237 --#define __NR_madvise 238 --#define __NR_fcntl64 239 --#define __NR_readahead 240 --#define __NR_io_setup 241 --#define __NR_io_destroy 242 --#define __NR_io_getevents 243 --#define __NR_io_submit 244 --#define __NR_io_cancel 245 --#define __NR_fadvise64 246 --#define __NR_exit_group 247 --#define __NR_lookup_dcookie 248 --#define __NR_epoll_create 249 --#define __NR_epoll_ctl 250 --#define __NR_epoll_wait 251 --#define __NR_remap_file_pages 252 --#define __NR_set_tid_address 253 --#define __NR_timer_create 254 --#define __NR_timer_settime 255 --#define __NR_timer_gettime 256 --#define __NR_timer_getoverrun 257 --#define __NR_timer_delete 258 --#define __NR_clock_settime 259 --#define __NR_clock_gettime 260 --#define __NR_clock_getres 261 --#define __NR_clock_nanosleep 262 --#define __NR_statfs64 263 --#define __NR_fstatfs64 264 --#define __NR_tgkill 265 --#define __NR_utimes 266 --#define __NR_fadvise64_64 267 --#define __NR_mbind 268 --#define __NR_get_mempolicy 269 --#define __NR_set_mempolicy 270 --#define __NR_mq_open 271 --#define __NR_mq_unlink 272 --#define __NR_mq_timedsend 273 --#define __NR_mq_timedreceive 274 --#define __NR_mq_notify 275 --#define __NR_mq_getsetattr 276 --#define __NR_waitid 277 --#define __NR_vserver 278 --#define __NR_add_key 279 --#define __NR_request_key 280 --#define __NR_keyctl 281 --#define __NR_ioprio_set 282 --#define __NR_ioprio_get 283 --#define __NR_inotify_init 284 --#define __NR_inotify_add_watch 285 --#define __NR_inotify_rm_watch 286 --#define __NR_migrate_pages 287 --#define __NR_openat 288 --#define __NR_mkdirat 289 --#define __NR_mknodat 290 --#define __NR_fchownat 291 --#define __NR_futimesat 292 --#define __NR_fstatat64 293 --#define __NR_unlinkat 294 --#define __NR_renameat 295 --#define __NR_linkat 296 --#define __NR_symlinkat 297 --#define __NR_readlinkat 298 --#define __NR_fchmodat 299 --#define __NR_faccessat 300 --#define __NR_pselect6 301 --#define __NR_ppoll 302 --#define __NR_unshare 303 --#define __NR_set_robust_list 304 --#define __NR_get_robust_list 305 --#define __NR_splice 306 --#define __NR_sync_file_range 307 --#define __NR_tee 308 --#define __NR_vmsplice 309 --#define __NR_move_pages 310 --#define __NR_sched_setaffinity 311 --#define __NR_sched_getaffinity 312 --#define __NR_kexec_load 313 --#define __NR_getcpu 314 --#define __NR_epoll_pwait 315 --#define __NR_utimensat 316 --#define __NR_signalfd 317 --#define __NR_timerfd_create 318 --#define __NR_eventfd 319 --#define __NR_fallocate 320 --#define __NR_timerfd_settime 321 --#define __NR_timerfd_gettime 322 --#define __NR_signalfd4 323 --#define __NR_eventfd2 324 --#define __NR_epoll_create1 325 --#define __NR_dup3 326 --#define __NR_pipe2 327 --#define __NR_inotify_init1 328 -- --#ifdef __KERNEL__ -- --#define NR_syscalls 329 -- --#define __ARCH_WANT_IPC_PARSE_VERSION --#define __ARCH_WANT_OLD_READDIR --#define __ARCH_WANT_OLD_STAT --#define __ARCH_WANT_STAT64 --#define __ARCH_WANT_SYS_ALARM --#define __ARCH_WANT_SYS_GETHOSTNAME --#define __ARCH_WANT_SYS_PAUSE --#define __ARCH_WANT_SYS_SGETMASK --#define __ARCH_WANT_SYS_SIGNAL --#define __ARCH_WANT_SYS_TIME --#define __ARCH_WANT_SYS_UTIME --#define __ARCH_WANT_SYS_WAITPID --#define __ARCH_WANT_SYS_SOCKETCALL --#define __ARCH_WANT_SYS_FADVISE64 --#define __ARCH_WANT_SYS_GETPGRP --#define __ARCH_WANT_SYS_LLSEEK --#define __ARCH_WANT_SYS_NICE --#define __ARCH_WANT_SYS_OLD_GETRLIMIT --#define __ARCH_WANT_SYS_OLDUMOUNT --#define __ARCH_WANT_SYS_SIGPENDING --#define __ARCH_WANT_SYS_SIGPROCMASK --#define __ARCH_WANT_SYS_RT_SIGACTION -- --/* -- * "Conditional" syscalls -- * -- * What we want is __attribute__((weak,alias("sys_ni_syscall"))), -- * but it doesn't work on all toolchains, so we just do it by hand -- */ --#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") -- --#endif /* __KERNEL__ */ --#endif /* _ASM_M68K_UNISTD_H_ */ -+#ifdef __uClinux__ -+#include "unistd_no.h" -+#else -+#include "unistd_mm.h" -+#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/unistd_mm.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd_mm.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/unistd_mm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd_mm.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,372 @@ -+#ifndef _ASM_M68K_UNISTD_H_ -+#define _ASM_M68K_UNISTD_H_ -+ -+/* -+ * This file contains the system call numbers. -+ */ -+ -+#define __NR_restart_syscall 0 -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_chown 16 -+#define __NR_break 17 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_stty 31 -+#define __NR_gtty 32 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_ftime 35 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_prof 44 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_lock 53 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_mpx 56 -+#define __NR_setpgid 57 -+#define __NR_ulimit 58 -+#define __NR_oldolduname 59 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_select 82 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_profil 98 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_ioperm 101 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_iopl /* 110 */ not supported -+#define __NR_vhangup 111 -+#define __NR_idle /* 112 */ Obsolete -+#define __NR_vm86 /* 113 */ not supported -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_cacheflush 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_create_module 127 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_get_kernel_syms 130 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_getpagesize 166 -+#define __NR_query_module 167 -+#define __NR_poll 168 -+#define __NR_nfsservctl 169 -+#define __NR_setresgid 170 -+#define __NR_getresgid 171 -+#define __NR_prctl 172 -+#define __NR_rt_sigreturn 173 -+#define __NR_rt_sigaction 174 -+#define __NR_rt_sigprocmask 175 -+#define __NR_rt_sigpending 176 -+#define __NR_rt_sigtimedwait 177 -+#define __NR_rt_sigqueueinfo 178 -+#define __NR_rt_sigsuspend 179 -+#define __NR_pread64 180 -+#define __NR_pwrite64 181 -+#define __NR_lchown 182 -+#define __NR_getcwd 183 -+#define __NR_capget 184 -+#define __NR_capset 185 -+#define __NR_sigaltstack 186 -+#define __NR_sendfile 187 -+#define __NR_getpmsg 188 /* some people actually want streams */ -+#define __NR_putpmsg 189 /* some people actually want streams */ -+#define __NR_vfork 190 -+#define __NR_ugetrlimit 191 -+#define __NR_mmap2 192 -+#define __NR_truncate64 193 -+#define __NR_ftruncate64 194 -+#define __NR_stat64 195 -+#define __NR_lstat64 196 -+#define __NR_fstat64 197 -+#define __NR_chown32 198 -+#define __NR_getuid32 199 -+#define __NR_getgid32 200 -+#define __NR_geteuid32 201 -+#define __NR_getegid32 202 -+#define __NR_setreuid32 203 -+#define __NR_setregid32 204 -+#define __NR_getgroups32 205 -+#define __NR_setgroups32 206 -+#define __NR_fchown32 207 -+#define __NR_setresuid32 208 -+#define __NR_getresuid32 209 -+#define __NR_setresgid32 210 -+#define __NR_getresgid32 211 -+#define __NR_lchown32 212 -+#define __NR_setuid32 213 -+#define __NR_setgid32 214 -+#define __NR_setfsuid32 215 -+#define __NR_setfsgid32 216 -+#define __NR_pivot_root 217 -+#define __NR_getdents64 220 -+#define __NR_gettid 221 -+#define __NR_tkill 222 -+#define __NR_setxattr 223 -+#define __NR_lsetxattr 224 -+#define __NR_fsetxattr 225 -+#define __NR_getxattr 226 -+#define __NR_lgetxattr 227 -+#define __NR_fgetxattr 228 -+#define __NR_listxattr 229 -+#define __NR_llistxattr 230 -+#define __NR_flistxattr 231 -+#define __NR_removexattr 232 -+#define __NR_lremovexattr 233 -+#define __NR_fremovexattr 234 -+#define __NR_futex 235 -+#define __NR_sendfile64 236 -+#define __NR_mincore 237 -+#define __NR_madvise 238 -+#define __NR_fcntl64 239 -+#define __NR_readahead 240 -+#define __NR_io_setup 241 -+#define __NR_io_destroy 242 -+#define __NR_io_getevents 243 -+#define __NR_io_submit 244 -+#define __NR_io_cancel 245 -+#define __NR_fadvise64 246 -+#define __NR_exit_group 247 -+#define __NR_lookup_dcookie 248 -+#define __NR_epoll_create 249 -+#define __NR_epoll_ctl 250 -+#define __NR_epoll_wait 251 -+#define __NR_remap_file_pages 252 -+#define __NR_set_tid_address 253 -+#define __NR_timer_create 254 -+#define __NR_timer_settime 255 -+#define __NR_timer_gettime 256 -+#define __NR_timer_getoverrun 257 -+#define __NR_timer_delete 258 -+#define __NR_clock_settime 259 -+#define __NR_clock_gettime 260 -+#define __NR_clock_getres 261 -+#define __NR_clock_nanosleep 262 -+#define __NR_statfs64 263 -+#define __NR_fstatfs64 264 -+#define __NR_tgkill 265 -+#define __NR_utimes 266 -+#define __NR_fadvise64_64 267 -+#define __NR_mbind 268 -+#define __NR_get_mempolicy 269 -+#define __NR_set_mempolicy 270 -+#define __NR_mq_open 271 -+#define __NR_mq_unlink 272 -+#define __NR_mq_timedsend 273 -+#define __NR_mq_timedreceive 274 -+#define __NR_mq_notify 275 -+#define __NR_mq_getsetattr 276 -+#define __NR_waitid 277 -+#define __NR_vserver 278 -+#define __NR_add_key 279 -+#define __NR_request_key 280 -+#define __NR_keyctl 281 -+#define __NR_ioprio_set 282 -+#define __NR_ioprio_get 283 -+#define __NR_inotify_init 284 -+#define __NR_inotify_add_watch 285 -+#define __NR_inotify_rm_watch 286 -+#define __NR_migrate_pages 287 -+#define __NR_openat 288 -+#define __NR_mkdirat 289 -+#define __NR_mknodat 290 -+#define __NR_fchownat 291 -+#define __NR_futimesat 292 -+#define __NR_fstatat64 293 -+#define __NR_unlinkat 294 -+#define __NR_renameat 295 -+#define __NR_linkat 296 -+#define __NR_symlinkat 297 -+#define __NR_readlinkat 298 -+#define __NR_fchmodat 299 -+#define __NR_faccessat 300 -+#define __NR_pselect6 301 -+#define __NR_ppoll 302 -+#define __NR_unshare 303 -+#define __NR_set_robust_list 304 -+#define __NR_get_robust_list 305 -+#define __NR_splice 306 -+#define __NR_sync_file_range 307 -+#define __NR_tee 308 -+#define __NR_vmsplice 309 -+#define __NR_move_pages 310 -+#define __NR_sched_setaffinity 311 -+#define __NR_sched_getaffinity 312 -+#define __NR_kexec_load 313 -+#define __NR_getcpu 314 -+#define __NR_epoll_pwait 315 -+#define __NR_utimensat 316 -+#define __NR_signalfd 317 -+#define __NR_timerfd_create 318 -+#define __NR_eventfd 319 -+#define __NR_fallocate 320 -+#define __NR_timerfd_settime 321 -+#define __NR_timerfd_gettime 322 -+#define __NR_signalfd4 323 -+#define __NR_eventfd2 324 -+#define __NR_epoll_create1 325 -+#define __NR_dup3 326 -+#define __NR_pipe2 327 -+#define __NR_inotify_init1 328 -+ -+#ifdef __KERNEL__ -+ -+#define NR_syscalls 329 -+ -+#define __ARCH_WANT_IPC_PARSE_VERSION -+#define __ARCH_WANT_OLD_READDIR -+#define __ARCH_WANT_OLD_STAT -+#define __ARCH_WANT_STAT64 -+#define __ARCH_WANT_SYS_ALARM -+#define __ARCH_WANT_SYS_GETHOSTNAME -+#define __ARCH_WANT_SYS_PAUSE -+#define __ARCH_WANT_SYS_SGETMASK -+#define __ARCH_WANT_SYS_SIGNAL -+#define __ARCH_WANT_SYS_TIME -+#define __ARCH_WANT_SYS_UTIME -+#define __ARCH_WANT_SYS_WAITPID -+#define __ARCH_WANT_SYS_SOCKETCALL -+#define __ARCH_WANT_SYS_FADVISE64 -+#define __ARCH_WANT_SYS_GETPGRP -+#define __ARCH_WANT_SYS_LLSEEK -+#define __ARCH_WANT_SYS_NICE -+#define __ARCH_WANT_SYS_OLD_GETRLIMIT -+#define __ARCH_WANT_SYS_OLDUMOUNT -+#define __ARCH_WANT_SYS_SIGPENDING -+#define __ARCH_WANT_SYS_SIGPROCMASK -+#define __ARCH_WANT_SYS_RT_SIGACTION -+ -+/* -+ * "Conditional" syscalls -+ * -+ * What we want is __attribute__((weak,alias("sys_ni_syscall"))), -+ * but it doesn't work on all toolchains, so we just do it by hand -+ */ -+#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") -+ -+#endif /* __KERNEL__ */ -+#endif /* _ASM_M68K_UNISTD_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68k/include/asm/unistd_no.h linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd_no.h ---- linux-2.6.29.owrt/arch/m68k/include/asm/unistd_no.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/m68k/include/asm/unistd_no.h 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,372 @@ -+#ifndef _ASM_M68K_UNISTD_H_ -+#define _ASM_M68K_UNISTD_H_ -+ -+/* -+ * This file contains the system call numbers. -+ */ -+ -+#define __NR_restart_syscall 0 -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_chown 16 -+#define __NR_break 17 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_stty 31 -+#define __NR_gtty 32 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_ftime 35 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_prof 44 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_lock 53 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_mpx 56 -+#define __NR_setpgid 57 -+#define __NR_ulimit 58 -+#define __NR_oldolduname 59 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_select 82 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_profil 98 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_ioperm 101 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_iopl /* 110 */ not supported -+#define __NR_vhangup 111 -+#define __NR_idle /* 112 */ Obsolete -+#define __NR_vm86 /* 113 */ not supported -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_cacheflush 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_create_module 127 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_get_kernel_syms 130 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_getpagesize 166 -+#define __NR_query_module 167 -+#define __NR_poll 168 -+#define __NR_nfsservctl 169 -+#define __NR_setresgid 170 -+#define __NR_getresgid 171 -+#define __NR_prctl 172 -+#define __NR_rt_sigreturn 173 -+#define __NR_rt_sigaction 174 -+#define __NR_rt_sigprocmask 175 -+#define __NR_rt_sigpending 176 -+#define __NR_rt_sigtimedwait 177 -+#define __NR_rt_sigqueueinfo 178 -+#define __NR_rt_sigsuspend 179 -+#define __NR_pread64 180 -+#define __NR_pwrite64 181 -+#define __NR_lchown 182 -+#define __NR_getcwd 183 -+#define __NR_capget 184 -+#define __NR_capset 185 -+#define __NR_sigaltstack 186 -+#define __NR_sendfile 187 -+#define __NR_getpmsg 188 /* some people actually want streams */ -+#define __NR_putpmsg 189 /* some people actually want streams */ -+#define __NR_vfork 190 -+#define __NR_ugetrlimit 191 -+#define __NR_mmap2 192 -+#define __NR_truncate64 193 -+#define __NR_ftruncate64 194 -+#define __NR_stat64 195 -+#define __NR_lstat64 196 -+#define __NR_fstat64 197 -+#define __NR_chown32 198 -+#define __NR_getuid32 199 -+#define __NR_getgid32 200 -+#define __NR_geteuid32 201 -+#define __NR_getegid32 202 -+#define __NR_setreuid32 203 -+#define __NR_setregid32 204 -+#define __NR_getgroups32 205 -+#define __NR_setgroups32 206 -+#define __NR_fchown32 207 -+#define __NR_setresuid32 208 -+#define __NR_getresuid32 209 -+#define __NR_setresgid32 210 -+#define __NR_getresgid32 211 -+#define __NR_lchown32 212 -+#define __NR_setuid32 213 -+#define __NR_setgid32 214 -+#define __NR_setfsuid32 215 -+#define __NR_setfsgid32 216 -+#define __NR_pivot_root 217 -+#define __NR_getdents64 220 -+#define __NR_gettid 221 -+#define __NR_tkill 222 -+#define __NR_setxattr 223 -+#define __NR_lsetxattr 224 -+#define __NR_fsetxattr 225 -+#define __NR_getxattr 226 -+#define __NR_lgetxattr 227 -+#define __NR_fgetxattr 228 -+#define __NR_listxattr 229 -+#define __NR_llistxattr 230 -+#define __NR_flistxattr 231 -+#define __NR_removexattr 232 -+#define __NR_lremovexattr 233 -+#define __NR_fremovexattr 234 -+#define __NR_futex 235 -+#define __NR_sendfile64 236 -+#define __NR_mincore 237 -+#define __NR_madvise 238 -+#define __NR_fcntl64 239 -+#define __NR_readahead 240 -+#define __NR_io_setup 241 -+#define __NR_io_destroy 242 -+#define __NR_io_getevents 243 -+#define __NR_io_submit 244 -+#define __NR_io_cancel 245 -+#define __NR_fadvise64 246 -+#define __NR_exit_group 247 -+#define __NR_lookup_dcookie 248 -+#define __NR_epoll_create 249 -+#define __NR_epoll_ctl 250 -+#define __NR_epoll_wait 251 -+#define __NR_remap_file_pages 252 -+#define __NR_set_tid_address 253 -+#define __NR_timer_create 254 -+#define __NR_timer_settime 255 -+#define __NR_timer_gettime 256 -+#define __NR_timer_getoverrun 257 -+#define __NR_timer_delete 258 -+#define __NR_clock_settime 259 -+#define __NR_clock_gettime 260 -+#define __NR_clock_getres 261 -+#define __NR_clock_nanosleep 262 -+#define __NR_statfs64 263 -+#define __NR_fstatfs64 264 -+#define __NR_tgkill 265 -+#define __NR_utimes 266 -+#define __NR_fadvise64_64 267 -+#define __NR_mbind 268 -+#define __NR_get_mempolicy 269 -+#define __NR_set_mempolicy 270 -+#define __NR_mq_open 271 -+#define __NR_mq_unlink 272 -+#define __NR_mq_timedsend 273 -+#define __NR_mq_timedreceive 274 -+#define __NR_mq_notify 275 -+#define __NR_mq_getsetattr 276 -+#define __NR_waitid 277 -+#define __NR_vserver 278 -+#define __NR_add_key 279 -+#define __NR_request_key 280 -+#define __NR_keyctl 281 -+#define __NR_ioprio_set 282 -+#define __NR_ioprio_get 283 -+#define __NR_inotify_init 284 -+#define __NR_inotify_add_watch 285 -+#define __NR_inotify_rm_watch 286 -+#define __NR_migrate_pages 287 -+#define __NR_openat 288 -+#define __NR_mkdirat 289 -+#define __NR_mknodat 290 -+#define __NR_fchownat 291 -+#define __NR_futimesat 292 -+#define __NR_fstatat64 293 -+#define __NR_unlinkat 294 -+#define __NR_renameat 295 -+#define __NR_linkat 296 -+#define __NR_symlinkat 297 -+#define __NR_readlinkat 298 -+#define __NR_fchmodat 299 -+#define __NR_faccessat 300 -+#define __NR_pselect6 301 -+#define __NR_ppoll 302 -+#define __NR_unshare 303 -+#define __NR_set_robust_list 304 -+#define __NR_get_robust_list 305 -+#define __NR_splice 306 -+#define __NR_sync_file_range 307 -+#define __NR_tee 308 -+#define __NR_vmsplice 309 -+#define __NR_move_pages 310 -+#define __NR_sched_setaffinity 311 -+#define __NR_sched_getaffinity 312 -+#define __NR_kexec_load 313 -+#define __NR_getcpu 314 -+#define __NR_epoll_pwait 315 -+#define __NR_utimensat 316 -+#define __NR_signalfd 317 -+#define __NR_timerfd_create 318 -+#define __NR_eventfd 319 -+#define __NR_fallocate 320 -+#define __NR_timerfd_settime 321 -+#define __NR_timerfd_gettime 322 -+#define __NR_signalfd4 323 -+#define __NR_eventfd2 324 -+#define __NR_epoll_create1 325 -+#define __NR_dup3 326 -+#define __NR_pipe2 327 -+#define __NR_inotify_init1 328 -+ -+#ifdef __KERNEL__ -+ -+#define NR_syscalls 329 -+ -+#define __ARCH_WANT_IPC_PARSE_VERSION -+#define __ARCH_WANT_OLD_READDIR -+#define __ARCH_WANT_OLD_STAT -+#define __ARCH_WANT_STAT64 -+#define __ARCH_WANT_SYS_ALARM -+#define __ARCH_WANT_SYS_GETHOSTNAME -+#define __ARCH_WANT_SYS_PAUSE -+#define __ARCH_WANT_SYS_SGETMASK -+#define __ARCH_WANT_SYS_SIGNAL -+#define __ARCH_WANT_SYS_TIME -+#define __ARCH_WANT_SYS_UTIME -+#define __ARCH_WANT_SYS_WAITPID -+#define __ARCH_WANT_SYS_SOCKETCALL -+#define __ARCH_WANT_SYS_FADVISE64 -+#define __ARCH_WANT_SYS_GETPGRP -+#define __ARCH_WANT_SYS_LLSEEK -+#define __ARCH_WANT_SYS_NICE -+#define __ARCH_WANT_SYS_OLD_GETRLIMIT -+#define __ARCH_WANT_SYS_OLDUMOUNT -+#define __ARCH_WANT_SYS_SIGPENDING -+#define __ARCH_WANT_SYS_SIGPROCMASK -+#define __ARCH_WANT_SYS_RT_SIGACTION -+ -+/* -+ * "Conditional" syscalls -+ * -+ * What we want is __attribute__((weak,alias("sys_ni_syscall"))), -+ * but it doesn't work on all toolchains, so we just do it by hand -+ */ -+#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") -+ -+#endif /* __KERNEL__ */ -+#endif /* _ASM_M68K_UNISTD_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68knommu/platform/5206e/config.c linux-2.6.29-rc3.owrt/arch/m68knommu/platform/5206e/config.c ---- linux-2.6.29.owrt/arch/m68knommu/platform/5206e/config.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68knommu/platform/5206e/config.c 2009-05-10 23:48:28.000000000 +0200 -@@ -17,7 +17,6 @@ - #include - #include - #include --#include - - /***************************************************************************/ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/m68knommu/platform/528x/config.c linux-2.6.29-rc3.owrt/arch/m68knommu/platform/528x/config.c ---- linux-2.6.29.owrt/arch/m68knommu/platform/528x/config.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/m68knommu/platform/528x/config.c 2009-05-10 23:48:28.000000000 +0200 -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #ifdef CONFIG_MTD_PARTITIONS - #include -@@ -32,6 +33,233 @@ - /***************************************************************************/ - - void coldfire_reset(void); -+static void coldfire_qspi_cs_control(u8 cs, u8 command); -+ -+/***************************************************************************/ -+ -+#if defined(CONFIG_SPI) -+ -+#if defined(CONFIG_WILDFIRE) -+#define SPI_NUM_CHIPSELECTS 0x02 -+#define SPI_PAR_VAL 0x07 /* Enable DIN, DOUT, CLK */ -+#define SPI_CS_MASK 0x18 -+ -+#define FLASH_BLOCKSIZE (1024*64) -+#define FLASH_NUMBLOCKS 16 -+#define FLASH_TYPE "m25p80" -+ -+#define M25P80_CS 0 -+#define MMC_CS 1 -+ -+#ifdef CONFIG_MTD_PARTITIONS -+static struct mtd_partition stm25p_partitions[] = { -+ /* sflash */ -+ [0] = { -+ .name = "stm25p80", -+ .offset = 0x00000000, -+ .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS, -+ .mask_flags = 0 -+ } -+}; -+ -+#endif -+ -+#elif defined(CONFIG_WILDFIREMOD) -+ -+#define SPI_NUM_CHIPSELECTS 0x08 -+#define SPI_PAR_VAL 0x07 /* Enable DIN, DOUT, CLK */ -+#define SPI_CS_MASK 0x78 -+ -+#define FLASH_BLOCKSIZE (1024*64) -+#define FLASH_NUMBLOCKS 64 -+#define FLASH_TYPE "m25p32" -+/* Reserve 1M for the kernel parition */ -+#define FLASH_KERNEL_SIZE (1024 * 1024) -+ -+#define M25P80_CS 5 -+#define MMC_CS 6 -+ -+#ifdef CONFIG_MTD_PARTITIONS -+static struct mtd_partition stm25p_partitions[] = { -+ /* sflash */ -+ [0] = { -+ .name = "kernel", -+ .offset = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS - FLASH_KERNEL_SIZE, -+ .size = FLASH_KERNEL_SIZE, -+ .mask_flags = 0 -+ }, -+ [1] = { -+ .name = "image", -+ .offset = 0x00000000, -+ .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS - FLASH_KERNEL_SIZE, -+ .mask_flags = 0 -+ }, -+ [2] = { -+ .name = "all", -+ .offset = 0x00000000, -+ .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS, -+ .mask_flags = 0 -+ } -+}; -+#endif -+ -+#else -+#define SPI_NUM_CHIPSELECTS 0x04 -+#define SPI_PAR_VAL 0x7F /* Enable DIN, DOUT, CLK, CS0 - CS4 */ -+#endif -+ -+#ifdef MMC_CS -+static struct coldfire_spi_chip flash_chip_info = { -+ .mode = SPI_MODE_0, -+ .bits_per_word = 16, -+ .del_cs_to_clk = 17, -+ .del_after_trans = 1, -+ .void_write_data = 0 -+}; -+ -+static struct coldfire_spi_chip mmc_chip_info = { -+ .mode = SPI_MODE_0, -+ .bits_per_word = 16, -+ .del_cs_to_clk = 17, -+ .del_after_trans = 1, -+ .void_write_data = 0xFFFF -+}; -+#endif -+ -+#ifdef M25P80_CS -+static struct flash_platform_data stm25p80_platform_data = { -+ .name = "ST M25P80 SPI Flash chip", -+#ifdef CONFIG_MTD_PARTITIONS -+ .parts = stm25p_partitions, -+ .nr_parts = sizeof(stm25p_partitions) / sizeof(*stm25p_partitions), -+#endif -+ .type = FLASH_TYPE -+}; -+#endif -+ -+static struct spi_board_info spi_board_info[] __initdata = { -+#ifdef M25P80_CS -+ { -+ .modalias = "m25p80", -+ .max_speed_hz = 16000000, -+ .bus_num = 1, -+ .chip_select = M25P80_CS, -+ .platform_data = &stm25p80_platform_data, -+ .controller_data = &flash_chip_info -+ }, -+#endif -+#ifdef MMC_CS -+ { -+ .modalias = "mmc_spi", -+ .max_speed_hz = 16000000, -+ .bus_num = 1, -+ .chip_select = MMC_CS, -+ .controller_data = &mmc_chip_info -+ } -+#endif -+}; -+ -+static struct coldfire_spi_master coldfire_master_info = { -+ .bus_num = 1, -+ .num_chipselect = SPI_NUM_CHIPSELECTS, -+ .irq_source = MCF5282_QSPI_IRQ_SOURCE, -+ .irq_vector = MCF5282_QSPI_IRQ_VECTOR, -+ .irq_mask = ((0x01 << MCF5282_QSPI_IRQ_SOURCE) | 0x01), -+ .irq_lp = 0x2B, /* Level 5 and Priority 3 */ -+ .par_val = SPI_PAR_VAL, -+ .cs_control = coldfire_qspi_cs_control, -+}; -+ -+static struct resource coldfire_spi_resources[] = { -+ [0] = { -+ .name = "qspi-par", -+ .start = MCF5282_QSPI_PAR, -+ .end = MCF5282_QSPI_PAR, -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [1] = { -+ .name = "qspi-module", -+ .start = MCF5282_QSPI_QMR, -+ .end = MCF5282_QSPI_QMR + 0x18, -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [2] = { -+ .name = "qspi-int-level", -+ .start = MCF5282_INTC0 + MCFINTC_ICR0 + MCF5282_QSPI_IRQ_SOURCE, -+ .end = MCF5282_INTC0 + MCFINTC_ICR0 + MCF5282_QSPI_IRQ_SOURCE, -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [3] = { -+ .name = "qspi-int-mask", -+ .start = MCF5282_INTC0 + MCFINTC_IMRL, -+ .end = MCF5282_INTC0 + MCFINTC_IMRL, -+ .flags = IORESOURCE_MEM -+ } -+}; -+ -+static struct platform_device coldfire_spi = { -+ .name = "spi_coldfire", -+ .id = -1, -+ .resource = coldfire_spi_resources, -+ .num_resources = ARRAY_SIZE(coldfire_spi_resources), -+ .dev = { -+ .platform_data = &coldfire_master_info, -+ } -+}; -+ -+static void coldfire_qspi_cs_control(u8 cs, u8 command) -+{ -+ u8 cs_bit = ((0x01 << cs) << 3) & SPI_CS_MASK; -+ -+#if defined(CONFIG_WILDFIRE) -+ u8 cs_mask = ~(((0x01 << cs) << 3) & SPI_CS_MASK); -+#endif -+#if defined(CONFIG_WILDFIREMOD) -+ u8 cs_mask = (cs << 3) & SPI_CS_MASK; -+#endif -+ -+ /* -+ * Don't do anything if the chip select is not -+ * one of the port qs pins. -+ */ -+ if (command & QSPI_CS_INIT) { -+#if defined(CONFIG_WILDFIRE) -+ MCF5282_GPIO_DDRQS |= cs_bit; -+ MCF5282_GPIO_PQSPAR &= ~cs_bit; -+#endif -+ -+#if defined(CONFIG_WILDFIREMOD) -+ MCF5282_GPIO_DDRQS |= SPI_CS_MASK; -+ MCF5282_GPIO_PQSPAR &= ~SPI_CS_MASK; -+#endif -+ } -+ -+ if (command & QSPI_CS_ASSERT) { -+ MCF5282_GPIO_PORTQS &= ~SPI_CS_MASK; -+ MCF5282_GPIO_PORTQS |= cs_mask; -+ } else if (command & QSPI_CS_DROP) { -+ MCF5282_GPIO_PORTQS |= SPI_CS_MASK; -+ } -+} -+ -+static int __init spi_dev_init(void) -+{ -+ int retval; -+ -+ retval = platform_device_register(&coldfire_spi); -+ if (retval < 0) -+ return retval; -+ -+ if (ARRAY_SIZE(spi_board_info)) -+ retval = spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); -+ -+ return retval; -+} -+ -+#endif /* CONFIG_SPI */ - - /***************************************************************************/ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/alchemy/common/time.c linux-2.6.29-rc3.owrt/arch/mips/alchemy/common/time.c ---- linux-2.6.29.owrt/arch/mips/alchemy/common/time.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/alchemy/common/time.c 2009-05-10 23:48:28.000000000 +0200 -@@ -89,7 +89,7 @@ - .irq = AU1000_RTC_MATCH2_INT, - .set_next_event = au1x_rtcmatch2_set_next_event, - .set_mode = au1x_rtcmatch2_set_mode, -- .cpumask = CPU_MASK_ALL_PTR, -+ .cpumask = CPU_MASK_ALL, - }; - - static struct irqaction au1x_rtcmatch2_irqaction = { -@@ -118,7 +118,7 @@ - * setup counter 1 (RTC) to tick at full speed - */ - t = 0xffffff; -- while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && --t) -+ while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && t--) - asm volatile ("nop"); - if (!t) - goto cntr_err; -@@ -127,7 +127,7 @@ - au_sync(); - - t = 0xffffff; -- while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t) -+ while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) - asm volatile ("nop"); - if (!t) - goto cntr_err; -@@ -135,7 +135,7 @@ - au_sync(); - - t = 0xffffff; -- while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t) -+ while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) - asm volatile ("nop"); - if (!t) - goto cntr_err; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/cavium-octeon/setup.c linux-2.6.29-rc3.owrt/arch/mips/cavium-octeon/setup.c ---- linux-2.6.29.owrt/arch/mips/cavium-octeon/setup.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/cavium-octeon/setup.c 2009-05-10 23:48:28.000000000 +0200 -@@ -15,11 +15,13 @@ - #include - #include - #include /* for memset */ -+#include - #include - #include - #include - #include - #include -+#include - - #include - #include -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/emma/Kconfig linux-2.6.29-rc3.owrt/arch/mips/emma/Kconfig ---- linux-2.6.29.owrt/arch/mips/emma/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.29-rc3.owrt/arch/mips/emma/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -0,0 +1,29 @@ -+choice -+ prompt "Machine type" -+ depends on MACH_EMMA -+ default NEC_MARKEINS -+ -+config NEC_MARKEINS -+ bool "NEC EMMA2RH Mark-eins board" -+ select SOC_EMMA2RH -+ select HW_HAS_PCI -+ help -+ This enables support for the NEC Electronics Mark-eins boards. -+ -+endchoice -+ -+config SOC_EMMA2RH -+ bool -+ select SOC_EMMA -+ select SYS_HAS_CPU_R5500 -+ select SYS_SUPPORTS_32BIT_KERNEL -+ select SYS_SUPPORTS_64BIT_KERNEL -+ -+config SOC_EMMA -+ bool -+ select CEVT_R4K -+ select CSRC_R4K -+ select DMA_NONCOHERENT -+ select IRQ_CPU -+ select SWAP_IO_SPACE -+ select SYS_SUPPORTS_BIG_ENDIAN -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/emma/markeins/platform.c linux-2.6.29-rc3.owrt/arch/mips/emma/markeins/platform.c ---- linux-2.6.29.owrt/arch/mips/emma/markeins/platform.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/emma/markeins/platform.c 2009-05-10 23:48:28.000000000 +0200 -@@ -141,6 +141,13 @@ - }, - }; - -+static struct platform_device *devices[] = { -+ &i2c_emma_devices[0], -+ &i2c_emma_devices[1], -+ &i2c_emma_devices[2], -+ &serial_emma, -+}; -+ - static struct mtd_partition markeins_parts[] = { - [0] = { - .name = "RootFS", -@@ -174,39 +181,11 @@ - }, - }; - --static struct physmap_flash_data markeins_flash_data = { -- .width = 2, -- .nr_parts = ARRAY_SIZE(markeins_parts), -- .parts = markeins_parts --}; -- --static struct resource markeins_flash_resource = { -- .start = 0x1e000000, -- .end = 0x02000000, -- .flags = IORESOURCE_MEM --}; -- --static struct platform_device markeins_flash_device = { -- .name = "physmap-flash", -- .id = 0, -- .dev = { -- .platform_data = &markeins_flash_data, -- }, -- .num_resources = 1, -- .resource = &markeins_flash_resource, --}; -- --static struct platform_device *devices[] = { -- i2c_emma_devices, -- i2c_emma_devices + 1, -- i2c_emma_devices + 2, -- &serial_emma, -- &markeins_flash_device, --}; -- - static int __init platform_devices_setup(void) - { -+ physmap_set_partitions(markeins_parts, ARRAY_SIZE(markeins_parts)); - return platform_add_devices(devices, ARRAY_SIZE(devices)); - } - - arch_initcall(platform_devices_setup); -+ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/atomic.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/atomic.h ---- linux-2.6.29.owrt/arch/mips/include/asm/atomic.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/atomic.h 2009-05-10 23:48:28.000000000 +0200 -@@ -50,7 +50,7 @@ - static __inline__ void atomic_add(int i, atomic_t * v) - { - if (cpu_has_llsc && R10000_LLSC_WAR) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -62,7 +62,7 @@ - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); - } else if (cpu_has_llsc) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -95,7 +95,7 @@ - static __inline__ void atomic_sub(int i, atomic_t * v) - { - if (cpu_has_llsc && R10000_LLSC_WAR) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -107,7 +107,7 @@ - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); - } else if (cpu_has_llsc) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -135,12 +135,12 @@ - */ - static __inline__ int atomic_add_return(int i, atomic_t * v) - { -- int result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -154,7 +154,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -187,12 +187,12 @@ - - static __inline__ int atomic_sub_return(int i, atomic_t * v) - { -- int result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -206,7 +206,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -247,12 +247,12 @@ - */ - static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) - { -- int result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -270,7 +270,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- int temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -429,7 +429,7 @@ - static __inline__ void atomic64_add(long i, atomic64_t * v) - { - if (cpu_has_llsc && R10000_LLSC_WAR) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -441,7 +441,7 @@ - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); - } else if (cpu_has_llsc) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -474,7 +474,7 @@ - static __inline__ void atomic64_sub(long i, atomic64_t * v) - { - if (cpu_has_llsc && R10000_LLSC_WAR) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -486,7 +486,7 @@ - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); - } else if (cpu_has_llsc) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -514,12 +514,12 @@ - */ - static __inline__ long atomic64_add_return(long i, atomic64_t * v) - { -- long result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -533,7 +533,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -566,12 +566,12 @@ - - static __inline__ long atomic64_sub_return(long i, atomic64_t * v) - { -- long result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -585,7 +585,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -626,12 +626,12 @@ - */ - static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) - { -- long result; -+ unsigned long result; - - smp_llsc_mb(); - - if (cpu_has_llsc && R10000_LLSC_WAR) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -@@ -649,7 +649,7 @@ - : "Ir" (i), "m" (v->counter) - : "memory"); - } else if (cpu_has_llsc) { -- long temp; -+ unsigned long temp; - - __asm__ __volatile__( - " .set mips3 \n" -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/compat.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/compat.h ---- linux-2.6.29.owrt/arch/mips/include/asm/compat.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/compat.h 2009-05-10 23:48:28.000000000 +0200 -@@ -3,8 +3,6 @@ - /* - * Architecture specific compatibility types - */ --#include --#include - #include - #include - #include -@@ -220,9 +218,4 @@ - compat_ulong_t __unused2; - }; - --static inline int is_compat_task(void) --{ -- return test_thread_flag(TIF_32BIT); --} -- - #endif /* _ASM_COMPAT_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/hazards.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/hazards.h ---- linux-2.6.29.owrt/arch/mips/include/asm/hazards.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/hazards.h 2009-05-10 23:48:28.000000000 +0200 -@@ -138,8 +138,7 @@ - __instruction_hazard(); \ - } while (0) - --#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \ -- defined(CONFIG_CPU_R5500) -+#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) - - /* - * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/gpio.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/gpio.h ---- linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/gpio.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/gpio.h 2009-05-10 23:48:28.000000000 +0200 -@@ -80,8 +80,11 @@ - /* Compact Flash GPIO pin */ - #define CF_GPIO_NUM 13 - -+extern void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val); -+extern unsigned get_434_reg(unsigned reg_offs); -+extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask); -+extern unsigned char get_latch_u5(void); - extern void rb532_gpio_set_ilevel(int bit, unsigned gpio); - extern void rb532_gpio_set_istat(int bit, unsigned gpio); --extern void rb532_gpio_set_func(unsigned gpio); - - #endif /* _RC32434_GPIO_H_ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/irq.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/irq.h ---- linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/irq.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/irq.h 2009-05-10 23:48:28.000000000 +0200 -@@ -30,7 +30,4 @@ - #define ETH0_RX_OVR_IRQ (GROUP3_IRQ_BASE + 9) - #define ETH0_TX_UND_IRQ (GROUP3_IRQ_BASE + 10) - --#define GPIO_MAPPED_IRQ_BASE GROUP4_IRQ_BASE --#define GPIO_MAPPED_IRQ_GROUP 4 -- - #endif /* __ASM_RC32434_IRQ_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/rb.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/rb.h ---- linux-2.6.29.owrt/arch/mips/include/asm/mach-rc32434/rb.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/mach-rc32434/rb.h 2009-05-10 23:48:28.000000000 +0200 -@@ -83,7 +83,4 @@ - void __iomem *base; - }; - --extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask); --extern unsigned char get_latch_u5(void); -- - #endif /* __ASM_RC32434_RB_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/prefetch.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/prefetch.h ---- linux-2.6.29.owrt/arch/mips/include/asm/prefetch.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/prefetch.h 2009-05-10 23:48:28.000000000 +0200 -@@ -26,7 +26,7 @@ - * Pref_WriteBackInvalidate is a nop and Pref_PrepareForStore is broken in - * current versions due to erratum G105. - * -- * VR5500 (including VR5701 and VR7701) only implement load prefetch. -+ * VR7701 only implements the Load prefetch. - * - * Finally MIPS32 and MIPS64 implement all of the following hints. - */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/ptrace.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/ptrace.h ---- linux-2.6.29.owrt/arch/mips/include/asm/ptrace.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/ptrace.h 2009-05-10 23:48:28.000000000 +0200 -@@ -105,7 +105,7 @@ - enum pt_watch_style style; - union { - struct mips32_watch_regs mips32; -- struct mips64_watch_regs mips64; -+ struct mips32_watch_regs mips64; - }; - }; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/seccomp.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/seccomp.h ---- linux-2.6.29.owrt/arch/mips/include/asm/seccomp.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/seccomp.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,5 +1,6 @@ - #ifndef __ASM_SECCOMP_H - -+#include - #include - - #define __NR_seccomp_read __NR_read -@@ -15,6 +16,8 @@ - */ - #ifdef CONFIG_MIPS32_O32 - -+#define TIF_32BIT TIF_32BIT_REGS -+ - #define __NR_seccomp_read_32 4003 - #define __NR_seccomp_write_32 4004 - #define __NR_seccomp_exit_32 4001 -@@ -22,6 +25,8 @@ - - #elif defined(CONFIG_MIPS32_N32) - -+#define TIF_32BIT _TIF_32BIT_ADDR -+ - #define __NR_seccomp_read_32 6000 - #define __NR_seccomp_write_32 6001 - #define __NR_seccomp_exit_32 6058 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/spinlock.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/spinlock.h ---- linux-2.6.29.owrt/arch/mips/include/asm/spinlock.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/spinlock.h 2009-05-10 23:48:28.000000000 +0200 -@@ -51,7 +51,6 @@ - - return (((counters >> 14) - counters) & 0x1fff) > 1; - } --#define __raw_spin_is_contended __raw_spin_is_contended - - static inline void __raw_spin_lock(raw_spinlock_t *lock) - { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/termios.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/termios.h ---- linux-2.6.29.owrt/arch/mips/include/asm/termios.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/termios.h 2009-05-10 23:48:28.000000000 +0200 -@@ -9,7 +9,6 @@ - #ifndef _ASM_TERMIOS_H - #define _ASM_TERMIOS_H - --#include - #include - #include - -@@ -95,81 +94,38 @@ - /* - * Translate a "termio" structure into a "termios". Ugh. - */ --static inline int user_termio_to_kernel_termios(struct ktermios *termios, -- struct termio __user *termio) --{ -- unsigned short iflag, oflag, cflag, lflag; -- unsigned int err; -- -- if (!access_ok(VERIFY_READ, termio, sizeof(struct termio))) -- return -EFAULT; -- -- err = __get_user(iflag, &termio->c_iflag); -- termios->c_iflag = (termios->c_iflag & 0xffff0000) | iflag; -- err |=__get_user(oflag, &termio->c_oflag); -- termios->c_oflag = (termios->c_oflag & 0xffff0000) | oflag; -- err |=__get_user(cflag, &termio->c_cflag); -- termios->c_cflag = (termios->c_cflag & 0xffff0000) | cflag; -- err |=__get_user(lflag, &termio->c_lflag); -- termios->c_lflag = (termios->c_lflag & 0xffff0000) | lflag; -- err |=__get_user(termios->c_line, &termio->c_line); -- if (err) -- return -EFAULT; -- -- if (__copy_from_user(termios->c_cc, termio->c_cc, NCC)) -- return -EFAULT; -- -- return 0; --} -+#define user_termio_to_kernel_termios(termios, termio) \ -+({ \ -+ unsigned short tmp; \ -+ get_user(tmp, &(termio)->c_iflag); \ -+ (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \ -+ get_user(tmp, &(termio)->c_oflag); \ -+ (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \ -+ get_user(tmp, &(termio)->c_cflag); \ -+ (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \ -+ get_user(tmp, &(termio)->c_lflag); \ -+ (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \ -+ get_user((termios)->c_line, &(termio)->c_line); \ -+ copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ -+}) - - /* - * Translate a "termios" structure into a "termio". Ugh. - */ --static inline int kernel_termios_to_user_termio(struct termio __user *termio, -- struct ktermios *termios) --{ -- int err; -- -- if (!access_ok(VERIFY_WRITE, termio, sizeof(struct termio))) -- return -EFAULT; -- -- err = __put_user(termios->c_iflag, &termio->c_iflag); -- err |= __put_user(termios->c_oflag, &termio->c_oflag); -- err |= __put_user(termios->c_cflag, &termio->c_cflag); -- err |= __put_user(termios->c_lflag, &termio->c_lflag); -- err |= __put_user(termios->c_line, &termio->c_line); -- if (err) -- return -EFAULT; -- -- if (__copy_to_user(termio->c_cc, termios->c_cc, NCC)) -- return -EFAULT; -- -- return 0; --} -- --static inline int user_termios_to_kernel_termios(struct ktermios __user *k, -- struct termios2 *u) --{ -- return copy_from_user(k, u, sizeof(struct termios2)) ? -EFAULT : 0; --} -- --static inline int kernel_termios_to_user_termios(struct termios2 __user *u, -- struct ktermios *k) --{ -- return copy_to_user(u, k, sizeof(struct termios2)) ? -EFAULT : 0; --} -- --static inline int user_termios_to_kernel_termios_1(struct ktermios *k, -- struct termios __user *u) --{ -- return copy_from_user(k, u, sizeof(struct termios)) ? -EFAULT : 0; --} -- --static inline int kernel_termios_to_user_termios_1(struct termios __user *u, -- struct ktermios *k) --{ -- return copy_to_user(u, k, sizeof(struct termios)) ? -EFAULT : 0; --} -+#define kernel_termios_to_user_termio(termio, termios) \ -+({ \ -+ put_user((termios)->c_iflag, &(termio)->c_iflag); \ -+ put_user((termios)->c_oflag, &(termio)->c_oflag); \ -+ put_user((termios)->c_cflag, &(termio)->c_cflag); \ -+ put_user((termios)->c_lflag, &(termio)->c_lflag); \ -+ put_user((termios)->c_line, &(termio)->c_line); \ -+ copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ -+}) -+ -+#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) -+#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) -+#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) -+#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) - - #endif /* defined(__KERNEL__) */ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/include/asm/thread_info.h linux-2.6.29-rc3.owrt/arch/mips/include/asm/thread_info.h ---- linux-2.6.29.owrt/arch/mips/include/asm/thread_info.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/include/asm/thread_info.h 2009-05-10 23:48:28.000000000 +0200 -@@ -127,12 +127,6 @@ - #define TIF_LOAD_WATCH 25 /* If set, load watch registers */ - #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ - --#ifdef CONFIG_MIPS32_O32 --#define TIF_32BIT TIF_32BIT_REGS --#elif defined(CONFIG_MIPS32_N32) --#define TIF_32BIT _TIF_32BIT_ADDR --#endif /* CONFIG_MIPS32_O32 */ -- - #define _TIF_SYSCALL_TRACE (1<R, R->W, W->R, W->W - # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC -@@ -1385,7 +1374,7 @@ - # - config HARDWARE_WATCHPOINTS - bool -- default y if CPU_MIPSR1 || CPU_MIPSR2 -+ default y if CPU_MIPS32 || CPU_MIPS64 - - menu "Kernel type" - -@@ -1407,7 +1396,6 @@ - config 64BIT - bool "64-bit kernel" - depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL -- select HAVE_SYSCALL_WRAPPERS - help - Select this option if you want to build a 64-bit kernel. - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/cpu-probe.c linux-2.6.29-rc3.owrt/arch/mips/kernel/cpu-probe.c ---- linux-2.6.29.owrt/arch/mips/kernel/cpu-probe.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/cpu-probe.c 2009-05-10 23:48:28.000000000 +0200 -@@ -149,7 +149,6 @@ - case CPU_R4650: - case CPU_R4700: - case CPU_R5000: -- case CPU_R5500: - case CPU_NEVADA: - case CPU_4KC: - case CPU_4KEC: -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/genex.S linux-2.6.29-rc3.owrt/arch/mips/kernel/genex.S ---- linux-2.6.29.owrt/arch/mips/kernel/genex.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/genex.S 2009-05-10 23:48:28.000000000 +0200 -@@ -458,11 +458,7 @@ - BUILD_HANDLER fpe fpe fpe silent /* #15 */ - BUILD_HANDLER mdmx mdmx sti silent /* #22 */ - #ifdef CONFIG_HARDWARE_WATCHPOINTS -- /* -- * For watch, interrupts will be enabled after the watch -- * registers are read. -- */ -- BUILD_HANDLER watch watch cli silent /* #23 */ -+ BUILD_HANDLER watch watch sti silent /* #23 */ - #else - BUILD_HANDLER watch watch sti verbose /* #23 */ - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/irq.c linux-2.6.29-rc3.owrt/arch/mips/kernel/irq.c ---- linux-2.6.29.owrt/arch/mips/kernel/irq.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -111,6 +111,7 @@ - seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); - #endif - seq_printf(p, " %14s", irq_desc[i].chip->name); -+ seq_printf(p, "-%-8s", irq_desc[i].name); - seq_printf(p, " %s", action->name); - - for (action=action->next; action; action = action->next) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/linux32.c linux-2.6.29-rc3.owrt/arch/mips/kernel/linux32.c ---- linux-2.6.29.owrt/arch/mips/kernel/linux32.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/linux32.c 2009-05-10 23:48:28.000000000 +0200 -@@ -32,7 +32,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -64,9 +63,9 @@ - #define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL)) - #endif - --SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len, -- unsigned long, prot, unsigned long, flags, unsigned long, fd, -- unsigned long, pgoff) -+asmlinkage unsigned long -+sys32_mmap2(unsigned long addr, unsigned long len, unsigned long prot, -+ unsigned long flags, unsigned long fd, unsigned long pgoff) - { - struct file * file = NULL; - unsigned long error; -@@ -122,21 +121,21 @@ - int rlim_max; - }; - --SYSCALL_DEFINE4(32_truncate64, const char __user *, path, -- unsigned long, __dummy, unsigned long, a2, unsigned long, a3) -+asmlinkage long sys32_truncate64(const char __user * path, -+ unsigned long __dummy, int a2, int a3) - { - return sys_truncate(path, merge_64(a2, a3)); - } - --SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy, -- unsigned long, a2, unsigned long, a3) -+asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, -+ int a2, int a3) - { - return sys_ftruncate(fd, merge_64(a2, a3)); - } - --SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high, -- unsigned long, offset_low, loff_t __user *, result, -- unsigned long, origin) -+asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, -+ unsigned int offset_low, loff_t __user * result, -+ unsigned int origin) - { - return sys_llseek(fd, offset_high, offset_low, result, origin); - } -@@ -145,20 +144,20 @@ - lseek back to original location. They fail just like lseek does on - non-seekable files. */ - --SYSCALL_DEFINE6(32_pread, unsigned long, fd, char __user *, buf, size_t, count, -- unsigned long, unused, unsigned long, a4, unsigned long, a5) -+asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, -+ size_t count, u32 unused, u64 a4, u64 a5) - { - return sys_pread64(fd, buf, count, merge_64(a4, a5)); - } - --SYSCALL_DEFINE6(32_pwrite, unsigned int, fd, const char __user *, buf, -- size_t, count, u32, unused, u64, a4, u64, a5) -+asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, -+ size_t count, u32 unused, u64 a4, u64 a5) - { - return sys_pwrite64(fd, buf, count, merge_64(a4, a5)); - } - --SYSCALL_DEFINE2(32_sched_rr_get_interval, compat_pid_t, pid, -- struct compat_timespec __user *, interval) -+asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, -+ struct compat_timespec __user *interval) - { - struct timespec t; - int ret; -@@ -175,8 +174,8 @@ - - #ifdef CONFIG_SYSVIPC - --SYSCALL_DEFINE6(32_ipc, u32, call, long, first, long, second, long, third, -- unsigned long, ptr, unsigned long, fifth) -+asmlinkage long -+sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) - { - int version, err; - -@@ -234,8 +233,8 @@ - - #else - --SYSCALL_DEFINE6(32_ipc, u32, call, int, first, int, second, int, third, -- u32, ptr, u32, fifth) -+asmlinkage long -+sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) - { - return -ENOSYS; - } -@@ -243,7 +242,7 @@ - #endif /* CONFIG_SYSVIPC */ - - #ifdef CONFIG_MIPS32_N32 --SYSCALL_DEFINE4(n32_semctl, int, semid, int, semnum, int, cmd, u32, arg) -+asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) - { - /* compat_sys_semctl expects a pointer to union semun */ - u32 __user *uptr = compat_alloc_user_space(sizeof(u32)); -@@ -252,14 +251,13 @@ - return compat_sys_semctl(semid, semnum, cmd, uptr); - } - --SYSCALL_DEFINE4(n32_msgsnd, int, msqid, u32, msgp, unsigned int, msgsz, -- int, msgflg) -+asmlinkage long sysn32_msgsnd(int msqid, u32 msgp, unsigned msgsz, int msgflg) - { - return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp)); - } - --SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz, -- int, msgtyp, int, msgflg) -+asmlinkage long sysn32_msgrcv(int msqid, u32 msgp, size_t msgsz, int msgtyp, -+ int msgflg) - { - return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64, - compat_ptr(msgp)); -@@ -279,7 +277,7 @@ - - #ifdef CONFIG_SYSCTL_SYSCALL - --SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args) -+asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) - { - struct sysctl_args32 tmp; - int error; -@@ -318,16 +316,9 @@ - return error; - } - --#else -- --SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args) --{ -- return -ENOSYS; --} -- - #endif /* CONFIG_SYSCTL_SYSCALL */ - --SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name) -+asmlinkage long sys32_newuname(struct new_utsname __user * name) - { - int ret = 0; - -@@ -343,7 +334,7 @@ - return ret; - } - --SYSCALL_DEFINE1(32_personality, unsigned long, personality) -+asmlinkage int sys32_personality(unsigned long personality) - { - int ret; - personality &= 0xffffffff; -@@ -366,7 +357,7 @@ - - extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf); - --SYSCALL_DEFINE2(32_ustat, dev_t, dev, struct ustat32 __user *, ubuf32) -+asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) - { - int err; - struct ustat tmp; -@@ -390,8 +381,8 @@ - return err; - } - --SYSCALL_DEFINE4(32_sendfile, long, out_fd, long, in_fd, -- compat_off_t __user *, offset, s32, count) -+asmlinkage int sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, -+ s32 count) - { - mm_segment_t old_fs = get_fs(); - int ret; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/mips-mt-fpaff.c linux-2.6.29-rc3.owrt/arch/mips/kernel/mips-mt-fpaff.c ---- linux-2.6.29.owrt/arch/mips/kernel/mips-mt-fpaff.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/mips-mt-fpaff.c 2009-05-10 23:48:28.000000000 +0200 -@@ -79,8 +79,7 @@ - - euid = current_euid(); - retval = -EPERM; -- if (euid != p->cred->euid && euid != p->cred->uid && -- !capable(CAP_SYS_NICE)) { -+ if (euid != p->euid && euid != p->uid && !capable(CAP_SYS_NICE)) { - read_unlock(&tasklist_lock); - goto out_unlock; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/scall32-o32.S linux-2.6.29-rc3.owrt/arch/mips/kernel/scall32-o32.S ---- linux-2.6.29.owrt/arch/mips/kernel/scall32-o32.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/scall32-o32.S 2009-05-10 23:48:28.000000000 +0200 -@@ -399,7 +399,7 @@ - sys sys_swapon 2 - sys sys_reboot 3 - sys sys_old_readdir 3 -- sys sys_mips_mmap 6 /* 4090 */ -+ sys old_mmap 6 /* 4090 */ - sys sys_munmap 2 - sys sys_truncate 2 - sys sys_ftruncate 2 -@@ -519,7 +519,7 @@ - sys sys_sendfile 4 - sys sys_ni_syscall 0 - sys sys_ni_syscall 0 -- sys sys_mips_mmap2 6 /* 4210 */ -+ sys sys_mmap2 6 /* 4210 */ - sys sys_truncate64 4 - sys sys_ftruncate64 4 - sys sys_stat64 2 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/scall64-64.S linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-64.S ---- linux-2.6.29.owrt/arch/mips/kernel/scall64-64.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-64.S 2009-05-10 23:48:28.000000000 +0200 -@@ -207,7 +207,7 @@ - PTR sys_newlstat - PTR sys_poll - PTR sys_lseek -- PTR sys_mips_mmap -+ PTR old_mmap - PTR sys_mprotect /* 5010 */ - PTR sys_munmap - PTR sys_brk -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/scall64-n32.S linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-n32.S ---- linux-2.6.29.owrt/arch/mips/kernel/scall64-n32.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-n32.S 2009-05-10 23:48:28.000000000 +0200 -@@ -129,12 +129,12 @@ - PTR sys_newlstat - PTR sys_poll - PTR sys_lseek -- PTR sys_mips_mmap -+ PTR old_mmap - PTR sys_mprotect /* 6010 */ - PTR sys_munmap - PTR sys_brk -- PTR sys_32_rt_sigaction -- PTR sys_32_rt_sigprocmask -+ PTR sys32_rt_sigaction -+ PTR sys32_rt_sigprocmask - PTR compat_sys_ioctl /* 6015 */ - PTR sys_pread64 - PTR sys_pwrite64 -@@ -159,7 +159,7 @@ - PTR compat_sys_setitimer - PTR sys_alarm - PTR sys_getpid -- PTR sys_32_sendfile -+ PTR sys32_sendfile - PTR sys_socket /* 6040 */ - PTR sys_connect - PTR sys_accept -@@ -181,14 +181,14 @@ - PTR sys_exit - PTR compat_sys_wait4 - PTR sys_kill /* 6060 */ -- PTR sys_32_newuname -+ PTR sys32_newuname - PTR sys_semget - PTR sys_semop -- PTR sys_n32_semctl -+ PTR sysn32_semctl - PTR sys_shmdt /* 6065 */ - PTR sys_msgget -- PTR sys_n32_msgsnd -- PTR sys_n32_msgrcv -+ PTR sysn32_msgsnd -+ PTR sysn32_msgrcv - PTR compat_sys_msgctl - PTR compat_sys_fcntl /* 6070 */ - PTR sys_flock -@@ -245,15 +245,15 @@ - PTR sys_getsid - PTR sys_capget - PTR sys_capset -- PTR sys_32_rt_sigpending /* 6125 */ -+ PTR sys32_rt_sigpending /* 6125 */ - PTR compat_sys_rt_sigtimedwait -- PTR sys_32_rt_sigqueueinfo -+ PTR sys32_rt_sigqueueinfo - PTR sysn32_rt_sigsuspend - PTR sys32_sigaltstack - PTR compat_sys_utime /* 6130 */ - PTR sys_mknod -- PTR sys_32_personality -- PTR sys_32_ustat -+ PTR sys32_personality -+ PTR sys32_ustat - PTR compat_sys_statfs - PTR compat_sys_fstatfs /* 6135 */ - PTR sys_sysfs -@@ -265,14 +265,14 @@ - PTR sys_sched_getscheduler - PTR sys_sched_get_priority_max - PTR sys_sched_get_priority_min -- PTR sys_32_sched_rr_get_interval /* 6145 */ -+ PTR sys32_sched_rr_get_interval /* 6145 */ - PTR sys_mlock - PTR sys_munlock - PTR sys_mlockall - PTR sys_munlockall - PTR sys_vhangup /* 6150 */ - PTR sys_pivot_root -- PTR sys_32_sysctl -+ PTR sys32_sysctl - PTR sys_prctl - PTR compat_sys_adjtimex - PTR compat_sys_setrlimit /* 6155 */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/scall64-o32.S linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-o32.S ---- linux-2.6.29.owrt/arch/mips/kernel/scall64-o32.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/scall64-o32.S 2009-05-10 23:48:28.000000000 +0200 -@@ -265,12 +265,12 @@ - PTR sys_olduname - PTR sys_umask /* 4060 */ - PTR sys_chroot -- PTR sys_32_ustat -+ PTR sys32_ustat - PTR sys_dup2 - PTR sys_getppid - PTR sys_getpgrp /* 4065 */ - PTR sys_setsid -- PTR sys_32_sigaction -+ PTR sys32_sigaction - PTR sys_sgetmask - PTR sys_ssetmask - PTR sys_setreuid /* 4070 */ -@@ -293,7 +293,7 @@ - PTR sys_swapon - PTR sys_reboot - PTR compat_sys_old_readdir -- PTR sys_mips_mmap /* 4090 */ -+ PTR old_mmap /* 4090 */ - PTR sys_munmap - PTR sys_truncate - PTR sys_ftruncate -@@ -320,12 +320,12 @@ - PTR compat_sys_wait4 - PTR sys_swapoff /* 4115 */ - PTR compat_sys_sysinfo -- PTR sys_32_ipc -+ PTR sys32_ipc - PTR sys_fsync - PTR sys32_sigreturn - PTR sys32_clone /* 4120 */ - PTR sys_setdomainname -- PTR sys_32_newuname -+ PTR sys32_newuname - PTR sys_ni_syscall /* sys_modify_ldt */ - PTR compat_sys_adjtimex - PTR sys_mprotect /* 4125 */ -@@ -339,11 +339,11 @@ - PTR sys_fchdir - PTR sys_bdflush - PTR sys_sysfs /* 4135 */ -- PTR sys_32_personality -+ PTR sys32_personality - PTR sys_ni_syscall /* for afs_syscall */ - PTR sys_setfsuid - PTR sys_setfsgid -- PTR sys_32_llseek /* 4140 */ -+ PTR sys32_llseek /* 4140 */ - PTR compat_sys_getdents - PTR compat_sys_select - PTR sys_flock -@@ -356,7 +356,7 @@ - PTR sys_ni_syscall /* 4150 */ - PTR sys_getsid - PTR sys_fdatasync -- PTR sys_32_sysctl -+ PTR sys32_sysctl - PTR sys_mlock - PTR sys_munlock /* 4155 */ - PTR sys_mlockall -@@ -368,7 +368,7 @@ - PTR sys_sched_yield - PTR sys_sched_get_priority_max - PTR sys_sched_get_priority_min -- PTR sys_32_sched_rr_get_interval /* 4165 */ -+ PTR sys32_sched_rr_get_interval /* 4165 */ - PTR compat_sys_nanosleep - PTR sys_mremap - PTR sys_accept -@@ -397,25 +397,25 @@ - PTR sys_getresgid - PTR sys_prctl - PTR sys32_rt_sigreturn -- PTR sys_32_rt_sigaction -- PTR sys_32_rt_sigprocmask /* 4195 */ -- PTR sys_32_rt_sigpending -+ PTR sys32_rt_sigaction -+ PTR sys32_rt_sigprocmask /* 4195 */ -+ PTR sys32_rt_sigpending - PTR compat_sys_rt_sigtimedwait -- PTR sys_32_rt_sigqueueinfo -+ PTR sys32_rt_sigqueueinfo - PTR sys32_rt_sigsuspend -- PTR sys_32_pread /* 4200 */ -- PTR sys_32_pwrite -+ PTR sys32_pread /* 4200 */ -+ PTR sys32_pwrite - PTR sys_chown - PTR sys_getcwd - PTR sys_capget - PTR sys_capset /* 4205 */ - PTR sys32_sigaltstack -- PTR sys_32_sendfile -+ PTR sys32_sendfile - PTR sys_ni_syscall - PTR sys_ni_syscall -- PTR sys_mips_mmap2 /* 4210 */ -- PTR sys_32_truncate64 -- PTR sys_32_ftruncate64 -+ PTR sys32_mmap2 /* 4210 */ -+ PTR sys32_truncate64 -+ PTR sys32_ftruncate64 - PTR sys_newstat - PTR sys_newlstat - PTR sys_newfstat /* 4215 */ -@@ -481,7 +481,7 @@ - PTR compat_sys_mq_notify /* 4275 */ - PTR compat_sys_mq_getsetattr - PTR sys_ni_syscall /* sys_vserver */ -- PTR sys_32_waitid -+ PTR sys32_waitid - PTR sys_ni_syscall /* available, was setaltroot */ - PTR sys_add_key /* 4280 */ - PTR sys_request_key -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/signal32.c linux-2.6.29-rc3.owrt/arch/mips/kernel/signal32.c ---- linux-2.6.29.owrt/arch/mips/kernel/signal32.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/signal32.c 2009-05-10 23:48:28.000000000 +0200 -@@ -349,8 +349,8 @@ - return -ERESTARTNOHAND; - } - --SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, -- struct sigaction32 __user *, oact) -+asmlinkage int sys32_sigaction(int sig, const struct sigaction32 __user *act, -+ struct sigaction32 __user *oact) - { - struct k_sigaction new_ka, old_ka; - int ret; -@@ -704,9 +704,9 @@ - .restart = __NR_O32_restart_syscall - }; - --SYSCALL_DEFINE4(32_rt_sigaction, int, sig, -- const struct sigaction32 __user *, act, -- struct sigaction32 __user *, oact, unsigned int, sigsetsize) -+asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, -+ struct sigaction32 __user *oact, -+ unsigned int sigsetsize) - { - struct k_sigaction new_sa, old_sa; - int ret = -EINVAL; -@@ -748,8 +748,8 @@ - return ret; - } - --SYSCALL_DEFINE4(32_rt_sigprocmask, int, how, compat_sigset_t __user *, set, -- compat_sigset_t __user *, oset, unsigned int, sigsetsize) -+asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, -+ compat_sigset_t __user *oset, unsigned int sigsetsize) - { - sigset_t old_set, new_set; - int ret; -@@ -770,8 +770,8 @@ - return ret; - } - --SYSCALL_DEFINE2(32_rt_sigpending, compat_sigset_t __user *, uset, -- unsigned int, sigsetsize) -+asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset, -+ unsigned int sigsetsize) - { - int ret; - sigset_t set; -@@ -787,8 +787,7 @@ - return ret; - } - --SYSCALL_DEFINE3(32_rt_sigqueueinfo, int, pid, int, sig, -- compat_siginfo_t __user *, uinfo) -+asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) - { - siginfo_t info; - int ret; -@@ -803,9 +802,10 @@ - return ret; - } - --SYSCALL_DEFINE5(32_waitid, int, which, compat_pid_t, pid, -- compat_siginfo_t __user *, uinfo, int, options, -- struct compat_rusage __user *, uru) -+asmlinkage long -+sys32_waitid(int which, compat_pid_t pid, -+ compat_siginfo_t __user *uinfo, int options, -+ struct compat_rusage __user *uru) - { - siginfo_t info; - struct rusage ru; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/signal.c linux-2.6.29-rc3.owrt/arch/mips/kernel/signal.c ---- linux-2.6.29.owrt/arch/mips/kernel/signal.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/signal.c 2009-05-10 23:48:28.000000000 +0200 -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - #include - - #include -@@ -339,8 +338,8 @@ - } - - #ifdef CONFIG_TRAD_SIGNALS --SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act, -- struct sigaction __user *, oact) -+asmlinkage int sys_sigaction(int sig, const struct sigaction __user *act, -+ struct sigaction __user *oact) - { - struct k_sigaction new_ka, old_ka; - int ret; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/syscall.c linux-2.6.29-rc3.owrt/arch/mips/kernel/syscall.c ---- linux-2.6.29.owrt/arch/mips/kernel/syscall.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/syscall.c 2009-05-10 23:48:28.000000000 +0200 -@@ -152,9 +152,9 @@ - return error; - } - --SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len, -- unsigned long, prot, unsigned long, flags, unsigned long, -- fd, off_t, offset) -+asmlinkage unsigned long -+old_mmap(unsigned long addr, unsigned long len, int prot, -+ int flags, int fd, off_t offset) - { - unsigned long result; - -@@ -168,9 +168,9 @@ - return result; - } - --SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len, -- unsigned long, prot, unsigned long, flags, unsigned long, fd, -- unsigned long, pgoff) -+asmlinkage unsigned long -+sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, -+ unsigned long flags, unsigned long fd, unsigned long pgoff) - { - if (pgoff & (~PAGE_MASK >> 12)) - return -EINVAL; -@@ -240,7 +240,7 @@ - /* - * Compacrapability ... - */ --SYSCALL_DEFINE1(uname, struct old_utsname __user *, name) -+asmlinkage int sys_uname(struct old_utsname __user * name) - { - if (name && !copy_to_user(name, utsname(), sizeof (*name))) - return 0; -@@ -250,7 +250,7 @@ - /* - * Compacrapability ... - */ --SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name) -+asmlinkage int sys_olduname(struct oldold_utsname __user * name) - { - int error; - -@@ -279,7 +279,7 @@ - return error; - } - --SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) -+asmlinkage int sys_set_thread_area(unsigned long addr) - { - struct thread_info *ti = task_thread_info(current); - -@@ -290,7 +290,7 @@ - return 0; - } - --asmlinkage int _sys_sysmips(long cmd, long arg1, long arg2, long arg3) -+asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) - { - switch (cmd) { - case MIPS_ATOMIC_SET: -@@ -325,8 +325,8 @@ - * - * This is really horribly ugly. - */ --SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second, -- unsigned long, third, void __user *, ptr, long, fifth) -+asmlinkage int sys_ipc(unsigned int call, int first, int second, -+ unsigned long third, void __user *ptr, long fifth) - { - int version, ret; - -@@ -411,7 +411,7 @@ - /* - * No implemented yet ... - */ --SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) -+asmlinkage int sys_cachectl(char *addr, int nbytes, int op) - { - return -ENOSYS; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/kernel/traps.c linux-2.6.29-rc3.owrt/arch/mips/kernel/traps.c ---- linux-2.6.29.owrt/arch/mips/kernel/traps.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/kernel/traps.c 2009-05-10 23:48:28.000000000 +0200 -@@ -944,9 +944,6 @@ - force_sig(SIGILL, current); - } - --/* -- * Called with interrupts disabled. -- */ - asmlinkage void do_watch(struct pt_regs *regs) - { - u32 cause; -@@ -966,12 +963,9 @@ - */ - if (test_tsk_thread_flag(current, TIF_LOAD_WATCH)) { - mips_read_watch_registers(); -- local_irq_enable(); - force_sig(SIGTRAP, current); -- } else { -+ } else - mips_clear_watch_registers(); -- local_irq_enable(); -- } - } - - asmlinkage void do_mcheck(struct pt_regs *regs) -@@ -1588,11 +1582,7 @@ - static char panic_null_cerr[] __cpuinitdata = - "Trying to set NULL cache error exception handler"; - --/* -- * Install uncached CPU exception handler. -- * This is suitable only for the cache error exception which is the only -- * exception handler that is being run uncached. -- */ -+/* Install uncached CPU exception handler */ - void __cpuinit set_uncached_handler(unsigned long offset, void *addr, - unsigned long size) - { -@@ -1603,7 +1593,7 @@ - unsigned long uncached_ebase = TO_UNCAC(ebase); - #endif - if (cpu_has_mips_r2) -- uncached_ebase += (read_c0_ebase() & 0x3ffff000); -+ ebase += (read_c0_ebase() & 0x3ffff000); - - if (!addr) - panic(panic_null_cerr); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/lib/memcpy-inatomic.S linux-2.6.29-rc3.owrt/arch/mips/lib/memcpy-inatomic.S ---- linux-2.6.29.owrt/arch/mips/lib/memcpy-inatomic.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/lib/memcpy-inatomic.S 2009-05-10 23:48:28.000000000 +0200 -@@ -21,7 +21,7 @@ - * end of memory on some systems. It's also a seriously bad idea on non - * dma-coherent systems. - */ --#ifdef CONFIG_DMA_NONCOHERENT -+#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) - #undef CONFIG_CPU_HAS_PREFETCH - #endif - #ifdef CONFIG_MIPS_MALTA -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/lib/memcpy.S linux-2.6.29-rc3.owrt/arch/mips/lib/memcpy.S ---- linux-2.6.29.owrt/arch/mips/lib/memcpy.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/lib/memcpy.S 2009-05-10 23:48:28.000000000 +0200 -@@ -21,7 +21,7 @@ - * end of memory on some systems. It's also a seriously bad idea on non - * dma-coherent systems. - */ --#ifdef CONFIG_DMA_NONCOHERENT -+#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) - #undef CONFIG_CPU_HAS_PREFETCH - #endif - #ifdef CONFIG_MIPS_MALTA -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/Makefile linux-2.6.29-rc3.owrt/arch/mips/Makefile ---- linux-2.6.29.owrt/arch/mips/Makefile 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/Makefile 2009-05-10 23:48:28.000000000 +0200 -@@ -416,7 +416,7 @@ - # - # Common NEC EMMAXXX - # --core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/ -+core-$(CONFIG_SOC_EMMA) += arch/mips/emma/common/ - cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh - - # -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/mm/cache.c linux-2.6.29-rc3.owrt/arch/mips/mm/cache.c ---- linux-2.6.29.owrt/arch/mips/mm/cache.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/mm/cache.c 2009-05-10 23:48:28.000000000 +0200 -@@ -13,7 +13,6 @@ - #include - #include - #include --#include - #include - - #include -@@ -59,8 +58,8 @@ - * We could optimize the case where the cache argument is not BCACHE but - * that seems very atypical use ... - */ --SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes, -- unsigned int, cache) -+asmlinkage int sys_cacheflush(unsigned long addr, -+ unsigned long bytes, unsigned int cache) - { - if (bytes == 0) - return 0; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/mm/c-r4k.c linux-2.6.29-rc3.owrt/arch/mips/mm/c-r4k.c ---- linux-2.6.29.owrt/arch/mips/mm/c-r4k.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/mm/c-r4k.c 2009-05-10 23:48:28.000000000 +0200 -@@ -618,35 +618,15 @@ - if (cpu_has_inclusive_pcaches) { - if (size >= scache_size) - r4k_blast_scache(); -- else { -- unsigned long lsize = cpu_scache_line_size(); -- unsigned long almask = ~(lsize - 1); -- -- /* -- * There is no clearly documented alignment requirement -- * for the cache instruction on MIPS processors and -- * some processors, among them the RM5200 and RM7000 -- * QED processors will throw an address error for cache -- * hit ops with insufficient alignment. Solved by -- * aligning the address to cache line size. -- */ -- cache_op(Hit_Writeback_Inv_SD, addr & almask); -- cache_op(Hit_Writeback_Inv_SD, -- (addr + size - 1) & almask); -+ else - blast_inv_scache_range(addr, addr + size); -- } - return; - } - - if (cpu_has_safe_index_cacheops && size >= dcache_size) { - r4k_blast_dcache(); - } else { -- unsigned long lsize = cpu_dcache_line_size(); -- unsigned long almask = ~(lsize - 1); -- - R4600_HIT_CACHEOP_WAR_IMPL; -- cache_op(Hit_Writeback_Inv_D, addr & almask); -- cache_op(Hit_Writeback_Inv_D, (addr + size - 1) & almask); - blast_inv_dcache_range(addr, addr + size); - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/mm/fault.c linux-2.6.29-rc3.owrt/arch/mips/mm/fault.c ---- linux-2.6.29.owrt/arch/mips/mm/fault.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/mm/fault.c 2009-05-10 23:48:28.000000000 +0200 -@@ -97,6 +97,7 @@ - goto bad_area; - } - -+survive: - /* - * If for any reason at all we couldn't handle the fault, - * make sure we exit gracefully rather than endlessly redo -@@ -166,13 +167,21 @@ - field, regs->regs[31]); - die("Oops", regs); - -+/* -+ * We ran out of memory, or some other thing happened to us that made -+ * us unable to handle the page fault gracefully. -+ */ - out_of_memory: -- /* -- * We ran out of memory, call the OOM killer, and return the userspace -- * (which will retry the fault, or kill us if we got oom-killed). -- */ -- pagefault_out_of_memory(); -- return; -+ up_read(&mm->mmap_sem); -+ if (is_global_init(tsk)) { -+ yield(); -+ down_read(&mm->mmap_sem); -+ goto survive; -+ } -+ printk("VM: killing process %s\n", tsk->comm); -+ if (user_mode(regs)) -+ do_group_exit(SIGKILL); -+ goto no_context; - - do_sigbus: - up_read(&mm->mmap_sem); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/mm/page.c linux-2.6.29-rc3.owrt/arch/mips/mm/page.c ---- linux-2.6.29.owrt/arch/mips/mm/page.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/mm/page.c 2009-05-10 23:48:28.000000000 +0200 -@@ -172,9 +172,8 @@ - */ - cache_line_size = cpu_dcache_line_size(); - switch (current_cpu_type()) { -- case CPU_R5500: - case CPU_TX49XX: -- /* These processors only support the Pref_Load. */ -+ /* TX49 supports only Pref_Load */ - pref_bias_copy_load = 256; - break; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/mm/tlbex.c linux-2.6.29-rc3.owrt/arch/mips/mm/tlbex.c ---- linux-2.6.29.owrt/arch/mips/mm/tlbex.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/mm/tlbex.c 2009-05-10 23:48:28.000000000 +0200 -@@ -318,7 +318,6 @@ - case CPU_BCM4710: - case CPU_LOONGSON2: - case CPU_CAVIUM_OCTEON: -- case CPU_R5500: - if (m4kc_tlbp_war()) - uasm_i_nop(p); - tlbw(p); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/pci/pci-rc32434.c linux-2.6.29-rc3.owrt/arch/mips/pci/pci-rc32434.c ---- linux-2.6.29.owrt/arch/mips/pci/pci-rc32434.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/pci/pci-rc32434.c 2009-05-10 23:48:28.000000000 +0200 -@@ -205,8 +205,6 @@ - - static int __init rc32434_pci_init(void) - { -- void __iomem *io_map_base; -- - pr_info("PCI: Initializing PCI\n"); - - ioport_resource.start = rc32434_res_pci_io1.start; -@@ -214,15 +212,6 @@ - - rc32434_pcibridge_init(); - -- io_map_base = ioremap(rc32434_res_pci_io1.start, -- rc32434_res_pci_io1.end - rc32434_res_pci_io1.start + 1); -- -- if (!io_map_base) -- return -ENOMEM; -- -- rc32434_controller.io_map_base = -- (unsigned long)io_map_base - rc32434_res_pci_io1.start; -- - register_pci_controller(&rc32434_controller); - rc32434_sync(); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/rb532/devices.c linux-2.6.29-rc3.owrt/arch/mips/rb532/devices.c ---- linux-2.6.29.owrt/arch/mips/rb532/devices.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/rb532/devices.c 2009-05-10 23:48:28.000000000 +0200 -@@ -24,7 +24,6 @@ - #include - #include - #include --#include - - #include - -@@ -40,29 +39,6 @@ - #define ETH0_RX_DMA_ADDR (DMA0_BASE_ADDR + 0 * DMA_CHAN_OFFSET) - #define ETH0_TX_DMA_ADDR (DMA0_BASE_ADDR + 1 * DMA_CHAN_OFFSET) - --extern unsigned int idt_cpu_freq; -- --static struct mpmc_device dev3; -- --void set_latch_u5(unsigned char or_mask, unsigned char nand_mask) --{ -- unsigned long flags; -- -- spin_lock_irqsave(&dev3.lock, flags); -- -- dev3.state = (dev3.state | or_mask) & ~nand_mask; -- writeb(dev3.state, dev3.base); -- -- spin_unlock_irqrestore(&dev3.lock, flags); --} --EXPORT_SYMBOL(set_latch_u5); -- --unsigned char get_latch_u5(void) --{ -- return dev3.state; --} --EXPORT_SYMBOL(get_latch_u5); -- - static struct resource korina_dev0_res[] = { - { - .name = "korina_regs", -@@ -110,7 +86,7 @@ - static struct platform_device korina_dev0 = { - .id = -1, - .name = "korina", -- .dev.driver_data = &korina_dev0_data, -+ .dev.platform_data = &korina_dev0_data, - .resource = korina_dev0_res, - .num_resources = ARRAY_SIZE(korina_dev0_res), - }; -@@ -238,32 +214,12 @@ - .num_resources = ARRAY_SIZE(rb532_wdt_res), - }; - --static struct plat_serial8250_port rb532_uart_res[] = { -- { -- .membase = (char *)KSEG1ADDR(REGBASE + UART0BASE), -- .irq = UART0_IRQ, -- .regshift = 2, -- .iotype = UPIO_MEM, -- .flags = UPF_BOOT_AUTOCONF, -- }, -- { -- .flags = 0, -- } --}; -- --static struct platform_device rb532_uart = { -- .name = "serial8250", -- .id = PLAT8250_DEV_PLATFORM, -- .dev.platform_data = &rb532_uart_res, --}; -- - static struct platform_device *rb532_devs[] = { - &korina_dev0, - &nand_slot0, - &cf_slot0, - &rb532_led, - &rb532_button, -- &rb532_uart, - &rb532_wdt - }; - -@@ -335,20 +291,9 @@ - nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE); - nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000; - -- /* Read and map device controller 3 */ -- dev3.base = ioremap_nocache(readl(IDT434_REG_BASE + DEV3BASE), 1); -- -- if (!dev3.base) { -- printk(KERN_ERR "rb532: cannot remap device controller 3\n"); -- return -ENXIO; -- } -- - /* Initialise the NAND device */ - rb532_nand_setup(); - -- /* set the uart clock to the current cpu frequency */ -- rb532_uart_res[0].uartclk = idt_cpu_freq; -- - return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs)); - } - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/rb532/gpio.c linux-2.6.29-rc3.owrt/arch/mips/rb532/gpio.c ---- linux-2.6.29.owrt/arch/mips/rb532/gpio.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/rb532/gpio.c 2009-05-10 23:48:28.000000000 +0200 -@@ -41,6 +41,8 @@ - void __iomem *regbase; - }; - -+struct mpmc_device dev3; -+ - static struct resource rb532_gpio_reg0_res[] = { - { - .name = "gpio_reg0", -@@ -50,6 +52,61 @@ - } - }; - -+static struct resource rb532_dev3_ctl_res[] = { -+ { -+ .name = "dev3_ctl", -+ .start = REGBASE + DEV3BASE, -+ .end = REGBASE + DEV3BASE + sizeof(struct dev_reg) - 1, -+ .flags = IORESOURCE_MEM, -+ } -+}; -+ -+void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val) -+{ -+ unsigned long flags; -+ unsigned data; -+ unsigned i = 0; -+ -+ spin_lock_irqsave(&dev3.lock, flags); -+ -+ data = readl(IDT434_REG_BASE + reg_offs); -+ for (i = 0; i != len; ++i) { -+ if (val & (1 << i)) -+ data |= (1 << (i + bit)); -+ else -+ data &= ~(1 << (i + bit)); -+ } -+ writel(data, (IDT434_REG_BASE + reg_offs)); -+ -+ spin_unlock_irqrestore(&dev3.lock, flags); -+} -+EXPORT_SYMBOL(set_434_reg); -+ -+unsigned get_434_reg(unsigned reg_offs) -+{ -+ return readl(IDT434_REG_BASE + reg_offs); -+} -+EXPORT_SYMBOL(get_434_reg); -+ -+void set_latch_u5(unsigned char or_mask, unsigned char nand_mask) -+{ -+ unsigned long flags; -+ -+ spin_lock_irqsave(&dev3.lock, flags); -+ -+ dev3.state = (dev3.state | or_mask) & ~nand_mask; -+ writel(dev3.state, &dev3.base); -+ -+ spin_unlock_irqrestore(&dev3.lock, flags); -+} -+EXPORT_SYMBOL(set_latch_u5); -+ -+unsigned char get_latch_u5(void) -+{ -+ return dev3.state; -+} -+EXPORT_SYMBOL(get_latch_u5); -+ - /* rb532_set_bit - sanely set a bit - * - * bitval: new value for the bit -@@ -62,11 +119,13 @@ - unsigned long flags; - u32 val; - -+ bitval = !!bitval; /* map parameter to {0,1} */ -+ - local_irq_save(flags); - - val = readl(ioaddr); -- val &= ~(!bitval << offset); /* unset bit if bitval == 0 */ -- val |= (!!bitval << offset); /* set bit if bitval == 1 */ -+ val &= ~( ~bitval << offset ); /* unset bit if bitval == 0 */ -+ val |= ( bitval << offset ); /* set bit if bitval == 1 */ - writel(val, ioaddr); - - local_irq_restore(flags); -@@ -112,8 +171,8 @@ - - gpch = container_of(chip, struct rb532_gpio_chip, chip); - -- /* disable alternate function in case it's set */ -- rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC); -+ if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) -+ return 1; /* alternate function, GPIOCFG is ignored */ - - rb532_set_bit(0, offset, gpch->regbase + GPIOCFG); - return 0; -@@ -129,8 +188,8 @@ - - gpch = container_of(chip, struct rb532_gpio_chip, chip); - -- /* disable alternate function in case it's set */ -- rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC); -+ if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) -+ return 1; /* alternate function, GPIOCFG is ignored */ - - /* set the initial output value */ - rb532_set_bit(value, offset, gpch->regbase + GPIOD); -@@ -174,11 +233,10 @@ - /* - * Configure GPIO alternate function - */ --void rb532_gpio_set_func(unsigned gpio) -+static void rb532_gpio_set_func(int bit, unsigned gpio) - { -- rb532_set_bit(1, gpio, rb532_gpio_chip->regbase + GPIOFUNC); -+ rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOFUNC); - } --EXPORT_SYMBOL(rb532_gpio_set_func); - - int __init rb532_gpio_init(void) - { -@@ -195,6 +253,20 @@ - /* Register our GPIO chip */ - gpiochip_add(&rb532_gpio_chip->chip); - -+ r = rb532_dev3_ctl_res; -+ dev3.base = ioremap_nocache(r->start, r->end - r->start); -+ -+ if (!dev3.base) { -+ printk(KERN_ERR "rb532: cannot remap device controller 3\n"); -+ return -ENXIO; -+ } -+ -+ /* configure CF_GPIO_NUM as CFRDY IRQ source */ -+ rb532_gpio_set_func(0, CF_GPIO_NUM); -+ rb532_gpio_direction_input(&rb532_gpio_chip->chip, CF_GPIO_NUM); -+ rb532_gpio_set_ilevel(1, CF_GPIO_NUM); -+ rb532_gpio_set_istat(0, CF_GPIO_NUM); -+ - return 0; - } - arch_initcall(rb532_gpio_init); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/rb532/irq.c linux-2.6.29-rc3.owrt/arch/mips/rb532/irq.c ---- linux-2.6.29.owrt/arch/mips/rb532/irq.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/rb532/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -46,7 +46,6 @@ - #include - - #include --#include - - struct intr_group { - u32 mask; /* mask of valid bits in pending/mask registers */ -@@ -151,9 +150,6 @@ - mask |= intr_bit; - WRITE_MASK(addr, mask); - -- if (group == GPIO_MAPPED_IRQ_GROUP) -- rb532_gpio_set_istat(0, irq_nr - GPIO_MAPPED_IRQ_BASE); -- - /* - * if there are no more interrupts enabled in this - * group, disable corresponding IP -@@ -169,35 +165,12 @@ - ack_local_irq(group_to_ip(irq_to_group(irq_nr))); - } - --static int rb532_set_type(unsigned int irq_nr, unsigned type) --{ -- int gpio = irq_nr - GPIO_MAPPED_IRQ_BASE; -- int group = irq_to_group(irq_nr); -- -- if (group != GPIO_MAPPED_IRQ_GROUP) -- return (type == IRQ_TYPE_LEVEL_HIGH) ? 0 : -EINVAL; -- -- switch (type) { -- case IRQ_TYPE_LEVEL_HIGH: -- rb532_gpio_set_ilevel(1, gpio); -- break; -- case IRQ_TYPE_LEVEL_LOW: -- rb532_gpio_set_ilevel(0, gpio); -- break; -- default: -- return -EINVAL; -- } -- -- return 0; --} -- - static struct irq_chip rc32434_irq_type = { - .name = "RB532", - .ack = rb532_disable_irq, - .mask = rb532_disable_irq, - .mask_ack = rb532_mask_and_ack_irq, - .unmask = rb532_enable_irq, -- .set_type = rb532_set_type, - }; - - void __init arch_init_irq(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/rb532/serial.c linux-2.6.29-rc3.owrt/arch/mips/rb532/serial.c ---- linux-2.6.29.owrt/arch/mips/rb532/serial.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/rb532/serial.c 2009-05-10 23:48:28.000000000 +0200 -@@ -36,7 +36,7 @@ - extern unsigned int idt_cpu_freq; - - static struct uart_port rb532_uart = { -- .flags = UPF_BOOT_AUTOCONF, -+ .type = PORT_16550A, - .line = 0, - .irq = UART0_IRQ, - .iotype = UPIO_MEM, -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/txx9/generic/setup_tx4939.c linux-2.6.29-rc3.owrt/arch/mips/txx9/generic/setup_tx4939.c ---- linux-2.6.29.owrt/arch/mips/txx9/generic/setup_tx4939.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/txx9/generic/setup_tx4939.c 2009-05-10 23:48:28.000000000 +0200 -@@ -435,28 +435,6 @@ - platform_device_register(&ata1_dev); - } - --void __init tx4939_rtc_init(void) --{ -- static struct resource res[] = { -- { -- .start = TX4939_RTC_REG & 0xfffffffffULL, -- .end = (TX4939_RTC_REG & 0xfffffffffULL) + 0x100 - 1, -- .flags = IORESOURCE_MEM, -- }, { -- .start = TXX9_IRQ_BASE + TX4939_IR_RTC, -- .flags = IORESOURCE_IRQ, -- }, -- }; -- static struct platform_device rtc_dev = { -- .name = "tx4939rtc", -- .id = -1, -- .num_resources = ARRAY_SIZE(res), -- .resource = res, -- }; -- -- platform_device_register(&rtc_dev); --} -- - static void __init tx4939_stop_unused_modules(void) - { - __u64 pcfg, rst = 0, ckd = 0; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mips/txx9/rbtx4939/setup.c linux-2.6.29-rc3.owrt/arch/mips/txx9/rbtx4939/setup.c ---- linux-2.6.29.owrt/arch/mips/txx9/rbtx4939/setup.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mips/txx9/rbtx4939/setup.c 2009-05-10 23:48:28.000000000 +0200 -@@ -336,7 +336,6 @@ - rbtx4939_led_setup(); - tx4939_wdt_init(); - tx4939_ata_init(); -- tx4939_rtc_init(); - } - - static void __init rbtx4939_setup(void) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mn10300/Kconfig linux-2.6.29-rc3.owrt/arch/mn10300/Kconfig ---- linux-2.6.29.owrt/arch/mn10300/Kconfig 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mn10300/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -7,7 +7,6 @@ - - config MN10300 - def_bool y -- select HAVE_OPROFILE - - config AM33 - def_bool y -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/mn10300/unit-asb2305/pci.c linux-2.6.29-rc3.owrt/arch/mn10300/unit-asb2305/pci.c ---- linux-2.6.29.owrt/arch/mn10300/unit-asb2305/pci.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/mn10300/unit-asb2305/pci.c 2009-05-10 23:48:28.000000000 +0200 -@@ -173,7 +173,7 @@ - BRIDGEREGB(where) = value; - } else { - if (bus->number == 0 && -- (devfn == PCI_DEVFN(2, 0) || devfn == PCI_DEVFN(3, 0)) -+ (devfn == PCI_DEVFN(2, 0) && devfn == PCI_DEVFN(3, 0)) - ) - __pcidebug("<= %02x", bus, devfn, where, value); - CONFIG_ADDRESS = CONFIG_CMD(bus, devfn, where); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/hpux/fs.c linux-2.6.29-rc3.owrt/arch/parisc/hpux/fs.c ---- linux-2.6.29.owrt/arch/parisc/hpux/fs.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/hpux/fs.c 2009-05-10 23:48:28.000000000 +0200 -@@ -137,6 +137,7 @@ - error = count - buf.count; - } - -+out_putf: - fput(file); - out: - return error; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/include/asm/assembly.h linux-2.6.29-rc3.owrt/arch/parisc/include/asm/assembly.h ---- linux-2.6.29.owrt/arch/parisc/include/asm/assembly.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/include/asm/assembly.h 2009-05-10 23:48:28.000000000 +0200 -@@ -79,7 +79,6 @@ - - #include - #include --#include - - #include - -@@ -130,27 +129,27 @@ - - /* Shift Left - note the r and t can NOT be the same! */ - .macro shl r, sa, t -- dep,z \r, 31-(\sa), 32-(\sa), \t -+ dep,z \r, 31-\sa, 32-\sa, \t - .endm - - /* The PA 2.0 shift left */ - .macro shlw r, sa, t -- depw,z \r, 31-(\sa), 32-(\sa), \t -+ depw,z \r, 31-\sa, 32-\sa, \t - .endm - - /* And the PA 2.0W shift left */ - .macro shld r, sa, t -- depd,z \r, 63-(\sa), 64-(\sa), \t -+ depd,z \r, 63-\sa, 64-\sa, \t - .endm - - /* Shift Right - note the r and t can NOT be the same! */ - .macro shr r, sa, t -- extru \r, 31-(\sa), 32-(\sa), \t -+ extru \r, 31-\sa, 32-\sa, \t - .endm - - /* pa20w version of shift right */ - .macro shrd r, sa, t -- extrd,u \r, 63-(\sa), 64-(\sa), \t -+ extrd,u \r, 63-\sa, 64-\sa, \t - .endm - - /* load 32-bit 'value' into 'reg' compensating for the ldil -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/include/asm/dma-mapping.h linux-2.6.29-rc3.owrt/arch/parisc/include/asm/dma-mapping.h ---- linux-2.6.29.owrt/arch/parisc/include/asm/dma-mapping.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/include/asm/dma-mapping.h 2009-05-10 23:48:28.000000000 +0200 -@@ -5,7 +5,7 @@ - #include - #include - --/* See Documentation/PCI/PCI-DMA-mapping.txt */ -+/* See Documentation/DMA-mapping.txt */ - struct hppa_dma_ops { - int (*dma_supported)(struct device *dev, u64 mask); - void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/include/asm/io.h linux-2.6.29-rc3.owrt/arch/parisc/include/asm/io.h ---- linux-2.6.29.owrt/arch/parisc/include/asm/io.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/include/asm/io.h 2009-05-10 23:48:28.000000000 +0200 -@@ -174,48 +174,15 @@ - *(volatile unsigned long long __force *) addr = b; - } - --static inline unsigned char readb(const volatile void __iomem *addr) --{ -- return __raw_readb(addr); --} --static inline unsigned short readw(const volatile void __iomem *addr) --{ -- return le16_to_cpu(__raw_readw(addr)); --} --static inline unsigned int readl(const volatile void __iomem *addr) --{ -- return le32_to_cpu(__raw_readl(addr)); --} --static inline unsigned long long readq(const volatile void __iomem *addr) --{ -- return le64_to_cpu(__raw_readq(addr)); --} -- --static inline void writeb(unsigned char b, volatile void __iomem *addr) --{ -- __raw_writeb(b, addr); --} --static inline void writew(unsigned short w, volatile void __iomem *addr) --{ -- __raw_writew(cpu_to_le16(w), addr); --} --static inline void writel(unsigned int l, volatile void __iomem *addr) --{ -- __raw_writel(cpu_to_le32(l), addr); --} --static inline void writeq(unsigned long long q, volatile void __iomem *addr) --{ -- __raw_writeq(cpu_to_le64(q), addr); --} -- --#define readb readb --#define readw readw --#define readl readl --#define readq readq --#define writeb writeb --#define writew writew --#define writel writel --#define writeq writeq -+/* readb can never be const, so use __fswab instead of le*_to_cpu */ -+#define readb(addr) __raw_readb(addr) -+#define readw(addr) le16_to_cpu(__raw_readw(addr)) -+#define readl(addr) le32_to_cpu(__raw_readl(addr)) -+#define readq(addr) le64_to_cpu(__raw_readq(addr)) -+#define writeb(b, addr) __raw_writeb(b, addr) -+#define writew(b, addr) __raw_writew(cpu_to_le16(b), addr) -+#define writel(b, addr) __raw_writel(cpu_to_le32(b), addr) -+#define writeq(b, addr) __raw_writeq(cpu_to_le64(b), addr) - - #define readb_relaxed(addr) readb(addr) - #define readw_relaxed(addr) readw(addr) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/include/asm/irq.h linux-2.6.29-rc3.owrt/arch/parisc/include/asm/irq.h ---- linux-2.6.29.owrt/arch/parisc/include/asm/irq.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/include/asm/irq.h 2009-05-10 23:48:28.000000000 +0200 -@@ -49,7 +49,7 @@ - extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); - - extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); --extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest); -+extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); - - /* soft power switch support (power.c) */ - extern struct tasklet_struct power_tasklet; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/include/asm/uaccess.h linux-2.6.29-rc3.owrt/arch/parisc/include/asm/uaccess.h ---- linux-2.6.29.owrt/arch/parisc/include/asm/uaccess.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/include/asm/uaccess.h 2009-05-10 23:48:28.000000000 +0200 -@@ -241,7 +241,6 @@ - #define __copy_to_user_inatomic __copy_to_user - #define __copy_from_user_inatomic __copy_from_user - --struct pt_regs; - int fixup_exception(struct pt_regs *regs); - - #endif /* __PARISC_UACCESS_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/kernel/cache.c linux-2.6.29-rc3.owrt/arch/parisc/kernel/cache.c ---- linux-2.6.29.owrt/arch/parisc/kernel/cache.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/kernel/cache.c 2009-05-10 23:48:28.000000000 +0200 -@@ -551,7 +551,10 @@ - { - int sr3; - -- BUG_ON(!vma->vm_mm->context); -+ if (!vma->vm_mm->context) { -+ BUG(); -+ return; -+ } - - sr3 = mfsp(3); - if (vma->vm_mm->context == sr3) { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/kernel/entry.S linux-2.6.29-rc3.owrt/arch/parisc/kernel/entry.S ---- linux-2.6.29.owrt/arch/parisc/kernel/entry.S 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/kernel/entry.S 2009-05-10 23:48:28.000000000 +0200 -@@ -368,7 +368,7 @@ - * abstractions for the macros */ - .macro EXTR reg1,start,length,reg2 - #ifdef CONFIG_64BIT -- extrd,u \reg1,32+(\start),\length,\reg2 -+ extrd,u \reg1,32+\start,\length,\reg2 - #else - extrw,u \reg1,\start,\length,\reg2 - #endif -@@ -376,7 +376,7 @@ - - .macro DEP reg1,start,length,reg2 - #ifdef CONFIG_64BIT -- depd \reg1,32+(\start),\length,\reg2 -+ depd \reg1,32+\start,\length,\reg2 - #else - depw \reg1,\start,\length,\reg2 - #endif -@@ -384,7 +384,7 @@ - - .macro DEPI val,start,length,reg - #ifdef CONFIG_64BIT -- depdi \val,32+(\start),\length,\reg -+ depdi \val,32+\start,\length,\reg - #else - depwi \val,\start,\length,\reg - #endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/kernel/firmware.c linux-2.6.29-rc3.owrt/arch/parisc/kernel/firmware.c ---- linux-2.6.29.owrt/arch/parisc/kernel/firmware.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/kernel/firmware.c 2009-05-10 23:48:28.000000000 +0200 -@@ -151,7 +151,7 @@ - } - - #ifdef CONFIG_64BIT --void __cpuinit set_firmware_width_unlocked(void) -+void __init set_firmware_width_unlocked(void) - { - int ret; - -@@ -168,7 +168,7 @@ - * This function must be called before any pdc_* function that uses the - * convert_to_wide function. - */ --void __cpuinit set_firmware_width(void) -+void __init set_firmware_width(void) - { - unsigned long flags; - spin_lock_irqsave(&pdc_lock, flags); -@@ -176,11 +176,11 @@ - spin_unlock_irqrestore(&pdc_lock, flags); - } - #else --void __cpuinit set_firmware_width_unlocked(void) { -+void __init set_firmware_width_unlocked(void) { - return; - } - --void __cpuinit set_firmware_width(void) { -+void __init set_firmware_width(void) { - return; - } - #endif /*CONFIG_64BIT*/ -@@ -302,7 +302,7 @@ - return retval; - } - --int __cpuinit pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) -+int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) - { - int ret; - -@@ -323,7 +323,7 @@ - * This PDC call returns the presence and status of all the coprocessors - * attached to the processor. - */ --int __cpuinit pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) -+int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) - { - int ret; - unsigned long flags; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/kernel/irq.c linux-2.6.29-rc3.owrt/arch/parisc/kernel/irq.c ---- linux-2.6.29.owrt/arch/parisc/kernel/irq.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/kernel/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -112,7 +112,7 @@ - } - - #ifdef CONFIG_SMP --int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) -+int cpu_check_affinity(unsigned int irq, cpumask_t *dest) - { - int cpu_dest; - -@@ -120,25 +120,23 @@ - if (CHECK_IRQ_PER_CPU(irq)) { - /* Bad linux design decision. The mask has already - * been set; we must reset it */ -- cpumask_setall(&irq_desc[irq].affinity); -+ irq_desc[irq].affinity = CPU_MASK_ALL; - return -EINVAL; - } - - /* whatever mask they set, we just allow one CPU */ - cpu_dest = first_cpu(*dest); -+ *dest = cpumask_of_cpu(cpu_dest); - -- return cpu_dest; -+ return 0; - } - - static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) - { -- int cpu_dest; -- -- cpu_dest = cpu_check_affinity(irq, dest); -- if (cpu_dest < 0) -+ if (cpu_check_affinity(irq, dest)) - return; - -- cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest)); -+ irq_desc[irq].affinity = *dest; - } - #endif - -@@ -297,7 +295,7 @@ - unsigned long txn_affinity_addr(unsigned int irq, int cpu) - { - #ifdef CONFIG_SMP -- cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu)); -+ irq_desc[irq].affinity = cpumask_of_cpu(cpu); - #endif - - return per_cpu(cpu_data, cpu).txn_addr; -@@ -354,7 +352,7 @@ - irq = eirr_to_irq(eirr_val); - - #ifdef CONFIG_SMP -- cpumask_copy(&dest, &irq_desc[irq].affinity); -+ dest = irq_desc[irq].affinity; - if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && - !cpu_isset(smp_processor_id(), dest)) { - int cpu = first_cpu(dest); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/kernel/pci-dma.c linux-2.6.29-rc3.owrt/arch/parisc/kernel/pci-dma.c ---- linux-2.6.29.owrt/arch/parisc/kernel/pci-dma.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/kernel/pci-dma.c 2009-05-10 23:48:28.000000000 +0200 -@@ -2,7 +2,7 @@ - ** PARISC 1.1 Dynamic DMA mapping support. - ** This implementation is for PA-RISC platforms that do not support - ** I/O TLBs (aka DMA address translation hardware). --** See Documentation/PCI/PCI-DMA-mapping.txt for interface definitions. -+** See Documentation/DMA-mapping.txt for interface definitions. - ** - ** (c) Copyright 1999,2000 Hewlett-Packard Company - ** (c) Copyright 2000 Grant Grundler -@@ -447,7 +447,10 @@ - - static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) - { -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) { -+ printk(KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); -+ BUG(); -+ } - - flush_kernel_dcache_range((unsigned long) addr, size); - return virt_to_phys(addr); -@@ -455,7 +458,10 @@ - - static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) - { -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) { -+ printk(KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); -+ BUG(); -+ } - - if (direction == DMA_TO_DEVICE) - return; -@@ -474,7 +480,8 @@ - { - int i; - -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) -+ BUG(); - - for (i = 0; i < nents; i++, sglist++ ) { - unsigned long vaddr = sg_virt_addr(sglist); -@@ -489,7 +496,8 @@ - { - int i; - -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) -+ BUG(); - - if (direction == DMA_TO_DEVICE) - return; -@@ -503,14 +511,16 @@ - - static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) - { -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) -+ BUG(); - - flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); - } - - static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) - { -- BUG_ON(direction == DMA_NONE); -+ if (direction == DMA_NONE) -+ BUG(); - - flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/parisc/mm/init.c linux-2.6.29-rc3.owrt/arch/parisc/mm/init.c ---- linux-2.6.29.owrt/arch/parisc/mm/init.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/parisc/mm/init.c 2009-05-10 23:48:28.000000000 +0200 -@@ -304,8 +304,10 @@ - */ - max_low_pfn = max_pfn; - -- /* bootmap sizing messed up? */ -- BUG_ON((bootmap_pfn - bootmap_start_pfn) != bootmap_pages); -+ if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) { -+ printk(KERN_WARNING "WARNING! bootmap sizing is messed up!\n"); -+ BUG(); -+ } - - /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */ - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/boot/dts/mpc8313erdb.dts linux-2.6.29-rc3.owrt/arch/powerpc/boot/dts/mpc8313erdb.dts ---- linux-2.6.29.owrt/arch/powerpc/boot/dts/mpc8313erdb.dts 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/boot/dts/mpc8313erdb.dts 2009-05-10 23:48:28.000000000 +0200 -@@ -191,8 +191,7 @@ - interrupts = <37 0x8 36 0x8 35 0x8>; - interrupt-parent = <&ipic>; - tbi-handle = < &tbi0 >; -- /* Vitesse 7385 isn't on the MDIO bus */ -- fixed-link = <1 1 1000 0 0>; -+ phy-handle = < &phy1 >; - fsl,magic-packet; - - mdio@24520 { -@@ -200,6 +199,12 @@ - #size-cells = <0>; - compatible = "fsl,gianfar-mdio"; - reg = <0x24520 0x20>; -+ phy1: ethernet-phy@1 { -+ interrupt-parent = <&ipic>; -+ interrupts = <19 0x8>; -+ reg = <0x1>; -+ device_type = "ethernet-phy"; -+ }; - phy4: ethernet-phy@4 { - interrupt-parent = <&ipic>; - interrupts = <20 0x8>; -@@ -214,8 +219,6 @@ - }; - - enet1: ethernet@25000 { -- #address-cells = <1>; -- #size-cells = <1>; - cell-index = <1>; - device_type = "network"; - model = "eTSEC"; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/compat.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/compat.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/compat.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/compat.h 2009-05-10 23:48:28.000000000 +0200 -@@ -210,10 +210,5 @@ - compat_ulong_t __unused6; - }; - --static inline int is_compat_task(void) --{ -- return test_thread_flag(TIF_32BIT); --} -- - #endif /* __KERNEL__ */ - #endif /* _ASM_POWERPC_COMPAT_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/cputable.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/cputable.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/cputable.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/cputable.h 2009-05-10 23:48:28.000000000 +0200 -@@ -241,11 +241,9 @@ - /* We need to mark all pages as being coherent if we're SMP or we have a - * 74[45]x and an MPC107 host bridge. Also 83xx and PowerQUICC II - * require it for PCI "streaming/prefetch" to work properly. -- * This is also required by 52xx family. - */ - #if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE) \ -- || defined(CONFIG_PPC_83xx) || defined(CONFIG_8260) \ -- || defined(CONFIG_PPC_MPC52xx) -+ || defined(CONFIG_PPC_83xx) || defined(CONFIG_8260) - #define CPU_FTR_COMMON CPU_FTR_NEED_COHERENT - #else - #define CPU_FTR_COMMON 0 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-4k.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-4k.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-4k.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-4k.h 2009-05-10 23:48:28.000000000 +0200 -@@ -60,7 +60,7 @@ - /* It should be preserving the high 48 bits and then specifically */ - /* preserving _PAGE_SECONDARY | _PAGE_GROUP_IX */ - #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \ -- _PAGE_HPTEFLAGS | _PAGE_SPECIAL) -+ _PAGE_HPTEFLAGS) - - /* Bits to mask out from a PMD to get to the PTE page */ - #define PMD_MASKED_BITS 0 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-64k.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-64k.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-64k.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-64k.h 2009-05-10 23:48:28.000000000 +0200 -@@ -114,7 +114,7 @@ - * pgprot changes - */ - #define _PAGE_CHG_MASK (PTE_RPN_MASK | _PAGE_HPTEFLAGS | _PAGE_DIRTY | \ -- _PAGE_ACCESSED | _PAGE_SPECIAL) -+ _PAGE_ACCESSED) - - /* Bits to mask out from a PMD to get to the PTE page */ - #define PMD_MASKED_BITS 0x1ff -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-ppc32.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-ppc32.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/pgtable-ppc32.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/pgtable-ppc32.h 2009-05-10 23:48:28.000000000 +0200 -@@ -429,8 +429,7 @@ - #define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE() - #endif - --#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \ -- _PAGE_SPECIAL) -+#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) - - - #define PAGE_PROT_BITS (_PAGE_GUARDED | _PAGE_COHERENT | _PAGE_NO_CACHE | \ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/include/asm/seccomp.h linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/seccomp.h ---- linux-2.6.29.owrt/arch/powerpc/include/asm/seccomp.h 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/include/asm/seccomp.h 2009-05-10 23:48:28.000000000 +0200 -@@ -1,6 +1,10 @@ - #ifndef _ASM_POWERPC_SECCOMP_H - #define _ASM_POWERPC_SECCOMP_H - -+#ifdef __KERNEL__ -+#include -+#endif -+ - #include - - #define __NR_seccomp_read __NR_read -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/kernel/align.c linux-2.6.29-rc3.owrt/arch/powerpc/kernel/align.c ---- linux-2.6.29.owrt/arch/powerpc/kernel/align.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/kernel/align.c 2009-05-10 23:48:28.000000000 +0200 -@@ -367,24 +367,27 @@ - static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg, - unsigned int flags) - { -- char *ptr0 = (char *) ¤t->thread.TS_FPR(reg); -- char *ptr1 = (char *) ¤t->thread.TS_FPR(reg+1); -- int i, ret, sw = 0; -+ char *ptr = (char *) ¤t->thread.TS_FPR(reg); -+ int i, ret; - - if (!(flags & F)) - return 0; - if (reg & 1) - return 0; /* invalid form: FRS/FRT must be even */ -- if (flags & SW) -- sw = 7; -- ret = 0; -- for (i = 0; i < 8; ++i) { -- if (!(flags & ST)) { -- ret |= __get_user(ptr0[i^sw], addr + i); -- ret |= __get_user(ptr1[i^sw], addr + i + 8); -- } else { -- ret |= __put_user(ptr0[i^sw], addr + i); -- ret |= __put_user(ptr1[i^sw], addr + i + 8); -+ if (!(flags & SW)) { -+ /* not byte-swapped - easy */ -+ if (!(flags & ST)) -+ ret = __copy_from_user(ptr, addr, 16); -+ else -+ ret = __copy_to_user(addr, ptr, 16); -+ } else { -+ /* each FPR value is byte-swapped separately */ -+ ret = 0; -+ for (i = 0; i < 16; ++i) { -+ if (!(flags & ST)) -+ ret |= __get_user(ptr[i^7], addr + i); -+ else -+ ret |= __put_user(ptr[i^7], addr + i); - } - } - if (ret) -@@ -643,16 +646,11 @@ - unsigned int areg, struct pt_regs *regs, - unsigned int flags, unsigned int length) - { -- char *ptr; -+ char *ptr = (char *) ¤t->thread.TS_FPR(reg); - int ret = 0; - - flush_vsx_to_thread(current); - -- if (reg < 32) -- ptr = (char *) ¤t->thread.TS_FPR(reg); -- else -- ptr = (char *) ¤t->thread.vr[reg - 32]; -- - if (flags & ST) - ret = __copy_to_user(addr, ptr, length); - else { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/kernel/ftrace.c linux-2.6.29-rc3.owrt/arch/powerpc/kernel/ftrace.c ---- linux-2.6.29.owrt/arch/powerpc/kernel/ftrace.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/kernel/ftrace.c 2009-05-10 23:48:28.000000000 +0200 -@@ -195,9 +195,8 @@ - return -EINVAL; - } - -- /* The bottom half is signed extended */ -- offset = ((unsigned)((unsigned short)jmp[0]) << 16) + -- (int)((short)jmp[1]); -+ offset = (unsigned)((unsigned short)jmp[0]) << 16 | -+ (unsigned)((unsigned short)jmp[1]); - - DEBUGP(" %x ", offset); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/kernel/head_32.S linux-2.6.29-rc3.owrt/arch/powerpc/kernel/head_32.S ---- linux-2.6.29.owrt/arch/powerpc/kernel/head_32.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/kernel/head_32.S 2009-05-10 23:48:28.000000000 +0200 -@@ -511,11 +511,8 @@ - and r1,r1,r2 /* writable if _RW and _DIRTY */ - rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ - rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ -- ori r1,r1,0xe04 /* clear out reserved bits */ -+ ori r1,r1,0xe14 /* clear out reserved bits and M */ - andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ --BEGIN_FTR_SECTION -- rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ --END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) - mtspr SPRN_RPA,r1 - mfspr r3,SPRN_IMISS - tlbli r3 -@@ -588,11 +585,8 @@ - and r1,r1,r2 /* writable if _RW and _DIRTY */ - rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ - rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ -- ori r1,r1,0xe04 /* clear out reserved bits */ -+ ori r1,r1,0xe14 /* clear out reserved bits and M */ - andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ --BEGIN_FTR_SECTION -- rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ --END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) - mtspr SPRN_RPA,r1 - mfspr r3,SPRN_DMISS - tlbld r3 -@@ -659,11 +653,8 @@ - stw r3,0(r2) /* update PTE (accessed/dirty bits) */ - /* Convert linux-style PTE to low word of PPC-style PTE */ - rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ -- li r1,0xe05 /* clear out reserved bits & PP lsb */ -+ li r1,0xe15 /* clear out reserved bits and M */ - andc r1,r3,r1 /* PP = user? 2: 0 */ --BEGIN_FTR_SECTION -- rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ --END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) - mtspr SPRN_RPA,r1 - mfspr r3,SPRN_DMISS - tlbld r3 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/kernel/pci-common.c linux-2.6.29-rc3.owrt/arch/powerpc/kernel/pci-common.c ---- linux-2.6.29.owrt/arch/powerpc/kernel/pci-common.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/kernel/pci-common.c 2009-05-10 23:48:28.000000000 +0200 -@@ -16,6 +16,8 @@ - * 2 of the License, or (at your option) any later version. - */ - -+#define DEBUG -+ - #include - #include - #include -@@ -256,8 +258,7 @@ - } else { - pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", - oirq.size, oirq.specifier[0], oirq.specifier[1], -- oirq.controller ? oirq.controller->full_name : -- ""); -+ oirq.controller->full_name); - - virq = irq_create_of_mapping(oirq.controller, oirq.specifier, - oirq.size); -@@ -561,21 +562,8 @@ - (unsigned long long)(offset + size - 1)); - - if (mmap_state == pci_mmap_mem) { -- /* Hack alert ! -- * -- * Because X is lame and can fail starting if it gets an error trying -- * to mmap legacy_mem (instead of just moving on without legacy memory -- * access) we fake it here by giving it anonymous memory, effectively -- * behaving just like /dev/zero -- */ -- if ((offset + size) > hose->isa_mem_size) { -- printk(KERN_DEBUG -- "Process %s (pid:%d) mapped non-existing PCI legacy memory for 0%04x:%02x\n", -- current->comm, current->pid, pci_domain_nr(bus), bus->number); -- if (vma->vm_flags & VM_SHARED) -- return shmem_zero_setup(vma); -- return 0; -- } -+ if ((offset + size) > hose->isa_mem_size) -+ return -ENXIO; - offset += hose->isa_mem_phys; - } else { - unsigned long io_offset = (unsigned long)hose->io_base_virt - _IO_BASE; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/kvm/powerpc.c linux-2.6.29-rc3.owrt/arch/powerpc/kvm/powerpc.c ---- linux-2.6.29.owrt/arch/powerpc/kvm/powerpc.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/kvm/powerpc.c 2009-05-10 23:48:28.000000000 +0200 -@@ -125,10 +125,6 @@ - } - } - --void kvm_arch_sync_events(struct kvm *kvm) --{ --} -- - void kvm_arch_destroy_vm(struct kvm *kvm) - { - kvmppc_free_vcpus(kvm); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/lib/copyuser_64.S linux-2.6.29-rc3.owrt/arch/powerpc/lib/copyuser_64.S ---- linux-2.6.29.owrt/arch/powerpc/lib/copyuser_64.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/lib/copyuser_64.S 2009-05-10 23:48:28.000000000 +0200 -@@ -62,19 +62,18 @@ - 72: std r8,8(r3) - beq+ 3f - addi r3,r3,16 -+23: ld r9,8(r4) - .Ldo_tail: - bf cr7*4+1,1f --23: lwz r9,8(r4) -- addi r4,r4,4 -+ rotldi r9,r9,32 - 73: stw r9,0(r3) - addi r3,r3,4 - 1: bf cr7*4+2,2f --44: lhz r9,8(r4) -- addi r4,r4,2 -+ rotldi r9,r9,16 - 74: sth r9,0(r3) - addi r3,r3,2 - 2: bf cr7*4+3,3f --45: lbz r9,8(r4) -+ rotldi r9,r9,8 - 75: stb r9,0(r3) - 3: li r3,0 - blr -@@ -142,24 +141,11 @@ - 6: cmpwi cr1,r5,8 - addi r3,r3,32 - sld r9,r9,r10 -- ble cr1,7f -+ ble cr1,.Ldo_tail - 34: ld r0,8(r4) - srd r7,r0,r11 - or r9,r7,r9 --7: -- bf cr7*4+1,1f -- rotldi r9,r9,32 --94: stw r9,0(r3) -- addi r3,r3,4 --1: bf cr7*4+2,2f -- rotldi r9,r9,16 --95: sth r9,0(r3) -- addi r3,r3,2 --2: bf cr7*4+3,3f -- rotldi r9,r9,8 --96: stb r9,0(r3) --3: li r3,0 -- blr -+ b .Ldo_tail - - .Ldst_unaligned: - PPC_MTOCRF 0x01,r6 /* put #bytes to 8B bdry into cr7 */ -@@ -232,6 +218,7 @@ - 121: - 132: - addi r3,r3,8 -+123: - 134: - 135: - 138: -@@ -239,9 +226,6 @@ - 140: - 141: - 142: --123: --144: --145: - - /* - * here we have had a fault on a load and r3 points to the first -@@ -325,9 +309,6 @@ - 187: - 188: - 189: --194: --195: --196: - 1: - ld r6,-24(r1) - ld r5,-8(r1) -@@ -348,9 +329,7 @@ - .llong 72b,172b - .llong 23b,123b - .llong 73b,173b -- .llong 44b,144b - .llong 74b,174b -- .llong 45b,145b - .llong 75b,175b - .llong 24b,124b - .llong 25b,125b -@@ -368,9 +347,6 @@ - .llong 79b,179b - .llong 80b,180b - .llong 34b,134b -- .llong 94b,194b -- .llong 95b,195b -- .llong 96b,196b - .llong 35b,135b - .llong 81b,181b - .llong 36b,136b -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/lib/memcpy_64.S linux-2.6.29-rc3.owrt/arch/powerpc/lib/memcpy_64.S ---- linux-2.6.29.owrt/arch/powerpc/lib/memcpy_64.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/lib/memcpy_64.S 2009-05-10 23:48:28.000000000 +0200 -@@ -53,19 +53,18 @@ - 3: std r8,8(r3) - beq 3f - addi r3,r3,16 -+ ld r9,8(r4) - .Ldo_tail: - bf cr7*4+1,1f -- lwz r9,8(r4) -- addi r4,r4,4 -+ rotldi r9,r9,32 - stw r9,0(r3) - addi r3,r3,4 - 1: bf cr7*4+2,2f -- lhz r9,8(r4) -- addi r4,r4,2 -+ rotldi r9,r9,16 - sth r9,0(r3) - addi r3,r3,2 - 2: bf cr7*4+3,3f -- lbz r9,8(r4) -+ rotldi r9,r9,8 - stb r9,0(r3) - 3: ld r3,48(r1) /* return dest pointer */ - blr -@@ -134,24 +133,11 @@ - cmpwi cr1,r5,8 - addi r3,r3,32 - sld r9,r9,r10 -- ble cr1,6f -+ ble cr1,.Ldo_tail - ld r0,8(r4) - srd r7,r0,r11 - or r9,r7,r9 --6: -- bf cr7*4+1,1f -- rotldi r9,r9,32 -- stw r9,0(r3) -- addi r3,r3,4 --1: bf cr7*4+2,2f -- rotldi r9,r9,16 -- sth r9,0(r3) -- addi r3,r3,2 --2: bf cr7*4+3,3f -- rotldi r9,r9,8 -- stb r9,0(r3) --3: ld r3,48(r1) /* return dest pointer */ -- blr -+ b .Ldo_tail - - .Ldst_unaligned: - PPC_MTOCRF 0x01,r6 # put #bytes to 8B bdry into cr7 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/lib/sstep.c linux-2.6.29-rc3.owrt/arch/powerpc/lib/sstep.c ---- linux-2.6.29.owrt/arch/powerpc/lib/sstep.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/lib/sstep.c 2009-05-10 23:48:28.000000000 +0200 -@@ -172,8 +172,6 @@ - } - break; - case 0x378: /* orx */ -- if (instr & 1) -- break; - rs = (instr >> 21) & 0x1f; - rb = (instr >> 11) & 0x1f; - if (rs == rb) { /* mr */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/mm/fsl_booke_mmu.c linux-2.6.29-rc3.owrt/arch/powerpc/mm/fsl_booke_mmu.c ---- linux-2.6.29.owrt/arch/powerpc/mm/fsl_booke_mmu.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/mm/fsl_booke_mmu.c 2009-05-10 23:48:28.000000000 +0200 -@@ -73,7 +73,7 @@ - /* - * Return PA for this VA if it is mapped by a CAM, or 0 - */ --phys_addr_t v_mapped_by_tlbcam(unsigned long va) -+unsigned long v_mapped_by_tlbcam(unsigned long va) - { - int b; - for (b = 0; b < tlbcam_index; ++b) -@@ -85,7 +85,7 @@ - /* - * Return VA for a given PA or 0 if not mapped - */ --unsigned long p_mapped_by_tlbcam(phys_addr_t pa) -+unsigned long p_mapped_by_tlbcam(unsigned long pa) - { - int b; - for (b = 0; b < tlbcam_index; ++b) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/mm/hash_low_32.S linux-2.6.29-rc3.owrt/arch/powerpc/mm/hash_low_32.S ---- linux-2.6.29.owrt/arch/powerpc/mm/hash_low_32.S 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/mm/hash_low_32.S 2009-05-10 23:48:28.000000000 +0200 -@@ -320,7 +320,7 @@ - and r8,r8,r0 /* writable if _RW & _DIRTY */ - rlwimi r5,r5,32-1,30,30 /* _PAGE_USER -> PP msb */ - rlwimi r5,r5,32-2,31,31 /* _PAGE_USER -> PP lsb */ -- ori r8,r8,0xe04 /* clear out reserved bits */ -+ ori r8,r8,0xe14 /* clear out reserved bits and M */ - andc r8,r5,r8 /* PP = user? (rw&dirty? 2: 3): 0 */ - BEGIN_FTR_SECTION - rlwinm r8,r8,0,~_PAGE_COHERENT /* clear M (coherence not required) */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/mm/numa.c linux-2.6.29-rc3.owrt/arch/powerpc/mm/numa.c ---- linux-2.6.29.owrt/arch/powerpc/mm/numa.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/mm/numa.c 2009-05-10 23:48:28.000000000 +0200 -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -883,7 +882,7 @@ - unsigned long physbase = lmb.reserved.region[i].base; - unsigned long size = lmb.reserved.region[i].size; - unsigned long start_pfn = physbase >> PAGE_SHIFT; -- unsigned long end_pfn = PFN_UP(physbase + size); -+ unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT); - struct node_active_region node_ar; - unsigned long node_end_pfn = node->node_start_pfn + - node->node_spanned_pages; -@@ -909,7 +908,7 @@ - */ - if (end_pfn > node_ar.end_pfn) - reserve_size = (node_ar.end_pfn << PAGE_SHIFT) -- - physbase; -+ - (start_pfn << PAGE_SHIFT); - /* - * Only worry about *this* node, others may not - * yet have valid NODE_DATA(). -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/mm/pgtable_32.c linux-2.6.29-rc3.owrt/arch/powerpc/mm/pgtable_32.c ---- linux-2.6.29.owrt/arch/powerpc/mm/pgtable_32.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/mm/pgtable_32.c 2009-05-10 23:48:28.000000000 +0200 -@@ -61,8 +61,8 @@ - - #ifdef HAVE_TLBCAM - extern unsigned int tlbcam_index; --extern phys_addr_t v_mapped_by_tlbcam(unsigned long va); --extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa); -+extern unsigned long v_mapped_by_tlbcam(unsigned long va); -+extern unsigned long p_mapped_by_tlbcam(unsigned long pa); - #else /* !HAVE_TLBCAM */ - #define v_mapped_by_tlbcam(x) (0UL) - #define p_mapped_by_tlbcam(x) (0UL) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/oprofile/cell/spu_profiler.c linux-2.6.29-rc3.owrt/arch/powerpc/oprofile/cell/spu_profiler.c ---- linux-2.6.29.owrt/arch/powerpc/oprofile/cell/spu_profiler.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/oprofile/cell/spu_profiler.c 2009-05-10 23:48:28.000000000 +0200 -@@ -16,7 +16,6 @@ - #include - #include - #include --#include - #include "pr_util.h" - - #define SCALE_SHIFT 14 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/52xx/mpc52xx_pci.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/52xx/mpc52xx_pci.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/52xx/mpc52xx_pci.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/52xx/mpc52xx_pci.c 2009-05-10 23:48:28.000000000 +0200 -@@ -20,6 +20,14 @@ - - - /* ======================================================================== */ -+/* PCI windows config */ -+/* ======================================================================== */ -+ -+#define MPC52xx_PCI_TARGET_IO 0xf0000000 -+#define MPC52xx_PCI_TARGET_MEM 0x00000000 -+ -+ -+/* ======================================================================== */ - /* Structures mapping & Defines for PCI Unit */ - /* ======================================================================== */ - -@@ -236,7 +244,7 @@ - - static void __init - mpc52xx_pci_setup(struct pci_controller *hose, -- struct mpc52xx_pci __iomem *pci_regs, phys_addr_t pci_phys) -+ struct mpc52xx_pci __iomem *pci_regs) - { - struct resource *res; - u32 tmp; -@@ -306,14 +314,10 @@ - /* Set all the IWCR fields at once; they're in the same reg */ - out_be32(&pci_regs->iwcr, MPC52xx_PCI_IWCR_PACK(iwcr0, iwcr1, iwcr2)); - -- /* Map IMMR onto PCI bus */ -- pci_phys &= 0xfffc0000; /* bar0 has only 14 significant bits */ -- out_be32(&pci_regs->tbatr0, MPC52xx_PCI_TBATR_ENABLE | pci_phys); -- out_be32(&pci_regs->bar0, PCI_BASE_ADDRESS_MEM_PREFETCH | pci_phys); -- -- /* Map memory onto PCI bus */ -- out_be32(&pci_regs->tbatr1, MPC52xx_PCI_TBATR_ENABLE); -- out_be32(&pci_regs->bar1, PCI_BASE_ADDRESS_MEM_PREFETCH); -+ out_be32(&pci_regs->tbatr0, -+ MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_IO ); -+ out_be32(&pci_regs->tbatr1, -+ MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_MEM ); - - out_be32(&pci_regs->tcr, MPC52xx_PCI_TCR_LD | MPC52xx_PCI_TCR_WCT8); - -@@ -410,7 +414,7 @@ - - /* Finish setting up PCI using values obtained by - * pci_proces_bridge_OF_ranges */ -- mpc52xx_pci_setup(hose, pci_regs, rsrc.start); -+ mpc52xx_pci_setup(hose, pci_regs); - - return 0; - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c 2009-05-10 23:48:28.000000000 +0200 -@@ -186,7 +186,7 @@ - iounmap(priv->regs); - out_free_bootmem: - free_bootmem((unsigned long)priv, -- sizeof(struct pq2ads_pci_pic)); -+ sizeof(sizeof(struct pq2ads_pci_pic))); - of_node_put(np); - out_unmap_irq: - irq_dispose_mapping(irq); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/86xx/gef_sbc610.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/86xx/gef_sbc610.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/86xx/gef_sbc610.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/86xx/gef_sbc610.c 2009-05-10 23:48:28.000000000 +0200 -@@ -142,10 +142,6 @@ - { - unsigned int val; - -- /* Do not do the fixup on other platforms! */ -- if (!machine_is(gef_sbc610)) -- return; -- - printk(KERN_INFO "Running NEC uPD720101 Fixup\n"); - - /* Ensure ports 1, 2, 3, 4 & 5 are enabled */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/embedded6xx/linkstation.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/embedded6xx/linkstation.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/embedded6xx/linkstation.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/embedded6xx/linkstation.c 2009-05-10 23:48:28.000000000 +0200 -@@ -12,6 +12,7 @@ - - #include - #include -+#include - #include - - #include -@@ -21,6 +22,39 @@ - - #include "mpc10x.h" - -+static struct mtd_partition linkstation_physmap_partitions[] = { -+ { -+ .name = "mtd_firmimg", -+ .offset = 0x000000, -+ .size = 0x300000, -+ }, -+ { -+ .name = "mtd_bootcode", -+ .offset = 0x300000, -+ .size = 0x070000, -+ }, -+ { -+ .name = "mtd_status", -+ .offset = 0x370000, -+ .size = 0x010000, -+ }, -+ { -+ .name = "mtd_conf", -+ .offset = 0x380000, -+ .size = 0x080000, -+ }, -+ { -+ .name = "mtd_allflash", -+ .offset = 0x000000, -+ .size = 0x400000, -+ }, -+ { -+ .name = "mtd_data", -+ .offset = 0x310000, -+ .size = 0x0f0000, -+ }, -+}; -+ - static __initdata struct of_device_id of_bus_ids[] = { - { .type = "soc", }, - { .compatible = "simple-bus", }, -@@ -65,6 +99,10 @@ - static void __init linkstation_setup_arch(void) - { - struct device_node *np; -+#ifdef CONFIG_MTD_PHYSMAP -+ physmap_set_partitions(linkstation_physmap_partitions, -+ ARRAY_SIZE(linkstation_physmap_partitions)); -+#endif - - /* Lookup PCI host bridges */ - for_each_compatible_node(np, "pci", "mpc10x-pci") -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/embedded6xx/storcenter.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/embedded6xx/storcenter.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/embedded6xx/storcenter.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/embedded6xx/storcenter.c 2009-05-10 23:48:28.000000000 +0200 -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - #include - - #include -@@ -25,6 +26,32 @@ - #include "mpc10x.h" - - -+#ifdef CONFIG_MTD_PHYSMAP -+static struct mtd_partition storcenter_physmap_partitions[] = { -+ { -+ .name = "kernel", -+ .offset = 0x000000, -+ .size = 0x170000, -+ }, -+ { -+ .name = "rootfs", -+ .offset = 0x170000, -+ .size = 0x590000, -+ }, -+ { -+ .name = "uboot", -+ .offset = 0x700000, -+ .size = 0x040000, -+ }, -+ { -+ .name = "config", -+ .offset = 0x740000, -+ .size = 0x0c0000, -+ }, -+}; -+#endif -+ -+ - static __initdata struct of_device_id storcenter_of_bus[] = { - { .name = "soc", }, - {}, -@@ -69,6 +96,11 @@ - { - struct device_node *np; - -+#ifdef CONFIG_MTD_PHYSMAP -+ physmap_set_partitions(storcenter_physmap_partitions, -+ ARRAY_SIZE(storcenter_physmap_partitions)); -+#endif -+ - /* Lookup PCI host bridges */ - for_each_compatible_node(np, "pci", "mpc10x-pci") - storcenter_add_bridge(np); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/ps3/Kconfig linux-2.6.29-rc3.owrt/arch/powerpc/platforms/ps3/Kconfig ---- linux-2.6.29.owrt/arch/powerpc/platforms/ps3/Kconfig 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/ps3/Kconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -128,13 +128,6 @@ - be disabled on the kernel command line using "ps3flash=off", to - not allocate this fixed buffer. - --config PS3_VRAM -- tristate "PS3 Video RAM Storage Driver" -- depends on FB_PS3=y && BLOCK && m -- help -- This driver allows you to use excess PS3 video RAM as volatile -- storage or system swap. -- - config PS3_LPM - tristate "PS3 Logical Performance Monitor support" - depends on PPC_PS3 -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/ps3/mm.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/ps3/mm.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/ps3/mm.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/ps3/mm.c 2009-05-10 23:48:28.000000000 +0200 -@@ -328,7 +328,7 @@ - return result; - } - --device_initcall(ps3_mm_add_memory); -+core_initcall(ps3_mm_add_memory); - - /*============================================================================*/ - /* dma routines */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/platforms/pseries/hotplug-memory.c linux-2.6.29-rc3.owrt/arch/powerpc/platforms/pseries/hotplug-memory.c ---- linux-2.6.29.owrt/arch/powerpc/platforms/pseries/hotplug-memory.c 2009-05-10 22:04:40.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/platforms/pseries/hotplug-memory.c 2009-05-10 23:48:28.000000000 +0200 -@@ -14,7 +14,6 @@ - #include - #include - #include --#include - - static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size) - { -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/sysdev/cpm2_pic.c linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/cpm2_pic.c ---- linux-2.6.29.owrt/arch/powerpc/sysdev/cpm2_pic.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/cpm2_pic.c 2009-05-10 23:48:28.000000000 +0200 -@@ -165,7 +165,7 @@ - edibit = (14 - (src - CPM2_IRQ_EXT1)); - else - if (src >= CPM2_IRQ_PORTC15 && src <= CPM2_IRQ_PORTC0) -- edibit = (31 - (CPM2_IRQ_PORTC0 - src)); -+ edibit = (31 - (src - CPM2_IRQ_PORTC15)); - else - return (flow_type & IRQ_TYPE_LEVEL_LOW) ? 0 : -EINVAL; - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/sysdev/ipic.c linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/ipic.c ---- linux-2.6.29.owrt/arch/powerpc/sysdev/ipic.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/ipic.c 2009-05-10 23:48:28.000000000 +0200 -@@ -890,7 +890,7 @@ - return irq_linear_revmap(primary_ipic->irqhost, irq); - } - --#ifdef CONFIG_SUSPEND -+#ifdef CONFIG_PM - static struct { - u32 sicfr; - u32 siprr[2]; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/powerpc/sysdev/ppc4xx_pci.c linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/ppc4xx_pci.c ---- linux-2.6.29.owrt/arch/powerpc/sysdev/ppc4xx_pci.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/powerpc/sysdev/ppc4xx_pci.c 2009-05-10 23:48:28.000000000 +0200 -@@ -204,23 +204,6 @@ - { - u32 ma, pcila, pciha; - -- /* Hack warning ! The "old" PCI 2.x cell only let us configure the low -- * 32-bit of incoming PLB addresses. The top 4 bits of the 36-bit -- * address are actually hard wired to a value that appears to depend -- * on the specific SoC. For example, it's 0 on 440EP and 1 on 440EPx. -- * -- * The trick here is we just crop those top bits and ignore them when -- * programming the chip. That means the device-tree has to be right -- * for the specific part used (we don't print a warning if it's wrong -- * but on the other hand, you'll crash quickly enough), but at least -- * this code should work whatever the hard coded value is -- */ -- plb_addr &= 0xffffffffull; -- -- /* Note: Due to the above hack, the test below doesn't actually test -- * if you address is above 4G, but it tests that address and -- * (address + size) are both contained in the same 4G -- */ - if ((plb_addr + size) > 0xffffffffull || !is_power_of_2(size) || - size < 0x1000 || (plb_addr & (size - 1)) != 0) { - printk(KERN_WARNING "%s: Resource out of range\n", -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/crypto/aes_s390.c linux-2.6.29-rc3.owrt/arch/s390/crypto/aes_s390.c ---- linux-2.6.29.owrt/arch/s390/crypto/aes_s390.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/crypto/aes_s390.c 2009-05-10 23:48:28.000000000 +0200 -@@ -556,7 +556,7 @@ - module_init(aes_s390_init); - module_exit(aes_s390_fini); - --MODULE_ALIAS("aes-all"); -+MODULE_ALIAS("aes"); - - MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); - MODULE_LICENSE("GPL"); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/defconfig linux-2.6.29-rc3.owrt/arch/s390/defconfig ---- linux-2.6.29.owrt/arch/s390/defconfig 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/defconfig 2009-05-10 23:48:28.000000000 +0200 -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Linux kernel version: 2.6.29-rc4 --# Wed Feb 11 10:07:16 2009 -+# Linux kernel version: 2.6.28-rc6 -+# Thu Nov 27 11:00:49 2008 - # - CONFIG_SCHED_MC=y - CONFIG_MMU=y -@@ -14,14 +14,12 @@ - # CONFIG_ARCH_HAS_ILOG2_U64 is not set - CONFIG_GENERIC_HWEIGHT=y - CONFIG_GENERIC_TIME=y --CONFIG_GENERIC_TIME_VSYSCALL=y - CONFIG_GENERIC_CLOCKEVENTS=y - CONFIG_GENERIC_BUG=y - CONFIG_NO_IOMEM=y - CONFIG_NO_DMA=y - CONFIG_GENERIC_LOCKBREAK=y - CONFIG_PGSTE=y --CONFIG_VIRT_CPU_ACCOUNTING=y - CONFIG_S390=y - CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -@@ -41,29 +39,20 @@ - # CONFIG_TASKSTATS is not set - CONFIG_AUDIT=y - # CONFIG_AUDITSYSCALL is not set -- --# --# RCU Subsystem --# --CONFIG_CLASSIC_RCU=y --# CONFIG_TREE_RCU is not set --# CONFIG_PREEMPT_RCU is not set --# CONFIG_TREE_RCU_TRACE is not set --# CONFIG_PREEMPT_RCU_TRACE is not set - CONFIG_IKCONFIG=y - CONFIG_IKCONFIG_PROC=y - CONFIG_LOG_BUF_SHIFT=17 --CONFIG_GROUP_SCHED=y --CONFIG_FAIR_GROUP_SCHED=y --# CONFIG_RT_GROUP_SCHED is not set --CONFIG_USER_SCHED=y --# CONFIG_CGROUP_SCHED is not set - CONFIG_CGROUPS=y - # CONFIG_CGROUP_DEBUG is not set - CONFIG_CGROUP_NS=y - # CONFIG_CGROUP_FREEZER is not set - # CONFIG_CGROUP_DEVICE is not set - # CONFIG_CPUSETS is not set -+CONFIG_GROUP_SCHED=y -+CONFIG_FAIR_GROUP_SCHED=y -+# CONFIG_RT_GROUP_SCHED is not set -+CONFIG_USER_SCHED=y -+# CONFIG_CGROUP_SCHED is not set - # CONFIG_CGROUP_CPUACCT is not set - # CONFIG_RESOURCE_COUNTERS is not set - CONFIG_SYSFS_DEPRECATED=y -@@ -74,7 +63,6 @@ - CONFIG_IPC_NS=y - # CONFIG_USER_NS is not set - # CONFIG_PID_NS is not set --# CONFIG_NET_NS is not set - CONFIG_BLK_DEV_INITRD=y - CONFIG_INITRAMFS_SOURCE="" - # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -@@ -103,17 +91,17 @@ - # CONFIG_SLUB is not set - # CONFIG_SLOB is not set - # CONFIG_PROFILING is not set -+# CONFIG_MARKERS is not set - CONFIG_HAVE_OPROFILE=y - CONFIG_KPROBES=y --CONFIG_HAVE_SYSCALL_WRAPPERS=y - CONFIG_KRETPROBES=y - CONFIG_HAVE_KPROBES=y - CONFIG_HAVE_KRETPROBES=y - CONFIG_HAVE_ARCH_TRACEHOOK=y --CONFIG_USE_GENERIC_SMP_HELPERS=y - # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set - CONFIG_SLABINFO=y - CONFIG_RT_MUTEXES=y -+# CONFIG_TINY_SHMEM is not set - CONFIG_BASE_SMALL=0 - CONFIG_MODULES=y - # CONFIG_MODULE_FORCE_LOAD is not set -@@ -121,7 +109,7 @@ - # CONFIG_MODULE_FORCE_UNLOAD is not set - CONFIG_MODVERSIONS=y - # CONFIG_MODULE_SRCVERSION_ALL is not set --CONFIG_INIT_ALL_POSSIBLE=y -+CONFIG_KMOD=y - CONFIG_STOP_MACHINE=y - CONFIG_BLOCK=y - # CONFIG_BLK_DEV_IO_TRACE is not set -@@ -142,6 +130,7 @@ - # CONFIG_DEFAULT_NOOP is not set - CONFIG_DEFAULT_IOSCHED="deadline" - CONFIG_PREEMPT_NOTIFIERS=y -+CONFIG_CLASSIC_RCU=y - # CONFIG_FREEZER is not set - - # -@@ -172,7 +161,6 @@ - CONFIG_MARCH_Z900=y - # CONFIG_MARCH_Z990 is not set - # CONFIG_MARCH_Z9_109 is not set --# CONFIG_MARCH_Z10 is not set - CONFIG_PACK_STACK=y - # CONFIG_SMALL_STACK is not set - CONFIG_CHECK_STACK=y -@@ -186,6 +174,7 @@ - # CONFIG_PREEMPT_NONE is not set - # CONFIG_PREEMPT_VOLUNTARY is not set - CONFIG_PREEMPT=y -+# CONFIG_PREEMPT_RCU is not set - CONFIG_ARCH_SPARSEMEM_ENABLE=y - CONFIG_ARCH_SPARSEMEM_DEFAULT=y - CONFIG_ARCH_SELECT_MEMORY_MODEL=y -@@ -206,6 +195,7 @@ - CONFIG_PAGEFLAGS_EXTENDED=y - CONFIG_SPLIT_PTLOCK_CPUS=4 - CONFIG_MIGRATION=y -+CONFIG_RESOURCES_64BIT=y - CONFIG_PHYS_ADDR_T_64BIT=y - CONFIG_ZONE_DMA_FLAG=1 - CONFIG_BOUNCE=y -@@ -217,6 +207,7 @@ - # - CONFIG_MACHCHK_WARNING=y - CONFIG_QDIO=y -+# CONFIG_QDIO_DEBUG is not set - CONFIG_CHSC_SCH=m - - # -@@ -236,13 +227,15 @@ - # CONFIG_SHARED_KERNEL is not set - # CONFIG_CMM is not set - # CONFIG_PAGE_STATES is not set -+CONFIG_VIRT_TIMER=y -+CONFIG_VIRT_CPU_ACCOUNTING=y - # CONFIG_APPLDATA_BASE is not set - CONFIG_HZ_100=y - # CONFIG_HZ_250 is not set - # CONFIG_HZ_300 is not set - # CONFIG_HZ_1000 is not set - CONFIG_HZ=100 --CONFIG_SCHED_HRTICK=y -+# CONFIG_SCHED_HRTICK is not set - CONFIG_S390_HYPFS_FS=y - CONFIG_KEXEC=y - # CONFIG_ZFCPDUMP is not set -@@ -252,7 +245,6 @@ - # - # Networking options - # --CONFIG_COMPAT_NET_DEV_OPS=y - CONFIG_PACKET=y - # CONFIG_PACKET_MMAP is not set - CONFIG_UNIX=y -@@ -391,7 +383,6 @@ - CONFIG_NET_SCH_GRED=m - CONFIG_NET_SCH_DSMARK=m - # CONFIG_NET_SCH_NETEM is not set --# CONFIG_NET_SCH_DRR is not set - # CONFIG_NET_SCH_INGRESS is not set - - # -@@ -409,7 +400,6 @@ - CONFIG_NET_CLS_RSVP=m - CONFIG_NET_CLS_RSVP6=m - CONFIG_NET_CLS_FLOW=m --# CONFIG_NET_CLS_CGROUP is not set - # CONFIG_NET_EMATCH is not set - CONFIG_NET_CLS_ACT=y - CONFIG_NET_ACT_POLICE=y -@@ -421,7 +411,6 @@ - # CONFIG_NET_ACT_SKBEDIT is not set - # CONFIG_NET_CLS_IND is not set - CONFIG_NET_SCH_FIFO=y --# CONFIG_DCB is not set - - # - # Network testing -@@ -439,7 +428,6 @@ - # CONFIG_CAN_DEBUG_DEVICES is not set - # CONFIG_AF_RXRPC is not set - # CONFIG_PHONET is not set --# CONFIG_WIMAX is not set - # CONFIG_RFKILL is not set - # CONFIG_NET_9P is not set - # CONFIG_PCMCIA is not set -@@ -487,15 +475,11 @@ - CONFIG_DASD_EER=y - CONFIG_VIRTIO_BLK=m - CONFIG_MISC_DEVICES=y -+# CONFIG_EEPROM_93CX6 is not set - # CONFIG_ENCLOSURE_SERVICES is not set - # CONFIG_C2PORT is not set - - # --# EEPROM support --# --# CONFIG_EEPROM_93CX6 is not set -- --# - # SCSI device support - # - # CONFIG_RAID_ATTRS is not set -@@ -536,7 +520,6 @@ - # CONFIG_SCSI_SRP_ATTRS is not set - CONFIG_SCSI_LOWLEVEL=y - # CONFIG_ISCSI_TCP is not set --# CONFIG_LIBFC is not set - # CONFIG_SCSI_DEBUG is not set - CONFIG_ZFCP=y - CONFIG_SCSI_DH=m -@@ -583,10 +566,6 @@ - CONFIG_NETDEV_1000=y - CONFIG_NETDEV_10000=y - # CONFIG_TR is not set -- --# --# Enable WiMAX (Networking options) to see the WiMAX drivers --# - # CONFIG_WAN is not set - - # -@@ -614,11 +593,9 @@ - # - CONFIG_DEVKMEM=y - CONFIG_UNIX98_PTYS=y --# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set - CONFIG_LEGACY_PTYS=y - CONFIG_LEGACY_PTY_COUNT=256 - CONFIG_HVC_DRIVER=y --CONFIG_HVC_IUCV=y - CONFIG_VIRTIO_CONSOLE=y - CONFIG_HW_RANDOM=m - CONFIG_HW_RANDOM_VIRTIO=m -@@ -668,6 +645,7 @@ - # CONFIG_NEW_LEDS is not set - CONFIG_ACCESSIBILITY=y - # CONFIG_STAGING is not set -+CONFIG_STAGING_EXCLUDE_BUILD=y - - # - # File systems -@@ -690,7 +668,6 @@ - # CONFIG_XFS_FS is not set - # CONFIG_GFS2_FS is not set - # CONFIG_OCFS2_FS is not set --# CONFIG_BTRFS_FS is not set - CONFIG_DNOTIFY=y - CONFIG_INOTIFY=y - CONFIG_INOTIFY_USER=y -@@ -726,7 +703,10 @@ - # CONFIG_HUGETLBFS is not set - # CONFIG_HUGETLB_PAGE is not set - CONFIG_CONFIGFS_FS=m --CONFIG_MISC_FILESYSTEMS=y -+ -+# -+# Miscellaneous filesystems -+# - # CONFIG_ADFS_FS is not set - # CONFIG_AFFS_FS is not set - # CONFIG_HFS_FS is not set -@@ -735,7 +715,6 @@ - # CONFIG_BFS_FS is not set - # CONFIG_EFS_FS is not set - # CONFIG_CRAMFS is not set --# CONFIG_SQUASHFS is not set - # CONFIG_VXFS_FS is not set - # CONFIG_MINIX_FS is not set - # CONFIG_OMFS_FS is not set -@@ -829,7 +808,6 @@ - CONFIG_DEBUG_MEMORY_INIT=y - # CONFIG_DEBUG_LIST is not set - # CONFIG_DEBUG_SG is not set --# CONFIG_DEBUG_NOTIFIERS is not set - # CONFIG_FRAME_POINTER is not set - # CONFIG_RCU_TORTURE_TEST is not set - # CONFIG_RCU_CPU_STALL_DETECTOR is not set -@@ -840,19 +818,15 @@ - # CONFIG_FAULT_INJECTION is not set - # CONFIG_LATENCYTOP is not set - CONFIG_SYSCTL_SYSCALL_CHECK=y --CONFIG_HAVE_FUNCTION_TRACER=y - - # - # Tracers - # --# CONFIG_FUNCTION_TRACER is not set - # CONFIG_IRQSOFF_TRACER is not set - # CONFIG_PREEMPT_TRACER is not set - # CONFIG_SCHED_TRACER is not set - # CONFIG_CONTEXT_SWITCH_TRACER is not set - # CONFIG_BOOT_TRACER is not set --# CONFIG_TRACE_BRANCH_PROFILING is not set --# CONFIG_STACK_TRACER is not set - # CONFIG_DYNAMIC_PRINTK_DEBUG is not set - CONFIG_SAMPLES=y - # CONFIG_SAMPLE_KOBJECT is not set -@@ -873,17 +847,11 @@ - # - CONFIG_CRYPTO_FIPS=y - CONFIG_CRYPTO_ALGAPI=y --CONFIG_CRYPTO_ALGAPI2=y --CONFIG_CRYPTO_AEAD=m --CONFIG_CRYPTO_AEAD2=y -+CONFIG_CRYPTO_AEAD=y - CONFIG_CRYPTO_BLKCIPHER=y --CONFIG_CRYPTO_BLKCIPHER2=y --CONFIG_CRYPTO_HASH=m --CONFIG_CRYPTO_HASH2=y --CONFIG_CRYPTO_RNG=m --CONFIG_CRYPTO_RNG2=y -+CONFIG_CRYPTO_HASH=y -+CONFIG_CRYPTO_RNG=y - CONFIG_CRYPTO_MANAGER=y --CONFIG_CRYPTO_MANAGER2=y - CONFIG_CRYPTO_GF128MUL=m - # CONFIG_CRYPTO_NULL is not set - # CONFIG_CRYPTO_CRYPTD is not set -@@ -917,7 +885,7 @@ - # - # Digest - # --CONFIG_CRYPTO_CRC32C=m -+# CONFIG_CRYPTO_CRC32C is not set - # CONFIG_CRYPTO_MD4 is not set - CONFIG_CRYPTO_MD5=m - # CONFIG_CRYPTO_MICHAEL_MIC is not set -@@ -974,7 +942,6 @@ - # Library routines - # - CONFIG_BITREVERSE=m --CONFIG_GENERIC_FIND_LAST_BIT=y - # CONFIG_CRC_CCITT is not set - # CONFIG_CRC16 is not set - CONFIG_CRC_T10DIF=y -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/cputime.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/cputime.h ---- linux-2.6.29.owrt/arch/s390/include/asm/cputime.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/cputime.h 2009-05-10 23:48:28.000000000 +0200 -@@ -145,7 +145,7 @@ - value->tv_usec = rp.subreg.even / 4096; - value->tv_sec = rp.subreg.odd; - #else -- value->tv_usec = (cputime % 4096000000ULL) / 4096; -+ value->tv_usec = cputime % 4096000000ULL; - value->tv_sec = cputime / 4096000000ULL; - #endif - } -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/lowcore.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/lowcore.h ---- linux-2.6.29.owrt/arch/s390/include/asm/lowcore.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/lowcore.h 2009-05-10 23:48:28.000000000 +0200 -@@ -384,8 +384,8 @@ - __u32 panic_magic; /* 0xe00 */ - - /* Per cpu primary space access list */ -- __u8 pad_0xe04[0xe38-0xe04]; /* 0xe04 */ -- __u64 vdso_per_cpu_data; /* 0xe38 */ -+ __u8 pad_0xe04[0xe3c-0xe04]; /* 0xe04 */ -+ __u32 vdso_per_cpu_data; /* 0xe3c */ - __u32 paste[16]; /* 0xe40 */ - - __u8 pad13[0x11b8-0xe80]; /* 0xe80 */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/mman.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/mman.h ---- linux-2.6.29.owrt/arch/s390/include/asm/mman.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/mman.h 2009-05-10 23:48:28.000000000 +0200 -@@ -22,9 +22,4 @@ - #define MCL_CURRENT 1 /* lock all current mappings */ - #define MCL_FUTURE 2 /* lock all future mappings */ - --#if defined(__KERNEL__) && !defined(__ASSEMBLY__) && defined(CONFIG_64BIT) --int s390_mmap_check(unsigned long addr, unsigned long len); --#define arch_mmap_check(addr,len,flags) s390_mmap_check(addr,len) --#endif -- - #endif /* __S390_MMAN_H__ */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/processor.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/processor.h ---- linux-2.6.29.owrt/arch/s390/include/asm/processor.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/processor.h 2009-05-10 23:48:28.000000000 +0200 -@@ -61,7 +61,7 @@ - extern int get_cpu_capability(unsigned int *); - - /* -- * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. -+ * User space process size: 2GB for 31 bit, 4TB for 64 bit. - */ - #ifndef __s390x__ - -@@ -70,7 +70,8 @@ - - #else /* __s390x__ */ - --#define TASK_SIZE_OF(tsk) ((tsk)->mm->context.asce_limit) -+#define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk,TIF_31BIT) ? \ -+ (1UL << 31) : (1UL << 53)) - #define TASK_UNMAPPED_BASE (test_thread_flag(TIF_31BIT) ? \ - (1UL << 30) : (1UL << 41)) - #define TASK_SIZE TASK_SIZE_OF(current) -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/setup.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/setup.h ---- linux-2.6.29.owrt/arch/s390/include/asm/setup.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/setup.h 2009-05-10 23:48:28.000000000 +0200 -@@ -43,8 +43,6 @@ - - extern struct mem_chunk memory_chunk[]; - extern unsigned long real_memory_size; --extern int memory_end_set; --extern unsigned long memory_end; - - void detect_memory_layout(struct mem_chunk chunk[]); - -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/include/asm/topology.h linux-2.6.29-rc3.owrt/arch/s390/include/asm/topology.h ---- linux-2.6.29.owrt/arch/s390/include/asm/topology.h 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/include/asm/topology.h 2009-05-10 23:48:28.000000000 +0200 -@@ -30,8 +30,6 @@ - }; - #endif - --#define SD_MC_INIT SD_CPU_INIT -- - #include - - #endif /* _ASM_S390_TOPOLOGY_H */ -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/kernel/irq.c linux-2.6.29-rc3.owrt/arch/s390/kernel/irq.c ---- linux-2.6.29.owrt/arch/s390/kernel/irq.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/kernel/irq.c 2009-05-10 23:48:28.000000000 +0200 -@@ -95,7 +95,6 @@ - local_irq_restore(flags); - } - --#ifdef CONFIG_PROC_FS - void init_irq_proc(void) - { - struct proc_dir_entry *root_irq_dir; -@@ -103,4 +102,3 @@ - root_irq_dir = proc_mkdir("irq", NULL); - create_prof_cpu_mask(root_irq_dir); - } --#endif -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/kernel/mcount.S linux-2.6.29-rc3.owrt/arch/s390/kernel/mcount.S ---- linux-2.6.29.owrt/arch/s390/kernel/mcount.S 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/kernel/mcount.S 2009-05-10 23:48:28.000000000 +0200 -@@ -5,8 +5,6 @@ - * - */ - --#include -- - #ifndef CONFIG_64BIT - .globl _mcount - _mcount: -@@ -16,7 +14,7 @@ - ahi %r15,-96 - l %r3,100(%r15) - la %r2,0(%r14) -- st %r1,__SF_BACKCHAIN(%r15) -+ st %r1,0(%r15) - la %r3,0(%r3) - bras %r14,0f - .long ftrace_trace_function -@@ -40,7 +38,7 @@ - stg %r14,112(%r15) - lgr %r1,%r15 - aghi %r15,-160 -- stg %r1,__SF_BACKCHAIN(%r15) -+ stg %r1,0(%r15) - lgr %r2,%r14 - lg %r3,168(%r15) - larl %r14,ftrace_trace_function -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/kernel/setup.c linux-2.6.29-rc3.owrt/arch/s390/kernel/setup.c ---- linux-2.6.29.owrt/arch/s390/kernel/setup.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/kernel/setup.c 2009-05-10 23:48:28.000000000 +0200 -@@ -82,9 +82,7 @@ - - struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; - volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */ -- --int __initdata memory_end_set; --unsigned long __initdata memory_end; -+static unsigned long __initdata memory_end; - - /* - * This is set up by the setup-routine at boot-time -@@ -283,7 +281,6 @@ - static int __init early_parse_mem(char *p) - { - memory_end = memparse(p, &p); -- memory_end_set = 1; - return 0; - } - early_param("mem", early_parse_mem); -@@ -511,10 +508,8 @@ - int i; - - #if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_ZFCPDUMP_MODULE) -- if (ipl_info.type == IPL_TYPE_FCP_DUMP) { -+ if (ipl_info.type == IPL_TYPE_FCP_DUMP) - memory_end = ZFCPDUMP_HSA_SIZE; -- memory_end_set = 1; -- } - #endif - memory_size = 0; - memory_end &= PAGE_MASK; -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/kvm/kvm-s390.c linux-2.6.29-rc3.owrt/arch/s390/kvm/kvm-s390.c ---- linux-2.6.29.owrt/arch/s390/kvm/kvm-s390.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/kvm/kvm-s390.c 2009-05-10 23:48:28.000000000 +0200 -@@ -212,10 +212,6 @@ - } - } - --void kvm_arch_sync_events(struct kvm *kvm) --{ --} -- - void kvm_arch_destroy_vm(struct kvm *kvm) - { - kvm_free_vcpus(kvm); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/lib/div64.c linux-2.6.29-rc3.owrt/arch/s390/lib/div64.c ---- linux-2.6.29.owrt/arch/s390/lib/div64.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/lib/div64.c 2009-05-10 23:48:28.000000000 +0200 -@@ -61,7 +61,7 @@ - " clr %0,%3\n" - " jl 0f\n" - " slr %0,%3\n" -- " ahi %1,1\n" -+ " alr %1,%2\n" - "0:\n" - : "+d" (reg2), "+d" (reg3), "=d" (tmp) - : "d" (base), "2" (1UL) : "cc" ); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/lib/uaccess_pt.c linux-2.6.29-rc3.owrt/arch/s390/lib/uaccess_pt.c ---- linux-2.6.29.owrt/arch/s390/lib/uaccess_pt.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/lib/uaccess_pt.c 2009-05-10 23:48:28.000000000 +0200 -@@ -119,6 +119,8 @@ - goto fault; - - pfn = pte_pfn(*pte); -+ if (!pfn_valid(pfn)) -+ goto out; - - offset = uaddr & (PAGE_SIZE - 1); - size = min(n - done, PAGE_SIZE - offset); -@@ -133,6 +135,7 @@ - done += size; - uaddr += size; - } while (done < n); -+out: - spin_unlock(&mm->page_table_lock); - return n - done; - fault: -@@ -160,6 +163,9 @@ - goto fault; - - pfn = pte_pfn(*pte); -+ if (!pfn_valid(pfn)) -+ goto out; -+ - ret = (pfn << PAGE_SHIFT) + (uaddr & (PAGE_SIZE - 1)); - out: - return ret; -@@ -238,6 +244,11 @@ - goto fault; - - pfn = pte_pfn(*pte); -+ if (!pfn_valid(pfn)) { -+ done = -1; -+ goto out; -+ } -+ - offset = uaddr & (PAGE_SIZE-1); - addr = (char *)(pfn << PAGE_SHIFT) + offset; - len = min(count - done, PAGE_SIZE - offset); -@@ -245,6 +256,7 @@ - done += len_str; - uaddr += len_str; - } while ((len_str == len) && (done < count)); -+out: - spin_unlock(&mm->page_table_lock); - return done + 1; - fault: -@@ -313,7 +325,12 @@ - } - - pfn_from = pte_pfn(*pte_from); -+ if (!pfn_valid(pfn_from)) -+ goto out; - pfn_to = pte_pfn(*pte_to); -+ if (!pfn_valid(pfn_to)) -+ goto out; -+ - offset_from = uaddr_from & (PAGE_SIZE-1); - offset_to = uaddr_from & (PAGE_SIZE-1); - offset_max = max(offset_from, offset_to); -@@ -325,6 +342,7 @@ - uaddr_from += size; - uaddr_to += size; - } while (done < n); -+out: - spin_unlock(&mm->page_table_lock); - return n - done; - fault: -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/mm/mmap.c linux-2.6.29-rc3.owrt/arch/s390/mm/mmap.c ---- linux-2.6.29.owrt/arch/s390/mm/mmap.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/mm/mmap.c 2009-05-10 23:48:28.000000000 +0200 -@@ -35,7 +35,7 @@ - * Leave an at least ~128 MB hole. - */ - #define MIN_GAP (128*1024*1024) --#define MAX_GAP (STACK_TOP/6*5) -+#define MAX_GAP (TASK_SIZE/6*5) - - static inline unsigned long mmap_base(void) - { -@@ -46,7 +46,7 @@ - else if (gap > MAX_GAP) - gap = MAX_GAP; - -- return STACK_TOP - (gap & PAGE_MASK); -+ return TASK_SIZE - (gap & PAGE_MASK); - } - - static inline int mmap_is_legacy(void) -@@ -89,58 +89,42 @@ - - #else - --int s390_mmap_check(unsigned long addr, unsigned long len) --{ -- if (!test_thread_flag(TIF_31BIT) && -- len >= TASK_SIZE && TASK_SIZE < (1UL << 53)) -- return crst_table_upgrade(current->mm, 1UL << 53); -- return 0; --} -- - static unsigned long - s390_get_unmapped_area(struct file *filp, unsigned long addr, - unsigned long len, unsigned long pgoff, unsigned long flags) - { - struct mm_struct *mm = current->mm; -- unsigned long area; - int rc; - -- area = arch_get_unmapped_area(filp, addr, len, pgoff, flags); -- if (!(area & ~PAGE_MASK)) -- return area; -- if (area == -ENOMEM && -- !test_thread_flag(TIF_31BIT) && TASK_SIZE < (1UL << 53)) { -- /* Upgrade the page table to 4 levels and retry. */ -- rc = crst_table_upgrade(mm, 1UL << 53); -+ addr = arch_get_unmapped_area(filp, addr, len, pgoff, flags); -+ if (addr & ~PAGE_MASK) -+ return addr; -+ if (unlikely(mm->context.asce_limit < addr + len)) { -+ rc = crst_table_upgrade(mm, addr + len); - if (rc) - return (unsigned long) rc; -- area = arch_get_unmapped_area(filp, addr, len, pgoff, flags); - } -- return area; -+ return addr; - } - - static unsigned long --s390_get_unmapped_area_topdown(struct file *filp, const unsigned long addr, -+s390_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, - const unsigned long len, const unsigned long pgoff, - const unsigned long flags) - { - struct mm_struct *mm = current->mm; -- unsigned long area; -+ unsigned long addr = addr0; - int rc; - -- area = arch_get_unmapped_area_topdown(filp, addr, len, pgoff, flags); -- if (!(area & ~PAGE_MASK)) -- return area; -- if (area == -ENOMEM && -- !test_thread_flag(TIF_31BIT) && TASK_SIZE < (1UL << 53)) { -- /* Upgrade the page table to 4 levels and retry. */ -- rc = crst_table_upgrade(mm, 1UL << 53); -+ addr = arch_get_unmapped_area_topdown(filp, addr, len, pgoff, flags); -+ if (addr & ~PAGE_MASK) -+ return addr; -+ if (unlikely(mm->context.asce_limit < addr + len)) { -+ rc = crst_table_upgrade(mm, addr + len); - if (rc) - return (unsigned long) rc; -- area = arch_get_unmapped_area_topdown(filp, addr, len, -- pgoff, flags); - } -- return area; -+ return addr; - } - /* - * This function, called very early during the creation of a new -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/s390/mm/pgtable.c linux-2.6.29-rc3.owrt/arch/s390/mm/pgtable.c ---- linux-2.6.29.owrt/arch/s390/mm/pgtable.c 2009-05-10 22:04:39.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/s390/mm/pgtable.c 2009-05-10 23:48:28.000000000 +0200 -@@ -117,7 +117,6 @@ - crst_table_init(table, entry); - pgd_populate(mm, (pgd_t *) table, (pud_t *) pgd); - mm->pgd = (pgd_t *) table; -- mm->task_size = mm->context.asce_limit; - table = NULL; - } - spin_unlock(&mm->page_table_lock); -@@ -155,7 +154,6 @@ - BUG(); - } - mm->pgd = (pgd_t *) (pgd_val(*pgd) & _REGION_ENTRY_ORIGIN); -- mm->task_size = mm->context.asce_limit; - crst_table_free(mm, (unsigned long *) pgd); - } - update_mm(mm, current); -diff -ruN --exclude='*.rej' --exclude='*.orig' --exclude=Documentation --exclude='*_defconfig' --exclude='*.ppm' --exclude='*bnx2_fw*' linux-2.6.29.owrt/arch/sh/boards/board-ap325rxa.c linux-2.6.29-rc3.owrt/arch/sh/boards/board-ap325rxa.c ---- linux-2.6.29.owrt/arch/sh/boards/board-ap325rxa.c 2009-05-10 22:04:41.000000000 +0200 -+++ linux-2.6.29-rc3.owrt/arch/sh/boards/board-ap325rxa.c 2009-05-10 23:48:28.000000000 +0200 -@@ -22,7 +22,6 @@ - #include - #include - #include --#include - #include - #include - #include