mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 23:02:40 +00:00
bus fdt improvements
This commit is contained in:
1 parent
c7d0aa5450
commit
7562f4ab53
1 file changed
+11
-4
+11
-4
@@ -36,9 +36,17 @@ static int
|
|||||||
is_compatible (struct grub_fdtbus_driver *driver,
|
is_compatible (struct grub_fdtbus_driver *driver,
|
||||||
int node)
|
int node)
|
||||||
{
|
{
|
||||||
|
grub_size_t compatible_size;
|
||||||
const char *compatible = grub_fdt_get_prop (dtb, node, "compatible",
|
const char *compatible = grub_fdt_get_prop (dtb, node, "compatible",
|
||||||
0);
|
&compatible_size);
|
||||||
return grub_strcmp (driver->compatible, compatible) == 0;
|
const char *compatible_end = compatible + compatible_size;
|
||||||
|
while (compatible < compatible_end)
|
||||||
|
{
|
||||||
|
if (grub_strcmp (driver->compatible, compatible) == 0)
|
||||||
|
return 1;
|
||||||
|
compatible += grub_strlen (compatible) + 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -69,7 +77,6 @@ grub_fdtbus_scan (int parent)
|
|||||||
}
|
}
|
||||||
grub_print_error ();
|
grub_print_error ();
|
||||||
}
|
}
|
||||||
grub_printf ("C: %s; %s\n", grub_fdt_get_nodename (dtb, node), compatible);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +87,7 @@ grub_fdtbus_register (struct grub_fdtbus_driver *driver)
|
|||||||
grub_list_push (GRUB_AS_LIST_P (&drivers),
|
grub_list_push (GRUB_AS_LIST_P (&drivers),
|
||||||
GRUB_AS_LIST (driver));
|
GRUB_AS_LIST (driver));
|
||||||
FOR_LIST_ELEMENTS(dev, devs)
|
FOR_LIST_ELEMENTS(dev, devs)
|
||||||
if (is_compatible (driver, node))
|
if (is_compatible (driver, dev->node))
|
||||||
{
|
{
|
||||||
if (driver->attach(dtb, dev->node) == GRUB_ERR_NONE)
|
if (driver->attach(dtb, dev->node) == GRUB_ERR_NONE)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user