On Tue, May 22, 2012 at 1:26 PM, Andreas Hartmann <andihartmann@xxxxxxxxxxxxxxx> wrote: > Hello Helmut, > > Helmut Schaa wrote: >> Hi Andreas, >> >> Sorry, missed your previous mail. > > Thanks for your response!! This made things more clear to me! > >> On Tue, May 22, 2012 at 10:38 AM, Andreas Hartmann >> <andihartmann@xxxxxxxxxxxxxxx> wrote: >>> Andreas Hartmann wrote: >>>> Helmut Schaa wrote: >>>>> On Fri, May 18, 2012 at 6:21 PM, Tobias Diedrich <ranma@xxxxxxxxxxxx> wrote: >>>>>>> So, maybe we should do it the safe way and just register a safe default >>>>>>> of 20dBm for all channels? >>>>>> >>>>>> AFAIU that would cap you to 20dBm even if you are in a country that >>>>>> has higher limits (e.g. 27dBm in the US?). >>>>> >>>>> Not necessarily because the driver won't allow tx power adjustments at all >>>>> if EEPROM_EIRP_MAX_TX_POWER is unused. >>>> >>>> This means: >>>> Tx settings in cfg80211 as given by "iw reg get" e.g. are ignored >>>> completely as long as EEPROM_EIRP_MAX_TX_POWER is unused. >>>> Thus it is more or less chance that the device actually uses the allowed >>>> / correct Tx power at all. Maybe it's too high or too low. Both would be >>>> bad. > > [Most ralink devices have fixed max Tx power depended on the region, the > device was sold] > >> Either we have to tune cfg80211 to allow setting the tx power by percentage >> or disallow tx power control on these device or we trick cfg80211 by registering >> a reasonable default value (like 20dBm) to cfg80211 but do adjustments >> by percentage. >> >> So, if a device is actually calibrated to 17dBm but we register 20dBm >> to cfg80211 >> and a user sets the new tx power to 17dBm we can apply the actual delta to >> the device tx power configuration. Hence, the device will then >> transmit with 14dBm >> while cfg80211 shows 17dBm. This would be a compromise to still allow tx power >> settings without having to add all the overhead to cfg80211. > > What about this idea: The driver gets an option to set the calibrated > region (devcalreg), say US. This is a static value in respect of the device. > If the user operates the device in DE, he just would have to change the > value of cfg80211 from US to DE. > > Device sold in US > ================= > > Device operated in US > devcalreg=US 23dBm > cfg80211=US 100% max Tx power 23dBm > > Device operated in DE > devcalreg=US 23dBm > cfg80211=DE 87% max Tx power 20dBm > > If cfg80211 is set to a region which allows higher values, the > percentage would be >100%, but this could be probably easily prohibited. > > If the user doesn't provide devcalreg your default value gets applied. > > The difference to your idea is, that the "default" could be dynamically > derived from cfg80211 on the basis of the devcalreg. This would prohibit > the problem you showed above. Understood, but that would require the user to know the domain the device is calibrated for. I think we should just always run the device at 100% but add an option in the future to allow rx power reduction by percentage. Helmut -- 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