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
This commit is contained in:
parent
e3a1a618a3
commit
009e872ef7
@ -443,12 +443,26 @@ static struct ofw_compat_data compat_data[] = {
|
|||||||
static int
|
static int
|
||||||
mx25l_probe(device_t dev)
|
mx25l_probe(device_t dev)
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef FDT
|
#ifdef FDT
|
||||||
|
int i;
|
||||||
|
|
||||||
if (!ofw_bus_status_okay(dev))
|
if (!ofw_bus_status_okay(dev))
|
||||||
return (ENXIO);
|
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
|
#endif
|
||||||
device_set_desc(dev, "M25Pxx Flash Family");
|
device_set_desc(dev, "M25Pxx Flash Family");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user