|
@@ -1264,6 +1264,7 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,
|
|
|
struct tpacpi_rfk *atp_rfk;
|
|
|
int res;
|
|
|
bool sw_state = false;
|
|
|
+ bool hw_state;
|
|
|
int sw_status;
|
|
|
|
|
|
BUG_ON(id >= TPACPI_RFK_SW_MAX || tpacpi_rfkill_switches[id]);
|
|
@@ -1298,7 +1299,8 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,
|
|
|
rfkill_init_sw_state(atp_rfk->rfkill, sw_state);
|
|
|
}
|
|
|
}
|
|
|
- rfkill_set_hw_state(atp_rfk->rfkill, tpacpi_rfk_check_hwblock_state());
|
|
|
+ hw_state = tpacpi_rfk_check_hwblock_state();
|
|
|
+ rfkill_set_hw_state(atp_rfk->rfkill, hw_state);
|
|
|
|
|
|
res = rfkill_register(atp_rfk->rfkill);
|
|
|
if (res < 0) {
|
|
@@ -1311,6 +1313,9 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,
|
|
|
}
|
|
|
|
|
|
tpacpi_rfkill_switches[id] = atp_rfk;
|
|
|
+
|
|
|
+ printk(TPACPI_INFO "rfkill switch %s: radio is %sblocked\n",
|
|
|
+ name, (sw_state || hw_state) ? "" : "un");
|
|
|
return 0;
|
|
|
}
|
|
|
|