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