Search Linux Wireless

Re: [PATCH] ath11k: Support loading ELF board files.

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

 



greearb@xxxxxxxxxxxxxxx writes:

> From: Ben Greear <greearb@xxxxxxxxxxxxxxx>
>
> The QCA6390 board I have, model 8291M-PR comes with an ELF board
> file.  To get this to at least somewhat work, I renamed bdwlan.e04
> to 'board.bin' and then added this patch to check for .ELF as
> starting bytes of the board file.  If that is found, use type
> ELF.  After this the driver loads.
>
> Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx>
> ---
>
> This is on top of recent kvallo ath tree.
>
>  drivers/net/wireless/ath/ath11k/qmi.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c
> index 91134510364c..f87f1d1564f4 100644
> --- a/drivers/net/wireless/ath/ath11k/qmi.c
> +++ b/drivers/net/wireless/ath/ath11k/qmi.c
> @@ -1992,6 +1992,7 @@ static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab)
>  	struct qmi_txn txn = {};
>  	int ret;
>  	const u8 *temp;
> +	int bdf_type = ATH11K_QMI_BDF_TYPE_BIN;
>  
>  	req = kzalloc(sizeof(*req), GFP_KERNEL);
>  	if (!req)
> @@ -2008,6 +2009,15 @@ static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab)
>  	temp = bd.data;
>  	remaining = bd.len;
>  
> +	if (bd.len >= 4) {
> +		char* edata = (char*)(temp);
> +		if (edata[1] == 'E' &&
> +		    edata[2] == 'L' &&
> +		    edata[3] == 'F') {
> +			bdf_type = ATH11K_QMI_BDF_TYPE_ELF;
> +		}
> +	}

Thanks, looks good. Expect that the ELF magic check can be simplified to:

strncmp(edata, ELFMAG, SELFMAG)

But I can send v2, I'll soon send some more QCA6390 patches and I'll
include this to the set.

-- 
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