]> code.ossystems Code Review - openembedded-core.git/commitdiff
rt2860: Support for the rt2860 RaLink 802.11n chipset
authorSamuel Ortiz <sameo@openedhand.com>
Thu, 11 Sep 2008 15:57:47 +0000 (15:57 +0000)
committerSamuel Ortiz <sameo@openedhand.com>
Thu, 11 Sep 2008 15:57:47 +0000 (15:57 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5184 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/rt2860/rt2860-1.7.0.0/01_dev_get_by_name.patch [new file with mode: 0644]
meta/packages/rt2860/rt2860-1.7.0.0/02_wpa-fix.patch [new file with mode: 0644]
meta/packages/rt2860/rt2860-1.7.0.0/03-iwe_stream_add.patch [new file with mode: 0644]
meta/packages/rt2860/rt2860-1.7.0.0/04-pci_name.patch [new file with mode: 0644]
meta/packages/rt2860/rt2860_1.7.0.0.bb [new file with mode: 0644]

diff --git a/meta/packages/rt2860/rt2860-1.7.0.0/01_dev_get_by_name.patch b/meta/packages/rt2860/rt2860-1.7.0.0/01_dev_get_by_name.patch
new file mode 100644 (file)
index 0000000..2f9d2ad
--- /dev/null
@@ -0,0 +1,24 @@
+---
+ src/rt_main_dev.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+Index: rt2860-clean/src/rt_main_dev.c
+===================================================================
+--- rt2860-clean.orig/src/rt_main_dev.c        2008-09-11 15:05:14.000000000 +0200
++++ rt2860-clean/src/rt_main_dev.c     2008-09-11 15:05:17.000000000 +0200
+@@ -800,7 +800,14 @@ static NDIS_STATUS rt_ieee80211_if_setup
+               sprintf(slot_name, "ra%d", i);
+           
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-              device = dev_get_by_name(dev->nd_net, slot_name);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++      device = dev_get_by_name(dev_net(dev), slot_name);
++#else
++      device = dev_get_by_name(dev->nd_net, slot_name);
++#endif
++
+ #else
+               device = dev_get_by_name(slot_name);
+ #endif
diff --git a/meta/packages/rt2860/rt2860-1.7.0.0/02_wpa-fix.patch b/meta/packages/rt2860/rt2860-1.7.0.0/02_wpa-fix.patch
new file mode 100644 (file)
index 0000000..c55093d
--- /dev/null
@@ -0,0 +1,30 @@
+---
+ src/mlme.c |   15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+Index: rt2860-clean/src/mlme.c
+===================================================================
+--- rt2860-clean.orig/src/mlme.c       2008-09-11 15:06:10.000000000 +0200
++++ rt2860-clean/src/mlme.c    2008-09-11 15:06:14.000000000 +0200
+@@ -772,6 +772,21 @@ VOID MlmePeriodicExec(
+       ULONG                   TxTotalCnt;
+       PRTMP_ADAPTER   pAd = (RTMP_ADAPTER *)FunctionContext;
++#ifdef EEEPC_SPECIAL_SETTING
++      //Baron 2008/07/10
++      //printk("Baron_Test:\t%s", RTMPGetRalinkEncryModeStr(pAd->StaCfg.WepStatus));
++      //If the STA security setting is OPEN or WEP, pAd->StaCfg.WpaSupplicantUP = 0.
++      //If the STA security setting is WPAPSK or WPA2PSK, pAd->StaCfg.WpaSupplicantUP = 1.
++      if(pAd->StaCfg.WepStatus<2)
++      {
++              pAd->StaCfg.WpaSupplicantUP = 0;
++      }
++      else
++      {
++              pAd->StaCfg.WpaSupplicantUP = 1;
++      }
++#endif
++
+ #ifdef CONFIG_STA_SUPPORT
+ #ifdef RT2860
+       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
diff --git a/meta/packages/rt2860/rt2860-1.7.0.0/03-iwe_stream_add.patch b/meta/packages/rt2860/rt2860-1.7.0.0/03-iwe_stream_add.patch
new file mode 100644 (file)
index 0000000..c47d561
--- /dev/null
@@ -0,0 +1,118 @@
+---
+ src/sta_ioctl.c |   26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+Index: rt2860-clean/src/sta_ioctl.c
+===================================================================
+--- rt2860-clean.orig/src/sta_ioctl.c  2008-09-11 15:14:44.000000000 +0200
++++ rt2860-clean/src/sta_ioctl.c       2008-09-11 15:44:27.000000000 +0200
+@@ -1010,8 +1010,8 @@ int rt_ioctl_siwscan(struct net_device *
+ }
+ int rt_ioctl_giwscan(struct net_device *dev,
+-                      struct iw_request_info *info,
+-                      struct iw_point *data, char *extra)
++                   struct iw_request_info *info,
++                   struct iw_point *data, char *extra)
+ {
+       PRTMP_ADAPTER pAdapter = (PRTMP_ADAPTER) dev->priv;
+@@ -1073,7 +1073,7 @@ int rt_ioctl_giwscan(struct net_device *
+                               memcpy(iwe.u.ap_addr.sa_data, &pAdapter->ScanTab.BssEntry[i].Bssid, ETH_ALEN);
+         previous_ev = current_ev;
+-                      current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
++      current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1089,7 +1089,7 @@ int rt_ioctl_giwscan(struct net_device *
+               iwe.u.data.flags = 1;
+  
+         previous_ev = current_ev;
+-              current_ev = iwe_stream_add_point(current_ev,end_buf, &iwe, pAdapter->ScanTab.BssEntry[i].Ssid);
++              current_ev = iwe_stream_add_point(info, current_ev,end_buf, &iwe, pAdapter->ScanTab.BssEntry[i].Ssid);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1116,7 +1116,7 @@ int rt_ioctl_giwscan(struct net_device *
+               iwe.len = IW_EV_UINT_LEN;
+         previous_ev = current_ev;
+-              current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
++              current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1136,7 +1136,7 @@ int rt_ioctl_giwscan(struct net_device *
+               iwe.u.freq.i = 0;
+               
+               previous_ev = current_ev;
+-              current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
++              current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1151,7 +1151,7 @@ int rt_ioctl_giwscan(struct net_device *
+       iwe.u.qual.level = 0;
+       iwe.u.qual.noise = 0;
+         set_quality(pAdapter, &iwe.u.qual, pAdapter->ScanTab.BssEntry[i].Rssi);
+-      current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
++      current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1169,7 +1169,7 @@ int rt_ioctl_giwscan(struct net_device *
+                       iwe.u.data.flags = IW_ENCODE_DISABLED;
+         previous_ev = current_ev;             
+-        current_ev = iwe_stream_add_point(current_ev, end_buf,&iwe, (char *)pAdapter->SharedKey[BSS0][(iwe.u.data.flags & IW_ENCODE_INDEX)-1].Key);
++        current_ev = iwe_stream_add_point(info, current_ev, end_buf,&iwe, (char *)pAdapter->SharedKey[BSS0][(iwe.u.data.flags & IW_ENCODE_INDEX)-1].Key);
+         if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+             return -E2BIG;
+@@ -1197,7 +1197,7 @@ int rt_ioctl_giwscan(struct net_device *
+                   iwe.u.bitrate.value =  (tmpRate/2) * 1000000;
+             
+                       iwe.u.bitrate.disabled = 0;
+-                      current_val = iwe_stream_add_value(current_ev,
++                      current_val = iwe_stream_add_value(info, current_ev,
+                               current_val, end_buf, &iwe,
+                       IW_EV_PARAM_LEN);            
+@@ -1221,7 +1221,7 @@ int rt_ioctl_giwscan(struct net_device *
+                                                  pAdapter->ScanTab.BssEntry[i].WpaIE.IELen);
+                       iwe.cmd = IWEVGENIE;
+                       iwe.u.data.length = pAdapter->ScanTab.BssEntry[i].WpaIE.IELen;
+-                      current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
++                      current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
+                       if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+                 return -E2BIG;
+@@ -1239,7 +1239,7 @@ int rt_ioctl_giwscan(struct net_device *
+                                                  pAdapter->ScanTab.BssEntry[i].RsnIE.IELen);
+                       iwe.cmd = IWEVGENIE;
+                       iwe.u.data.length = pAdapter->ScanTab.BssEntry[i].RsnIE.IELen;
+-                      current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
++                      current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
+                       if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+                 return -E2BIG;
+@@ -1260,7 +1260,7 @@ int rt_ioctl_giwscan(struct net_device *
+             for (idx = 0; idx < pAdapter->ScanTab.BssEntry[i].WpaIE.IELen; idx++)
+                 sprintf(custom, "%s%02x", custom, pAdapter->ScanTab.BssEntry[i].WpaIE.IE[idx]);
+             previous_ev = current_ev;
+-              current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,  custom);
++              current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe,  custom);
+             if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+                 return -E2BIG;
+@@ -1280,7 +1280,7 @@ int rt_ioctl_giwscan(struct net_device *
+                       for (idx = 0; idx < pAdapter->ScanTab.BssEntry[i].RsnIE.IELen; idx++)
+                 sprintf(custom, "%s%02x", custom, pAdapter->ScanTab.BssEntry[i].RsnIE.IE[idx]);
+             previous_ev = current_ev;
+-              current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,  custom);
++              current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe,  custom);
+             if (current_ev == previous_ev)
+ #if WIRELESS_EXT >= 17
+                 return -E2BIG;
diff --git a/meta/packages/rt2860/rt2860-1.7.0.0/04-pci_name.patch b/meta/packages/rt2860/rt2860-1.7.0.0/04-pci_name.patch
new file mode 100644 (file)
index 0000000..ded9350
--- /dev/null
@@ -0,0 +1,17 @@
+---
+ src/2860_main_dev.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: rt2860-clean/src/2860_main_dev.c
+===================================================================
+--- rt2860-clean.orig/src/2860_main_dev.c      2008-09-11 16:29:27.000000000 +0200
++++ rt2860-clean/src/2860_main_dev.c   2008-09-11 16:29:32.000000000 +0200
+@@ -1074,7 +1074,7 @@ BOOLEAN RT28XXNetDevInit(
+       IN RTMP_ADAPTER                 *pAd)
+ {
+       struct pci_dev *pci_dev = (struct pci_dev *)_dev_p;
+-    CHAR      *print_name;
++    const char        *print_name;
+     ULONG     csr_addr;
diff --git a/meta/packages/rt2860/rt2860_1.7.0.0.bb b/meta/packages/rt2860/rt2860_1.7.0.0.bb
new file mode 100644 (file)
index 0000000..fb11efd
--- /dev/null
@@ -0,0 +1,26 @@
+DESCRIPTION = "Driver for the 802.11n RaLink rt2860 chipset"
+PRIORITY = "optional"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://folks.o-hand.com/sameo/rt2860/rt2860-1.7.0.0.tar.bz2 \
+           file://01_dev_get_by_name.patch;patch=1 \
+           file://02_wpa-fix.patch;patch=1" \
+           file://03-iwe_stream_add.patch;patch=1" \
+           file://04-pci_name.patch;patch=1"
+
+S = "${WORKDIR}/rt2860-1.7.0.0"
+
+inherit module
+
+EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \
+                'LD=${KERNEL_LD}' \
+                'KDIR=${STAGING_KERNEL_DIR}'"
+
+MODULES = "rt2860"
+
+do_install() {
+        install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless
+        install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless
+}