Module ath - Force regulatory domain - Please, help me improving a kernel
Hi!
I live in Brazil, and I can use channels 12 and 13 in 802.11 frequencies.
But, both my linux box and android mobile can't see these channels.
The hardware vendors simply don't change the eeprom corresponding field in Atheros boards and cause troubles for us. I am tired of recompiling crda, and I decided to change ath module.
Since kernel is open source, I think we must have opportunity to correct their errors at software level.
--
Then, at /usr/src/linux/drivers/net/wireless/ath , I changed file main.c, and added these lines:
static uint modparam_regdm;
module_param_named(regdm, modparam_regdm, uint, S_IRUGO);
MODULE_PARM_DESC(regdm, "Force regulatory domain.");
This way I can set other regulatory domain in /lib/modprobe.d/ath.conf :
options ath regdm=99 (This means regulatory domain is 0x63)
But I need to use this paramenter in other file regd.c, inside function ath_regd_init(...).
Instead of running this code:
regdmn = ath_regd_get_eepromRD(reg);
I need to run this code:
regdmn = (u16) modparam_regdm;
But compiling all of this is returning as modparam_regdm is undeclared name.
Please, I need help!
How I can use modparam_regdm declared in main.c in other file regd.c? I need to put it in ath.h? I need to use some export symbol?
Thank you very much!
Weber Kai
|