Helmut Schaa schrieb: > 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. Why should he not know this? If it is really not known, your default is applied hence nothing is lost. > 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. Hmmm, but this requires the user to know even more: - For which domain is the device originally calibrated? - What's the allowed max value of this domain? - What's the allowed max value of the new domain the device should operate now? - Calculate the percentage < 100% to get the correct Tx-power. Don't you think that this is much more complicated as just applying the domain the device was originally sold from (or maybe there is a certificate given with the device telling about another approved domain)? Sorry, kind regards, Andreas -- 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