Hi, > diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x > index 8a22e65..f934325 100644 > --- a/drivers/net/wireless/rt2x00/rt2800pci.c > +++ b/drivers/net/wireless/rt2x00/rt2800pci.c > @@ -380,7 +380,12 @@ static int rt2800pci_rfkill_poll(struct rt2x00_dev *rt2x00d > u32 reg; > > rt2x00pci_register_read(rt2x00dev, GPIO_CTRL_CFG, ®); > - return rt2x00_get_field32(reg, GPIO_CTRL_CFG_BIT2); > + /*return rt2x00_get_field32(reg, GPIO_CTRL_CFG_BIT2);*/ > + if (rt2x00_get_field32(reg, GPIO_CTRL_CFG_BIT2)) { > + rt2x00_set_field32(®, GPIO_CTRL_CFG_BIT2, 0); > + rt2x00pci_register_write(rt2x00dev, GPIO_CTRL_CFG, reg); > + } > + return 0; > } Writing to the GPIO isn't the solution, the entire register is read-only, so the chip will ignore it. The reason why the RFKILL bit is apparently set while it shouldn't is that the device isn't initialized correctly and the entire device isn't ready to handle anything at this time. Ivo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html