powerpc/machdep: Define 'compatible' property in ppc_md and use it
Most probe functions do nothing else than checking whether the machine is compatible to a given string. Define that string in ppc_md structure and check it directly from probe_machine() instead of using ppc_md.probe() for that. Keep checking in ppc_md.probe() only for more complex probing. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/6cb9865d916231c38401ba34ad1a98c249fae135.1676711562.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
35e175bdd5
commit
2fc39acfca
|
@ -21,6 +21,7 @@ struct pci_host_bridge;
|
|||
|
||||
struct machdep_calls {
|
||||
const char *name;
|
||||
const char *compatible;
|
||||
#ifdef CONFIG_PPC64
|
||||
#ifdef CONFIG_PM
|
||||
void (*iommu_restore)(void);
|
||||
|
|
|
@ -630,13 +630,14 @@ static __init void probe_machine(void)
|
|||
for (machine_id = &__machine_desc_start;
|
||||
machine_id < &__machine_desc_end;
|
||||
machine_id++) {
|
||||
DBG(" %s ...", machine_id->name);
|
||||
DBG(" %s ...\n", machine_id->name);
|
||||
if (machine_id->compatible && !of_machine_is_compatible(machine_id->compatible))
|
||||
continue;
|
||||
memcpy(&ppc_md, machine_id, sizeof(struct machdep_calls));
|
||||
if (ppc_md.probe()) {
|
||||
DBG(" match !\n");
|
||||
break;
|
||||
}
|
||||
DBG("\n");
|
||||
if (ppc_md.probe && !ppc_md.probe())
|
||||
continue;
|
||||
DBG(" %s match !\n", machine_id->name);
|
||||
break;
|
||||
}
|
||||
/* What can we do if we didn't find ? */
|
||||
if (machine_id >= &__machine_desc_end) {
|
||||
|
|
Loading…
Reference in New Issue