Commit 605b3bec authored by Trent Piepho's avatar Trent Piepho Committed by Mark Brown

spi: spidev: Fix OF tree warning logic

spidev will make a big fuss if a device tree node binds a device by
using "spidev" as the node's compatible property.

However, the logic for this isn't looking for "spidev" in the
compatible, but rather checking that the device is NOT compatible with
spidev's list of devices.

This causes a false positive if a device not named "rohm,dh2228fv", etc.
binds to spidev, even if a means other than putting "spidev" in the
device tree was used.  E.g., the sysfs driver_override attribute.
Signed-off-by: default avatarTrent Piepho <tpiepho@impinj.com>
Reviewed-by: default avatarJan Kundrát <jan.kundrat@cesnet.cz>
Tested-by: default avatarJan Kundrát <jan.kundrat@cesnet.cz>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5039563e
...@@ -725,11 +725,9 @@ static int spidev_probe(struct spi_device *spi) ...@@ -725,11 +725,9 @@ static int spidev_probe(struct spi_device *spi)
* compatible string, it is a Linux implementation thing * compatible string, it is a Linux implementation thing
* rather than a description of the hardware. * rather than a description of the hardware.
*/ */
if (spi->dev.of_node && !of_match_device(spidev_dt_ids, &spi->dev)) { WARN(spi->dev.of_node &&
dev_err(&spi->dev, "buggy DT: spidev listed directly in DT\n"); of_device_is_compatible(spi->dev.of_node, "spidev"),
WARN_ON(spi->dev.of_node && "%pOF: buggy DT: spidev listed directly in DT\n", spi->dev.of_node);
!of_match_device(spidev_dt_ids, &spi->dev));
}
spidev_probe_acpi(spi); spidev_probe_acpi(spi);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment