There's a bug in function prism54_get_freq You use macro MGT_GET_REQUEST_U32, which already converts le32_to_cpu, and later you also do fwrq->m = le32_to_cpu(channel); which converts back to le32 and iwconfig displays unnormal frequencies. The same bug also happens when state is not READY yet. The fix is just do simple : fwrq->m = channel; fwrq->e = ((channel < 1000) ? 0 : 3); Kaleda