kernel: add missing config symbols for 4.9
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 611-rt2x00-rf_vals-rt3352-xtal20.patch
index 7137834aa73f6a103bc58b6d7b7be1c8e48bbb5e..124b952515218291e1eebbf21965d1802d1335bf 100644 (file)
@@ -1,6 +1,14 @@
---- a/drivers/net/wireless/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7491,6 +7491,27 @@ static const struct rf_channel rf_vals_5
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -36,6 +36,7 @@
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/slab.h>
++#include <linux/clk.h>
+ #include "rt2x00.h"
+ #include "rt2800lib.h"
+@@ -8183,6 +8184,27 @@ static const struct rf_channel rf_vals_5
        {196, 83, 0, 12, 1},
  };
  
@@ -28,7 +36,7 @@
  static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
  {
        struct hw_mode_spec *spec = &rt2x00dev->spec;
-@@ -7578,7 +7599,10 @@ static int rt2800_probe_hw_mode(struct r
+@@ -8273,7 +8295,10 @@ static int rt2800_probe_hw_mode(struct r
        case RF5390:
        case RF5392:
                spec->num_channels = 14;
                break;
  
        case RF3052:
-@@ -7754,6 +7778,19 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -8457,6 +8482,20 @@ static int rt2800_probe_rt(struct rt2x00
        return 0;
  }
  
 +int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev)
 +{
-+      struct rt2x00_platform_data *pdata = rt2x00dev->dev->platform_data;
 +      struct hw_mode_spec *spec = &rt2x00dev->spec;
++      struct clk *clk = clk_get(rt2x00dev->dev, NULL);
 +
-+      if (!pdata)
-+              return -EINVAL;
++      if (IS_ERR(clk))
++              return PTR_ERR(clk);
 +
-+      spec->clk_is_20mhz = pdata->clk_is_20mhz;
++      if (clk_get_rate(clk) == 20000000)
++              spec->clk_is_20mhz = 1;
 +
 +      return 0;
 +}
 +
  int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
  {
-       int retval;
-@@ -7783,6 +7820,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+       struct rt2800_drv_data *drv_data = rt2x00dev->drv_data;
+@@ -8499,6 +8538,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
  
        /*
@@ -76,9 +85,9 @@
         * Initialize hw specifications.
         */
        retval = rt2800_probe_hw_mode(rt2x00dev);
---- a/drivers/net/wireless/rt2x00/rt2x00.h
-+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -398,6 +398,7 @@ static inline struct rt2x00_intf* vif_to
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+@@ -401,6 +401,7 @@ static inline struct rt2x00_intf* vif_to
   * @channels: Device/chipset specific channel values (See &struct rf_channel).
   * @channels_info: Additional information for channels (See &struct channel_info).
   * @ht: Driver HT Capabilities (See &ieee80211_sta_ht_cap).
@@ -86,7 +95,7 @@
   */
  struct hw_mode_spec {
        unsigned int supported_bands;
-@@ -414,6 +415,7 @@ struct hw_mode_spec {
+@@ -417,6 +418,7 @@ struct hw_mode_spec {
        const struct channel_info *channels_info;
  
        struct ieee80211_sta_ht_cap ht;
  };
  
  /*
---- a/include/linux/rt2x00_platform.h
-+++ b/include/linux/rt2x00_platform.h
-@@ -18,6 +18,7 @@ struct rt2x00_platform_data {
-       int disable_2ghz;
-       int disable_5ghz;
-+      int clk_is_20mhz;
- };
- #endif /* _RT2X00_PLATFORM_H */