On Fri, 20 Sep 2024 08:45:56 +0200, Kalle Valo <kvalo@xxxxxxxxxx> said: > Krzysztof Kozlowski <krzk@xxxxxxxxxx> writes: > >> On 19/09/2024 09:48, Kalle Valo wrote: >>> Krzysztof Kozlowski <krzk@xxxxxxxxxx> writes: >>> >>>> On 14/08/2024 10:23, Bartosz Golaszewski wrote: >>>>> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> >>>>> >>>>> Describe the inputs from the PMU of the ath11k module on WCN6855. >>>>> >>>>> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> >>>>> --- >>>>> v1 -> v2: >>>>> - update the example >>>> >>>> I don't understand why this patch is no being picked up. The code >>>> correct represents the piece of hardware. The supplies should be >>>> required, because this one particular device - the one described in this >>>> binding - cannot work without them. >>> >>> I have already explained the situation. With supplies changed to >>> optional I'm happy take the patch. >> >> You did not provide any relevant argument to this case. Your concerns >> described quite different case and are no applicable to DT based platforms. > > Ok, I'll try to explain my concerns one more time. I'll try to be > thorough so will be a longer mail. > > In ath11k we have board files, it's basically board/product specific > calibration data which is combined with the calibration data from chip's > OTP. Choosing the correct board file is essential as otherwise the > performance can be bad or the device doesn't work at all. > > The board files are stored in board-2.bin file in /lib/firmware. ath11k > chooses the correct board file based on the information provided by the > ath11k firmware and then transfers the board file to firmware. From > board-2.bin the correct board file is search based on strings like this: > > bus=pci,vendor=17cb,device=1103,subsystem-vendor=105b,subsystem-device=e0ca,qmi-chip-id=2,qmi-board-id=255 > bus=pci,vendor=17cb,device=1103,subsystem-vendor=105b,subsystem-device=e0ca,qmi-chip-id=2,qmi-board-id=255,variant=HO_BNM > > But the firmware does not always provide unique enough information for > choosing the correct board file and that's why we added the variant > property (the second example above). This variant property gives us the > means to name the board files uniquely and not have any conflicts. In > x86 systems we retrieve it from SMBIOS and in DT systems using > qcom,ath11k-calibration-variant property. > No issues here. > If WCN6855 supplies are marked as required, it means that we cannot use > qcom,ath11k-calibration-variant DT property anymore with WCN6855 M.2 > boards. So if we have devices which don't provide unique information > then for those devices it's impossible to automatically to choose the > correct board file. > What you're really trying to say is: we cannot use the following snippet of DTS anymore: &pcie4_port0 { wifi@0 { compatible = "pci17cb,1103"; reg = <0x10000 0x0 0x0 0x0 0x0>; qcom,ath11k-calibration-variant = "LE_X13S"; }; }; First: it's not true. We are not allowed to break existing device-tree sources and a change to the schema has no power to do so anyway. You will however no longer be able to upstream just this as it will not pass make dtbs_check anymore. Second: this bit is incomplete even if the WCN6855 package is on a detachable M.2 card. When a DT property is defined as optional in schema, it doesn't mean: "the driver will work fine without it". It means: "the *hardware* does not actually need it to function". That's a huge difference. DTS is not a configuration file for your convenience. > So based on this, to me the correct solution here is to make the > supplies optional so that qcom,ath11k-calibration-variant DT property > can continue to be used with WCN6855 M.2 boards. > No, this is the convenient solution. The *correct* solution is to say how the ath11k inside the WCN6855 package is really supplied. The dt-bindings should define the correct representation, not the convenient one. Let me give you an analogy: we don't really need to have always-on, fixed regulators in DTS. The drivers don't really need them. We do it for completeness of the HW description. Bartosz