svn commit: r298347 - head/sys/dev/flash
Stanislav Galabov
sgalabov at FreeBSD.org
Wed Apr 20 14:33:01 UTC 2016
Author: sgalabov
Date: Wed Apr 20 14:33:00 2016
New Revision: 298347
URL: https://svnweb.freebsd.org/changeset/base/298347
Log:
Modify mx25l FDT compatible device handling
If we cannot establish compatibility by only looking at the compat_data we
also check the flash_devices structure's names for a compatible device.
Approved by: adrian (mentor)
Sponsored by: Smartcom - Bulgaria AD
Differential Revision: https://reviews.freebsd.org/D6026
Modified:
head/sys/dev/flash/mx25l.c
Modified: head/sys/dev/flash/mx25l.c
==============================================================================
--- head/sys/dev/flash/mx25l.c Wed Apr 20 14:31:01 2016 (r298346)
+++ head/sys/dev/flash/mx25l.c Wed Apr 20 14:33:00 2016 (r298347)
@@ -443,12 +443,26 @@ static struct ofw_compat_data compat_dat
static int
mx25l_probe(device_t dev)
{
-
#ifdef FDT
+ int i;
+
if (!ofw_bus_status_okay(dev))
return (ENXIO);
- if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
- return (ENXIO);
+
+ /* First try to match the compatible property to the compat_data */
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 1)
+ goto found;
+
+ /*
+ * Next, try to find a compatible device using the names in the
+ * flash_devices structure
+ */
+ for (i = 0; i < nitems(flash_devices); i++)
+ if (ofw_bus_is_compatible(dev, flash_devices[i].name))
+ goto found;
+
+ return (ENXIO);
+found:
#endif
device_set_desc(dev, "M25Pxx Flash Family");
More information about the svn-src-head
mailing list