OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 Atheros Communications Inc. | 2 * Copyright (c) 2010 Atheros Communications Inc. |
3 * | 3 * |
4 * Permission to use, copy, modify, and/or distribute this software for any | 4 * Permission to use, copy, modify, and/or distribute this software for any |
5 * purpose with or without fee is hereby granted, provided that the above | 5 * purpose with or without fee is hereby granted, provided that the above |
6 * copyright notice and this permission notice appear in all copies. | 6 * copyright notice and this permission notice appear in all copies. |
7 * | 7 * |
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
790 | 790 |
791 spot = 0; | 791 spot = 0; |
792 | 792 |
793 for (it = 0; it < size; it += (length+2)) { | 793 for (it = 0; it < size; it += (length+2)) { |
794 offset = block[it]; | 794 offset = block[it]; |
795 offset &= 0xff; | 795 offset &= 0xff; |
796 spot += offset; | 796 spot += offset; |
797 length = block[it+1]; | 797 length = block[it+1]; |
798 length &= 0xff; | 798 length &= 0xff; |
799 | 799 |
800 » » if (length > 0 && spot >= 0 && spot+length < mdataSize) { | 800 » » if (length > 0 && spot >= 0 && spot+length <= mdataSize) { |
801 ath_print(common, ATH_DBG_EEPROM, | 801 ath_print(common, ATH_DBG_EEPROM, |
802 "Restore at %d: spot=%d " | 802 "Restore at %d: spot=%d " |
803 "offset=%d length=%d\n", | 803 "offset=%d length=%d\n", |
804 it, spot, offset, length); | 804 it, spot, offset, length); |
805 memcpy(&mptr[spot], &block[it+2], length); | 805 memcpy(&mptr[spot], &block[it+2], length); |
806 spot += length; | 806 spot += length; |
807 } else if (length > 0) { | 807 } else if (length > 0) { |
808 ath_print(common, ATH_DBG_EEPROM, | 808 ath_print(common, ATH_DBG_EEPROM, |
809 "Bad restore at %d: spot=%d " | 809 "Bad restore at %d: spot=%d " |
810 "offset=%d length=%d\n", | 810 "offset=%d length=%d\n", |
(...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2210 .fill_eeprom = ath9k_hw_ar9300_fill_eeprom, | 2210 .fill_eeprom = ath9k_hw_ar9300_fill_eeprom, |
2211 .get_eeprom_ver = ath9k_hw_ar9300_get_eeprom_ver, | 2211 .get_eeprom_ver = ath9k_hw_ar9300_get_eeprom_ver, |
2212 .get_eeprom_rev = ath9k_hw_ar9300_get_eeprom_rev, | 2212 .get_eeprom_rev = ath9k_hw_ar9300_get_eeprom_rev, |
2213 .get_num_ant_config = ath9k_hw_ar9300_get_num_ant_config, | 2213 .get_num_ant_config = ath9k_hw_ar9300_get_num_ant_config, |
2214 .get_eeprom_antenna_cfg = ath9k_hw_ar9300_get_eeprom_antenna_cfg, | 2214 .get_eeprom_antenna_cfg = ath9k_hw_ar9300_get_eeprom_antenna_cfg, |
2215 .set_board_values = ath9k_hw_ar9300_set_board_values, | 2215 .set_board_values = ath9k_hw_ar9300_set_board_values, |
2216 .set_addac = ath9k_hw_ar9300_set_addac, | 2216 .set_addac = ath9k_hw_ar9300_set_addac, |
2217 .set_txpower = ath9k_hw_ar9300_set_txpower, | 2217 .set_txpower = ath9k_hw_ar9300_set_txpower, |
2218 .get_spur_channel = ath9k_hw_ar9300_get_spur_channel | 2218 .get_spur_channel = ath9k_hw_ar9300_get_spur_channel |
2219 }; | 2219 }; |
OLD | NEW |