Search Linux Wireless

Re: [v2] ath10k: search all IEs for variant before falling back

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote:

> commit f2593cb1b291 ("ath10k: Search SMBIOS for OEM board file
> extension") added a feature to ath10k that allows Board Data File
> (BDF) conflicts between multiple devices that use the same device IDs
> but have different calibration requirements to be resolved by allowing
> a "variant" string to be stored in SMBIOS [and later device tree, added
> by commit d06f26c5c8a4 ("ath10k: search DT for qcom,ath10k-calibration-
> variant")] that gets appended to the ID stored in board-2.bin.
> 
> This original patch had a regression, however. Namely that devices with
> a variant present in SMBIOS that didn't need custom BDFs could no longer
> find the default BDF, which has no variant appended. The patch was
> reverted and re-applied with a fix for this issue in commit 1657b8f84ed9
> ("search SMBIOS for OEM board file extension").
> 
> But the fix to fall back to a default BDF introduced another issue: the
> driver currently parses IEs in board-2.bin one by one, and for each one
> it first checks to see if it matches the ID with the variant appended.
> If it doesn't, it checks to see if it matches the "fallback" ID with no
> variant. If a matching BDF is found at any point during this search, the
> search is terminated and that BDF is used. The issue is that it's very
> possible (and is currently the case for board-2.bin files present in the
> ath10k-firmware repository) for the default BDF to occur in an earlier
> IE than the variant-specific BDF. In this case, the current code will
> happily choose the default BDF even though a better-matching BDF is
> present later in the file.
> 
> This patch fixes the issue by first searching the entire file for the ID
> with variant, and searching for the fallback ID only if that search
> fails. It also includes some code cleanup in the area, as
> ath10k_core_fetch_board_data_api_n() no longer does its own string
> mangling to remove the variant from an ID, instead leaving that job to a
> new flag passed to ath10k_core_create_board_name().
> 
> I've tested this patch on a QCA4019 and verified that the driver behaves
> correctly for 1) both fallback and variant BDFs present, 2) only fallback
> BDF present, and 3) no matching BDFs present.
> 
> Fixes: 1657b8f84ed9 ("ath10k: search SMBIOS for OEM board file extension")
> Signed-off-by: Thomas Hebb <tommyhebb@xxxxxxxxx>
> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>

Patch applied to ath-next branch of ath.git, thanks.

c8489668065a ath10k: search all IEs for variant before falling back

-- 
https://patchwork.kernel.org/patch/10340241/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux