On 12/6/2022 10:58 AM, Konrad Dybcio wrote: > > > On 02/12/2022 20:28, Arend Van Spriel wrote: >> >> >> On 12/2/2022 4:26 PM, Arend van Spriel wrote: >>> On 12/2/2022 11:33 AM, Konrad Dybcio wrote: >>>> >>>> >>>> On 1.12.2022 12:31, Arend van Spriel wrote: >>>>> On 11/28/2022 3:40 PM, Konrad Dybcio wrote: >>>>>> >>>>>> >>>>>> On 26.11.2022 22:45, Linus Walleij wrote: >>>>>>> On Fri, Nov 25, 2022 at 1:25 PM Kalle Valo wrote: >>>>>>>> Konrad Dybcio writes: >>>>>>>> >>>>>>>>> On 25.11.2022 12:53, Kalle Valo wrote: >>>>>>>>>> Konrad Dybcio writes: >>>>>>>>>> >>>>>>>>>>> On 21.11.2022 14:56, Linus Walleij wrote: >>>>>>>>>>>> On Fri, Nov 18, 2022 at 5:47 PM Konrad Dybcio >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I can think of a couple of hacky ways to force use of 43596 >>>>>>>>>>>>> fw, but I >>>>>>>>>>>>> don't think any would be really upstreamable.. >>>>>>>>>>>> >>>>>>>>>>>> If it is only known to affect the Sony Xperias mentioned then >>>>>>>>>>>> a thing such as: >>>>>>>>>>>> >>>>>>>>>>>> if (of_machine_is_compatible("sony,xyz") || >>>>>>>>>>>>       of_machine_is_compatible("sony,zzz")... ) { >>>>>>>>>>>>      // Enforce FW version >>>>>>>>>>>> } >>>>>>>>>>>> >>>>>>>>>>>> would be completely acceptable in my book. It hammers the >>>>>>>>>>>> problem from the top instead of trying to figure out itsy witsy >>>>>>>>>>>> details about firmware revisions. >>>>>>>>>>>> >>>>>>>>>>>> Yours, >>>>>>>>>>>> Linus Walleij >>>>>>>>>>> >>>>>>>>>>> Actually, I think I came up with a better approach by pulling >>>>>>>>>>> a page >>>>>>>>>>> out of Asahi folks' book - please take a look and tell me >>>>>>>>>>> what you >>>>>>>>>>> think about this: >>>>>>>>>>> >>>>>>>>>>> [1] >>>>>>>>>>> https://github.com/SoMainline/linux/commit/4b6fccc995cd79109b0dae4e4ab2e48db97695e7 >>>>>>>>>>> [2] >>>>>>>>>>> https://github.com/SoMainline/linux/commit/e3ea1dc739634f734104f37fdbed046873921af7 >>>>>>> >>>>>>> Something in this direction works too. >>>>>>> >>>>>>> The upside is that it tells all operating systems how to deal >>>>>>> with the firmware for this hardware. >>>>>>> >>>>>>>>>> Instead of a directory path ("brcm/brcmfmac43596-pcie") why >>>>>>>>>> not provide >>>>>>>>>> just the chipset name ("brcmfmac43596-pcie")? IMHO it's >>>>>>>>>> unnecessary to >>>>>>>>>> have directory names in Device Tree. >>>>>>>>> >>>>>>>>> I think it's common practice to include a full >>>>>>>>> $FIRMWARE_DIR-relative >>>>>>>>> path when specifying firmware in DT, though here I left out the >>>>>>>>> board >>>>>>>>> name bit as that's assigned dynamically anyway. That said, if >>>>>>>>> you don't >>>>>>>>> like it, I can change it. >>>>>>>> >>>>>>>> It's just that I have understood that Device Tree is supposed to >>>>>>>> describe hardware and to me a firmware directory "brcm/" is a >>>>>>>> software >>>>>>>> property, not a hardware property. But this is really for the >>>>>>>> Device >>>>>>>> Tree maintainers to decide, they know this best :) >>>>>>> >>>>>>> I would personally just minimize the amount of information >>>>>>> put into the device tree to be exactly what is needed to find >>>>>>> the right firmware. >>>>>>> >>>>>>> brcm,firmware-compatible = "43596"; >>>>>>> >>>>>>> since the code already knows how to conjure the rest of the string. >>>>>>> >>>>>>> But check with Rob/Krzysztof. >>>>>>> >>>>>>> Yours, >>>>>>> Linus Walleij >>>>>> >>>>>> Krzysztof, Rob [added to CC] - can I have your opinions? >>>>> >>>>> I tried catching up on this thread. Reading it I am not sure what >>>>> the issue is, but I am happy to dive in. If you can provide a boot >>>>> log with brcmfmac loaded with module parameter 'debug=0x1416' I can >>>>> try and make sense of the chipid/devid confusion. >>>> >>>> Hope this helps, thanks! https://hastebin.com/xidagekuge.yaml >>> >>> It does to some extent. It is basically a 4359 revision 9: >>> >>> [   25.898782] brcmfmac: brcmf_chip_recognition found AXI chip: >>> BCM4359/9 >>> >>> The 4359 entry in pcie.c is applicable for revision 0 and higher >>> (doubtful but that is in the code): >>> >>>      BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359), >>> >>> We need to change the mask above to 0x000001FF and add a new entry >>> with mask 0xFFFFFE00. All we need is come up with a reasonable >>> firmware filename. So can you run the strings command on the firmware >>> you use: >>> >>> $ strings fw.bin | tail -1 >>> >>> and let me know the output. >> >> Actually realized you already provided a URL to the repo containing >> the firmware you used. So I had a look and it shows: >> >> 43596a0-roml/pcie-ag-apcs-pktctx-proptxstatus-ampduhostreorder-lpc-die3-olpc-pspretend-mfp-ltecx-clm_43xx_somc_mimo-phyflags-txpwrctrls-dpo Version: 9.75.119.15 (r691661) CRC: a6cf427b Date: Fri 2017-03-24 13:24:25 KST Ucode Ver: 1060.20542 FWID: 01-e4abc35c >> >> However, from firmware perspective this is equivalent to 4359c0 so I >> would suggest the change below. >> >> Let me know if that works. > Sorry for the late reply. > > Yes, it does seem to work just fine! The kernel now looks for > brcm/brcmfmac4359c-pcie.sony,kagura-row.bin as we would expect. > > Could you submit this patch below to supersede my one? I have no problem when you include this patch in yours and submit it to the linux-wireless list. Regards, Arend