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");
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to