• R
    ath10k: recal the txpower when removing interface · d679fa1b
    Ryan Hsu 提交于
    The txpower is being recalculated when adding interface to make sure
    txpower won't overshoot the spec, and when removing the interface,
    the txpower should again to be recalculated to restore the correct value
    from the active interface list.
    
    Following is one of the scenario
    	vdev0 is created as STA and connected: txpower:23
    	vdev1 is created as P2P_DEVICE for control interface: txpower:0
    	vdev2 is created as p2p go/gc interface: txpower is 21
    
    So the vdev2@txpower:21 will be set to firmware when vdev2 is created.
    When we tear down the vdev2, the txpower needs to be recalculated to
    re-set it to vdev0@txpower:23 as vdev0/vdev1 are the active interface.
    
    	ath10k_pci mac vdev 0 peer create 8c:fd:f0:01:62:98
    	ath10k_pci mac vdev_id 0 txpower 23
    	... (adding interface)
    	ath10k_pci mac vdev create 2 (add interface) type 1 subtype 3
    	ath10k_pci mac vdev_id 2 txpower 21
    	ath10k_pci mac txpower 21
    	... (removing interface)
    	ath10k_pci mac vdev 2 delete (remove interface)
    	ath10k_pci vdev 1 txpower 0
    	ath10k_pci vdev 0 txpower 23
    	ath10k_pci mac txpower 23
    Signed-off-by: NRyan Hsu <ryanhsu@qca.qualcomm.com>
    Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
    d679fa1b
mac.c 206.1 KB