From: Arne Fitzenreiter Date: Sun, 10 Jun 2012 09:13:59 +0000 (+0200) Subject: kernel: updated omap and rpi kernel to 2.6.42.19 (aka 3.2.19). X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=1f6abd5362d74f585bdaf26bd9dea71905130e7c kernel: updated omap and rpi kernel to 2.6.42.19 (aka 3.2.19). --- diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap index 568011475..eb8c18a12 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-omap +++ b/config/kernel/kernel.config.armv5tel-ipfire-omap @@ -1,6 +1,6 @@ # -# Automatically generated make config: don't edit -# Linux/arm 2.6.40.26-ipfire-omap Kernel Configuration +# Automatically generated file; DO NOT EDIT. +# Linux/arm 2.6.42.19-ipfire-omap Kernel Configuration # CONFIG_ARM=y CONFIG_HAVE_PWM=y @@ -25,6 +25,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y @@ -62,6 +63,7 @@ CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y CONFIG_SPARSE_IRQ=y # @@ -94,7 +96,7 @@ CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EXPERT=y @@ -156,6 +158,7 @@ CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # @@ -210,9 +213,11 @@ CONFIG_MMU=y # CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set @@ -228,15 +233,14 @@ CONFIG_MMU=y # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI is not set # CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_NUC93X is not set # CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set @@ -248,7 +252,7 @@ CONFIG_MMU=y # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS4 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set @@ -258,6 +262,7 @@ CONFIG_MMU=y CONFIG_ARCH_OMAP=y # CONFIG_PLAT_SPEAR is not set # CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_KEYBOARD_GPIO_POLLED is not set @@ -284,7 +289,6 @@ CONFIG_OMAP_32K_TIMER=y # CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set CONFIG_OMAP_32K_TIMER_HZ=128 CONFIG_OMAP_DM_TIMER=y -# CONFIG_OMAP_PM_NONE is not set CONFIG_OMAP_PM_NOOP=y CONFIG_MACH_OMAP_GENERIC=y @@ -336,6 +340,7 @@ CONFIG_MACH_OMAP_ZOOM2=y CONFIG_MACH_OMAP_ZOOM3=y CONFIG_MACH_CM_T35=y CONFIG_MACH_CM_T3517=y +CONFIG_MACH_CM_T3730=y CONFIG_MACH_IGEP0020=y CONFIG_MACH_IGEP0030=y CONFIG_MACH_SBC3530=y @@ -386,6 +391,7 @@ CONFIG_OUTER_CACHE_SYNC=y CONFIG_CACHE_L2X0=y CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_326103 is not set CONFIG_ARM_ERRATA_411920=y CONFIG_ARM_ERRATA_430973=y CONFIG_ARM_ERRATA_458693=y @@ -399,6 +405,8 @@ CONFIG_ARM_ERRATA_743622=y # CONFIG_ARM_ERRATA_751472 is not set CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_PL310_ERRATA_769419=y CONFIG_ARM_GIC=y # @@ -407,8 +415,6 @@ CONFIG_ARM_GIC=y # CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCCARD is not set -CONFIG_ARM_ERRATA_764369=y -CONFIG_PL310_ERRATA_769419=y # # Kernel Features @@ -419,6 +425,9 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y CONFIG_HAVE_ARM_SCU=y CONFIG_HAVE_ARM_TWD=y CONFIG_VMSPLIT_3G=y @@ -469,6 +478,7 @@ CONFIG_UACCESS_WITH_MEMCPY=y CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set CONFIG_CMDLINE="" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set @@ -520,8 +530,10 @@ CONFIG_PM=y # CONFIG_APM_EMULATION is not set CONFIG_ARCH_HAS_OPP=y CONFIG_PM_OPP=y -CONFIG_PM_RUNTIME_CLK=y +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y CONFIG_NET=y # @@ -727,6 +739,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m CONFIG_IP_SET_HASH_NET=m CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y @@ -887,6 +900,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -1067,6 +1081,8 @@ CONFIG_CAIF=m CONFIG_CAIF_NETDEV=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set # # Device Drivers @@ -1085,13 +1101,14 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_OF_PARTS=m CONFIG_MTD_AR7_PARTS=m # @@ -1151,6 +1168,7 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set @@ -1191,6 +1209,7 @@ CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m @@ -1207,7 +1226,7 @@ CONFIG_MG_DISK_RES=0 # CONFIG_SENSORS_LIS3LV02D is not set CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set -# CONFIG_INTEL_MID_PTI is not set +# CONFIG_ATMEL_PWM is not set CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m # CONFIG_APDS9802ALS is not set @@ -1220,6 +1239,7 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_HMC6352 is not set CONFIG_DS1682=m # CONFIG_BMP085 is not set +# CONFIG_USB_SWITCH_FSA9480 is not set CONFIG_C2PORT=m # @@ -1238,8 +1258,11 @@ CONFIG_IWMC3200TOP=m # CONFIG_TI_ST=m # CONFIG_SENSORS_LIS3_I2C is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set # # SCSI device support @@ -1322,6 +1345,7 @@ CONFIG_PATA_ARASAN_CF=m # PIO-only SFF controllers # CONFIG_PATA_PLATFORM=m +CONFIG_PATA_OF_PLATFORM=m # # Generic fallback / legacy drivers @@ -1338,8 +1362,13 @@ CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m @@ -1352,11 +1381,9 @@ CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m # CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1364,9 +1391,68 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_MII=m +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +CONFIG_CAIF_TTY=m +CONFIG_CAIF_SPI_SLAVE=m +# CONFIG_CAIF_SPI_SYNC is not set +CONFIG_CAIF_HSI=m +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_DAVINCI_EMAC is not set +# CONFIG_TI_DAVINCI_MDIO is not set +# CONFIG_TI_DAVINCI_CPDMA is not set CONFIG_PHYLIB=y # @@ -1389,40 +1475,60 @@ CONFIG_MICREL_PHY=m # CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_AX88796=m -# CONFIG_AX88796_93CX6 is not set -CONFIG_SMC91X=m -# CONFIG_TI_DAVINCI_EMAC is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_DAVINCI_CPDMA is not set -CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set -CONFIG_DNET=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_B44=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_NET_POCKET=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_FTMAC100=m -CONFIG_NETDEV_1000=y -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_DA is not set -# CONFIG_STMMAC_DUAL_MAC is not set -CONFIG_NETDEV_10000=y +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m CONFIG_WLAN=y CONFIG_LIBERTAS_THINFIRM=m # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set @@ -1444,11 +1550,18 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y +CONFIG_CARL9170_HWRNG=y +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_DEBUG is not set CONFIG_B43=m +CONFIG_B43_BCMA=y +CONFIG_B43_SSB=y CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_HT=y CONFIG_B43_LEDS=y CONFIG_B43_HWRNG=y # CONFIG_B43_DEBUG is not set @@ -1461,6 +1574,9 @@ CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y # CONFIG_B43LEGACY_DMA_MODE is not set # CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set @@ -1488,7 +1604,6 @@ CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set -CONFIG_RTL8192SE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m @@ -1496,7 +1611,6 @@ CONFIG_WL1251=m CONFIG_WL1251_SDIO=m CONFIG_WL12XX_MENU=m CONFIG_WL12XX=m -# CONFIG_WL12XX_HT is not set CONFIG_WL12XX_SDIO=m # CONFIG_WL12XX_SDIO_TEST is not set CONFIG_WL12XX_PLATFORM_DATA=y @@ -1508,42 +1622,6 @@ CONFIG_MWIFIEX_SDIO=m # # Enable WiMAX (Networking options) to see the WiMAX drivers # - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_VL600=m CONFIG_WAN=y CONFIG_HDLC=m CONFIG_HDLC_RAW=m @@ -1557,39 +1635,6 @@ CONFIG_HDLC_PPP=m # CONFIG_DLCI=m CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m - -# -# CAIF transport drivers -# -CONFIG_CAIF_TTY=m -CONFIG_CAIF_SPI_SLAVE=m -# CONFIG_CAIF_SPI_SYNC is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPTP=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -1736,14 +1781,18 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set -CONFIG_INPUT_ATI_REMOTE=m +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m CONFIG_INPUT_TWL4030_PWRBUTTON=m CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m # CONFIG_INPUT_UINPUT is not set CONFIG_INPUT_PCF50633_PMU=m CONFIG_INPUT_PCF8574=m @@ -1770,6 +1819,7 @@ CONFIG_SERIO_PS2MULT=m CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y @@ -1793,6 +1843,7 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m # # Non-8250 serial port support @@ -1851,7 +1902,7 @@ CONFIG_I2C_ALGOPCA=m # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_DESIGNWARE=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set CONFIG_I2C_GPIO=m CONFIG_I2C_OCORES=m CONFIG_I2C_OMAP=y @@ -1890,6 +1941,7 @@ CONFIG_PPS=m CONFIG_PPS_CLIENT_KTIMER=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m +CONFIG_PPS_CLIENT_GPIO=m # # PPS generators support @@ -1904,13 +1956,13 @@ CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set # CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_GENERIC=m CONFIG_GPIO_MAX730X=m # # Memory mapped GPIO drivers: # -CONFIG_GPIO_BASIC_MMIO_CORE=m -CONFIG_GPIO_BASIC_MMIO=m +CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_IT8761E=m # @@ -1930,6 +1982,7 @@ CONFIG_GPIO_ADP5588=m # # SPI GPIO expanders: # +CONFIG_GPIO_MCP23S08=m # # AC97 GPIO expanders: @@ -2033,22 +2086,28 @@ CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SMM665=m @@ -2059,7 +2118,9 @@ CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m @@ -2081,12 +2142,14 @@ CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m +# CONFIG_DW_WATCHDOG is not set CONFIG_MPCORE_WATCHDOG=m CONFIG_OMAP_WATCHDOG=m CONFIG_TWL4030_WATCHDOG=m @@ -2113,8 +2176,12 @@ CONFIG_BCMA_POSSIBLE=y # Broadcom specific AMBA # CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y # CONFIG_BCMA_DEBUG is not set -CONFIG_MFD_SUPPORT=y + +# +# Multifunction device drivers +# CONFIG_MFD_CORE=y # CONFIG_MFD_88PM860X is not set CONFIG_MFD_SM501=m @@ -2127,12 +2194,15 @@ CONFIG_HTC_PASIC3=m CONFIG_TPS65010=m # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set CONFIG_MENELAUS=y CONFIG_TWL4030_CORE=y CONFIG_TWL4030_MADC=m CONFIG_TWL4030_POWER=y -CONFIG_TWL4030_CODEC=y +CONFIG_MFD_TWL4030_AUDIO=y CONFIG_TWL6030_PWM=m +CONFIG_TWL6040_CORE=y # CONFIG_MFD_STMPE is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set @@ -2154,13 +2224,14 @@ CONFIG_PCF50633_GPIO=m # CONFIG_ABX500_CORE is not set CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_OMAP_USB_HOST=y -# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_AAT2870_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DUMMY is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_GPIO is not set # CONFIG_REGULATOR_BQ24022 is not set # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set @@ -2184,6 +2255,7 @@ CONFIG_MEDIA_SUPPORT=m CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # @@ -2198,7 +2270,9 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m +CONFIG_RC_ATI_REMOTE=m # CONFIG_IR_IMON is not set # CONFIG_IR_MCEUSB is not set # CONFIG_IR_REDRAT3 is not set @@ -2220,6 +2294,7 @@ CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m @@ -2236,6 +2311,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_MEMOPS=m CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set @@ -2310,6 +2386,11 @@ CONFIG_VIDEO_CX2341X=m # CONFIG_VIDEO_OV7670 is not set # CONFIG_VIDEO_MT9V011 is not set # CONFIG_VIDEO_TCM825X is not set +CONFIG_VIDEO_SR030PC30=m + +# +# Flash devices +# # # Video improvement chips @@ -2331,8 +2412,6 @@ CONFIG_VIDEO_W9966=m CONFIG_VIDEO_CPIA2=m CONFIG_VIDEO_TIMBERDALE=m CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_SR030PC30=m -CONFIG_VIDEO_NOON010PC30=m CONFIG_SOC_CAMERA=m CONFIG_SOC_CAMERA_IMX074=m CONFIG_SOC_CAMERA_MT9M001=m @@ -2344,6 +2423,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_SOC_CAMERA_PLATFORM=m CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m CONFIG_SOC_CAMERA_OV6650=m CONFIG_SOC_CAMERA_OV772X=m CONFIG_SOC_CAMERA_OV9640=m @@ -2355,49 +2435,51 @@ CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m -# CONFIG_USB_M5602 is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_KINECT is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_NW80X is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_VICAM is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y @@ -2406,11 +2488,13 @@ CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_EM28XX=m # CONFIG_VIDEO_EM28XX_ALSA is not set CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y CONFIG_VIDEO_TLG2300=m CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_CX231XX_ALSA=m CONFIG_VIDEO_CX231XX_DVB=m +# CONFIG_VIDEO_TM6000 is not set CONFIG_VIDEO_USBVISION=m CONFIG_USB_ET61X251=m CONFIG_USB_SN9C102=m @@ -2439,7 +2523,7 @@ CONFIG_RADIO_WL128X=m CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set +CONFIG_TTPCI_EEPROM=m # # Supported USB Adapters @@ -2466,6 +2550,7 @@ CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_DW2102=m CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_USB_ANYSEE=m @@ -2477,6 +2562,8 @@ CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_MXL111SF=m CONFIG_SMS_SIANO_MDTV=m # @@ -2503,6 +2590,12 @@ CONFIG_DVB_STB6100=m CONFIG_DVB_STV090x=m CONFIG_DVB_STV6110x=m +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + # # DVB-S (satellite) frontends # @@ -2518,6 +2611,7 @@ CONFIG_DVB_TDA826X=m CONFIG_DVB_CX24116=m CONFIG_DVB_SI21XX=m CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends @@ -2569,10 +2663,13 @@ CONFIG_DVB_TUNER_DIB0090=m # SEC control devices for DVB-S # CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m # # Tools to develop new frontends @@ -2582,24 +2679,23 @@ CONFIG_DVB_IX2505V=m # # Graphics support # -CONFIG_DRM=m +# CONFIG_DRM is not set # CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_VIDEO_OUTPUT_CONTROL is not set CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y +# CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=m -CONFIG_FB_CFB_COPYAREA=m -CONFIG_FB_CFB_IMAGEBLIT=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_SYS_FOPS is not set # CONFIG_FB_WMT_GE_ROPS is not set -CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set @@ -2609,32 +2705,57 @@ CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_UVESA=m +# CONFIG_FB_UVESA is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set +# CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_OMAP is not set -# CONFIG_FB_OMAP_LCD_VGA is not set -# CONFIG_OMAP2_DSS is not set +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_VRAM_SIZE=32 +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_RFBI is not set +# CONFIG_OMAP2_DSS_VENC is not set +CONFIG_OMAP4_DSS_HDMI=y +# CONFIG_OMAP2_DSS_SDI is not set +CONFIG_OMAP2_DSS_DSI=y +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_FB_OMAP2=y +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 + +# +# OMAP2/3 Display Device Drivers +# +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PANEL_DVI=y +CONFIG_PANEL_SHARP_LS037V7DW01=y +# CONFIG_PANEL_PICODLP is not set +CONFIG_PANEL_TAAL=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -# CONFIG_BACKLIGHT_PWM is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_PCF50633 is not set +CONFIG_BACKLIGHT_GENERIC=y +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m # # Display device support # -CONFIG_DISPLAY_SUPPORT=m +CONFIG_DISPLAY_SUPPORT=y # # Display hardware drivers @@ -2645,11 +2766,19 @@ CONFIG_DISPLAY_SUPPORT=m # CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set +CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y @@ -2709,6 +2838,7 @@ CONFIG_SND_OMAP_SOC_OMAP3EVM=m CONFIG_SND_OMAP_SOC_AM3517EVM=m CONFIG_SND_OMAP_SOC_SDP3430=m CONFIG_SND_OMAP_SOC_SDP4430=m +# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m CONFIG_SND_OMAP_SOC_ZOOM2=m @@ -2718,6 +2848,8 @@ CONFIG_SND_SOC_ALL_CODECS=m CONFIG_SND_SOC_WM_HUBS=m CONFIG_SND_SOC_AD193X=m CONFIG_SND_SOC_AD73311=m +CONFIG_SND_SOC_ADAU1373=m +CONFIG_SND_SOC_ADAV80X=m CONFIG_SND_SOC_ADS117X=m CONFIG_SND_SOC_AK4535=m CONFIG_SND_SOC_AK4641=m @@ -2728,6 +2860,7 @@ CONFIG_SND_SOC_CS42L51=m CONFIG_SND_SOC_CS4270=m CONFIG_SND_SOC_CS4271=m CONFIG_SND_SOC_CX20442=m +CONFIG_SND_SOC_JZ4740_CODEC=m CONFIG_SND_SOC_L3=m CONFIG_SND_SOC_DA7210=m CONFIG_SND_SOC_DFBMCS320=m @@ -2735,11 +2868,13 @@ CONFIG_SND_SOC_MAX98088=m CONFIG_SND_SOC_MAX98095=m CONFIG_SND_SOC_MAX9850=m CONFIG_SND_SOC_PCM3008=m +CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_STA32X=m CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TVL320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC32X4=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TLV320DAC33=m CONFIG_SND_SOC_TWL4030=m @@ -2748,6 +2883,7 @@ CONFIG_SND_SOC_UDA134X=m CONFIG_SND_SOC_UDA1380=m CONFIG_SND_SOC_WL1273=m CONFIG_SND_SOC_WM1250_EV1=m +CONFIG_SND_SOC_WM5100=m CONFIG_SND_SOC_WM8400=m CONFIG_SND_SOC_WM8510=m CONFIG_SND_SOC_WM8523=m @@ -2761,11 +2897,11 @@ CONFIG_SND_SOC_WM8741=m CONFIG_SND_SOC_WM8750=m CONFIG_SND_SOC_WM8753=m CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8782=m CONFIG_SND_SOC_WM8804=m CONFIG_SND_SOC_WM8900=m CONFIG_SND_SOC_WM8903=m CONFIG_SND_SOC_WM8904=m -CONFIG_SND_SOC_WM8915=m CONFIG_SND_SOC_WM8940=m CONFIG_SND_SOC_WM8955=m CONFIG_SND_SOC_WM8960=m @@ -2774,12 +2910,14 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8971=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8983=m CONFIG_SND_SOC_WM8985=m CONFIG_SND_SOC_WM8988=m CONFIG_SND_SOC_WM8990=m CONFIG_SND_SOC_WM8991=m CONFIG_SND_SOC_WM8993=m CONFIG_SND_SOC_WM8995=m +CONFIG_SND_SOC_WM8996=m CONFIG_SND_SOC_WM9081=m CONFIG_SND_SOC_LM4857=m CONFIG_SND_SOC_MAX9877=m @@ -2819,6 +2957,7 @@ CONFIG_HID_DRAGONRISE=m CONFIG_DRAGONRISE_FF=y # CONFIG_HID_EMS_FF is not set CONFIG_HID_EZKEY=m +# CONFIG_HID_HOLTEK is not set # CONFIG_HID_KEYTOUCH is not set CONFIG_HID_KYE=m # CONFIG_HID_UCLOGIC is not set @@ -2828,10 +2967,11 @@ CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m # CONFIG_HID_LCPOWER is not set CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m CONFIG_LOGITECH_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y # CONFIG_LOGIG940_FF is not set -# CONFIG_LOGIWII_FF is not set +CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m # CONFIG_HID_MULTITOUCH is not set @@ -2841,15 +2981,12 @@ CONFIG_HID_PANTHERLORD=m CONFIG_PANTHERLORD_FF=y CONFIG_HID_PETALYNX=m # CONFIG_HID_PICOLCD is not set +CONFIG_HID_PRIMAX=m # CONFIG_HID_QUANTA is not set # CONFIG_HID_ROCCAT is not set -# CONFIG_HID_ROCCAT_ARVO is not set -# CONFIG_HID_ROCCAT_KONE is not set -# CONFIG_HID_ROCCAT_KONEPLUS is not set -# CONFIG_HID_ROCCAT_KOVAPLUS is not set -# CONFIG_HID_ROCCAT_PYRA is not set CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y @@ -2862,9 +2999,11 @@ CONFIG_HID_ZEROPLUS=m CONFIG_ZEROPLUS_FF=y # CONFIG_HID_ZYDACRON is not set CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y +# CONFIG_USB_ARCH_HAS_XHCI is not set CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2879,6 +3018,7 @@ CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_DWC3 is not set # CONFIG_USB_MON is not set # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set @@ -2891,8 +3031,8 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_OMAP=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set # CONFIG_USB_ISP1362_HCD is not set CONFIG_USB_OHCI_HCD=y @@ -2901,12 +3041,10 @@ CONFIG_USB_OHCI_HCD_OMAP3=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_U132_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_HWA_HCD is not set -# CONFIG_USB_MUSB_HDRC is not set # # USB Device Class drivers @@ -2926,6 +3064,7 @@ CONFIG_USB_TMC=m CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y # CONFIG_USB_STORAGE_DATAFAB is not set CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m @@ -3046,7 +3185,7 @@ CONFIG_USB_GPIO_VBUS=m # CONFIG_USB_ULPI is not set CONFIG_TWL4030_USB=m CONFIG_TWL6030_USB=m -CONFIG_NOP_USB_XCEIV=m +# CONFIG_NOP_USB_XCEIV is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set @@ -3065,12 +3204,12 @@ CONFIG_MMC_TEST=m # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PLTFM=m +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP_HS=y -CONFIG_MMC_DW=m -# CONFIG_MMC_DW_IDMAC is not set +# CONFIG_MMC_DW is not set CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m @@ -3095,8 +3234,6 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA9532_GPIO is not set CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y -CONFIG_LEDS_GPIO_OF=y CONFIG_LEDS_LP3944=m # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set @@ -3105,6 +3242,7 @@ CONFIG_LEDS_PCA955X=m # CONFIG_LEDS_REGULATOR is not set CONFIG_LEDS_BD2802=m # CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_RENESAS_TPU is not set CONFIG_LEDS_TRIGGERS=y # @@ -3119,7 +3257,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # -# CONFIG_NFC_DEVICES is not set # CONFIG_ACCESSIBILITY is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y @@ -3206,17 +3343,22 @@ CONFIG_ASYNC_TX_DMA=y CONFIG_UIO=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set CONFIG_STAGING=y -# CONFIG_VIDEO_TM6000 is not set # CONFIG_USBIP_CORE is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_BRCMUTIL is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set CONFIG_R8712U=m -CONFIG_R8712_AP=y +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set # CONFIG_POHMELFS is not set # CONFIG_LINE6_USB is not set @@ -3227,28 +3369,7 @@ CONFIG_R8712_AP=y # CONFIG_XVMALLOC is not set # CONFIG_ZRAM is not set # CONFIG_FB_SM7XX is not set -# CONFIG_LIRC_STAGING is not set -# CONFIG_EASYCAP is not set # CONFIG_TIDSPBRIDGE is not set -# CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL is not set -CONFIG_MACH_NO_WESTBRIDGE=y -CONFIG_ATH6K_LEGACY=m -CONFIG_AR600x_SD31_XXX=y -# CONFIG_AR600x_WB31_XXX is not set -# CONFIG_AR600x_SD32_XXX is not set -# CONFIG_AR600x_CUSTOM_XXX is not set -CONFIG_ATH6KL_ENABLE_COEXISTENCE=y -CONFIG_AR600x_DUAL_ANTENNA=y -# CONFIG_AR600x_SINGLE_ANTENNA is not set -# CONFIG_AR600x_BT_QCOM is not set -# CONFIG_AR600x_BT_CSR is not set -CONFIG_AR600x_BT_AR3001=y -CONFIG_ATH6KL_HCI_BRIDGE=y -# CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET is not set -CONFIG_ATH6KL_HTC_RAW_INTERFACE=y -# CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER is not set -# CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK is not set -# CONFIG_ATH6KL_DEBUG is not set CONFIG_USB_ENESTORAGE=m # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -3259,13 +3380,18 @@ CONFIG_USB_ENESTORAGE=m # CONFIG_SPEAKUP is not set # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HWSPINLOCK=m # -# Altera FPGA firmware download module +# Hardware Spinlock drivers # -# CONFIG_ALTERA_STAPL is not set -CONFIG_CLKDEV_LOOKUP=y -# CONFIG_HWSPINLOCK is not set +CONFIG_HWSPINLOCK_OMAP=m +CONFIG_CLKSRC_MMIO=y +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set # # File systems @@ -3419,7 +3545,6 @@ CONFIG_NFS_V4=y CONFIG_NFS_USE_KERNEL_DNS=y # CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m -CONFIG_NFSD_DEPRECATED=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y @@ -3547,7 +3672,7 @@ CONFIG_TIMER_STATS=y # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set @@ -3592,12 +3717,12 @@ CONFIG_HAVE_ARCH_KGDB=y # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_LL is not set -# CONFIG_OC_ETM is not set # # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set @@ -3629,6 +3754,7 @@ CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set @@ -3688,6 +3814,7 @@ CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3732,10 +3859,11 @@ CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m +CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y @@ -3762,3 +3890,4 @@ CONFIG_CPU_RMAP=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index b8bf4fcb5..c5a9062cb 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,9 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 2.6.41.10 Kernel Configuration +# Linux/arm 2.6.42.18 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y CONFIG_GENERIC_GPIO=y # CONFIG_ARCH_USES_GETTIMEOFFSET is not set CONFIG_GENERIC_CLOCKEVENTS=y @@ -21,7 +22,9 @@ CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_NEED_MACH_MEMORY_H=y +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y @@ -89,7 +92,7 @@ CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EXPERT=y @@ -149,7 +152,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y -# CONFIG_BLK_DEV_BSGLIB is not set +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # @@ -203,6 +206,7 @@ CONFIG_MMU=y # CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set @@ -228,8 +232,8 @@ CONFIG_MMU=y # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_NUC93X is not set # CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set @@ -241,7 +245,7 @@ CONFIG_MMU=y # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS4 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set @@ -293,8 +297,10 @@ CONFIG_ARM_THUMB=y CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y CONFIG_CPU_HAS_PMU=y +# CONFIG_ARM_ERRATA_326103 is not set CONFIG_ARM_ERRATA_411920=y # CONFIG_ARM_ERRATA_364296 is not set +CONFIG_PL330=y # # Bus support @@ -353,6 +359,7 @@ CONFIG_UACCESS_WITH_MEMCPY=y CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=tty1 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait ro" CONFIG_CMDLINE_FROM_BOOTLOADER=y # CONFIG_CMDLINE_EXTEND is not set @@ -398,7 +405,9 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_APM_EMULATION is not set CONFIG_PM_CLK=y +CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y CONFIG_NET=y # @@ -765,6 +774,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -941,6 +951,7 @@ CONFIG_CAIF=m CONFIG_CAIF_NETDEV=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set # CONFIG_NFC is not set # @@ -962,11 +973,10 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_TESTS=m +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_OF_PARTS=m CONFIG_MTD_AR7_PARTS=m # @@ -1029,6 +1039,7 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set @@ -1082,6 +1093,7 @@ CONFIG_MG_DISK_RES=0 # CONFIG_SENSORS_LIS3LV02D is not set CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set # CONFIG_ICS932S401 is not set CONFIG_ENCLOSURE_SERVICES=m # CONFIG_APDS9802ALS is not set @@ -1117,9 +1129,12 @@ CONFIG_IWMC3200TOP=m CONFIG_TI_ST=m # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_BCM2708_VCHIQ=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set # # SCSI device support @@ -1202,6 +1217,7 @@ CONFIG_SATA_MV=m # PIO-only SFF controllers # CONFIG_PATA_PLATFORM=m +CONFIG_PATA_OF_PLATFORM=m # # Generic fallback / legacy drivers @@ -1217,8 +1233,13 @@ CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m @@ -1231,11 +1252,9 @@ CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m # CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1243,9 +1262,62 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +# CONFIG_IEEE802154_DRIVERS is not set +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_MII=m +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +# CONFIG_CAIF_TTY is not set +# CONFIG_CAIF_SPI_SLAVE is not set +# CONFIG_CAIF_HSI is not set +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851 is not set +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_ENC28J60 is not set +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set CONFIG_PHYLIB=y # @@ -1268,37 +1340,59 @@ CONFIG_MICREL_PHY=m # CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_GPIO is not set -CONFIG_NET_ETHERNET=y -CONFIG_AX88796=m -# CONFIG_AX88796_93CX6 is not set -CONFIG_SMC91X=m -CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -# CONFIG_ENC28J60 is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set -CONFIG_DNET=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_B44=m -# CONFIG_KS8842 is not set -# CONFIG_KS8851 is not set -CONFIG_KS8851_MLL=m -# CONFIG_FTMAC100 is not set -CONFIG_NETDEV_1000=y -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_DA is not set -# CONFIG_STMMAC_DUAL_MAC is not set -# CONFIG_FTGMAC100 is not set -CONFIG_NETDEV_10000=y +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m CONFIG_WLAN=y CONFIG_LIBERTAS_THINFIRM=m # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set @@ -1320,6 +1414,9 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y +CONFIG_CARL9170_HWRNG=y +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_DEBUG is not set CONFIG_B43=m CONFIG_B43_BCMA=y CONFIG_B43_SSB=y @@ -1328,6 +1425,7 @@ CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_HT=y CONFIG_B43_LEDS=y CONFIG_B43_HWRNG=y # CONFIG_B43_DEBUG is not set @@ -1340,6 +1438,9 @@ CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y # CONFIG_B43LEGACY_DMA_MODE is not set # CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set @@ -1369,8 +1470,6 @@ CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set -CONFIG_RTL8192SE=m -CONFIG_RTL8192DE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m @@ -1379,7 +1478,6 @@ CONFIG_WL1251=m CONFIG_WL1251_SDIO=m CONFIG_WL12XX_MENU=m CONFIG_WL12XX=m -# CONFIG_WL12XX_HT is not set # CONFIG_WL12XX_SPI is not set CONFIG_WL12XX_SDIO=m CONFIG_WL12XX_SDIO_TEST=m @@ -1392,42 +1490,6 @@ CONFIG_MWIFIEX_SDIO=m # # Enable WiMAX (Networking options) to see the WiMAX drivers # - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -# CONFIG_USB_EPSON2888 is not set -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_USB_IPHETH=m -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_VL600=m CONFIG_WAN=y CONFIG_HDLC=m CONFIG_HDLC_RAW=m @@ -1441,37 +1503,6 @@ CONFIG_HDLC_PPP=m # CONFIG_DLCI=m CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -# CONFIG_IEEE802154_DRIVERS is not set - -# -# CAIF transport drivers -# -# CONFIG_CAIF_TTY is not set -# CONFIG_CAIF_SPI_SLAVE is not set -# CONFIG_CAIF_HSI is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPTP=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_ISDN=y # CONFIG_ISDN_I4L is not set # CONFIG_ISDN_CAPI is not set @@ -1519,12 +1550,10 @@ CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_AD714X_SPI=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set -CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set @@ -1533,12 +1562,9 @@ CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m CONFIG_INPUT_UINPUT=m # CONFIG_INPUT_PCF8574 is not set -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_ADXL34X=m -CONFIG_INPUT_ADXL34X_I2C=m -CONFIG_INPUT_ADXL34X_SPI=m -CONFIG_INPUT_CMA3000=m -# CONFIG_INPUT_CMA3000_I2C is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set # # Hardware I/O ports @@ -1560,6 +1586,7 @@ CONFIG_GAMEPORT_L4=m CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y @@ -1624,7 +1651,8 @@ CONFIG_I2C_ALGOPCA=m # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_DESIGNWARE=m +CONFIG_I2C_BCM2708=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set CONFIG_I2C_GPIO=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m @@ -1654,21 +1682,21 @@ CONFIG_SPI_MASTER=y # # SPI Master Controller Drivers # -CONFIG_SPI_ALTERA=m +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BCM2708=m CONFIG_SPI_BITBANG=m CONFIG_SPI_GPIO=m -CONFIG_SPI_OC_TINY=m -CONFIG_SPI_PL022=m +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PL022 is not set # CONFIG_SPI_PXA2XX_PCI is not set # CONFIG_SPI_XILINX is not set -CONFIG_SPI_DESIGNWARE=m -CONFIG_SPI_DW_MMIO=m +# CONFIG_SPI_DESIGNWARE is not set # # SPI Protocol Masters # CONFIG_SPI_SPIDEV=m -CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_TLE62X0 is not set # # PPS support @@ -1733,7 +1761,7 @@ CONFIG_W1_CON=y # CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m +# CONFIG_W1_MASTER_DS1WM is not set CONFIG_W1_MASTER_GPIO=m # @@ -1757,6 +1785,7 @@ CONFIG_HWMON_VID=m # # Native drivers # +CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADCXX=m @@ -1818,11 +1847,13 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SMM665=m @@ -1864,7 +1895,7 @@ CONFIG_WATCHDOG=y # # Watchdog Device Drivers # -# CONFIG_SOFT_WATCHDOG is not set +CONFIG_SOFT_WATCHDOG=m # CONFIG_ARM_SP805_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set @@ -1873,7 +1904,7 @@ CONFIG_BCM2708_WDT=m # # USB-based Watchdog Cards # -# CONFIG_USBPCWATCHDOG is not set +CONFIG_USBPCWATCHDOG=m CONFIG_SSB_POSSIBLE=y # @@ -1893,13 +1924,15 @@ CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=m CONFIG_BCMA_BLOCKIO=y # CONFIG_BCMA_DEBUG is not set -CONFIG_MFD_SUPPORT=y + +# +# Multifunction device drivers +# # CONFIG_MFD_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_HTC_EGPIO is not set # CONFIG_HTC_PASIC3 is not set -# CONFIG_UCB1400_CORE is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set @@ -1942,6 +1975,7 @@ CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m +CONFIG_RC_ATI_REMOTE=m CONFIG_IR_IMON=m CONFIG_IR_MCEUSB=m CONFIG_IR_REDRAT3=m @@ -1973,6 +2007,7 @@ CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m CONFIG_VIDEOBUF_DVB=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m @@ -2014,7 +2049,7 @@ CONFIG_VIDEO_WM8775=m # # Video decoders # -# CONFIG_VIDEO_ADV7180 is not set +CONFIG_VIDEO_ADV7180=m # CONFIG_VIDEO_BT819 is not set # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set @@ -2054,6 +2089,7 @@ CONFIG_VIDEO_CX2341X=m # CONFIG_VIDEO_OV7670 is not set # CONFIG_VIDEO_MT9V011 is not set # CONFIG_VIDEO_TCM825X is not set +CONFIG_VIDEO_SR030PC30=m # # Flash devices @@ -2072,10 +2108,8 @@ CONFIG_VIDEO_CX2341X=m # CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set CONFIG_VIDEO_CPIA2=m -# CONFIG_VIDEO_TIMBERDALE is not set +CONFIG_VIDEO_TIMBERDALE=m CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_SR030PC30=m -CONFIG_VIDEO_NOON010PC30=m CONFIG_SOC_CAMERA=m CONFIG_SOC_CAMERA_IMX074=m CONFIG_SOC_CAMERA_MT9M001=m @@ -2098,50 +2132,51 @@ CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m -# CONFIG_USB_M5602 is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_KINECT is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_NW80X is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SE401 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_VICAM is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y @@ -2156,6 +2191,9 @@ CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_CX231XX_ALSA=m CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m CONFIG_VIDEO_USBVISION=m CONFIG_USB_ET61X251=m CONFIG_USB_SN9C102=m @@ -2170,7 +2208,7 @@ CONFIG_USB_S2255=m CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set +CONFIG_TTPCI_EEPROM=m # # Supported USB Adapters @@ -2197,6 +2235,7 @@ CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_DW2102=m CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_USB_ANYSEE=m @@ -2208,6 +2247,8 @@ CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_MXL111SF=m CONFIG_SMS_SIANO_MDTV=m # @@ -2261,6 +2302,7 @@ CONFIG_DVB_TDA826X=m CONFIG_DVB_CX24116=m CONFIG_DVB_SI21XX=m CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends @@ -2315,11 +2357,14 @@ CONFIG_DVB_TUNER_DIB0090=m # SEC control devices for DVB-S # CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m # # Tools to develop new frontends @@ -2359,6 +2404,7 @@ CONFIG_FB_BCM2708=y # CONFIG_FB_ARMCLCD is not set # CONFIG_FB_UVESA is not set # CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set @@ -2420,14 +2466,12 @@ CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set -CONFIG_SND_VMASTER=y CONFIG_SND_RAWMIDI_SEQ=m # CONFIG_SND_OPL3_LIB_SEQ is not set # CONFIG_SND_OPL4_LIB_SEQ is not set # CONFIG_SND_SBAWE_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set CONFIG_SND_MPU401_UART=m -CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m @@ -2435,9 +2479,8 @@ CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m -# CONFIG_SND_AC97_POWER_SAVE is not set CONFIG_SND_ARM=y -CONFIG_SND_ARMAACI=m +# CONFIG_SND_ARMAACI is not set CONFIG_SND_BCM2835=m CONFIG_SND_SPI=y CONFIG_SND_USB=y @@ -2448,7 +2491,6 @@ CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_6FIRE=m # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set @@ -2487,10 +2529,11 @@ CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set -# CONFIG_LOGIWII_FF is not set +# CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2504,6 +2547,7 @@ CONFIG_HID_PICOLCD=m # CONFIG_HID_PICOLCD_BACKLIGHT is not set # CONFIG_HID_PICOLCD_LCD is not set # CONFIG_HID_PICOLCD_LEDS is not set +CONFIG_HID_PRIMAX=m CONFIG_HID_QUANTA=m CONFIG_HID_ROCCAT=m CONFIG_HID_ROCCAT_COMMON=m @@ -2527,9 +2571,11 @@ CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2544,6 +2590,7 @@ CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_DWC3 is not set # CONFIG_USB_MON is not set # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set @@ -2566,7 +2613,7 @@ CONFIG_USB_DWCOTG=y # USB Device Class drivers # CONFIG_USB_ACM=m -# CONFIG_USB_PRINTER is not set +CONFIG_USB_PRINTER=m # CONFIG_USB_WDM is not set # CONFIG_USB_TMC is not set @@ -2687,6 +2734,28 @@ CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # CONFIG_USB_GADGET is not set +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_DUMMY_HCD is not set +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_G_WEBCAM is not set # # OTG and related infrastructure @@ -2741,6 +2810,7 @@ CONFIG_LEDS_GPIO=y # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_RENESAS_TPU is not set CONFIG_LEDS_TRIGGERS=y # @@ -2758,8 +2828,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # CONFIG_ACCESSIBILITY is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_HCTOSYS is not set # CONFIG_RTC_DEBUG is not set # @@ -2786,7 +2855,7 @@ CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m @@ -2839,6 +2908,7 @@ CONFIG_DMADEVICES=y CONFIG_AMBA_PL08X=y CONFIG_DW_DMAC=m CONFIG_TIMB_DMA=m +CONFIG_PL330_DMA=m CONFIG_DMA_ENGINE=y # @@ -2856,10 +2926,16 @@ CONFIG_UIO_PDRV_GENIRQ=m # Virtio drivers # # CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set # CONFIG_STAGING is not set CONFIG_CLKDEV_LOOKUP=y + +# +# Hardware Spinlock drivers +# # CONFIG_IOMMU_SUPPORT is not set # CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set # # File systems @@ -3188,6 +3264,7 @@ CONFIG_HAVE_ARCH_KGDB=y # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set @@ -3219,6 +3296,7 @@ CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set @@ -3277,6 +3355,7 @@ CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap index d5e7cf030..43f7aa0cf 100644 --- a/config/rootfiles/common/armv5tel/linux-omap +++ b/config/rootfiles/common/armv5tel/linux-omap @@ -1,5 +1,5 @@ boot/uInit-ipfire-omap boot/uImage-ipfire-omap -boot/System.map-2.6.40.32-ipfire-omap -boot/config-2.6.40.32-ipfire-omap -lib/modules/2.6.40.32-ipfire-omap +boot/System.map-2.6.42.19-ipfire-omap +boot/config-2.6.42.19-ipfire-omap +lib/modules/2.6.42.19-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi index 5a14b2ff4..7c18d4bb2 100644 --- a/config/rootfiles/common/armv5tel/linux-rpi +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -1,4 +1,4 @@ boot/kernel.img -boot/System.map-2.6.41.10-ipfire-rpi -boot/config-2.6.41.10-ipfire-rpi -lib/modules/2.6.41.10-ipfire-rpi +boot/System.map-2.6.42.19-ipfire-rpi +boot/config-2.6.42.19-ipfire-rpi +lib/modules/2.6.42.19-ipfire-rpi diff --git a/lfs/linux-rpi b/lfs/linux-rpi deleted file mode 100644 index c8f5fc8e9..000000000 --- a/lfs/linux-rpi +++ /dev/null @@ -1,264 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# 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 3 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -PATCHLEVEL = .10 -VER = 2.6.41.10 - -XVERS = 3.1.10 -XVERSION = 2 -XPATCHLEVEL = 6 -XSUBLEVEL = 41 -XEXTRAVERSION = .10 - -THISAPP = linux-$(VER) -DL_FILE = linux-$(XVERS).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -CFLAGS = -CXXFLAGS = - -PAK_VER = 20 -DEPS = "" - -VERSUFIX=ipfire$(KCFG) - -ifeq "$(HEADERS)" "1" -ifeq "$(TOOLS)" "1" - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools - HEADERS_PREFIX = /tools -else - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) - HEADERS_PREFIX = /usr -endif -else - TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX) -endif - -ifeq "$(MACHINE_TYPE)" "arm" - HEADERS_ARCH=arm -else - HEADERS_ARCH=x86 -endif - -ifeq "$(KCFG)" "" -LASTKERNEL=1 -endif -ifeq "$(KCFG)" "-kirkwood" -LASTKERNEL=1 -endif - -############################################################################### -# Top-level Rules -############################################################################### -objects =$(DL_FILE) \ - patch-2.6.16-nath323-1.3.bz2 \ - rpi-patches-9efb470.patch.xz - - -$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 -rpi-patches-9efb470.patch.xz = $(URL_IPFIRE)/rpi-patches-9efb470.patch.xz - -$(DL_FILE)_MD5 = 3649bdaa50ffd9114cc16486ec54d83a -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 -rpi-patches-9efb470.patch.xz_MD5 = 833274ba420078d22f7f7b7f56debe1d - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - # Change version from 3.x to 2.6.4x - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^VERSION =.*$$/VERSION = $(XVERSION)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^PATCHLEVEL =.*$$/PATCHLEVEL = $(XPATCHLEVEL)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^SUBLEVEL =.*$$/SUBLEVEL = $(XSUBLEVEL)/g" Makefile - cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^EXTRAVERSION =.*$$/EXTRAVERSION = $(XEXTRAVERSION)/g" Makefile - mv $(DIR_SRC)/linux-$(XVERS) $(DIR_SRC)/linux-$(VER) - - ln -svf linux-$(VER) $(DIR_SRC)/linux - - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.1-imq.patch - - # Not report deprecated syscall 1.23 (for kudzu) -# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch - - - # ipp2p 0.8.2-ipfire - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch - - # Layer7-patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch - - # Add some more LED triggers -# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch - - # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch - - # Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch - -ifeq "$(KCFG)" "-kirkwood" - # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch -endif - -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch - - # Reverse some asm optimizations that are incompatible with older gcc - cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch -endif - -ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-dvi720p.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-reboot.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-memcpy.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch -endif - -ifeq "$(KCFG)" "-rpi" - # Apply Raspberry Pi kernel patches. (only avail for 3.1.x kernel yet) - -cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-9efb470.patch.xz | patch -Np1 -endif - -ifeq "$(HEADERS)" "1" - # Install the header files - cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install - -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include - cd $(DIR_APP) && find dest/include \( -name .install -o -name ..install.cmd \) -delete - cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include -else - - # Install ipfire logo - cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ - drivers/video/logo/logo_linux_clut224.ppm - - # Cleanup kernel source - cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config - cd $(DIR_APP) && make CC="$(KGCC)" oldconfig - cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile - -ifeq "$(KCFG)" "-kirkwood" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) -else -ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) -else -ifeq "$(KCFG)" "-rpi" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img - cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) -else -ifeq "$(KCFG)" "-versatile" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) -else - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage - cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) -endif -endif -endif -endif - cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) - ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) - ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install - -ifeq "$(LASTKERNEL)" "1" - # Only do this once - cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/ - - # Blacklist matroxfb_base - echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer - # Blacklist old framebuffer modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - # Blacklist new drm framebuffer modules - for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer - - # Blacklist isdn modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/isdn - - # Disable ipv6 at runtime - echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 -endif - -ifneq "$(MACHINE_TYPE)" "arm" - # Disable geode_aes modul - mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ - /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off -endif -endif - - @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* - @$(POSTBUILD) diff --git a/lfs/linux3 b/lfs/linux3 index b7d5e2642..e049be0f2 100644 --- a/lfs/linux3 +++ b/lfs/linux3 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,14 +24,17 @@ include Config -PATCHLEVEL = .32 -VER = 2.6.40.32 +PATCHLEVEL = .19 -XVERS = 3.0.32 +VER = 2.6.42.19 + +XVERS = 3.2.19 XVERSION = 2 XPATCHLEVEL = 6 -XSUBLEVEL = 40 -XEXTRAVERSION = .32 +XSUBLEVEL = 42 +XEXTRAVERSION = .19 + +RPI_PATCHES = linux-3.2-bootc-5b84c25 THISAPP = linux-$(VER) DL_FILE = linux-$(XVERS).tar.bz2 @@ -74,13 +77,15 @@ endif # Top-level Rules ############################################################################### objects =$(DL_FILE) \ - patch-2.6.16-nath323-1.3.bz2 + rpi-patches-$(RPI_PATCHES).patch.xz + $(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 +rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz + +$(DL_FILE)_MD5 = 64c732cb425eb8787b841d11309bb335 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 0b2fac563b093465f5c6b3d571e57399 -$(DL_FILE)_MD5 = 67ae0ca4e87fb22cecfce94cb90eaee9 -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 install : $(TARGET) @@ -123,11 +128,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -svf linux-$(VER) $(DIR_SRC)/linux # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.1-imq.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch # Not report deprecated syscall 1.23 (for kudzu) # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch + # ipp2p 0.8.2-ipfire cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch @@ -141,7 +147,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch # Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch +# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch ifeq "$(KCFG)" "-kirkwood" @@ -157,15 +163,19 @@ ifeq "$(MACHINE_TYPE)" "arm" endif ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-dvi720p.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-reboot.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-memcpy.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch endif +ifeq "$(KCFG)" "-rpi" + # Apply Raspberry Pi kernel patches. (only avail for 3.1.x kernel yet) + cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-alsamixer.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-limit_volume.patch +endif + ifeq "$(HEADERS)" "1" # Install the header files cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install @@ -194,6 +204,11 @@ ifeq "$(KCFG)" "-omap" cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) else +ifeq "$(KCFG)" "-rpi" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage + cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img + cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) +else ifeq "$(KCFG)" "-versatile" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) @@ -202,6 +217,7 @@ else cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) endif endif +endif endif cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) @@ -237,10 +253,6 @@ ifeq "$(LASTKERNEL)" "1" echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 endif - # Remove mISDN modules - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN - ifneq "$(MACHINE_TYPE)" "arm" # Disable geode_aes modul mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ diff --git a/make.sh b/make.sh index f724a3540..2c52ad161 100755 --- a/make.sh +++ b/make.sh @@ -438,7 +438,7 @@ buildipfire() { ipfiremake igb KCFG="" else # arm-omap kernel build - ipfiremake linux-rpi KCFG="-rpi" + ipfiremake linux3 KCFG="-rpi" ipfiremake linux3 KCFG="-omap" diff --git a/src/patches/linux-2.6.40-pandaboard-dvi720p.patch b/src/patches/linux-2.6.40-pandaboard-dvi720p.patch deleted file mode 100755 index 8ec3586de..000000000 --- a/src/patches/linux-2.6.40-pandaboard-dvi720p.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c -index 90485fc..7a92185 100644 ---- a/arch/arm/mach-omap2/board-omap4panda.c -+++ b/arch/arm/mach-omap2/board-omap4panda.c -@@ -583,7 +583,7 @@ static void omap4_panda_disable_dvi(struct omap_dss_device *dssdev) - - /* Using generic display panel */ - static struct panel_generic_dpi_data omap4_dvi_panel = { -- .name = "generic", -+ .name = "dvi_720p", - .platform_enable = omap4_panda_enable_dvi, - .platform_disable = omap4_panda_disable_dvi, - }; -diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c -index 9c90f75..af8352f 100644 ---- a/drivers/video/omap2/displays/panel-generic-dpi.c -+++ b/drivers/video/omap2/displays/panel-generic-dpi.c -@@ -232,7 +232,32 @@ static struct panel_config generic_dpi_panels[] = { - .power_off_delay = 0, - .name = "powertip_ph480272t", - }, --}; -+ -+ /* Vesa 720p 1280x768 */ -+ { -+ { -+ .x_res = 1280, -+ .y_res = 768, -+ -+ .pixel_clock = 71000, -+ -+ .hfp = 128, -+ .hsw = 64, -+ .hbp = 192, -+ -+ .vfp = 3, -+ .vsw = 7, -+ .vbp = 20, -+ }, -+ .acbi = 0x0, -+ .acb = 0x0, -+ .config = OMAP_DSS_LCD_TFT, -+ .power_on_delay = 0, -+ .power_off_delay = 0, -+ .name = "dvi_720p", -+ }, -+ }; -+ - - struct panel_drv_data { - diff --git a/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch b/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch deleted file mode 100755 index ea847be9f..000000000 --- a/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c -index 58a58c7..bba0441 100644 ---- a/drivers/i2c/busses/i2c-omap.c -+++ b/drivers/i2c/busses/i2c-omap.c -@@ -276,7 +276,7 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev) - - pm_runtime_get_sync(&pdev->dev); - -- if (cpu_is_omap34xx()) { -+ if (cpu_is_omap34xx() || cpu_is_omap44xx()) { - omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); - omap_i2c_write_reg(dev, OMAP_I2C_PSC_REG, dev->pscstate); - omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate); -@@ -493,7 +493,7 @@ static int omap_i2c_init(struct omap_i2c_dev *dev) - OMAP_I2C_IE_AL) | ((dev->fifo_size) ? - (OMAP_I2C_IE_RDR | OMAP_I2C_IE_XDR) : 0); - omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate); -- if (cpu_is_omap34xx()) { -+ if (cpu_is_omap34xx() || cpu_is_omap44xx()) { - dev->pscstate = psc; - dev->scllstate = scll; - dev->sclhstate = sclh; diff --git a/src/patches/linux-2.6.40-pandaboard-memcpy.patch b/src/patches/linux-2.6.40-pandaboard-memcpy.patch deleted file mode 100644 index 69e5e6e83..000000000 --- a/src/patches/linux-2.6.40-pandaboard-memcpy.patch +++ /dev/null @@ -1,21 +0,0 @@ -arch/arm/lib/uaccess_with_memcpy.c: In function 'pin_page_for_write': -arch/arm/lib/uaccess_with_memcpy.c:45: error: implicit declaration of function 'kmap_atomic' -arch/arm/lib/uaccess_with_memcpy.c:48: error: implicit declaration of function 'kunmap_atomic' -make[2]: *** [arch/arm/lib/uaccess_with_memcpy.o] Error 1 - -Signed-off-by: Paul Gortmaker - -diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c -index 8b9b136..66945a6 100644 ---- a/arch/arm/lib/uaccess_with_memcpy.c -+++ b/arch/arm/lib/uaccess_with_memcpy.c -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #include - #include - #include --- -1.7.6 diff --git a/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch b/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch deleted file mode 100644 index dc1182dcb..000000000 --- a/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur linux-3.0.24.org/drivers/rtc/rtc-twl.c linux-3.0.24/drivers/rtc/rtc-twl.c ---- linux-3.0.24.org/drivers/rtc/rtc-twl.c 2012-03-12 18:58:19.000000000 +0100 -+++ linux-3.0.24/drivers/rtc/rtc-twl.c 2012-03-20 23:24:52.213578926 +0100 -@@ -362,14 +362,6 @@ - int res; - u8 rd_reg; - --#ifdef CONFIG_LOCKDEP -- /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which -- * we don't want and can't tolerate. Although it might be -- * friendlier not to borrow this thread context... -- */ -- local_irq_enable(); --#endif -- - res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG); - if (res) - goto out; -@@ -462,7 +454,7 @@ - if (ret < 0) - goto out1; - -- ret = request_irq(irq, twl_rtc_interrupt, -+ ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt, - IRQF_TRIGGER_RISING, - dev_name(&rtc->dev), rtc); - if (ret < 0) { diff --git a/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch b/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch deleted file mode 100755 index 1b6b5c4d7..000000000 --- a/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c -index 1269658..8ec6330 100644 ---- a/arch/arm/mach-omap2/board-omap4panda.c -+++ b/arch/arm/mach-omap2/board-omap4panda.c -@@ -377,6 +377,7 @@ static struct regulator_init_data omap4_panda_vusb = { - static struct regulator_init_data omap4_panda_clk32kg = { - .constraints = { - .valid_ops_mask = REGULATOR_CHANGE_STATUS, -+ .always_on = true, - }, - }; - diff --git a/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch old mode 100755 new mode 100644 diff --git a/src/patches/linux-3.2-0001-panda-wlan-fix.patch b/src/patches/linux-3.2-0001-panda-wlan-fix.patch new file mode 100644 index 000000000..a2aaf206b --- /dev/null +++ b/src/patches/linux-3.2-0001-panda-wlan-fix.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c +index daa056e..fe03b09 100644 +--- a/arch/arm/mach-omap2/twl-common.c ++++ b/arch/arm/mach-omap2/twl-common.c +@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = { + static struct regulator_init_data omap4_clk32kg_idata = { + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, ++ .always_on = true, + }, + }; + diff --git a/src/patches/linux-3.2-0002-panda-i2c.patch b/src/patches/linux-3.2-0002-panda-i2c.patch new file mode 100644 index 000000000..fa3f6cc90 --- /dev/null +++ b/src/patches/linux-3.2-0002-panda-i2c.patch @@ -0,0 +1,51 @@ +diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c +index 7f47092..2a05d3d 100644 +--- a/arch/arm/mach-omap2/id.c ++++ b/arch/arm/mach-omap2/id.c +@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void) + omap_revision = OMAP4430_REV_ES2_1; + break; + case 4: +- default: + omap_revision = OMAP4430_REV_ES2_2; ++ case 6: ++ default: ++ omap_revision = OMAP4430_REV_ES2_3; + } + break; + case 0xb94e: +@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void) + break; + default: + /* Unknown default to latest silicon rev as default */ +- omap_revision = OMAP4430_REV_ES2_2; ++ omap_revision = OMAP4430_REV_ES2_3; + } + + pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, +diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +index 7695e5d..71d3e36 100644 +--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c ++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = { + }; + + static struct omap_i2c_dev_attr i2c_dev_attr = { +- .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE, ++ .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE | ++ OMAP_I2C_FLAG_RESET_REGS_POSTIDLE, + }; + + /* i2c1 */ +diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h +index 408a12f..e279395 100644 +--- a/arch/arm/plat-omap/include/plat/cpu.h ++++ b/arch/arm/plat-omap/include/plat/cpu.h +@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) + #define OMAP4430_REV_ES2_0 (OMAP443X_CLASS | (0x20 << 8)) + #define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8)) + #define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) ++#define OMAP4430_REV_ES2_3 (OMAP443X_CLASS | (0x23 << 8)) + + #define OMAP446X_CLASS 0x44600044 + #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) diff --git a/src/patches/linux-3.2-bcm2835-alsamixer.patch b/src/patches/linux-3.2-bcm2835-alsamixer.patch new file mode 100644 index 000000000..bfe3d022f --- /dev/null +++ b/src/patches/linux-3.2-bcm2835-alsamixer.patch @@ -0,0 +1,48 @@ +diff -Naur linux-3.2.19.org/sound/arm/bcm2835-ctl.c linux-3.2.19/sound/arm/bcm2835-ctl.c +--- linux-3.2.19.org/sound/arm/bcm2835-ctl.c 2012-06-04 21:11:15.000000000 +0200 ++++ linux-3.2.19/sound/arm/bcm2835-ctl.c 2012-06-04 21:32:37.969298501 +0200 +@@ -33,6 +33,19 @@ + + #include "bcm2835.h" + ++ ++/* functions to convert alsa to chip volume and back. */ ++int alsa2chip(int vol) ++{ ++ return -((vol << 8) / 100); ++} ++ ++int chip2alsa(int vol) ++{ ++ return -((vol * 100) >> 8); ++} ++ ++ + static int snd_bcm2835_ctl_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) + { +@@ -64,7 +77,7 @@ + BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK)); + + if (kcontrol->private_value == PCM_PLAYBACK_VOLUME) +- ucontrol->value.integer.value[0] = chip->volume; ++ ucontrol->value.integer.value[0] = chip2alsa(chip->volume); + else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) + ucontrol->value.integer.value[0] = chip->mute; + else if (kcontrol->private_value == PCM_PLAYBACK_DEVICE) +@@ -85,13 +98,10 @@ + changed = 1; + } + if (changed +- || (ucontrol->value.integer.value[0] != chip->volume)) { +- int atten; ++ || (ucontrol->value.integer.value[0] != chip2alsa(chip->volume))) { + +- chip->volume = ucontrol->value.integer.value[0]; ++ chip->volume = alsa2chip(ucontrol->value.integer.value[0]); + changed = 1; +- atten = -((chip->volume << 8) / 100); +- chip->volume = atten; + } + + } else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) { diff --git a/src/patches/linux-3.2-bcm2835-limit_volume.patch b/src/patches/linux-3.2-bcm2835-limit_volume.patch new file mode 100644 index 000000000..930033b38 --- /dev/null +++ b/src/patches/linux-3.2-bcm2835-limit_volume.patch @@ -0,0 +1,12 @@ +diff -Naur linux-3.2.19.org/sound/arm/bcm2835-ctl.c linux-3.2.19/sound/arm/bcm2835-ctl.c +--- linux-3.2.19.org/sound/arm/bcm2835-ctl.c 2012-06-04 22:38:54.000000000 +0200 ++++ linux-3.2.19/sound/arm/bcm2835-ctl.c 2012-06-05 22:37:46.343725845 +0200 +@@ -53,7 +53,7 @@ + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 1; + uinfo->value.integer.min = -10240; +- uinfo->value.integer.max = 2303; ++ uinfo->value.integer.max = 400; /* 2303 */ + } else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) { + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 1; diff --git a/src/patches/linux-3.2-imq.patch b/src/patches/linux-3.2-imq.patch new file mode 100644 index 000000000..8e8685d1d --- /dev/null +++ b/src/patches/linux-3.2-imq.patch @@ -0,0 +1,1603 @@ +diff -uNr linux-3.2/drivers/net/imq.c linux-3.2-imq/drivers/net/imq.c +--- linux-3.2/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/drivers/net/imq.c 2011-11-04 12:16:10.454992642 +0200 +@@ -0,0 +1,850 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * 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. ++ * ++ * Authors: Patrick McHardy, ++ * ++ * The first version was written by Martin Devera, ++ * ++ * Credits: Jan Rafaj ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao . ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will ++ overwrite it */ ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .name = "imq", ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ printk(KERN_INFO "IMQ driver loaded successfully. " ++ "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " ++ "be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " ++ "http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.2/drivers/net/Kconfig linux-3.2-imq/drivers/net/Kconfig +--- linux-3.2/drivers/net/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Kconfig 2011-11-04 11:12:52.106390309 +0200 +@@ -90,6 +90,125 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config NET_FC + bool "Fibre Channel driver support" + depends on SCSI && PCI +diff -uNr linux-3.2/drivers/net/Makefile linux-3.2-imq/drivers/net/Makefile +--- linux-3.2/drivers/net/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200 +@@ -8,6 +8,7 @@ + obj-$(CONFIG_BONDING) += bonding/ + obj-$(CONFIG_DUMMY) += dummy.o + obj-$(CONFIG_EQUALIZER) += eql.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o +diff -uNr linux-3.2/include/linux/imq.h linux-3.2-imq/include/linux/imq.h +--- linux-3.2/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/imq.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter/xt_IMQ.h linux-3.2-imq/include/linux/netfilter/xt_IMQ.h +--- linux-3.2/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter/xt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter.h linux-3.2-imq/include/linux/netfilter.h +--- linux-3.2/include/linux/netfilter.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/netfilter.h 2011-11-04 11:12:52.109723710 +0200 +@@ -22,7 +22,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2011-11-04 11:12:52.113057113 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/skbuff.h linux-3.2-imq/include/linux/skbuff.h +--- linux-3.2/include/linux/skbuff.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/skbuff.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,6 +30,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -386,6 +389,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -424,6 +430,9 @@ + #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED + struct sk_buff *nfct_reasm; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -449,6 +458,10 @@ + + /* 0/13 bit hole */ + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -535,6 +548,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void consume_skb(struct sk_buff *skb); + extern void __kfree_skb(struct sk_buff *skb); +@@ -2368,6 +2387,10 @@ + dst->nfct_reasm = src->nfct_reasm; + nf_conntrack_get_reasm(src->nfct_reasm); + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -uNr linux-3.2/include/net/netfilter/nf_queue.h linux-3.2-imq/include/net/netfilter/nf_queue.h +--- linux-3.2/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/net/netfilter/nf_queue.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,5 +30,11 @@ + const struct nf_queue_handler *qh); + extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.2/net/core/dev.c linux-3.2-imq/net/core/dev.c +--- linux-3.2/net/core/dev.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/dev.c 2011-11-04 11:12:52.119723915 +0200 +@@ -98,6 +98,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + #include + #include + #include +@@ -2185,7 +2188,12 @@ + if (dev->priv_flags & IFF_XMIT_DST_RELEASE) + skb_dst_drop(skb); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_orphan_try(skb); +diff -uNr linux-3.2/net/core/skbuff.c linux-3.2-imq/net/core/skbuff.c +--- linux-3.2/net/core/skbuff.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/skbuff.c 2011-11-04 11:12:52.123057315 +0200 +@@ -73,6 +73,9 @@ + + static struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -403,6 +482,26 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* This should not happen. When it does, avoid memleak by restoring ++ the chain of cb-backups. */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: " ++ "%08x\n", (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + nf_conntrack_put(skb->nfct); + #endif +@@ -547,6 +646,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -2907,6 +3009,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.2/net/ipv6/ip6_output.c linux-3.2-imq/net/ipv6/ip6_output.c +--- linux-3.2/net/ipv6/ip6_output.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/ipv6/ip6_output.c 2011-11-04 11:12:52.123057315 +0200 +@@ -102,9 +102,6 @@ + struct net_device *dev = dst->dev; + struct neighbour *neigh; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -170,6 +167,11 @@ + return 0; + } + ++ /* IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.2/net/netfilter/core.c linux-3.2-imq/net/netfilter/core.c +--- linux-3.2/net/netfilter/core.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200 +@@ -179,9 +179,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/Kconfig linux-3.2-imq/net/netfilter/Kconfig +--- linux-3.2/net/netfilter/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Kconfig 2011-11-04 11:12:52.123057315 +0200 +@@ -506,6 +506,18 @@ + For more information on the LEDs available on your system, see + Documentation/leds/leds-class.txt + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.2/net/netfilter/Makefile linux-3.2-imq/net/netfilter/Makefile +--- linux-3.2/net/netfilter/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Makefile 2011-11-04 11:12:52.123057315 +0200 +@@ -56,6 +56,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o +diff -uNr linux-3.2/net/netfilter/nf_internals.h linux-3.2-imq/net/netfilter/nf_internals.h +--- linux-3.2/net/netfilter/nf_internals.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.2/net/netfilter/nf_queue.c linux-3.2-imq/net/netfilter/nf_queue.c +--- linux-3.2/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_queue.c 2011-11-04 11:12:52.123057315 +0200 +@@ -22,6 +22,26 @@ + + static DEFINE_MUTEX(queue_handler_mutex); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler *queue_imq_handler; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, qh); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, NULL); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh) +@@ -92,7 +112,7 @@ + } + EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); + +-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) ++void nf_queue_entry_release_refs(struct nf_queue_entry *entry) + { + /* Release those devices we held, or Alexey will kill me. */ + if (entry->indev) +@@ -112,6 +132,7 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(entry->elem->owner); + } ++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); + + /* + * Any packet that leaves via this function must come back +@@ -123,7 +144,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -137,7 +159,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler[pf]); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler[pf]); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -209,7 +241,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + struct sk_buff *segs; + int err; +@@ -217,7 +250,7 @@ + + if (!skb_is_gso(skb)) + return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- queuenum); ++ queuenum, queuetype); + + switch (pf) { + case NFPROTO_IPV4: +@@ -244,7 +277,7 @@ + segs->next = NULL; + if (err == 0) + err = __nf_queue(segs, elem, pf, hook, indev, +- outdev, okfn, queuenum); ++ outdev, okfn, queuenum, queuetype); + if (err == 0) + queued++; + else +@@ -299,9 +332,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = __nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/xt_IMQ.c linux-3.2-imq/net/netfilter/xt_IMQ.c +--- linux-3.2/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/net/netfilter/xt_IMQ.c 2011-11-04 11:12:52.123057315 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. " ++ "See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-2.6.40-pandaboard-reboot.patch b/src/patches/linux-3.2-panda-reboot.patch similarity index 100% rename from src/patches/linux-2.6.40-pandaboard-reboot.patch rename to src/patches/linux-3.2-panda-reboot.patch