Hi Philipp, On Wed, Apr 11, 2018 at 10:22 AM, Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> wrote: > On Tue, 2018-04-10 at 17:53 +0200, Geert Uytterhoeven wrote: >> Vfio-platform requires reset support, provided either by ACPI, or, on DT >> platforms, by a device-specific reset driver matching against the >> device's compatible value. >> >> On many SoCs, devices are connected to an SoC-internal reset controller. >> If the reset hierarchy is described in DT using "resets" properties, >> such devices can be reset in a generic way through the reset controller >> subsystem. Hence add support for this, avoiding the need to write >> device-specific reset drivers for each single device on affected SoCs. >> >> Devices that do require a more complex reset procedure can still provide >> a device-specific reset driver, as that takes precedence. >> >> Note that this functionality depends on CONFIG_RESET_CONTROLLER=y, and >> becomes a no-op (as in: "No reset function found for device") if reset >> controller support is disabled. >> >> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > > Reviewed-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> Thanks! >> --- a/drivers/vfio/platform/vfio_platform_common.c >> +++ b/drivers/vfio/platform/vfio_platform_common.c > [...] >> @@ -127,8 +136,16 @@ static int vfio_platform_get_reset(struct vfio_platform_device *vdev) >> vdev->of_reset = vfio_platform_lookup_reset(vdev->compat, >> &vdev->reset_module); >> } >> + if (vdev->of_reset) >> + return 0; >> + >> + rstc = of_reset_control_get_exclusive(vdev->device->of_node, NULL); > > If vdev->device->of_node == NULL, this will return -EINVAL ... > >> + if (!IS_ERR(rstc)) { >> + vdev->reset_control = rstc; >> + return 0; >> + } >> >> - return vdev->of_reset ? 0 : -ENOENT; >> + return PTR_ERR(rstc); > > ... instead of -ENOENT, if that makes any difference. Not really. The single caller (vfio_platform_probe_common()) already returns -EINVAL if no IOMMU group is found, so this should be handled fine. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds