On Tue, May 14, 2024 at 5:45 PM Roman Kisel <romank@xxxxxxxxxxxxxxxxxxx> wrote:Understood, thank you! I'll look more for the examples. If you happen to have in mind the place where the idiomatic/more preferred approach is used, please let me know, would owe you a great debt of gratitude.
The vmbus driver uses ACPI for interrupt assignment on
arm64 hence it won't function in the VTL mode where only
DeviceTree can be used.
Update the vmbus driver to discover interrupt configuration
via DeviceTree.
Signed-off-by: Roman Kisel <romank@xxxxxxxxxxxxxxxxxxx>
---
drivers/hv/vmbus_drv.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index e25223cee3ab..52f01bd1c947 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -36,6 +36,7 @@
#include <linux/syscore_ops.h>
#include <linux/dma-map-ops.h>
#include <linux/pci.h>
+#include <linux/of_irq.h>
If you are using this header in a driver, you are doing it wrong. We
have common functions which work on both ACPI or DT, so use them if
you have a need to support both.
Though my first question on a binding will be the same as on everyI've taken a look at the related art. AWS's Firecracker, Intel's Cloud Hypervisor, Google's CrosVM, QEmu allow the guest use the well-established battle-tested generic approaches (ACPI, DeviceTree/OpenFirmware) of describing the virtual hardware and its resources rather than making the guest use their own specific interfaces. That holds true for the s/w devices like "vcpu-stall-detector" and VirtIO that do not have counterparts built as hardware, too.
'hypervisor binding'. Why can't you make your hypervisor interfaces
discoverable? It's all s/w, not some h/w device which is fixed.
Rob