bcm-v4

[Specification

PHY TX Power Recalc Target

  1. Initialize u8 tx_pwr_max to 0
  2. Initialize u8 tx_pwr_min to 255
  3. Define u8 array tx_pwr_rate with 101 elements
  4. If this is an N PHY
    1. Set max_num_rate to 101
  5. Else if this is an LCN PHY
    1. Set max_num_rate to 28
  6. Otherwise
    1. Set max_num_rate to 12
  7. Loop man_num_rate times, start with 0, increment by 1, and use rate as index
    1. Set tx_pwr_rate[rate] to the maximum for this channel/band
    2. Set tx_pwr_target[rate] to the minimum of tx_pwr_rate[rate] and 127
    3. If tx_pwr_target[rate] > tx_pwr_max

      1. Set tx_pwr_max_rate_ind to rate
    4. Set tx_pwr_max to the maximum of tx_pwr_max and tx_pwr_target[rate]
    5. Set tx_pwr_min to the minimum of tx_pwr_min and tx_pwr_target[rate]
  8. Set tx_power_max to tx_pwr_max

  9. Set tx_power_min to tx_pwr_min

  10. Set tx_power_max_rate_ind to tx_pwr_max_rate_ind

  11. Loop man_num_rate times, start with 0, increment by 1, and use rate as index
    1. Clear tx_power_offset[rate] (Probably not needed, but left in specs for now.)

    2. Set tx_power_target[rate] to tx_pwr_target[rate]

    3. If hwpwrctrl is zero or this is a N PHY (This test and its dependencies are probably not needed, but left in specs for now.)

      1. Set tx_power_offset[rate] to tx_power_max - tx_power_target[rate]

    4. Otherwise
      1. Set tx_power_offset[rate] to tx_power_target[rate] - tx_power_min

  12. If this is an N PHY
    1. Call N PHY TX Power Recalc Target

  13. Else if this is an LCN PHY
    1. Call LCN PHY TX Power Recalc Target


Exported/Archived from the wiki to HTML on 2016-10-27