diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c
--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c	2015-09-19 00:47:30.000000000 +0200
+++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c	2016-08-15 01:58:51.610278898 +0200
@@ -235,6 +235,25 @@
 };
 #endif				
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+#define CHAN2G(_channel, _freq, _flags) {			\
+	.band			= NL80211_BAND_2GHZ,		\
+	.center_freq		= (_freq),			\
+	.hw_value		= (_channel),			\
+	.flags			= (_flags),			\
+	.max_antenna_gain	= 0,				\
+	.max_power		= 30,				\
+}
+
+#define CHAN5G(_channel, _flags) {				\
+	.band			= NL80211_BAND_5GHZ,		\
+	.center_freq		= 5000 + (5 * (_channel)),	\
+	.hw_value		= (_channel),			\
+	.flags			= (_flags),			\
+	.max_antenna_gain	= 0,				\
+	.max_power		= 30,				\
+}
+#else
 #define CHAN2G(_channel, _freq, _flags) {			\
 	.band			= IEEE80211_BAND_2GHZ,		\
 	.center_freq		= (_freq),			\
@@ -252,6 +271,7 @@
 	.max_antenna_gain	= 0,				\
 	.max_power		= 30,				\
 }
+#endif
 
 #define RATE_TO_BASE100KBPS(rate)   (((rate) * 10) / 2)
 #define RATETAB_ENT(_rateid, _flags) \
@@ -379,7 +399,11 @@
 };
 
 static struct ieee80211_supported_band __wl_band_2ghz = {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+	.band = NL80211_BAND_2GHZ,
+#else
 	.band = IEEE80211_BAND_2GHZ,
+#endif
 	.channels = __wl_2ghz_channels,
 	.n_channels = ARRAY_SIZE(__wl_2ghz_channels),
 	.bitrates = wl_g_rates,
@@ -387,7 +411,11 @@
 };
 
 static struct ieee80211_supported_band __wl_band_5ghz_a = {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+	.band = NL80211_BAND_5GHZ,
+#else
 	.band = IEEE80211_BAND_5GHZ,
+#endif
 	.channels = __wl_5ghz_a_channels,
 	.n_channels = ARRAY_SIZE(__wl_5ghz_a_channels),
 	.bitrates = wl_a_rates,
@@ -395,7 +423,11 @@
 };
 
 static struct ieee80211_supported_band __wl_band_5ghz_n = {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+	.band = NL80211_BAND_5GHZ,
+#else
 	.band = IEEE80211_BAND_5GHZ,
+#endif
 	.channels = __wl_5ghz_n_channels,
 	.n_channels = ARRAY_SIZE(__wl_5ghz_n_channels),
 	.bitrates = wl_a_rates,
@@ -1876,8 +1908,13 @@
 	wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX;
 #endif
 	wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+	wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz;
+	wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; 
+#else
 	wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz;
 	wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; 
+#endif
 	wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
 	wdev->wiphy->cipher_suites = __wl_cipher_suites;
 	wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites);
@@ -2000,7 +2037,11 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
 	freq = ieee80211_channel_to_frequency(notif_bss_info->channel,
 		(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ?
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+		NL80211_BAND_2GHZ : NL80211_BAND_5GHZ);
+#else
 		IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
+#endif
 #else
 	freq = ieee80211_channel_to_frequency(notif_bss_info->channel);
 #endif
@@ -2116,7 +2157,11 @@
 				return err;
 			}
 			chan = wf_chspec_ctlchan(chanspec);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+			band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ;
+#else
 			band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ;
+#endif
 			freq = ieee80211_channel_to_frequency(chan, band);
 			channel = ieee80211_get_channel(wiphy, freq);
 			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
@@ -2250,10 +2295,18 @@
 		join_params->params.chanspec_list[0] =
 		    ieee80211_frequency_to_channel(chan->center_freq);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+		if (chan->band == NL80211_BAND_2GHZ) {
+#else
 		if (chan->band == IEEE80211_BAND_2GHZ) {
+#endif
 			chanspec |= WL_CHANSPEC_BAND_2G;
 		}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+		else if (chan->band == NL80211_BAND_5GHZ) {
+#else
 		else if (chan->band == IEEE80211_BAND_5GHZ) {
+#endif
 			chanspec |= WL_CHANSPEC_BAND_5G;
 		}
 		else {
@@ -2885,7 +2938,11 @@
 
 	if (phy == 'n' || phy == 'a' || phy == 'v') {
 		wiphy = wl_to_wiphy(wl);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+		wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n;
+#else
 		wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n;
+#endif
 	}
 
 	return err;
