From 0d632795d29b5c430c1819ad1ef4d718980f2a95 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Wed, 18 Mar 2009 08:57:43 +0000 Subject: [PATCH] Cleanup local patchset. --- .../linux/omap3-pandora-kernel/defconfig.bak | 1970 ----------------- packages/pandora-system/pandora-libpnd.bb | 29 + .../pandora-system/pandora-wifi-tools_git.bb | 6 +- packages/pandora-system/pandora-wifi.inc | 3 + ...t-of-wireless-extensions-support-ioc.patch | 1963 ++++++++++++++++ .../pandora-system/pandora-wifi/rc.tiwifi | 41 +- packages/pandora-system/pandora-wifi_git.bb | 10 +- packages/tasks/task-pandora-core.bb | 9 +- packages/tasks/task-pandora-desktop.bb | 5 +- packages/tasks/task-pandora-gui.bb | 12 +- 10 files changed, 2058 insertions(+), 1990 deletions(-) delete mode 100755 packages/linux/omap3-pandora-kernel/defconfig.bak create mode 100755 packages/pandora-system/pandora-libpnd.bb create mode 100755 packages/pandora-system/pandora-wifi/0011-Add-in-the-start-of-wireless-extensions-support-ioc.patch diff --git a/packages/linux/omap3-pandora-kernel/defconfig.bak b/packages/linux/omap3-pandora-kernel/defconfig.bak deleted file mode 100755 index 92f3c08..0000000 --- a/packages/linux/omap3-pandora-kernel/defconfig.bak +++ /dev/null @@ -1,1970 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.27-omap1 -# Mon Jan 12 18:36:10 2009 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set -CONFIG_GENERIC_HARDIRQS=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_SUPPORTS_AOUT=y -CONFIG_ZONE_DMA=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_OPROFILE_ARMV7=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_CGROUPS=y -# CONFIG_CGROUP_DEBUG is not set -# CONFIG_CGROUP_NS is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_GROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_USER_SCHED=y -# CONFIG_CGROUP_SCHED is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -CONFIG_USER_NS=y -CONFIG_PID_NS=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_EMBEDDED=y -CONFIG_UID16=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_COMPAT_BRK=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_ANON_INODES=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -# CONFIG_MARKERS is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set -# CONFIG_HAVE_IOREMAP_PROT is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -# CONFIG_HAVE_ARCH_TRACEHOOK is not set -# CONFIG_HAVE_DMA_ATTRS is not set -# CONFIG_USE_GENERIC_SMP_HELPERS is not set -CONFIG_HAVE_CLK=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -CONFIG_MODULE_FORCE_LOAD=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_MODULE_SRCVERSION_ALL=y -CONFIG_KMOD=y -CONFIG_BLOCK=y -CONFIG_LBD=y -# CONFIG_BLK_DEV_IO_TRACE is not set -CONFIG_LSF=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_CLASSIC_RCU=y - -# -# System Type -# -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_LOKI is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set -CONFIG_ARCH_OMAP=y -# CONFIG_ARCH_MSM7X00A is not set - -# -# TI OMAP Implementations -# -CONFIG_ARCH_OMAP_OTG=y -# CONFIG_ARCH_OMAP1 is not set -# CONFIG_ARCH_OMAP2 is not set -CONFIG_ARCH_OMAP3=y - -# -# OMAP Feature Selections -# -# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set -# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set -CONFIG_OMAP_SMARTREFLEX=y -# CONFIG_OMAP_SMARTREFLEX_TESTING is not set -CONFIG_OMAP_RESET_CLOCKS=y -CONFIG_OMAP_BOOT_TAG=y -CONFIG_OMAP_BOOT_REASON=y -# CONFIG_OMAP_COMPONENT_VERSION is not set -# CONFIG_OMAP_GPIO_SWITCH is not set -# CONFIG_OMAP_MUX is not set -CONFIG_OMAP_MCBSP=y -# CONFIG_OMAP_MMU_FWK is not set -# CONFIG_OMAP_MBOX_FWK is not set -# CONFIG_OMAP_MPU_TIMER is not set -CONFIG_OMAP_32K_TIMER=y -CONFIG_OMAP_32K_TIMER_HZ=128 -CONFIG_OMAP_DM_TIMER=y -# CONFIG_OMAP_LL_DEBUG_UART1 is not set -# CONFIG_OMAP_LL_DEBUG_UART2 is not set -CONFIG_OMAP_LL_DEBUG_UART3=y -CONFIG_ARCH_OMAP34XX=y -CONFIG_ARCH_OMAP3430=y - -# -# OMAP Board Type -# -# CONFIG_MACH_OMAP_LDP is not set -# CONFIG_MACH_OMAP_3430SDP is not set -# CONFIG_MACH_OMAP3EVM is not set -# CONFIG_MACH_OMAP3_BEAGLE is not set -# CONFIG_MACH_OVERO is not set -CONFIG_MACH_OMAP3_PANDORA=y -CONFIG_OMAP_TICK_GPTIMER=12 - -# -# Boot options -# - -# -# Power management -# - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_IFAR=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -CONFIG_ARM_THUMBEE=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_HAS_TLS_REG=y -# CONFIG_OUTER_CACHE is not set - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_PREEMPT is not set -CONFIG_HZ=128 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -CONFIG_ARCH_FLATMEM_HAS_HOLES=y -# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -# CONFIG_SPARSEMEM_STATIC is not set -# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_RESOURCES_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_LEDS=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE=" debug " -# CONFIG_XIP_KERNEL is not set -CONFIG_KEXEC=y -CONFIG_ATAGS_PROC=y - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_NEON=y - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -CONFIG_BINFMT_AOUT=m -CONFIG_BINFMT_MISC=y - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_APM_EMULATION is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_NET_KEY=y -# CONFIG_NET_KEY_MIGRATE is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -# CONFIG_INET_LRO is not set -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET6_TUNNEL is not set -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -CONFIG_IPV6_SIT=m -CONFIG_IPV6_NDISC_NODETYPE=y -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_IRDA is not set -CONFIG_BT=y -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y -CONFIG_BT_RFCOMM=y -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=y -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=y - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=y -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIBTUSB is not set -CONFIG_BT_HCIBTSDIO=y -# CONFIG_BT_HCIUART is not set -CONFIG_BT_HCIBCM203X=y -CONFIG_BT_HCIBPA10X=y -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIBRF6150 is not set -CONFIG_BT_HCIH4P=y -# CONFIG_BT_HCIVHCI is not set -# CONFIG_AF_RXRPC is not set - -# -# Wireless -# -CONFIG_CFG80211=y -CONFIG_NL80211=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_MAC80211=y - -# -# Rate control algorithm selection -# -CONFIG_MAC80211_RC_PID=y -CONFIG_MAC80211_RC_DEFAULT_PID=y -CONFIG_MAC80211_RC_DEFAULT="pid" -# CONFIG_MAC80211_MESH is not set -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_IEEE80211=y -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=y -CONFIG_IEEE80211_CRYPT_CCMP=y -CONFIG_IEEE80211_CRYPT_TKIP=y -# CONFIG_RFKILL is not set -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=y -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -CONFIG_MTD_NAND=y -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set -CONFIG_MTD_NAND_OMAP2=y -CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_NANDSIM is not set -CONFIG_MTD_NAND_PLATFORM=y -# CONFIG_MTD_ALAUDA is not set -# CONFIG_MTD_ONENAND is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI is not set -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_MISC_DEVICES=y -CONFIG_EEPROM_93CX6=y -# CONFIG_OMAP_STI is not set -# CONFIG_ENCLOSURE_SERVICES is not set -CONFIG_PANDORA_GAME_CONSOLE=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -# CONFIG_SCSI_NETLINK is not set -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -# CONFIG_BLK_DEV_SR_VENDOR is not set -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_DH is not set -# CONFIG_ATA is not set -# CONFIG_MD is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_VETH is not set -# CONFIG_NET_ETHERNET is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set - -# -# Wireless LAN -# -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_LIBERTAS=m -CONFIG_LIBERTAS_USB=m -# CONFIG_LIBERTAS_SDIO is not set -# CONFIG_LIBERTAS_DEBUG is not set -CONFIG_USB_ZD1201=y -CONFIG_USB_NET_RNDIS_WLAN=y -CONFIG_RTL8187=y -# CONFIG_MAC80211_HWSIM is not set -CONFIG_P54_COMMON=y -CONFIG_P54_USB=y -# CONFIG_IWLWIFI_LEDS is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -CONFIG_HOSTAP_FIRMWARE_NVRAM=y -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -CONFIG_ZD1211RW=y -# CONFIG_ZD1211RW_DEBUG is not set -CONFIG_RT2X00=y -CONFIG_RT2X00_LIB=y -CONFIG_RT2X00_LIB_USB=y -CONFIG_RT2X00_LIB_FIRMWARE=y -CONFIG_RT2X00_LIB_LEDS=y -CONFIG_RT2500USB=y -CONFIG_RT2500USB_LEDS=y -CONFIG_RT73USB=y -CONFIG_RT73USB_LEDS=y -# CONFIG_RT2X00_DEBUG is not set - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=y -CONFIG_USB_NET_AX8817X=y -CONFIG_USB_NET_CDCETHER=y -CONFIG_USB_NET_DM9601=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=y -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_WAN 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_PPPOL2TP=m -# CONFIG_SLIP is not set -CONFIG_SLHC=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=800 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480 -CONFIG_INPUT_JOYDEV=y -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -CONFIG_KEYBOARD_TWL4030=y -# CONFIG_KEYBOARD_LM8323 is not set -CONFIG_KEYBOARD_GPIO=y -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MOUSE_GPIO is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=y -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -# CONFIG_TOUCHSCREEN_TSC2102 is not set -# CONFIG_TOUCHSCREEN_TSC210X is not set -# CONFIG_TOUCHSCREEN_UCB1400 is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_ATI_REMOTE is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_KEYSPAN_REMOTE is not set -# CONFIG_INPUT_POWERMATE is not set -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_VSENSE=y - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_DEVKMEM=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_IPMI_HANDLER is not set -CONFIG_HW_RANDOM=y -# CONFIG_NVRAM is not set -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_HELPER_AUTO=y - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_GPIO is not set -# CONFIG_I2C_OCORES is not set -CONFIG_I2C_OMAP=y -# CONFIG_I2C_SIMTEC is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_STUB is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_DS1682 is not set -# CONFIG_AT24 is not set -CONFIG_SENSORS_EEPROM=y -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_PCF8575 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_ISP1301_OMAP is not set -# CONFIG_TPS65010 is not set -# CONFIG_SENSORS_TLV320AIC23 is not set -CONFIG_TWL4030_MADC=m -CONFIG_TWL4030_USB=y -CONFIG_TWL4030_PWRBUTTON=y -CONFIG_TWL4030_POWEROFF=y -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_LP5521 is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -# CONFIG_SPI_BITBANG is not set -CONFIG_SPI_OMAP24XX=y - -# -# SPI Protocol Masters -# -# CONFIG_SPI_AT25 is not set -# CONFIG_SPI_TSC2101 is not set -# CONFIG_SPI_TSC2102 is not set -# CONFIG_SPI_TSC210X is not set -# CONFIG_SPI_TSC2301 is not set -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_TLE62X0 is not set -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCF857X is not set -CONFIG_GPIO_TWL4030=y - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MCP23S08 is not set -# CONFIG_W1 is not set -# CONFIG_POWER_SUPPLY is not set -# CONFIG_HWMON is not set -# CONFIG_WATCHDOG is not set - -# -# Sonics Silicon Backplane -# -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set - -# -# 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_TWL4030_CORE=y -CONFIG_TWL4030_POWER=y -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set - -# -# Multimedia devices -# - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -CONFIG_VIDEO_ALLOW_V4L1=y -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_DVB_CORE=m -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_V4L1=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_VIDEO_TUNER=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -CONFIG_VIDEO_MSP3400=m -CONFIG_VIDEO_CS53L32A=m -CONFIG_VIDEO_WM8775=m -CONFIG_VIDEO_SAA711X=m -CONFIG_VIDEO_CX25840=m -CONFIG_VIDEO_CX2341X=m -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_TUNER_3036 is not set -# CONFIG_VIDEO_AU0828 is not set -CONFIG_V4L_USB_DRIVERS=y -CONFIG_USB_VIDEO_CLASS=m -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -CONFIG_VIDEO_PVRUSB2=m -CONFIG_VIDEO_PVRUSB2_SYSFS=y -CONFIG_VIDEO_PVRUSB2_DVB=y -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set -# CONFIG_VIDEO_EM28XX is not set -CONFIG_VIDEO_USBVISION=m -CONFIG_VIDEO_USBVIDEO=m -CONFIG_USB_VICAM=m -CONFIG_USB_IBMCAM=m -CONFIG_USB_KONICAWC=m -CONFIG_USB_QUICKCAM_MESSENGER=m -# CONFIG_USB_ET61X251 is not set -CONFIG_VIDEO_OVCAMCHIP=m -CONFIG_USB_W9968CF=m -CONFIG_USB_OV511=m -CONFIG_USB_SE401=m -CONFIG_USB_SN9C102=m -CONFIG_USB_STV680=m -# CONFIG_USB_ZC0301 is not set -CONFIG_USB_PWC=m -# CONFIG_USB_PWC_DEBUG is not set -CONFIG_USB_ZR364XX=m -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_SOC_CAMERA is not set -# CONFIG_VIDEO_SH_MOBILE_CEU is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_TEA5761 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_SI470X is not set -CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set - -# -# Supported USB Adapters -# -CONFIG_DVB_USB=m -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_DIBUSB_MB=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIB0700=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_CXUSB=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_VP7045=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -# CONFIG_DVB_USB_DW2102 is not set -# CONFIG_DVB_USB_ANYSEE is not set -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m -CONFIG_DVB_CINERGYT2=m -# CONFIG_DVB_CINERGYT2_TUNING is not set -# CONFIG_DVB_SIANO_SMS1XXX is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported DVB Frontends -# - -# -# Customise DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set - -# -# DVB-S (satellite) frontends -# -CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_MT312=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TUA6100=m - -# -# DVB-T (terrestrial) frontends -# -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -# CONFIG_DVB_DRX397XD is not set -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_ZL10353=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m -CONFIG_DVB_TDA10048=m - -# -# DVB-C (cable) frontends -# -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_TDA10023=m -CONFIG_DVB_STV0297=m - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -CONFIG_DVB_NXT200X=m -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_OR51132 is not set -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_S5H1409=m -CONFIG_DVB_AU8522=m -CONFIG_DVB_S5H1411=m - -# -# Digital terrestrial only tuners/PLL -# -CONFIG_DVB_PLL=m -CONFIG_DVB_TUNER_DIB0070=m - -# -# SEC control devices for DVB-S -# -CONFIG_DVB_LNBP21=m -# CONFIG_DVB_ISL6405 is not set -CONFIG_DVB_ISL6421=m -CONFIG_DAB=y - -# -# Graphics support -# -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -CONFIG_FB=y -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FB_DDC is not set -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 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 is not set -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set - -# -# Frame buffer hardware drivers -# -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_OMAP=y -# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set -CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=4 -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_CORGI is not set -CONFIG_BACKLIGHT_GPIO=y - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=y - -# -# Display hardware drivers -# - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -# CONFIG_LOGO_LINUX_CLUT224 is not set -CONFIG_LOGO_PANDORA_CLUT224=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_HWDEP=y -CONFIG_SND_RAWMIDI=y -CONFIG_SND_SEQUENCER=m -# CONFIG_SND_SEQ_DUMMY is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=y -CONFIG_SND_PCM_OSS=y -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CCONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -CONFIG_SND_ARM=y -# CONFIG_SND_OMAP_AIC23 is not set -# CONFIG_SND_OMAP_TSC2101 is not set -# CONFIG_SND_SX1 is not set -# CONFIG_SND_OMAP_TSC2102 is not set -# CONFIG_SND_OMAP24XX_EAC is not set -CONFIG_SND_SPI=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=y -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_SOC=y -CONFIG_SND_OMAP_SOC=y -CONFIG_SND_OMAP_SOC_MCBSP=y -CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y -CONFIG_SND_SOC_TWL4030=y -# CONFIG_SOUND_PRIME is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -CONFIG_HID_DEBUG=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=y -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -# CONFIG_USB_HIDDEV is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -# CONFIG_USB_DYNAMIC_MINORS is not set -CONFIG_USB_SUSPEND=y -CONFIG_USB_OTG=y -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -CONFIG_USB_MON=y - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_OMAP_EHCI_PHY_MODE=y -# CONFIG_OMAP_EHCI_TLL_MODE is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_OHCI_HCD is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -CONFIG_USB_MUSB_HDRC=y -CONFIG_USB_MUSB_SOC=y - -# -# OMAP 343x high speed USB support -# -# CONFIG_USB_MUSB_HOST is not set -# CONFIG_USB_MUSB_PERIPHERAL is not set -CONFIG_USB_MUSB_OTG=y -CONFIG_USB_GADGET_MUSB_HDRC=y -CONFIG_USB_MUSB_HDRC_HCD=y -# CONFIG_MUSB_PIO_ONLY is not set -CONFIG_USB_INVENTRA_DMA=y -# CONFIG_USB_TI_CPPI_DMA is not set -# CONFIG_USB_MUSB_DEBUG is not set - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP2101=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_FUNSOFT=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -CONFIG_USB_SERIAL_NAVMAN=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_SERIAL_DEBUG=m - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_RIO500 is not set -CONFIG_USB_LEGOTOWER=m -CONFIG_USB_LCD=m -# CONFIG_USB_BERRY_CHARGE is not set -CONFIG_USB_LED=m -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGET is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_FTDI_ELAN is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -CONFIG_USB_TEST=m -# CONFIG_USB_ISIGHTFW is not set -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA25X is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_PXA27X is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_S3C2410 is not set -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -CONFIG_USB_GADGET_DUALSPEED=y -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=m -CONFIG_USB_ETH_RNDIS=y -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_CDC_COMPOSITE is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_UNSAFE_RESUME=y - -# -# MMC/SD Card Drivers -# -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=y -# CONFIG_MMC_TEST is not set - -# -# MMC/SD Host Controller Drivers -# -# CONFIG_MMC_SDHCI is not set -CONFIG_MMC_OMAP_HS=y -CONFIG_MMC_SPI=m -CONFIG_OMAP_HS_MMC1=y -CONFIG_OMAP_HS_MMC2=y -CONFIG_OMAP_HS_MMC3=y -CONFIG_TIWLAN_SDIO=y -CONFIG_TIWLAN_MMC_CONTROLLER=3 -# CONFIG_MMC_SPI is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -# CONFIG_LEDS_OMAP_DEBUG is not set -# CONFIG_LEDS_OMAP is not set -# CONFIG_LEDS_OMAP_PWM is not set -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_PCA955X is not set - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -CONFIG_RTC_DRV_TWL4030=y -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set - -# -# SPI RTC drivers -# -# CONFIG_RTC_DRV_M41T94 is not set -# CONFIG_RTC_DRV_DS1305 is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RS5C348 is not set - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_V3020 is not set - -# -# on-CPU RTC drivers -# -# CONFIG_DMADEVICES is not set - -# -# Voltage and Current regulators -# -# CONFIG_REGULATOR is not set -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_UIO is not set - -# -# CBUS support -# -# CONFIG_CBUS is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_EXT4DEV_FS is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -# CONFIG_XFS_QUOTA is not set -# CONFIG_XFS_POSIX_ACL is not set -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_QUOTA=y -# CONFIG_QUOTA_NETLINK_INTERFACE is not set -CONFIG_PRINT_QUOTA_WARNING=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QUOTACTL=y -# CONFIG_AUTOFS_FS is not set -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -CONFIG_JFFS2_SUMMARY=y -CONFIG_JFFS2_FS_XATTR=y -CONFIG_JFFS2_FS_POSIX_ACL=y -CONFIG_JFFS2_FS_SECURITY=y -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_LZO=y -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_CRAMFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -CONFIG_ROOT_NFS=y -# CONFIG_NFSD is not set -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set -CONFIG_CIFS=y -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_XATTR is not set -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -# CONFIG_EFI_PARTITION is not set -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_UTF8 is not set -# CONFIG_DLM is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -CONFIG_SCHEDSTATS=y -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_SG is not set -CONFIG_FRAME_POINTER=y -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -# CONFIG_FTRACE is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_CONTEXT_SWITCH_TRACER is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_HASH=m -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_GF128MUL=m -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_CRYPTD=m -# CONFIG_CRYPTO_AUTHENC is not set -CONFIG_CRYPTO_TEST=m - -# -# Authenticated Encryption with Associated Data -# -# CONFIG_CRYPTO_CCM is not set -# CONFIG_CRYPTO_GCM is not set -# CONFIG_CRYPTO_SEQIV is not set - -# -# Block modes -# -CONFIG_CRYPTO_CBC=y -# CONFIG_CRYPTO_CTR is not set -# CONFIG_CRYPTO_CTS is not set -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -# CONFIG_CRYPTO_XTS is not set - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=m -CONFIG_CRYPTO_XCBC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_MICHAEL_MIC=y -# CONFIG_CRYPTO_RMD128 is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RMD256 is not set -# CONFIG_CRYPTO_RMD320 is not set -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -# CONFIG_CRYPTO_SALSA20 is not set -# CONFIG_CRYPTO_SEED is not set -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=m -# CONFIG_CRYPTO_LZO is not set -CONFIG_CRYPTO_HW=y - -# -# Library routines -# -CONFIG_BITREVERSE=y -# CONFIG_GENERIC_FIND_FIRST_BIT is not set -# CONFIG_GENERIC_FIND_NEXT_BIT is not set -CONFIG_CRC_CCITT=y -CONFIG_CRC16=m -CONFIG_CRC_T10DIF=y -CONFIG_CRC_ITU_T=y -CONFIG_CRC32=y -CONFIG_CRC7=y -CONFIG_LIBCRC32C=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y diff --git a/packages/pandora-system/pandora-libpnd.bb b/packages/pandora-system/pandora-libpnd.bb new file mode 100755 index 0000000..50a13c8 --- /dev/null +++ b/packages/pandora-system/pandora-libpnd.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "Support for the PND format in Pandora images (lib, daemon, init script etc.)" +LICENSE = "lGPL" + +PR = "r1" + +SRC_URI = " \ + git://openpandora.org/pandora-libraries.git;protocol=git;branch=master \ +" + +SRCREV = "886aeeeba3b074ebb92be3d9ac1d961a156163a9" + +S = "${WORKDIR}/git" + + +SRC_URI += " \ +# file://wlan_cu_makefile.patch;patch=1 \ +" + +do_compile_prepend() { + cd ${S}/ +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/wlan_cu ${D}${bindir} +# install -m 0755 ${S}/tiwlan_loader ${D}${bindir} +} + +FILES_${PN} += "${bindir} ${sbindir} ${bindir}/wlan_cu ${bindir}/tiwlan_loader" diff --git a/packages/pandora-system/pandora-wifi-tools_git.bb b/packages/pandora-system/pandora-wifi-tools_git.bb index 52fff61..482caf9 100755 --- a/packages/pandora-system/pandora-wifi-tools_git.bb +++ b/packages/pandora-system/pandora-wifi-tools_git.bb @@ -3,7 +3,7 @@ LICENSE = "GPLv2" DEPENDS = "pandora-wifi" -PR = "r3" +PR = "r3.2" # Check the include for the source location/GIT SRCREV etc. require pandora-wifi.inc @@ -19,6 +19,10 @@ do_compile_prepend() { cd ${S}/sta_dk_4_0_4_32/CUDK/CLI/ } +#do_compile_append() { +# cd ${S}/sta_dk_4_0_4_32/CUDK/tiwlan_loader/ && oe_runmake CC=${TARGET_PREFIX}gcc AR= +#} + do_install() { install -d ${D}${bindir} install -m 0755 ${S}/wlan_cu ${D}${bindir} diff --git a/packages/pandora-system/pandora-wifi.inc b/packages/pandora-system/pandora-wifi.inc index 05020a0..98fe395 100755 --- a/packages/pandora-system/pandora-wifi.inc +++ b/packages/pandora-system/pandora-wifi.inc @@ -8,6 +8,8 @@ S = "${WORKDIR}/git" inherit module +PARALLEL_MAKE = "" + EXTRA_OEMAKE = " \ 'KERNELVER=${KERNEL_VERSION}' \ 'LINUXSRC=${STAGING_KERNEL_DIR}' \ @@ -16,6 +18,7 @@ EXTRA_OEMAKE = " \ COMPATIBLE_MACHINE = "omap3-pandora" +#Warning: Here be hacks as the build system is a little nuts. MAKE_TARGETS = "BUILD=debug ARCH=arm CROSS_COMPILE=${TARGET_PREFIX} KERNEL_DIR=${STAGING_KERNEL_DIR} OUTPUT_DIR=${S} AR=ar" KCFLAGS = "-D__KERNEL__ -DMODULE \ diff --git a/packages/pandora-system/pandora-wifi/0011-Add-in-the-start-of-wireless-extensions-support-ioc.patch b/packages/pandora-system/pandora-wifi/0011-Add-in-the-start-of-wireless-extensions-support-ioc.patch new file mode 100755 index 0000000..a354b03 --- /dev/null +++ b/packages/pandora-system/pandora-wifi/0011-Add-in-the-start-of-wireless-extensions-support-ioc.patch @@ -0,0 +1,1963 @@ +From ff10751bd182684f71ac7f572c06fb1fc662e5e0 Mon Sep 17 00:00:00 2001 +From: David-John Willis +Date: Tue, 3 Mar 2009 20:36:24 +0000 +Subject: [PATCH] Add in the start of wireless extensions support (ioctl stuff). + +--- + sta_dk_4_0_4_32/Makefile | 1 + + sta_dk_4_0_4_32/pform/linux/src/iw_ioctl.c | 1906 ++++++++++++++++++++++++++++ + sta_dk_4_0_4_32/pform/linux/src/osapi.c | 7 +- + 3 files changed, 1913 insertions(+), 1 deletions(-) + mode change 100644 => 100755 sta_dk_4_0_4_32/Makefile + create mode 100755 sta_dk_4_0_4_32/pform/linux/src/iw_ioctl.c + mode change 100644 => 100755 sta_dk_4_0_4_32/pform/linux/src/osapi.c + +diff --git a/sta_dk_4_0_4_32/Makefile b/sta_dk_4_0_4_32/Makefile +old mode 100644 +new mode 100755 +index 76fbe48..339cfd5 +--- a/sta_dk_4_0_4_32/Makefile ++++ b/sta_dk_4_0_4_32/Makefile +@@ -61,6 +61,7 @@ OS_SRCS = \ + $(DK_ROOT)/pform/linux/src/ioctl_utils.c \ + $(DK_ROOT)/pform/linux/src/osRgstry_parser.c \ + $(DK_ROOT)/pform/linux/src/ipc_k.c \ ++ $(DK_ROOT)/pform/linux/src/iw_ioctl.c \ + $(DK_ROOT)/pform/linux/src/proc_stat.c + + ifeq ($(DRIVER_PROFILING),y) +diff --git a/sta_dk_4_0_4_32/pform/linux/src/iw_ioctl.c b/sta_dk_4_0_4_32/pform/linux/src/iw_ioctl.c +new file mode 100755 +index 0000000..3b02424 +--- /dev/null ++++ b/sta_dk_4_0_4_32/pform/linux/src/iw_ioctl.c +@@ -0,0 +1,1906 @@ ++/* ioctl() (mostly Linux Wireless Extensions) routines for TI 1251 driver */ ++ ++#include ++#include ++#include ++#include ++#include "osAdapter.h" ++#include "tiioctl.h" ++#include "paramOut.h" ++#include "osUtil.h" ++#include "srcApi.h" ++#include "configMgr.h" ++#include "esta_drv.h" ++#include "osUtil.h" ++#include "scanMngrTypes.h" ++#include "scanMngrTypes.h" ++ ++#define IOCTL_DBG 1 ++ ++static const long freq_list[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442, ++ 2447, 2452, 2457, 2462, 2467, 2472, 2484 }; ++#define FREQ_COUNT (sizeof(freq_list) / sizeof(freq_list[0])) ++#define MAX_SSID_LEN 32 ++#define MAX_NAME_LEN 32 /* this is assumed to be equal to MAX_SSID_LEN */ ++#define VAL_DEFAULT_KEY_ID 110 ++#define WEP_KEYS 4 ++//#define MEGA 1e6 ++ ++scan_Params_t iw_appScanParams; ++scan_Policy_t iw_scanPolicy; ++ ++void init_scan_params(void) ++{ ++ int i,j; ++ ++ /* init application scan default params */ ++ iw_appScanParams.desiredSsid.len = 0; ++ iw_appScanParams.scanType = SCAN_TYPE_NORMAL_ACTIVE; ++ iw_appScanParams.band = RADIO_BAND_2_4_GHZ; ++ iw_appScanParams.probeReqNumber = 3; ++ iw_appScanParams.probeRequestRate = DRV_RATE_MASK_2_BARKER; ++ iw_appScanParams.numOfChannels = 11; ++ for ( i = 0; i < 11; i++ ) ++ { ++ for ( j = 0; j < 6; j++ ) ++ { ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.bssId.addr[ j ] = 0xff; ++ } ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.earlyTerminationEvent = SCAN_ET_COND_DISABLE; ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.ETMaxNumOfAPframes = 0; ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.maxChannelDwellTime = 60000; ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.minChannelDwellTime = 30000; ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.txPowerDbm = MAX_POWER_LEVEL; ++ iw_appScanParams.channelEntry[ i ].normalChannelEntry.channel = i + 1; ++ } ++ ++ /* init default scan policy */ ++ iw_scanPolicy.normalScanInterval = 10000; ++ iw_scanPolicy.deterioratingScanInterval = 5000; ++ iw_scanPolicy.maxTrackFailures = 3; ++ iw_scanPolicy.BSSListSize = 4; ++ iw_scanPolicy.BSSNumberToStartDiscovery = 1; ++ iw_scanPolicy.numOfBands = 1; ++ iw_scanPolicy.bandScanPolicy[ 0 ].band = RADIO_BAND_2_4_GHZ; ++ iw_scanPolicy.bandScanPolicy[ 0 ].rxRSSIThreshold = -80; ++ iw_scanPolicy.bandScanPolicy[ 0 ].numOfChannles = 11; ++ iw_scanPolicy.bandScanPolicy[ 0 ].numOfChannlesForDiscovery = 3; ++ for ( i = 0; i < 11; i++ ) ++ { ++ iw_scanPolicy.bandScanPolicy[ 0 ].channelList[ i ] = i + 1; ++ } ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.maxChannelDwellTime = 30000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.minChannelDwellTime = 15000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_1_BARKER; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3; ++ iw_scanPolicy.bandScanPolicy[ 0 ].trackingMethod.method.basicMethodParams.probReqParams.txPowerDbm = 1; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.maxChannelDwellTime = 30000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.minChannelDwellTime = 15000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_2_BARKER; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3; ++ iw_scanPolicy.bandScanPolicy[ 0 ].discoveryMethod.method.basicMethodParams.probReqParams.txPowerDbm = 1; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.scanType = SCAN_TYPE_NORMAL_ACTIVE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.earlyTerminationEvent = SCAN_ET_COND_DISABLE; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.ETMaxNumberOfApFrames = 0; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.maxChannelDwellTime = 30000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.minChannelDwellTime = 15000; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.bitrate = DRV_RATE_MASK_5_5_CCK; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.numOfProbeReqs = 3; ++ iw_scanPolicy.bandScanPolicy[ 0 ].immediateScanMethod.method.basicMethodParams.probReqParams.txPowerDbm = 1; ++} ++ ++static int iw_get_name(struct net_device *dev, ++ struct iw_request_info *info, ++ char *name, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++/* ++ u8 rates[10]; ++ int len, i, over2 = 0; ++ ++ len = iw_get_datarates(dev, rates); ++ ++ for (i = 0; i < len; i++) { ++ if (rates[i] == 0x0b || rates[i] == 0x16) { ++ over2 = 1; ++ break; ++ } ++ } ++*/ ++ strcpy(name, "IEEE 802.11g"); ++ ++ return 0; ++} ++ ++static int iw_ioctl_siwencode(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *erq, char *keybuf) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ cipherSuite_e cipher; ++ int i; ++ ULONG len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ i = erq->flags & IW_ENCODE_INDEX; ++ if (i < 1 || i > 4) ++ { ++ UINT32 ID = VAL_DEFAULT_KEY_ID; ++ ULONG ID_size = 4; ++ UtilInfoCodeQueryInformation(pAdapter, (UINT8 *)&ID, &ID_size); ++ i = *((UINT8 *)&ID); ++ } ++ else ++ i--; ++ if (i < 0 || i >= WEP_KEYS) ++ return -EINVAL; ++ ++ UtilWepStatusGet(pAdapter, (UINT8 *)&cipher, &len); ++ ++ if (erq->flags & IW_ENCODE_DISABLED) { ++ cipherSuite_e val=RSN_CIPHER_NONE; ++ UtilWepStatusSet(pAdapter, (UINT8 *)&val, sizeof(val)); ++ goto done; ++ } ++ else ++ { ++ if (erq->length > 0) { ++ OS_802_11_WEP wep; ++ int len = erq->length <= 5 ? 5 : 13; ++ ++ cipherSuite_e val=RSN_CIPHER_WEP; ++ UtilWepStatusSet(pAdapter, (UINT8 *)&val, sizeof(val)); ++ ++ if (len > erq->length) ++ memset(keybuf + erq->length, 0, len - erq->length); ++ memcpy(wep.KeyMaterial, keybuf, len); ++ wep.Length = sizeof(wep); ++ wep.KeyIndex = i; ++ wep.KeyLength = len; ++ UtilAddWep(pAdapter, (UINT8 *)&wep, wep.Length, true); ++ } else { ++ /* No key data - just set the default TX key index */ ++ securityKeys_t key; ++ UINT8 data[5]; ++ ++ memset(&key, 0, sizeof(securityKeys_t)); ++ key.keyIndex = i; ++ if (!UtilWepKeyGet(pAdapter, (UINT8 *)&key, sizeof(securityKeys_t))) ++ { ++ if (key.encLen > 0) ++ { ++ *(UINT32 *)data = VAL_DEFAULT_KEY_ID; ++ data[4] = i; ++ UtilInfoCodeSetInformation(pAdapter, data, 5); ++ if (cipher == RSN_CIPHER_NONE) ++ { ++ cipherSuite_e val=RSN_CIPHER_WEP; ++ UtilWepStatusSet(pAdapter, (UINT8 *)&val, sizeof(val)); ++ } ++ } ++ else ++ return -EINVAL; ++ } ++ else ++ return -EINVAL; ++ } ++ } ++done: ++ if (erq->flags & IW_ENCODE_OPEN) ++ { ++ UINT8 MixedMode = true; ++ UtilSetMixedMode(pAdapter, &MixedMode, 1); ++ } ++ else ++ { ++ UINT8 MixedMode = false; ++ UtilSetMixedMode(pAdapter, &MixedMode, 1); ++ } ++ return 0; ++} ++ ++ ++static int iw_ioctl_giwencode(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *erq, char *key) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ cipherSuite_e cipher; ++ ULONG len, i; ++ UINT8 MixedMode; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ i = erq->flags & IW_ENCODE_INDEX; ++ if (i < 1 || i > 4) ++ { ++ UINT32 ID = VAL_DEFAULT_KEY_ID; ++ ULONG ID_size = 4; ++ UtilInfoCodeQueryInformation(pAdapter, (UINT8 *)&ID, &ID_size); ++ i = *((UINT8 *)&ID); ++ } ++ else ++ i--; ++ if (i < 0 || i >= WEP_KEYS) ++ return -EINVAL; ++ ++ UtilWepStatusGet(pAdapter, (UINT8 *)&cipher, &len); ++ erq->flags = i + 1; ++ ++#if IOCTL_DBG ++ printk("%s Call cipher=%d\n", __FUNCTION__, cipher); ++#endif ++ ++ if (cipher == RSN_CIPHER_NONE) { ++ erq->length = 0; ++ erq->flags |= IW_ENCODE_DISABLED; ++ } ++ else ++ { ++ securityKeys_t wkey; ++ /* only WEP is supported with wireless extensions, so just ++ * report that encryption is used */ ++ memset(&wkey, 0, sizeof(securityKeys_t)); ++ wkey.keyIndex = i; ++ if (!UtilWepKeyGet(pAdapter, (PUCHAR)&wkey, sizeof(securityKeys_t))) ++ { ++ printk("iw_ioctl_giwencode KeyIndex %x , keyLength=%d\n", ++ wkey.keyIndex, wkey.encLen); ++ if (wkey.encLen > 0) ++ { ++ int j; ++ erq->length = wkey.encLen; ++ memcpy(key, wkey.encKey, erq->length); ++ printk("key = "); ++ for (j=0;jlength;j++) ++ printk("%02x ", *(key+j)); ++ printk("\n"); ++ erq->flags |= IW_ENCODE_ENABLED; ++ } ++ else ++ { ++ erq->length = 0; ++ erq->flags |= IW_ENCODE_DISABLED; ++ } ++ } ++ else ++ { ++ erq->length = 0; ++ erq->flags |= IW_ENCODE_DISABLED; ++ } ++ } ++ ++ UtilGetMixedMode(pAdapter, RSN_MIXED_MODE, &MixedMode, &len); ++ if (MixedMode) ++ erq->flags |= IW_ENCODE_OPEN; ++ else ++ erq->flags |= IW_ENCODE_RESTRICTED; ++ ++ ++ return 0; ++} ++ ++static int iw_ioctl_siwrate(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (!rrq->fixed) ++ val = 0; ++ else ++ val = (rrq->value*2/1000000); ++ ++ return UtilDesiredRatesSet(pAdapter, (UINT8 *)&val, 4); ++} ++ ++ ++static int iw_ioctl_giwrate(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG val=0, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (UtilCurrentRatesGet(pAdapter, (UINT8 *)&val, &len)) ++ return -EINVAL; ++ ++ if (val > 0) ++ { ++ rrq->fixed = 1; ++ rrq->value = (val*1000000/2); ++ } ++ else ++ { ++ rrq->fixed = 1; ++ rrq->value = 54*1000000; ++ } ++ ++ return 0; ++} ++ ++static UINT8 list_buf[10000]; ++/* Deprecated in new wireless extension API */ ++static int iw_ioctl_giwaplist(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++ ++#if 1 ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ struct sockaddr addr[IW_MAX_AP]; ++ struct iw_quality qual[IW_MAX_AP]; ++ UINT32 number_items; ++ ULONG len=10000; ++ OS_802_11_BSSID_EX *bssid; ++ OS_802_11_BSSID_LIST_EX *list; ++ int i; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ printk("iw_ioctl_giwaplist\n"); ++ memset(list_buf, 0, 10000); ++ UtilBssidListGet(pAdapter, list_buf, &len, TRUE, FALSE); ++ ++ list = (OS_802_11_BSSID_LIST_EX *) list_buf; ++ bssid = &list->Bssid[0]; ++ printk("bssid 0x%x\n",bssid); ++ number_items = list->NumberOfItems; ++ printk("number_items 0x%x\n",number_items); ++ ++ data->length = number_items; ++ ++ for (i=0;iMacAddress, 6); ++ //memset((UINT8 *)qual[i], 0, size(struct iw_quality)); ++ qual[i].qual = bssid->Rssi; ++ qual[i].level = 0; ++ qual[i].noise = 0; ++ qual[i].updated = 7; ++ bssid = (OS_802_11_BSSID_EX *) (((char *) bssid) + bssid->Length); ++ } ++ ++ memcpy(extra, &addr, sizeof(addr[0]) * data->length); ++ data->flags = 1; /* has quality information */ ++ memcpy(extra + sizeof(addr[0]) * data->length, &qual, ++ sizeof(qual[0]) * data->length); ++ ++ return 0; ++#endif ++} ++ ++ ++static int iw_ioctl_siwrts(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rts, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (rts->disabled) ++ val = 2347; ++ else if (rts->value < 0 || rts->value > 2347) ++ return -EINVAL; ++ else ++ val = rts->value; ++ ++ UtilRtsThresholdSet(pAdapter, (UINT8 *)&val, 4); ++ ++ return 0; ++} ++ ++static int iw_ioctl_giwrts(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rts, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (UtilRtsThresholdGet(pAdapter, (UINT8 *)&val, &len)) ++ return -EINVAL; ++ if (val >= 2347) val = 2347; ++ rts->value = val; ++ rts->disabled = (rts->value == 2347); ++ rts->fixed = 1; ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwfrag(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rts, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (rts->disabled) ++ val = 2346; ++ else if (rts->value < 256 || rts->value > 2346) ++ return -EINVAL; ++ else ++ val = rts->value & ~0x1; /* even numbers only */ ++ ++ if (UtilFragmentationThresholdSet(pAdapter, (UINT8 *)&val, 4)) ++ return -EINVAL; ++ ++ return 0; ++} ++ ++static int iw_ioctl_giwfrag(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rts, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (UtilFragmentationThresholdGet(pAdapter, (UINT8 *)&val, &len)) ++ return -EINVAL; ++ ++ if (val >= 2346) val = 2346; ++ rts->value = val; ++ rts->disabled = (rts->value == 2346); ++ rts->fixed = 1; ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwap(struct net_device *dev, ++ struct iw_request_info *info, ++ struct sockaddr *ap_addr, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ return UtilSetBSSID(pAdapter, (UINT8 *)&ap_addr->sa_data, ETH_ALEN); ++} ++ ++static int iw_ioctl_giwap(struct net_device *dev, ++ struct iw_request_info *info, ++ struct sockaddr *ap_addr, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ ap_addr->sa_family = ARPHRD_ETHER; ++ return UtilGetBSSID(pAdapter, (UINT8 *)&ap_addr->sa_data, &len); ++} ++ ++static int iw_ioctl_giwnickn(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *nickname) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ data->length = 7; ++ memcpy(nickname, "ti 1250", 7); ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwfreq(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_freq *freq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (freq->m == -1) ++ return -EOPNOTSUPP; ++ ++ /* freq => chan. */ ++ if (freq->e == 1 && ++ freq->m / 100000 >= freq_list[0] && ++ freq->m / 100000 <= freq_list[FREQ_COUNT - 1]) { ++ int ch; ++ int fr = freq->m / 100000; ++ for (ch = 0; ch < FREQ_COUNT; ch++) { ++ if (fr == freq_list[ch]) { ++ freq->e = 0; ++ freq->m = ch + 1; ++ break; ++ } ++ } ++ } ++ ++ if (freq->e != 0 || freq->m < 1 || freq->m > FREQ_COUNT) ++ return -EINVAL; ++ ++ UtilDesiredChannelSet(pAdapter, (UINT8 *)&freq->m, 1); ++ ++ return 0; ++} ++ ++static int iw_ioctl_giwfreq(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_freq *freq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ UtilDesiredChannelGet(pAdapter, (UINT8 *)&val, &len); ++ if (val < 1 || val > FREQ_COUNT) ++ return -EINVAL; ++ ++ freq->m = freq_list[val - 1] * 100000; ++ freq->e = 1; ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwessid(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *ssid) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ OS_802_11_SSID essid; ++ OS_802_11_MAC_ADDRESS bssid = { 0xff,0xff,0xff,0xff,0xff,0xff }; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ ++ UtilSetBSSID(pAdapter, (UINT8 *)&bssid, sizeof(OS_802_11_MAC_ADDRESS)); ++ ++ memset(&essid, 0, sizeof(OS_802_11_SSID)); ++ memcpy(essid.Ssid, ssid, data->length); ++ essid.SsidLength = data->length; ++ ++ if (UtilSetSSID(pAdapter, (UINT8 *)&essid, sizeof(OS_802_11_SSID))){ ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int iw_ioctl_giwessid(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *essid) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG len=36; ++ OS_802_11_SSID ssid; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ memset(&ssid, 0, sizeof(OS_802_11_SSID)); ++ data->flags = 1; /* active */ ++ UtilGetSSID(pAdapter, (UINT8 *)&ssid, &len); ++ data->length = ssid.SsidLength; ++ memcpy(essid, ssid.Ssid, ssid.SsidLength); ++ ++ return 0; ++} ++ ++static int iw_ioctl_siwmode(struct net_device *dev, ++ struct iw_request_info *info, ++ __u32 *mode, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (*mode > IW_MODE_INFRA) ++ return -EOPNOTSUPP; ++ ++ switch (*mode) ++ { ++ case IW_MODE_AUTO: ++ val = 2; ++ break; ++ case IW_MODE_ADHOC: ++ val = 0; ++ break; ++ case IW_MODE_INFRA: ++ val = 1; ++ break; ++ default: ++ val = 1; ++ } ++ ++ UtilInfrastructureModeSet(pAdapter, (UINT8 *)&val, 4); ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_giwmode(struct net_device *dev, ++ struct iw_request_info *info, ++ __u32 *mode, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ULONG val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ UtilInfrastructureModeGet(pAdapter, (UINT8 *)&val, &len); ++ switch (val) { ++ case 0: ++ *mode = IW_MODE_ADHOC; ++ break; ++ case 1: ++ *mode = IW_MODE_INFRA; ++ break; ++ case 2: ++ *mode = IW_MODE_AUTO; ++ break; ++ default: ++ *mode = IW_MODE_INFRA; ++ break; ++ } ++ return 0; ++} ++ ++int ++iw_ioctl_siwsens(struct ieee80211com *ic, ++ struct iw_request_info *info, ++ struct iw_param *sens, char *extra) ++{ ++ return 0; ++} ++ ++int ++iw_ioctl_giwsens(struct ieee80211com *ic, ++ struct iw_request_info *info, ++ struct iw_param *sens, char *extra) ++{ ++ sens->value = 3; ++ sens->fixed = 1; ++ ++ return 0; ++} ++ ++int ++iw_ioctl_giwrange(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ struct iw_range *range = (struct iw_range *) extra; ++ ULONG val, len, i; ++ rates_t rateSet; ++ ++ data->length = sizeof(struct iw_range); ++ memset(range, 0, sizeof(struct iw_range)); ++ ++ /* TODO: could fill num_txpower and txpower array with ++ * something; however, there are 128 different values.. */ ++ ++ range->txpower_capa = IW_TXPOW_DBM; ++ ++ UtilInfrastructureModeGet(pAdapter, (UINT8 *)&val, &len); ++ range->min_pmp = 1 * 1024; ++ range->max_pmp = 65535 * 1024; ++ range->min_pmt = 1 * 1024; ++ range->max_pmt = 1000 * 1024; ++ range->pmp_flags = IW_POWER_PERIOD; ++ range->pmt_flags = IW_POWER_TIMEOUT; ++ range->pm_capa = IW_POWER_PERIOD | IW_POWER_TIMEOUT | ++ IW_POWER_UNICAST_R | IW_POWER_ALL_R; ++ ++ range->we_version_compiled = WIRELESS_EXT; ++ range->we_version_source = 18; ++ ++ range->retry_capa = IW_RETRY_LIMIT; ++ range->retry_flags = IW_RETRY_LIMIT; ++ range->min_retry = 0; ++ range->max_retry = 255; ++ ++ range->num_channels = FREQ_COUNT; /* XXX */ ++ ++ val = 0; ++ for (i = 0; i < FREQ_COUNT; i++) { ++ range->freq[val].i = i + 1; ++ range->freq[val].m = freq_list[i] * 100000; ++ range->freq[val].e = 1; ++ val++; ++ if (val == IW_MAX_FREQUENCIES) ++ break; ++ } ++ range->num_frequency = val; ++ ++ /* Max quality is max field value minus noise floor */ ++ range->max_qual.qual = 0xff - 161; ++ ++ /* ++ * In order to use dBm measurements, 'level' must be lower ++ * than any possible measurement (see iw_print_stats() in ++ * wireless tools). It's unclear how this is meant to be ++ * done, but setting zero in these values forces dBm and ++ * the actual numbers are not used. ++ */ ++ range->max_qual.level = 0; ++ range->max_qual.noise = 0; ++ ++ range->sensitivity = 3; ++ ++ range->max_encoding_tokens = WEP_KEYS; ++ /* XXX query driver to find out supported key sizes */ ++ range->num_encoding_sizes = 2; ++ range->encoding_size[0] = 5; /* 40-bit */ ++ range->encoding_size[1] = 13; /* 104-bit */ ++ ++ /* XXX this only works for station mode */ ++ UtilGetParam(pAdapter, SITE_MGR_DESIRED_SUPPORTED_RATE_SET_PARAM, (PUCHAR)&rateSet, sizeof(rates_t)); ++ range->num_bitrates = 0; ++ for (i = 0; i < rateSet.len; i++) { ++ if (range->num_bitrates < IW_MAX_BITRATES) { ++ range->bitrate[range->num_bitrates] = ++ rateSet.ratesString[i] * 2 / 1000000; ++ range->num_bitrates++; ++ } ++ } ++ ++ /* estimated maximum TCP throughput values (bps) */ ++ range->throughput = 5500000; ++ ++ range->min_rts = 0; ++ range->max_rts = 2347; ++ range->min_frag = 256; ++ range->max_frag = 2346; ++ ++#if WIRELESS_EXT > 16 ++ /* Event capability (kernel + driver) */ ++ range->event_capa[0] = (IW_EVENT_CAPA_K_0 | ++ IW_EVENT_CAPA_MASK(SIOCGIWTHRSPY) | ++ IW_EVENT_CAPA_MASK(SIOCGIWAP) | ++ IW_EVENT_CAPA_MASK(SIOCGIWSCAN)); ++ range->event_capa[1] = IW_EVENT_CAPA_K_1; ++ range->event_capa[4] = (IW_EVENT_CAPA_MASK(IWEVTXDROP) | ++ IW_EVENT_CAPA_MASK(IWEVCUSTOM) | ++ IW_EVENT_CAPA_MASK(IWEVREGISTERED) | ++ IW_EVENT_CAPA_MASK(IWEVEXPIRED)); ++#endif /* WIRELESS_EXT > 16 */ ++ ++#if WIRELESS_EXT > 17 ++ range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 | ++ IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP; ++#endif /* WIRELESS_EXT > 17 */ ++ ++ return 0;} ++ ++static int iw_ioctl_siwpower(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *wrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ UINT32 val=POWER_MODE_ACTIVE; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ ++ if (wrq->disabled) ++ { ++ UtilPowerModeSet(pAdapter, (UINT8 *)&val, sizeof(PowerMgr_PowerMode_e)); ++ return 0; ++ } ++ ++ switch (wrq->flags & IW_POWER_MODE) { ++ case IW_POWER_UNICAST_R: ++ case IW_POWER_ALL_R: ++ case IW_POWER_ON: ++ val = POWER_MODE_AUTO; ++ UtilPowerModeSet(pAdapter, &val, sizeof(PowerMgr_PowerMode_e)); ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ if (wrq->flags & IW_POWER_TIMEOUT) { ++ return -EOPNOTSUPP; ++ } ++ if (wrq->flags & IW_POWER_PERIOD) { ++ return -EOPNOTSUPP; ++ } ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_giwpower(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ UINT32 val=POWER_MODE_ACTIVE, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ UtilPowerModeGet(pAdapter, (UINT8 *)&val, &len); ++ ++ if (val==POWER_MODE_ACTIVE) { ++ rrq->disabled = 1; ++ return 0; ++ } ++ ++ rrq->disabled = 0; ++ ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwretry(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (rrq->disabled) ++ return -EINVAL; ++ ++ if (rrq->flags & IW_RETRY_LIMIT) { ++ if (rrq->flags & IW_RETRY_MAX) ++ UtilLongRetrySet(pAdapter, (UINT8 *)&(rrq->value), sizeof(rrq->value)); ++ else if (rrq->flags & IW_RETRY_MIN) ++ UtilShortRetrySet(pAdapter, (UINT8 *)&(rrq->value), sizeof(rrq->value)); ++ else { ++ UtilLongRetrySet(pAdapter, (UINT8 *)&(rrq->value), sizeof(rrq->value)); ++ UtilShortRetrySet(pAdapter, (UINT8 *)&(rrq->value), sizeof(rrq->value)); ++ } ++ return 0; ++ } ++ ++ return -EOPNOTSUPP; ++} ++ ++static int iw_ioctl_giwretry(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u16 shortretry, longretry; ++ ULONG len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ if (UtilShortRetryGet(pAdapter, (UINT8 *)&shortretry, &len)!=0 || ++ UtilLongRetryGet(pAdapter, (UINT8 *)&longretry, &len)!=0) ++ return -EINVAL; ++ ++ rrq->disabled = 0; ++ ++ if ((rrq->flags & IW_RETRY_TYPE) == IW_RETRY_LIFETIME) { ++ return -EOPNOTSUPP; ++ } else { ++ if ((rrq->flags & IW_RETRY_MAX)) { ++ rrq->flags = IW_RETRY_LIMIT | IW_RETRY_MAX; ++ rrq->value = longretry; ++ } else { ++ rrq->flags = IW_RETRY_LIMIT; ++ rrq->value = shortretry; ++ if (shortretry != longretry) ++ rrq->flags |= IW_RETRY_MIN; ++ } ++ } ++ return 0; ++} ++ ++ ++static int iw_ioctl_siwtxpow(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ return -EOPNOTSUPP; ++} ++ ++static int iw_ioctl_giwtxpow(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *rrq, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ INT8 val; ++ ULONG len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ ++ UtilTxPowerLevelDbmGet(pAdapter, &val, &len); ++ rrq->flags = IW_TXPOW_DBM; ++ rrq->value = val; ++ rrq->disabled = 0; ++ rrq->fixed = 0; ++ ++ return 0; ++} ++ ++u32 scan_TimeStamp; ++ ++static int iw_ioctl_siwscan(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ int ret; ++ ++ scan_TimeStamp = jiffies; ++ init_scan_params(); ++ ++ ret = UtilStartAppScanSet(pAdapter, (PCHAR)&iw_appScanParams, sizeof(iw_appScanParams)); ++ ++ return ret; ++} ++ ++static inline int iw_scan_list(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ UINT32 number_items; ++ ULONG len=10000; ++ OS_802_11_BSSID_EX *bssid; ++ OS_802_11_BSSID_LIST_EX *list; ++ int i, j; ++ struct iw_event iwe; ++ char *current_ev = extra; ++ char *end_buf = extra + data->length; ++ u16 capabilities; ++ char *current_val; ++ char buf[64 * 2 + 30]; ++ OS_802_11_VARIABLE_IEs *pVarIes; ++ int IELen; ++ int chan; ++ u8 *pos; ++ spinlock_t lock; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ memset(list_buf, 0, 10000); ++ UtilBssidListGet(pAdapter, list_buf, &len, TRUE, FALSE); ++ ++ list = (OS_802_11_BSSID_LIST_EX *) list_buf; ++ bssid = &list->Bssid[0]; ++ number_items = list->NumberOfItems; ++ ++ spin_lock_bh(&lock); ++ for (i=0;iMacAddress, ETH_ALEN); ++ iwe.len = IW_EV_ADDR_LEN; ++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, ++ IW_EV_ADDR_LEN); ++ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = SIOCGIWESSID; ++ iwe.u.data.length = bssid->Ssid.SsidLength; ++ iwe.u.data.flags = 1; ++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length; ++// printk("essid=%s len=%d\n", bssid->Ssid.Ssid, bssid->Ssid.SsidLength); ++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, (char *)bssid->Ssid.Ssid); ++ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = SIOCGIWMODE; ++ capabilities = bssid->Union.Capabilities; ++ if (capabilities & (WLAN_CAPABILITY_BSS | ++ WLAN_CAPABILITY_IBSS)) { ++ if (capabilities & WLAN_CAPABILITY_BSS) ++ iwe.u.mode = IW_MODE_MASTER; ++ else ++ iwe.u.mode = IW_MODE_ADHOC; ++ iwe.len = IW_EV_UINT_LEN; ++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, ++ IW_EV_UINT_LEN); ++ } ++ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = SIOCGIWFREQ; ++ chan = bssid->Configuration.Union.channel; ++ if (chan > 0) { ++ iwe.u.freq.m = chan; ++ iwe.u.freq.e = 1; ++ iwe.len = IW_EV_FREQ_LEN; ++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, ++ IW_EV_FREQ_LEN); ++ } ++ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = IWEVQUAL; ++ iwe.u.qual.qual = bssid->Rssi; ++ iwe.u.qual.level = 0; ++ iwe.u.qual.noise = 0; ++ iwe.u.qual.updated = IW_QUAL_LEVEL_UPDATED ++ | IW_QUAL_NOISE_UPDATED ++ | IW_QUAL_QUAL_INVALID; ++ iwe.len = IW_EV_QUAL_LEN; ++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, ++ IW_EV_QUAL_LEN); ++ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = SIOCGIWENCODE; ++ if (capabilities & WLAN_CAPABILITY_PRIVACY) ++ iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; ++ else ++ iwe.u.data.flags = IW_ENCODE_DISABLED; ++ iwe.u.data.length = 0; ++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length; ++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, ""); ++ ++ /* TODO: add SuppRates into BSS table */ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = SIOCGIWRATE; ++ current_val = current_ev + IW_EV_LCP_LEN; ++ pos = bssid->SupportedRates; ++ for (j = 0; j < sizeof(bssid->SupportedRates); j++) { ++ if (pos[j] == 0) ++ break; ++ /* Bit rate given in 500 kb/s units (+ 0x80) */ ++ iwe.u.bitrate.value = ((pos[j] & 0x7f) * 500000); ++ current_val = iwe_stream_add_value( ++ current_ev, current_val, end_buf, &iwe, ++ IW_EV_PARAM_LEN); ++ } ++ /* Check if we added any event */ ++ if ((current_val - current_ev) > IW_EV_LCP_LEN) ++ current_ev = current_val; ++ ++ /* TODO: add BeaconInt,resp_rate,atim into BSS table */ ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = IWEVCUSTOM; ++ sprintf(buf, "bcn_int=%d", ++ bssid->Configuration.BeaconPeriod); ++ iwe.u.data.length = strlen(buf); ++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, ++ buf); ++ ++ if (capabilities & WLAN_CAPABILITY_IBSS) { ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = IWEVCUSTOM; ++ sprintf(buf, "atim=%d", bssid->Configuration.ATIMWindow); ++ iwe.u.data.length = strlen(buf); ++ current_ev = iwe_stream_add_point(current_ev, end_buf, ++ &iwe, buf); ++ } ++ ++#if 1 ++ IELen = 0; ++ IELen += sizeof(OS_802_11_FIXED_IEs); ++ pVarIes = (OS_802_11_VARIABLE_IEs*)&bssid->IEs[IELen]; ++ while (IELen < bssid->IELength) ++ { ++// printk("IELen=%d pVarIes->ElementID=%d\n", IELen, pVarIes->ElementID); ++ if (pVarIes->ElementID == MFIE_TYPE_RSN || pVarIes->ElementID == MFIE_TYPE_GENERIC) { ++ memset(&iwe, 0, sizeof(iwe)); ++ iwe.cmd = IWEVGENIE; ++ iwe.u.data.length = pVarIes->Length; ++ current_ev = iwe_stream_add_point( ++ current_ev, end_buf, &iwe, (char *)pVarIes); ++ } ++ ++ IELen += (pVarIes->Length + 2); ++ pVarIes = (OS_802_11_VARIABLE_IEs*)&bssid->IEs[IELen]; ++ } ++#endif ++ if ((end_buf - current_ev) <= IW_EV_ADDR_LEN) { ++ /* Ask user space to try again with a bigger buffer */ ++ spin_unlock_bh(&lock); ++ return -E2BIG; ++ } ++// printk("current_ev=%x\n", current_ev); ++ bssid = (OS_802_11_BSSID_EX *) (((char *) bssid) + bssid->Length); ++ } ++ ++ spin_unlock_bh(&lock); ++ return current_ev - extra; ++} ++ ++static int iw_ioctl_giwscan(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val, len; ++ int res; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++#if 0 ++ if (scan_TimeStamp && ++ time_before(jiffies, scan_TimeStamp + 30 * HZ)) { ++ printk("iw_ioctl_giwscan time: 0x%x 0x%x\n",scan_TimeStamp,time_before(jiffies, scan_TimeStamp + 30 * HZ)); ++ return -EAGAIN; ++ } ++#endif ++ if((jiffies - scan_TimeStamp) <= 4 * HZ){ ++ return -EAGAIN; ++ } ++ ++ res = iw_scan_list(dev, info, data, extra); ++// printk("iw_ioctl_giwscan end res=%d\n", res); ++ if (res >= 0) { ++ data->length = res; ++ return 0; ++ } else { ++ data->length = 0; ++ return res; ++ } ++} ++ ++#if 0 ++static const struct iw_priv_args prism2_priv[] = { ++ { iw_ioctl_MONITOR, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "monitor" }, ++ { iw_ioctl_READMIF, ++ IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 1, ++ IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 1, "readmif" }, ++ { iw_ioctl_WRITEMIF, ++ IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 2, 0, "writemif" }, ++ { iw_ioctl_RESET, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "reset" }, ++ { iw_ioctl_INQUIRE, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "inquire" }, ++ { iw_ioctl_SET_RID_WORD, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2, 0, "set_rid_word" }, ++ { iw_ioctl_MACCMD, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "maccmd" }, ++#ifdef PRISM2_USE_WE_TYPE_ADDR ++ { iw_ioctl_WDS_ADD, ++ IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "wds_add" }, ++ { iw_ioctl_WDS_DEL, ++ IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "wds_del" }, ++ { iw_ioctl_ADDMAC, ++ IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "addmac" }, ++ { iw_ioctl_DELMAC, ++ IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "delmac" }, ++ { iw_ioctl_KICKMAC, ++ IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "kickmac" }, ++#else /* PRISM2_USE_WE_TYPE_ADDR */ ++ { iw_ioctl_WDS_ADD, ++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 18, 0, "wds_add" }, ++ { iw_ioctl_WDS_DEL, ++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 18, 0, "wds_del" }, ++ { iw_ioctl_ADDMAC, ++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 18, 0, "addmac" }, ++ { iw_ioctl_DELMAC, ++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 18, 0, "delmac" }, ++ { iw_ioctl_KICKMAC, ++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 18, 0, "kickmac" }, ++#endif /* PRISM2_USE_WE_TYPE_ADDR */ ++ /* --- raw access to sub-ioctls --- */ ++ { iw_ioctl_PRISM2_PARAM, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2, 0, "prism2_param" }, ++ { iw_ioctl_GET_PRISM2_PARAM, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getprism2_param" }, ++#ifdef PRISM2_USE_WE_SUB_IOCTLS ++ /* --- sub-ioctls handlers --- */ ++ { iw_ioctl_PRISM2_PARAM, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "" }, ++ { iw_ioctl_GET_PRISM2_PARAM, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "" }, ++ /* --- sub-ioctls definitions --- */ ++ { PRISM2_PARAM_TXRATECTRL, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "txratectrl" }, ++ { PRISM2_PARAM_TXRATECTRL, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gettxratectrl" }, ++ { PRISM2_PARAM_BEACON_INT, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "beacon_int" }, ++ { PRISM2_PARAM_BEACON_INT, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbeacon_int" }, ++#ifndef PRISM2_NO_STATION_MODES ++ { PRISM2_PARAM_PSEUDO_IBSS, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "pseudo_ibss" }, ++ { PRISM2_PARAM_PSEUDO_IBSS, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getpseudo_ibss" }, ++#endif /* PRISM2_NO_STATION_MODES */ ++ { PRISM2_PARAM_ALC, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "alc" }, ++ { PRISM2_PARAM_ALC, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getalc" }, ++ { PRISM2_PARAM_DUMP, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "dump" }, ++ { PRISM2_PARAM_DUMP, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getdump" }, ++ { PRISM2_PARAM_OTHER_AP_POLICY, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "other_ap_policy" }, ++ { PRISM2_PARAM_OTHER_AP_POLICY, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getother_ap_pol" }, ++ { PRISM2_PARAM_AP_MAX_INACTIVITY, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "max_inactivity" }, ++ { PRISM2_PARAM_AP_MAX_INACTIVITY, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getmax_inactivi" }, ++ { PRISM2_PARAM_AP_BRIDGE_PACKETS, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "bridge_packets" }, ++ { PRISM2_PARAM_AP_BRIDGE_PACKETS, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbridge_packe" }, ++ { PRISM2_PARAM_DTIM_PERIOD, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "dtim_period" }, ++ { PRISM2_PARAM_DTIM_PERIOD, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getdtim_period" }, ++ { PRISM2_PARAM_AP_NULLFUNC_ACK, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "nullfunc_ack" }, ++ { PRISM2_PARAM_AP_NULLFUNC_ACK, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getnullfunc_ack" }, ++ { PRISM2_PARAM_MAX_WDS, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "max_wds" }, ++ { PRISM2_PARAM_MAX_WDS, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getmax_wds" }, ++ { PRISM2_PARAM_AP_AUTOM_AP_WDS, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "autom_ap_wds" }, ++ { PRISM2_PARAM_AP_AUTOM_AP_WDS, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getautom_ap_wds" }, ++ { PRISM2_PARAM_AP_AUTH_ALGS, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "ap_auth_algs" }, ++ { PRISM2_PARAM_AP_AUTH_ALGS, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getap_auth_algs" }, ++ { PRISM2_PARAM_MONITOR_ALLOW_FCSERR, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "allow_fcserr" }, ++ { PRISM2_PARAM_MONITOR_ALLOW_FCSERR, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getallow_fcserr" }, ++ { PRISM2_PARAM_HOST_ENCRYPT, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "host_encrypt" }, ++ { PRISM2_PARAM_HOST_ENCRYPT, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethost_encrypt" }, ++ { PRISM2_PARAM_HOST_DECRYPT, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "host_decrypt" }, ++ { PRISM2_PARAM_HOST_DECRYPT, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethost_decrypt" }, ++ { PRISM2_PARAM_BUS_MASTER_THRESHOLD_RX, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "busmaster_rx" }, ++ { PRISM2_PARAM_BUS_MASTER_THRESHOLD_RX, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbusmaster_rx" }, ++ { PRISM2_PARAM_BUS_MASTER_THRESHOLD_TX, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "busmaster_tx" }, ++ { PRISM2_PARAM_BUS_MASTER_THRESHOLD_TX, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbusmaster_tx" }, ++#ifndef PRISM2_NO_STATION_MODES ++ { PRISM2_PARAM_HOST_ROAMING, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "host_roaming" }, ++ { PRISM2_PARAM_HOST_ROAMING, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethost_roaming" }, ++#endif /* PRISM2_NO_STATION_MODES */ ++ { PRISM2_PARAM_BCRX_STA_KEY, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "bcrx_sta_key" }, ++ { PRISM2_PARAM_BCRX_STA_KEY, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbcrx_sta_key" }, ++ { PRISM2_PARAM_IEEE_802_1X, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "ieee_802_1x" }, ++ { PRISM2_PARAM_IEEE_802_1X, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getieee_802_1x" }, ++ { PRISM2_PARAM_ANTSEL_TX, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "antsel_tx" }, ++ { PRISM2_PARAM_ANTSEL_TX, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getantsel_tx" }, ++ { PRISM2_PARAM_ANTSEL_RX, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "antsel_rx" }, ++ { PRISM2_PARAM_ANTSEL_RX, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getantsel_rx" }, ++ { PRISM2_PARAM_MONITOR_TYPE, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "monitor_type" }, ++ { PRISM2_PARAM_MONITOR_TYPE, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getmonitor_type" }, ++ { PRISM2_PARAM_WDS_TYPE, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "wds_type" }, ++ { PRISM2_PARAM_WDS_TYPE, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getwds_type" }, ++ { PRISM2_PARAM_HOSTSCAN, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "hostscan" }, ++ { PRISM2_PARAM_HOSTSCAN, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethostscan" }, ++ { PRISM2_PARAM_AP_SCAN, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "ap_scan" }, ++ { PRISM2_PARAM_AP_SCAN, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getap_scan" }, ++ { PRISM2_PARAM_ENH_SEC, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "enh_sec" }, ++ { PRISM2_PARAM_ENH_SEC, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getenh_sec" }, ++#ifdef PRISM2_IO_DEBUG ++ { PRISM2_PARAM_IO_DEBUG, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "io_debug" }, ++ { PRISM2_PARAM_IO_DEBUG, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getio_debug" }, ++#endif /* PRISM2_IO_DEBUG */ ++ { PRISM2_PARAM_BASIC_RATES, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "basic_rates" }, ++ { PRISM2_PARAM_BASIC_RATES, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getbasic_rates" }, ++ { PRISM2_PARAM_OPER_RATES, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "oper_rates" }, ++ { PRISM2_PARAM_OPER_RATES, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getoper_rates" }, ++ { PRISM2_PARAM_HOSTAPD, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "hostapd" }, ++ { PRISM2_PARAM_HOSTAPD, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethostapd" }, ++ { PRISM2_PARAM_HOSTAPD_STA, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "hostapd_sta" }, ++ { PRISM2_PARAM_HOSTAPD_STA, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gethostapd_sta" }, ++ { PRISM2_PARAM_WPA, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "wpa" }, ++ { PRISM2_PARAM_WPA, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getwpa" }, ++ { PRISM2_PARAM_PRIVACY_INVOKED, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "privacy_invoked" }, ++ { PRISM2_PARAM_PRIVACY_INVOKED, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getprivacy_invo" }, ++ { PRISM2_PARAM_TKIP_COUNTERMEASURES, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "tkip_countermea" }, ++ { PRISM2_PARAM_TKIP_COUNTERMEASURES, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "gettkip_counter" }, ++ { PRISM2_PARAM_DROP_UNENCRYPTED, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "drop_unencrypte" }, ++ { PRISM2_PARAM_DROP_UNENCRYPTED, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getdrop_unencry" }, ++ { PRISM2_PARAM_SCAN_CHANNEL_MASK, ++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "scan_channels" }, ++ { PRISM2_PARAM_SCAN_CHANNEL_MASK, ++ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getscan_channel" }, ++#endif /* PRISM2_USE_WE_SUB_IOCTLS */ ++}; ++#endif ++ ++#if WIRELESS_EXT > 17 ++static int iw_ioctl_siwauth(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *data, char *extra) ++{ ++#if 0 ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ switch (data->flags & IW_AUTH_INDEX) { ++ case IW_AUTH_WPA_VERSION: ++ case IW_AUTH_CIPHER_PAIRWISE: ++ case IW_AUTH_CIPHER_GROUP: ++ case IW_AUTH_KEY_MGMT: ++ /* Host AP driver does not use these parameters and allows ++ * wpa_supplicant to control them internally. */ ++ break; ++ case IW_AUTH_TKIP_COUNTERMEASURES: ++ local->tkip_countermeasures = data->value; ++ break; ++ case IW_AUTH_DROP_UNENCRYPTED: ++ local->drop_unencrypted = data->value; ++ break; ++ case IW_AUTH_80211_AUTH_ALG: ++ local->auth_algs = data->value; ++ break; ++ case IW_AUTH_WPA_ENABLED: ++ if (data->value == 0) { ++ local->wpa = 0; ++ if (local->sta_fw_ver < PRISM2_FW_VER(1,7,0)) ++ break; ++ prism2_set_genericelement(dev, "", 0); ++ local->host_roaming = 0; ++ local->privacy_invoked = 0; ++ if (hostap_set_word(dev, HFA384X_RID_SSNHANDLINGMODE, ++ 0) || ++ hostap_set_roaming(local) || ++ hostap_set_encryption(local) || ++ local->func->reset_port(dev)) ++ return -EINVAL; ++ break; ++ } ++ if (local->sta_fw_ver < PRISM2_FW_VER(1,7,0)) ++ return -EOPNOTSUPP; ++ local->host_roaming = 2; ++ local->privacy_invoked = 1; ++ local->wpa = 1; ++ if (hostap_set_word(dev, HFA384X_RID_SSNHANDLINGMODE, 1) || ++ hostap_set_roaming(local) || ++ hostap_set_encryption(local) || ++ local->func->reset_port(dev)) ++ return -EINVAL; ++ break; ++ case IW_AUTH_RX_UNENCRYPTED_EAPOL: ++ local->ieee_802_1x = data->value; ++ break; ++ case IW_AUTH_PRIVACY_INVOKED: ++ local->privacy_invoked = data->value; ++ break; ++ default: ++ return -EOPNOTSUPP; ++ } ++ return 0; ++#endif ++ return -EOPNOTSUPP; ++} ++ ++ ++static int iw_ioctl_giwauth(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_param *data, char *extra) ++{ ++#if 0 ++ PTIWLN_ADAPTER_T pAdapter = &(((tiwlan_net_dev_t *)(dev->priv))->adapter); ++ u32 val, len; ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ switch (data->flags & IW_AUTH_INDEX) { ++ case IW_AUTH_WPA_VERSION: ++ case IW_AUTH_CIPHER_PAIRWISE: ++ case IW_AUTH_CIPHER_GROUP: ++ case IW_AUTH_KEY_MGMT: ++ /* Host AP driver does not use these parameters and allows ++ * wpa_supplicant to control them internally. */ ++ return -EOPNOTSUPP; ++ case IW_AUTH_TKIP_COUNTERMEASURES: ++ data->value = local->tkip_countermeasures; ++ break; ++ case IW_AUTH_DROP_UNENCRYPTED: ++ data->value = local->drop_unencrypted; ++ break; ++ case IW_AUTH_80211_AUTH_ALG: ++ data->value = local->auth_algs; ++ break; ++ case IW_AUTH_WPA_ENABLED: ++ data->value = local->wpa; ++ break; ++ case IW_AUTH_RX_UNENCRYPTED_EAPOL: ++ data->value = local->ieee_802_1x; ++ break; ++ default: ++ return -EOPNOTSUPP; ++ } ++ return 0; ++#endif ++ return -EOPNOTSUPP; ++} ++ ++ ++static int iw_ioctl_siwencodeext(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *erq, char *extra) ++{ ++ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++#if 0 ++ struct hostap_interface *iface = dev->priv; ++ local_info_t *local = iface->local; ++ struct iw_encode_ext *ext = (struct iw_encode_ext *) extra; ++ int i, ret = 0; ++ struct hostap_crypto_ops *ops; ++ struct prism2_crypt_data **crypt; ++ void *sta_ptr; ++ u8 *addr; ++ const char *alg, *module; ++ ++ i = erq->flags & IW_ENCODE_INDEX; ++ if (i > WEP_KEYS) ++ return -EINVAL; ++ if (i < 1 || i > WEP_KEYS) ++ i = local->tx_keyidx; ++ else ++ i--; ++ if (i < 0 || i >= WEP_KEYS) ++ return -EINVAL; ++ ++ addr = ext->addr.sa_data; ++ if (addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff && ++ addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff) { ++ sta_ptr = NULL; ++ crypt = &local->crypt[i]; ++ } else { ++ if (i != 0) ++ return -EINVAL; ++ sta_ptr = ap_crypt_get_ptrs(local->ap, addr, 0, &crypt); ++ if (sta_ptr == NULL) { ++ if (local->iw_mode == IW_MODE_INFRA) { ++ /* TODO: add STA entry for the current AP so ++ * that unicast key can be used. For now, this ++ * is emulated by using default key idx 0. */ ++ i = 0; ++ crypt = &local->crypt[i]; ++ } else ++ return -EINVAL; ++ } ++ } ++ ++ if ((erq->flags & IW_ENCODE_DISABLED) || ++ ext->alg == IW_ENCODE_ALG_NONE) { ++ if (*crypt) ++ prism2_crypt_delayed_deinit(local, crypt); ++ goto done; ++ } ++ ++ switch (ext->alg) { ++ case IW_ENCODE_ALG_WEP: ++ alg = "WEP"; ++ module = "hostap_crypt_wep"; ++ break; ++ case IW_ENCODE_ALG_TKIP: ++ alg = "TKIP"; ++ module = "hostap_crypt_tkip"; ++ break; ++ case IW_ENCODE_ALG_CCMP: ++ alg = "CCMP"; ++ module = "hostap_crypt_ccmp"; ++ break; ++ default: ++ printk(KERN_DEBUG "%s: unsupported algorithm %d\n", ++ local->dev->name, ext->alg); ++ ret = -EOPNOTSUPP; ++ goto done; ++ } ++ ++ ops = hostap_get_crypto_ops(alg); ++ if (ops == NULL) { ++ request_module(module); ++ ops = hostap_get_crypto_ops(alg); ++ } ++ if (ops == NULL) { ++ printk(KERN_DEBUG "%s: unknown crypto alg '%s'\n", ++ local->dev->name, alg); ++ ret = -EOPNOTSUPP; ++ goto done; ++ } ++ ++ if (sta_ptr || ext->alg != IW_ENCODE_ALG_WEP) { ++ /* station based encryption and other than WEP algorithms ++ * require host-based encryption, so force them on ++ * automatically */ ++ local->host_decrypt = local->host_encrypt = 1; ++ } ++ ++ if (*crypt == NULL || (*crypt)->ops != ops) { ++ struct prism2_crypt_data *new_crypt; ++ ++ prism2_crypt_delayed_deinit(local, crypt); ++ ++ new_crypt = (struct prism2_crypt_data *) ++ kmalloc(sizeof(struct prism2_crypt_data), GFP_KERNEL); ++ if (new_crypt == NULL) { ++ ret = -ENOMEM; ++ goto done; ++ } ++ memset(new_crypt, 0, sizeof(struct prism2_crypt_data)); ++ new_crypt->ops = ops; ++ new_crypt->priv = new_crypt->ops->init(i); ++ if (new_crypt->priv == NULL) { ++ kfree(new_crypt); ++ ret = -EINVAL; ++ goto done; ++ } ++ ++ *crypt = new_crypt; ++ } ++ ++ /* TODO: if ext_flags does not have IW_ENCODE_EXT_RX_SEQ_VALID, the ++ * existing seq# should not be changed. */ ++ /* TODO: if ext_flags has IW_ENCODE_EXT_TX_SEQ_VALID, next TX seq# ++ * should be changed to something else than zero. */ ++ if ((!(ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) || ext->key_len > 0) ++ && (*crypt)->ops->set_key && ++ (*crypt)->ops->set_key(ext->key, ext->key_len, ext->rx_seq, ++ (*crypt)->priv) < 0) { ++ printk(KERN_DEBUG "%s: key setting failed\n", ++ local->dev->name); ++ ret = -EINVAL; ++ goto done; ++ } ++ ++ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) { ++ if (!sta_ptr) ++ local->tx_keyidx = i; ++ else if (i) { ++ ret = -EINVAL; ++ goto done; ++ } ++ } ++ ++ ++ if (sta_ptr == NULL && ext->key_len > 0) { ++ int first = 1, j; ++ for (j = 0; j < WEP_KEYS; j++) { ++ if (j != i && local->crypt[j]) { ++ first = 0; ++ break; ++ } ++ } ++ if (first) ++ local->tx_keyidx = i; ++ } ++ ++ done: ++ if (sta_ptr) ++ hostap_handle_sta_release(sta_ptr); ++ ++ local->open_wep = erq->flags & IW_ENCODE_OPEN; ++ ++ /* Do not reset port0 if card is in Managed mode since resetting will ++ * generate new IEEE 802.11 authentication which may end up in looping ++ * with IEEE 802.1X. Prism2 documentation seem to require port reset ++ * after WEP configuration. However, keys are apparently changed at ++ * least in Managed mode. */ ++ if (ret == 0 && ++ (hostap_set_encryption(local) || ++ (local->iw_mode != IW_MODE_INFRA && ++ local->func->reset_port(local->dev)))) ++ ret = -EINVAL; ++ ++ return ret; ++#endif ++ return -EOPNOTSUPP; ++} ++ ++ ++static int iw_ioctl_giwencodeext(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *erq, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++#if 0 ++ struct hostap_interface *iface = dev->priv; ++ local_info_t *local = iface->local; ++ struct prism2_crypt_data **crypt; ++ void *sta_ptr; ++ int max_key_len, i; ++ struct iw_encode_ext *ext = (struct iw_encode_ext *) extra; ++ u8 *addr; ++ ++ max_key_len = erq->length - sizeof(*ext); ++ if (max_key_len < 0) ++ return -EINVAL; ++ ++ i = erq->flags & IW_ENCODE_INDEX; ++ if (i < 1 || i > WEP_KEYS) ++ i = local->tx_keyidx; ++ else ++ i--; ++ ++ addr = ext->addr.sa_data; ++ if (addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff && ++ addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff) { ++ sta_ptr = NULL; ++ crypt = &local->crypt[i]; ++ } else { ++ i = 0; ++ sta_ptr = ap_crypt_get_ptrs(local->ap, addr, 0, &crypt); ++ if (sta_ptr == NULL) ++ return -EINVAL; ++ } ++ erq->flags = i + 1; ++ memset(ext, 0, sizeof(*ext)); ++ ++ if (*crypt == NULL || (*crypt)->ops == NULL) { ++ ext->alg = IW_ENCODE_ALG_NONE; ++ ext->key_len = 0; ++ erq->flags |= IW_ENCODE_DISABLED; ++ } else { ++ if (strcmp((*crypt)->ops->name, "WEP") == 0) ++ ext->alg = IW_ENCODE_ALG_WEP; ++ else if (strcmp((*crypt)->ops->name, "TKIP") == 0) ++ ext->alg = IW_ENCODE_ALG_TKIP; ++ else if (strcmp((*crypt)->ops->name, "CCMP") == 0) ++ ext->alg = IW_ENCODE_ALG_CCMP; ++ else ++ return -EINVAL; ++ ++ if ((*crypt)->ops->get_key) { ++ ext->key_len = ++ (*crypt)->ops->get_key(ext->key, ++ max_key_len, ++ ext->tx_seq, ++ (*crypt)->priv); ++ if (ext->key_len && ++ (ext->alg == IW_ENCODE_ALG_TKIP || ++ ext->alg == IW_ENCODE_ALG_CCMP)) ++ ext->ext_flags |= IW_ENCODE_EXT_TX_SEQ_VALID; ++ } ++ } ++ ++ if (sta_ptr) ++ hostap_handle_sta_release(sta_ptr); ++ ++ return 0; ++#endif ++ return -EOPNOTSUPP; ++} ++#endif /* WIRELESS_EXT > 17 */ ++ ++ ++#if WIRELESS_EXT > 17 ++static int iw_ioctl_siwgenie(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ return -EOPNOTSUPP; ++} ++#endif ++ ++static int iw_ioctl_giwgenie(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ return -EOPNOTSUPP; ++} ++ ++ ++#if WIRELESS_EXT > 17 ++static int iw_ioctl_siwmlme(struct net_device *dev, ++ struct iw_request_info *info, ++ struct iw_point *data, char *extra) ++{ ++#if IOCTL_DBG ++ printk("%s Call\n", __FUNCTION__); ++#endif ++ return -EOPNOTSUPP; ++} ++#endif ++ ++/* Structures to export the Wireless Handlers */ ++ ++static const iw_handler ti_handler[] = ++{ ++ (iw_handler) NULL, /* SIOCSIWCOMMIT */ ++ (iw_handler) iw_get_name, /* SIOCGIWNAME */ ++ (iw_handler) NULL, /* SIOCSIWNWID */ ++ (iw_handler) NULL, /* SIOCGIWNWID */ ++ (iw_handler) iw_ioctl_siwfreq, /* SIOCSIWFREQ */ ++ (iw_handler) iw_ioctl_giwfreq, /* SIOCGIWFREQ */ ++ (iw_handler) iw_ioctl_siwmode, /* SIOCSIWMODE */ ++ (iw_handler) iw_ioctl_giwmode, /* SIOCGIWMODE */ ++ (iw_handler) iw_ioctl_siwsens, /* SIOCSIWSENS */ ++ (iw_handler) iw_ioctl_giwsens, /* SIOCGIWSENS */ ++ (iw_handler) NULL /* not used */, /* SIOCSIWRANGE */ ++ (iw_handler) iw_ioctl_giwrange, /* SIOCGIWRANGE */ ++ (iw_handler) NULL /* not used */, /* SIOCSIWPRIV */ ++ (iw_handler) NULL /* kernel code */, /* SIOCGIWPRIV */ ++ (iw_handler) NULL /* not used */, /* SIOCSIWSTATS */ ++ (iw_handler) NULL /* kernel code */, /* SIOCGIWSTATS */ ++#if WIRELESS_EXT > 15 ++ (iw_handler) NULL, /* SIOCSIWSPY */ ++ (iw_handler) NULL, /* SIOCGIWSPY */ ++ (iw_handler) NULL, /* SIOCSIWTHRSPY */ ++ (iw_handler) NULL, /* SIOCGIWTHRSPY */ ++#else /* WIRELESS_EXT > 15 */ ++ (iw_handler) NULL, /* SIOCSIWSPY */ ++ (iw_handler) NULL, /* SIOCGIWSPY */ ++ (iw_handler) NULL, /* -- hole -- */ ++ (iw_handler) NULL, /* -- hole -- */ ++#endif /* WIRELESS_EXT > 15 */ ++ (iw_handler) iw_ioctl_siwap, /* SIOCSIWAP */ ++ (iw_handler) iw_ioctl_giwap, /* SIOCGIWAP */ ++#if WIRELESS_EXT > 17 ++ (iw_handler) iw_ioctl_siwmlme, /* SIOCSIWMLME */ ++#else /* WIRELESS_EXT > 17 */ ++ (iw_handler) NULL, /* -- hole -- */ ++#endif /* WIRELESS_EXT > 17 */ ++ (iw_handler) iw_ioctl_giwaplist, /* SIOCGIWAPLIST */ ++ (iw_handler) iw_ioctl_siwscan, /* SIOCSIWSCAN */ ++ (iw_handler) iw_ioctl_giwscan, /* SIOCGIWSCAN */ ++ (iw_handler) iw_ioctl_siwessid, /* SIOCSIWESSID */ ++ (iw_handler) iw_ioctl_giwessid, /* SIOCGIWESSID */ ++ (iw_handler) NULL, /* SIOCSIWNICKN */ ++ (iw_handler) iw_ioctl_giwnickn, /* SIOCGIWNICKN */ ++ (iw_handler) NULL, /* -- hole -- */ ++ (iw_handler) NULL, /* -- hole -- */ ++ (iw_handler) iw_ioctl_siwrate, /* SIOCSIWRATE */ ++ (iw_handler) iw_ioctl_giwrate, /* SIOCGIWRATE */ ++ (iw_handler) iw_ioctl_siwrts, /* SIOCSIWRTS */ ++ (iw_handler) iw_ioctl_giwrts, /* SIOCGIWRTS */ ++ (iw_handler) iw_ioctl_siwfrag, /* SIOCSIWFRAG */ ++ (iw_handler) iw_ioctl_giwfrag, /* SIOCGIWFRAG */ ++ (iw_handler) iw_ioctl_siwtxpow, /* SIOCSIWTXPOW */ ++ (iw_handler) iw_ioctl_giwtxpow, /* SIOCGIWTXPOW */ ++ (iw_handler) iw_ioctl_siwretry, /* SIOCSIWRETRY */ ++ (iw_handler) iw_ioctl_giwretry, /* SIOCGIWRETRY */ ++ (iw_handler) iw_ioctl_siwencode, /* SIOCSIWENCODE */ ++ (iw_handler) iw_ioctl_giwencode, /* SIOCGIWENCODE */ ++ (iw_handler) iw_ioctl_siwpower, /* SIOCSIWPOWER */ ++ (iw_handler) iw_ioctl_giwpower, /* SIOCGIWPOWER */ ++#if WIRELESS_EXT > 17 ++ (iw_handler) NULL, /* -- hole -- */ ++ (iw_handler) NULL, /* -- hole -- */ ++ (iw_handler) iw_ioctl_siwgenie, /* SIOCSIWGENIE */ ++ (iw_handler) iw_ioctl_giwgenie, /* SIOCGIWGENIE */ ++ (iw_handler) iw_ioctl_siwauth, /* SIOCSIWAUTH */ ++ (iw_handler) iw_ioctl_giwauth, /* SIOCGIWAUTH */ ++ (iw_handler) iw_ioctl_siwencodeext, /* SIOCSIWENCODEEXT */ ++ (iw_handler) iw_ioctl_giwencodeext, /* SIOCGIWENCODEEXT */ ++ (iw_handler) NULL, /* SIOCSIWPMKSA */ ++ (iw_handler) NULL, /* -- hole -- */ ++#endif /* WIRELESS_EXT > 17 */ ++}; ++ ++#if 0 ++static const iw_handler ti_private_handler[] = ++{ /* SIOCIWFIRSTPRIV + */ ++ (iw_handler) iw_ioctl_priv_prism2_param, /* 0 */ ++ (iw_handler) iw_ioctl_priv_get_prism2_param, /* 1 */ ++ (iw_handler) iw_ioctl_priv_writemif, /* 2 */ ++ (iw_handler) iw_ioctl_priv_readmif, /* 3 */ ++}; ++#endif ++ ++static const struct iw_handler_def ti_iw_handler_def = ++{ ++ .num_standard = sizeof(ti_handler) / sizeof(iw_handler), ++// .num_private = sizeof(ti_private_handler) / sizeof(iw_handler), ++// .num_private_args = sizeof(ti_priv) / sizeof(struct iw_priv_args), ++ .standard = (iw_handler *) ti_handler, ++// .private = (iw_handler *) ti_private_handler, ++// .private_args = (struct iw_priv_args *) ti_priv, ++#if WIRELESS_EXT == 16 ++// .spy_offset = offsetof(struct hostap_interface, spy_data), ++#endif /* WIRELESS_EXT == 16 */ ++#if WIRELESS_EXT > 16 ++// .get_wireless_stats = ti_get_wireless_stats, ++#endif /* WIRELESS_EXT > 16 */ ++}; ++ ++void tiwlan_iwhandler_init(struct net_device *dev) ++{ ++ dev->wireless_handlers = (struct iw_handler_def *) &ti_iw_handler_def; ++} +diff --git a/sta_dk_4_0_4_32/pform/linux/src/osapi.c b/sta_dk_4_0_4_32/pform/linux/src/osapi.c +old mode 100644 +new mode 100755 +index a5a798c..002fd60 +--- a/sta_dk_4_0_4_32/pform/linux/src/osapi.c ++++ b/sta_dk_4_0_4_32/pform/linux/src/osapi.c +@@ -99,7 +99,12 @@ static int os_tl_timerHandlr(struct tiwlan_req *req); + static void os_timerHandlr(unsigned long parm); + static void send_frag(char* msg, int message_len, int level, int module); + +-BOOL use_debug_module = FALSE; ++/* linux/irq.h declerations */ ++extern void disable_irq(unsigned int); ++extern void enable_irq(unsigned int); ++ ++BOOL use_debug_module = FALSE; ++#define debug_module_enqueue_message + + /**************************************************************************************** + * * +-- +1.6.0.5 + diff --git a/packages/pandora-system/pandora-wifi/rc.tiwifi b/packages/pandora-system/pandora-wifi/rc.tiwifi index a19dc83..afb3b7d 100755 --- a/packages/pandora-system/pandora-wifi/rc.tiwifi +++ b/packages/pandora-system/pandora-wifi/rc.tiwifi @@ -1,5 +1,42 @@ #!/bin/sh -rmmod wlan +DESC="TI1251 Wireless LAN driver" +NAME="wlan" -insmod $(busybox find /lib/modules/$(uname -r) -name "wlan.ko") +d_stop() { + if `grep -q wlan /proc/modules` ; then + rmmod wlan + fi +} + +d_start() { + insmod $(busybox find /lib/modules/$(uname -r) -name "wlan.ko") + /usr/bin/tiwlan_loader -n -f /lib/firmware/Fw1251r1c.bin -i /etc/tiwlan.ini +} + + +case "$1" in + start) + echo -n "Starting $DESC: $NAME" + d_start + echo "." + ;; + stop) + echo -n "Stopping $DESC: $NAME" + d_stop + echo "." + ;; + restart|force-reload) + echo -n "Restarting $DESC: $NAME" + d_stop + sleep 1 + d_start + echo "." + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/packages/pandora-system/pandora-wifi_git.bb b/packages/pandora-system/pandora-wifi_git.bb index a331e8c..cf97a6b 100755 --- a/packages/pandora-system/pandora-wifi_git.bb +++ b/packages/pandora-system/pandora-wifi_git.bb @@ -1,13 +1,14 @@ DESCRIPTION = "Kernel drivers for the TI1251 WiFi chip found on the Pandora - Connected via SDIO" LICENSE = "GPLv2" -PR = "r9" +PR = "r9.2" # Check the include for the source location/GIT SRCREV etc. require pandora-wifi.inc SRC_URI += " \ file://rc.tiwifi \ +# file://0011-Add-in-the-start-of-wireless-extensions-support-ioc.patch;patch=1 \ " inherit update-rc.d @@ -21,10 +22,11 @@ do_compile_prepend() { do_install() { cd ${S}/sta_dk_4_0_4_32/ - mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net - cp ${S}/sta_dk_4_0_4_32/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net + mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/tiwlan + cp ${S}/sta_dk_4_0_4_32/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/tiwlan install -d ${D}${sysconfdir}/init.d/ cp -pP ${WORKDIR}/rc.tiwifi ${D}${sysconfdir}/init.d/tiwifi-init + cp -pP ${S}/sta_dk_4_0_4_32/fw/tiwlan.ini ${D}${sysconfdir}/tiwlan.ini } -FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/*.ko.*" \ No newline at end of file +FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/tiwlan/*.ko.*" \ No newline at end of file diff --git a/packages/tasks/task-pandora-core.bb b/packages/tasks/task-pandora-core.bb index c26830d..237da93 100755 --- a/packages/tasks/task-pandora-core.bb +++ b/packages/tasks/task-pandora-core.bb @@ -5,7 +5,7 @@ DESCRIPTION = "Task file for default core/console apps in the Pandora image" # Don't forget to bump the PR if you change it. -PR = "r1.8" +PR = "r3.2" inherit task @@ -15,7 +15,10 @@ RDEPENDS_${PN} = "\ pandora-firmware \ pandora-wifi pandora-wifi-tools \ omap3-deviceid \ - omap3-sgx-modules libgles-omap3 \ + omap3-sgx-modules devmem2 libgles-omap3 \ + sudo \ + lsof \ + gnome-volume-manager \ libwiimote \ libsdl-gfx \ nfs-utils nfs-utils-client \ @@ -28,7 +31,7 @@ RDEPENDS_${PN} = "\ portmap \ fuse sshfs-fuse ntfs-3g \ file \ - aufs \ + aufs aufs-tools \ socat \ strace \ python-pygame \ diff --git a/packages/tasks/task-pandora-desktop.bb b/packages/tasks/task-pandora-desktop.bb index 4c76446..c468010 100755 --- a/packages/tasks/task-pandora-desktop.bb +++ b/packages/tasks/task-pandora-desktop.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Task file for the 'desktop' Pandora image" # Don't forget to bump the PR if you change it. -PR = "r1.6" +PR = "r1.7" inherit task @@ -31,8 +31,7 @@ RDEPENDS_${PN} = "\ synergy \ x11vnc angstrom-x11vnc-xinit \ angstrom-gnome-icon-theme-enable \ - connman-gnome \ -# networkmanager-applet \ + networkmanager-applet \ scummvm \ ogre-egl \ " diff --git a/packages/tasks/task-pandora-gui.bb b/packages/tasks/task-pandora-gui.bb index 7bc8ff5..51ae905 100755 --- a/packages/tasks/task-pandora-gui.bb +++ b/packages/tasks/task-pandora-gui.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Task file for default GUI apps in the Pandora image" # Don't forget to bump the PR if you change it. -PR = "r1.4" +PR = "r1.8" inherit task @@ -30,13 +30,12 @@ RDEPENDS_${PN} = "\ xterm \ xtscal \ matchbox-wm \ + matchbox-desktop matchbox-panel-2 matchbox-panel-manager matchbox-panel-hacks \ matchbox-keyboard matchbox-keyboard-applet matchbox-keyboard-im \ - matchbox-desktop \ - matchbox-common \ - matchbox-config-gtk \ + matchbox-common matchbox-config-gtk \ + matchbox-terminal \ matchbox-themes-gtk \ - matchbox-panel-manager \ - matchbox-panel-hacks \ + pcmanfm \ ttf-liberation-sans ttf-liberation-serif ttf-liberation-mono \ xauth xhost xset xrandr \ xcursor-transparent-theme \ @@ -45,7 +44,6 @@ RDEPENDS_${PN} = "\ matchbox-applet-inputmanager \ matchbox-applet-volume \ matchbox-applet-startup-monitor \ - connman-gnome \ # networkmanager-applet \ scummvm \ " -- 2.39.2