diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2009-09-11 13:38:14 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-07 16:39:32 -0400 |
commit | f2d0d0e2bab7a325071dbaba3bef51c90868e1e6 (patch) | |
tree | a61e9e036b0172483105834d064aa7f1a1a252b9 /drivers/net/wireless/iwlwifi/iwl-6000.c | |
parent | c812ee24855e20f43cf211e51e3eb53fe6dc6f1d (diff) |
iwlwifi: Adjust blink rate to compensate Clock difference
Adjust led blink rate to compensate on a MAC Clock difference on every
HW. Led blink rate analysis showed an average deviation of 0% on 3945,
5% on 4965 HW and 20% on 5000 series and up.
Need to compensate on the led on/off time per HW according to the
deviation to achieve the desired led frequency
The calculation is: (100-averageDeviation)/100 * blinkTime
For code efficiency the calculation will be:
compensation = (100 - averageDeviation) * 64 / 100
NewBlinkTime = (compensation * BlinkTime) / 64
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 4b3fb4095678..48b2b7d2170c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -258,6 +258,7 @@ struct iwl_cfg iwl6000h_2agn_cfg = { | |||
258 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 258 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
259 | .shadow_ram_support = true, | 259 | .shadow_ram_support = true, |
260 | .ht_greenfield_support = true, | 260 | .ht_greenfield_support = true, |
261 | .led_compensation = 51, | ||
261 | }; | 262 | }; |
262 | 263 | ||
263 | /* | 264 | /* |
@@ -281,6 +282,7 @@ struct iwl_cfg iwl6000i_2agn_cfg = { | |||
281 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 282 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
282 | .shadow_ram_support = true, | 283 | .shadow_ram_support = true, |
283 | .ht_greenfield_support = true, | 284 | .ht_greenfield_support = true, |
285 | .led_compensation = 51, | ||
284 | }; | 286 | }; |
285 | 287 | ||
286 | struct iwl_cfg iwl6050_2agn_cfg = { | 288 | struct iwl_cfg iwl6050_2agn_cfg = { |
@@ -301,6 +303,7 @@ struct iwl_cfg iwl6050_2agn_cfg = { | |||
301 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 303 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
302 | .shadow_ram_support = true, | 304 | .shadow_ram_support = true, |
303 | .ht_greenfield_support = true, | 305 | .ht_greenfield_support = true, |
306 | .led_compensation = 51, | ||
304 | }; | 307 | }; |
305 | 308 | ||
306 | struct iwl_cfg iwl6000_3agn_cfg = { | 309 | struct iwl_cfg iwl6000_3agn_cfg = { |
@@ -321,6 +324,7 @@ struct iwl_cfg iwl6000_3agn_cfg = { | |||
321 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 324 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
322 | .shadow_ram_support = true, | 325 | .shadow_ram_support = true, |
323 | .ht_greenfield_support = true, | 326 | .ht_greenfield_support = true, |
327 | .led_compensation = 51, | ||
324 | }; | 328 | }; |
325 | 329 | ||
326 | struct iwl_cfg iwl6050_3agn_cfg = { | 330 | struct iwl_cfg iwl6050_3agn_cfg = { |
@@ -341,6 +345,7 @@ struct iwl_cfg iwl6050_3agn_cfg = { | |||
341 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 345 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
342 | .shadow_ram_support = true, | 346 | .shadow_ram_support = true, |
343 | .ht_greenfield_support = true, | 347 | .ht_greenfield_support = true, |
348 | .led_compensation = 51, | ||
344 | }; | 349 | }; |
345 | 350 | ||
346 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); | 351 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); |