- if (wl_set_val(dev, "qtxpower", &wrqu->txpower.value, sizeof(int)) < 0)
- return -EINVAL;
+ if (wl_get_val(dev, "qtxpower", &override, sizeof(int)) < 0)
+ return -EINVAL;
+
+ wrqu->txpower.value |= override & WL_TXPWR_OVERRIDE;
+
+ if (wrqu->txpower.flags != IW_TXPOW_MWATT)
+ return -EINVAL;
+
+ if (wl_set_val(dev, "qtxpower", &wrqu->txpower.value, sizeof(int)) < 0)
+ return -EINVAL;
+
+ }