diff options
author | Trent Piepho <[email protected]> | 2018-09-20 19:18:34 +0000 |
---|---|---|
committer | Mark Brown <[email protected]> | 2018-10-10 13:46:54 +0100 |
commit | 605b3bec73cbd74b4ac937b580cd0b47d1300484 (patch) | |
tree | 0779d01514d4268bb580f3eca5666cde20205eb4 | |
parent | 5039563e7c25eccd7fec1de6706011009d1c5665 (diff) |
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: Trent Piepho <[email protected]>
Reviewed-by: Jan Kundrát <[email protected]>
Tested-by: Jan Kundrát <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
-rw-r--r-- | drivers/spi/spidev.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 07f4d05563ea..b0c76e2626ce 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -725,11 +725,9 @@ static int spidev_probe(struct spi_device *spi) * compatible string, it is a Linux implementation thing * rather than a description of the hardware. */ - if (spi->dev.of_node && !of_match_device(spidev_dt_ids, &spi->dev)) { - dev_err(&spi->dev, "buggy DT: spidev listed directly in DT\n"); - WARN_ON(spi->dev.of_node && - !of_match_device(spidev_dt_ids, &spi->dev)); - } + WARN(spi->dev.of_node && + of_device_is_compatible(spi->dev.of_node, "spidev"), + "%pOF: buggy DT: spidev listed directly in DT\n", spi->dev.of_node); spidev_probe_acpi(spi); |