Hook up a PCIe device into the thermal framework
From: Waldemar Rymarkiewicz
Date: Thu Jan 14 2021 - 12:06:20 EST
Hi,
I've been looking for a nice way to hook up a PCIe device into the
thermal framework recently and I want to confront my findings with the
right people here.
I have a PCIe wireless adapter connected to PCI-to-PCI bridge which in
turns is connected to a PCI root complex (RC). I want to define a
thermal zone over the wireless adapter in my system and control it
over DT (thermal-zones{...}) instead of keeping thermal zone
definition statically in the PCI device driver (as it's done in the
iwlwifi wireless driver or the mlxsw ethernet driver for example)
The issue I have faced is that a PCI device has no DT node
(pci_dev.dev.of_node) which is reasonable as this is by design
discoverable device. This, however, prevents me to register the PCI
device as a thermal sensor (dev.of_node is required by thermal).
As far as we consider a fixed PCI topology eg. a SoC internal design I
could put something like this in DT (used by ath11k/ath10k btw).
pci@... {
...
pci-bridge@... {
...
wifi:wifi@0 {
reg = <0x0 0 0 0 0>;
#thermal-sensor-cells = <0>;
};
};
};
but in case we consider an arbitrary location of the device in PCI
topology that DT modification will not work and still I have no device
node.
Is there any preferred solution in the Linux kernel for this kind of use-case?
All the ideas appreciated.
Thanks,
/Waldek