Re: [PATCH v2 1/2] intel/pinctrl: check REVID register value for device presence

From: Andy Shevchenko
Date: Wed Mar 24 2021 - 13:02:34 EST


On Wed, Mar 24, 2021 at 04:43:11PM +0100, Roger Pau Monne wrote:

Thanks for a fix! My comments below.

> Use the value read from the REVID register in order to check for the
> presence of the device. A read of all ones is treated as if the device
> is not present, and hence probing is ended.
>
> This fixes an issue when running as a Xen PVH dom0, where the ACPI
> DSDT table is provided unmodified to dom0 and hence contains the
> pinctrl devices, but the MMIO region(s) containing the device
> registers might not be mapped in the guest physical memory map if such
> region(s) are not exposed on a PCI device BAR or marked as reserved in
> the host memory map.

Any particular point that we can use in the Fixes tag?

...

> Suggested-by: Andy Shevchenko <andy@xxxxxxxxxx>

Hmm... was it that address I have used? In any case I think my @linux.intel.com
is better.

...

> /* Determine community features based on the revision */
> value = readl(regs + REVID);
> + if (value == ~0u)
> + return -ENODATA;

I think -ENODEV is more appropriate here.
Also comment above should be adjusted to explain this check.

--
With Best Regards,
Andy Shevchenko