Add NETFILTER configuration to support wifi softap, add wifi chip or module sys inter...
author高伟龙 <gwl@rock-chips.com>
Thu, 15 Sep 2011 11:33:30 +0000 (19:33 +0800)
committer高伟龙 <gwl@rock-chips.com>
Thu, 15 Sep 2011 11:33:58 +0000 (19:33 +0800)
arch/arm/configs/rk29_ddr3sdk_defconfig
drivers/net/wireless/Makefile
drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c [new file with mode: 0644]

index 20907f443e19d60530b49ff68b7da0e83fea50ab..ebe4cb2139f44255181727d239e988a00d4e3ee8 100755 (executable)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.27
-# Tue Aug 23 09:57:52 2011
+# Thu Sep 15 19:19:01 2011
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -470,7 +470,123 @@ CONFIG_IPV6_NDISC_NODETYPE=y
 # CONFIG_IPV6_MROUTE is not set
 CONFIG_ANDROID_PARANOID_NETWORK=y
 # CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_DEBUG=y
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+CONFIG_NF_CONNTRACK_SIP=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NETFILTER_XTABLES=y
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_HL=y
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_ADDRTYPE=y
+CONFIG_IP_NF_MATCH_AH=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_LOG=y
+# CONFIG_IP_NF_TARGET_ULOG is not set
+CONFIG_NF_NAT=y
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+# CONFIG_NF_NAT_SNMP_BASIC is not set
+CONFIG_NF_NAT_PROTO_DCCP=y
+CONFIG_NF_NAT_PROTO_GRE=y
+CONFIG_NF_NAT_PROTO_UDPLITE=y
+CONFIG_NF_NAT_PROTO_SCTP=y
+CONFIG_NF_NAT_FTP=y
+CONFIG_NF_NAT_IRC=y
+CONFIG_NF_NAT_TFTP=y
+CONFIG_NF_NAT_AMANDA=y
+CONFIG_NF_NAT_PPTP=y
+CONFIG_NF_NAT_H323=y
+CONFIG_NF_NAT_SIP=y
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_NF_RAW is not set
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_CONNTRACK_IPV6 is not set
+# CONFIG_IP6_NF_QUEUE is not set
+# CONFIG_IP6_NF_IPTABLES is not set
 # CONFIG_IP_DCCP is not set
 # CONFIG_IP_SCTP is not set
 # CONFIG_RDS is not set
@@ -859,6 +975,7 @@ CONFIG_INPUT_KEYRESET=y
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYS_RK29=y
+# CONFIG_KEYS_RK29_NEWTON is not set
 # CONFIG_SYNAPTICS_SO340010 is not set
 # CONFIG_KEYBOARD_ADP5588 is not set
 # CONFIG_KEYBOARD_ATKBD is not set
@@ -906,6 +1023,7 @@ CONFIG_EETI_EGALAX_MAX_X=1087
 CONFIG_EETI_EGALAX_MAX_Y=800
 # CONFIG_EETI_EGALAX_DEBUG is not set
 # CONFIG_TOUCHSCREEN_IT7260 is not set
+# CONFIG_TOUCHSCREEN_IT7260_I2C is not set
 # CONFIG_TOUCHSCREEN_NAS is not set
 # CONFIG_LAIBAO_TS is not set
 # CONFIG_TOUCHSCREEN_GT801_IIC is not set
@@ -931,7 +1049,10 @@ CONFIG_INPUT_UINPUT=y
 CONFIG_G_SENSOR_DEVICE=y
 # CONFIG_GS_MMA7660 is not set
 CONFIG_GS_MMA8452=y
+# CONFIG_GS_KXTF9 is not set
+# CONFIG_GS_LIS3DH is not set
 # CONFIG_GS_L3G4200D is not set
+# CONFIG_GYRO_SENSOR_DEVICE is not set
 # CONFIG_INPUT_JOGBALL is not set
 # CONFIG_LIGHT_SENSOR_DEVICE is not set
 
@@ -1126,6 +1247,7 @@ CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_TPS6507X is not set
 # CONFIG_RK2818_REGULATOR_CHARGE is not set
 # CONFIG_RK2818_REGULATOR_LP8725 is not set
+# CONFIG_REGULATOR_ACT8891 is not set
 CONFIG_RK29_PWM_REGULATOR=y
 CONFIG_MEDIA_SUPPORT=y
 
@@ -1316,6 +1438,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
 CONFIG_BACKLIGHT_RK29_BL=y
+# CONFIG_BACKLIGHT_RK29_NEWTON_BL is not set
 # CONFIG_FIH_TOUCHKEY_LED is not set
 # CONFIG_BACKLIGHT_AW9364 is not set
 # CONFIG_BUTTON_LIGHT is not set
@@ -1411,6 +1534,7 @@ CONFIG_SND_RK29_SOC_WM8900=y
 # CONFIG_SND_RK29_SOC_CS42L52 is not set
 # CONFIG_SND_RK29_CODEC_SOC_MASTER is not set
 CONFIG_SND_RK29_CODEC_SOC_SLAVE=y
+# CONFIG_ADJUST_VOL_BY_CODEC is not set
 CONFIG_SND_SOC_I2C_AND_SPI=y
 # CONFIG_SND_SOC_ALL_CODECS is not set
 CONFIG_SND_SOC_WM8900=y
@@ -1812,6 +1936,7 @@ CONFIG_VIVANTE=y
 # IPP
 #
 CONFIG_RK29_IPP=y
+CONFIG_DEINTERLACE=y
 
 #
 # CMMB
@@ -2082,7 +2207,7 @@ CONFIG_CRYPTO_ECB=y
 #
 # Digest
 #
-# CONFIG_CRYPTO_CRC32C is not set
+CONFIG_CRYPTO_CRC32C=y
 # CONFIG_CRYPTO_GHASH is not set
 # CONFIG_CRYPTO_MD4 is not set
 CONFIG_CRYPTO_MD5=y
@@ -2142,13 +2267,17 @@ CONFIG_CRC16=y
 # CONFIG_CRC_ITU_T is not set
 CONFIG_CRC32=y
 # CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
+CONFIG_LIBCRC32C=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_REED_SOLOMON=y
 CONFIG_REED_SOLOMON_ENC8=y
 CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=y
+CONFIG_TEXTSEARCH_BM=y
+CONFIG_TEXTSEARCH_FSM=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
index 54e657e55e006a7b5c3cd12cc13c07ef8f8714d0..33ee5ec876bfd29dc604b6426fbc09cba8e48259 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Makefile for the Linux Wireless network device drivers.
 #
-
+obj-y += wifi_sys/rkwifi_sys_iface.o
 obj-$(CONFIG_BCM4329)   += bcm4329/
 obj-$(CONFIG_MV8686)   += mv8686/
 obj-$(CONFIG_BCM4319)   += bcm4319/
diff --git a/drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c b/drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c
new file mode 100644 (file)
index 0000000..f83ce51
--- /dev/null
@@ -0,0 +1,91 @@
+\r
+#include <linux/kernel.h>\r
+#include <linux/module.h>\r
+#include <linux/init.h>\r
+#include <linux/device.h>\r
+#include <linux/err.h>\r
+\r
+static ssize_t wifi_chip_read(struct class *cls, char *_buf)\r
+{\r
+    int count;\r
+\r
+#ifdef CONFIG_BCM4329\r
+    count = sprintf(_buf, "%s", "BCM4329");\r
+    printk("Current WiFi chip is BCM4329.\n");\r
+#endif\r
+\r
+#ifdef CONFIG_RTL8192CU\r
+    count = sprintf(_buf, "%s", "RTL8188");\r
+    printk("Current WiFi chip is RTL8188.\n");\r
+#endif\r
+    \r
+    return count;\r
+}\r
+\r
+/*\r
+static ssize_t wifi_channel_write(struct class *cls, const char *_buf, size_t _count)\r
+{\r
+    int ret, channel;\r
+    \r
+    if (wifi_enabled == 0)\r
+    {\r
+        printk("WiFi is disabled.\n");\r
+        return _count;\r
+    }\r
+    \r
+    channel = simple_strtol(_buf, NULL, 10);\r
+    \r
+    ret = wifi_emi_set_channel(channel);\r
+    if (ret != 0)\r
+    {\r
+        //printk("Set channel=%d fail.\n", channel);\r
+    }\r
+    else\r
+    {\r
+        //printk("Set channel=%d successfully.\n", channel);\r
+        wifi_channel = channel;\r
+    }\r
+    \r
+    return _count;\r
+}\r
+*/\r
+\r
+static struct class *rkwifi_class = NULL;\r
+static CLASS_ATTR(chip, 0666, wifi_chip_read, NULL);\r
+\r
+int rkwifi_sysif_init(void)\r
+{\r
+    int ret;\r
+    \r
+    printk("Rockchip WiFi SYS interface (V1.00) ... \n");\r
+    \r
+    rkwifi_class = NULL;\r
+    \r
+    rkwifi_class = class_create(THIS_MODULE, "rkwifi");\r
+    if (IS_ERR(rkwifi_class)) \r
+    {   \r
+        printk("Create class rkwifi_class failed.\n");\r
+        return -ENOMEM;\r
+    }\r
+    \r
+    ret =  class_create_file(rkwifi_class, &class_attr_chip);\r
+    \r
+    return 0;\r
+}\r
+\r
+void rkwifi_sysif_exit(void)\r
+{\r
+    // need to remove the sys files and class\r
+    class_remove_file(rkwifi_class, &class_attr_chip);\r
+    class_destroy(rkwifi_class);\r
+    \r
+    rkwifi_class = NULL;\r
+}\r
+\r
+module_init(rkwifi_sysif_init);\r
+module_exit(rkwifi_sysif_exit);\r
+\r
+MODULE_AUTHOR("Yongle Lai");\r
+MODULE_DESCRIPTION("WiFi SYS @ Rockchip");\r
+MODULE_LICENSE("GPL");\r
+\r