Deleted Added
full compact
28,29d27
< *
< * $FreeBSD: head/sys/sparc64/pci/ofw_pcibus.c 144033 2005-03-23 18:16:26Z jmg $
31a30,32
> #include <sys/cdefs.h>
> __FBSDID("$FreeBSD: head/sys/sparc64/pci/ofw_pcibus.c 152684 2005-11-22 16:39:44Z marius $");
>
41a43
> #include <dev/ofw/ofw_bus_subr.h>
67,71c69
< static ofw_bus_get_compat_t ofw_pcibus_get_compat;
< static ofw_bus_get_model_t ofw_pcibus_get_model;
< static ofw_bus_get_name_t ofw_pcibus_get_name;
< static ofw_bus_get_node_t ofw_pcibus_get_node;
< static ofw_bus_get_type_t ofw_pcibus_get_type;
---
> static ofw_bus_get_devinfo_t ofw_pcibus_get_devinfo;
113,117c111,116
< DEVMETHOD(ofw_bus_get_compat, ofw_pcibus_get_compat),
< DEVMETHOD(ofw_bus_get_model, ofw_pcibus_get_model),
< DEVMETHOD(ofw_bus_get_name, ofw_pcibus_get_name),
< DEVMETHOD(ofw_bus_get_node, ofw_pcibus_get_node),
< DEVMETHOD(ofw_bus_get_type, ofw_pcibus_get_type),
---
> DEVMETHOD(ofw_bus_get_devinfo, ofw_pcibus_get_devinfo),
> DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat),
> DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model),
> DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name),
> DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node),
> DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type),
124,128c123
< char *opd_compat;
< char *opd_model;
< char *opd_name;
< char *opd_type;
< phandle_t opd_node;
---
> struct ofw_bus_devinfo opd_obdinfo;
212d206
< char *cname;
225c219
< if ((OF_getprop_alloc(child, "name", 1, (void **)&cname)) == -1)
---
> if (OF_getprop(child, "reg", &pcir, sizeof(pcir)) == -1)
227,232d220
<
< if (OF_getprop(child, "reg", &pcir, sizeof(pcir)) == -1) {
< device_printf(dev, "<%s>: incomplete\n", cname);
< free(cname, M_OFWPROP);
< continue;
< }
238,249c226,233
< if (dinfo != NULL) {
< dinfo->opd_name = cname;
< dinfo->opd_node = child;
< OF_getprop_alloc(child, "compatible", 1,
< (void **)&dinfo->opd_compat);
< OF_getprop_alloc(child, "device_type", 1,
< (void **)&dinfo->opd_type);
< OF_getprop_alloc(child, "model", 1,
< (void **)&dinfo->opd_model);
< pci_add_child(dev, (struct pci_devinfo *)dinfo);
< } else
< free(cname, M_OFWPROP);
---
> if (dinfo == NULL)
> continue;
> if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) !=
> 0) {
> pci_freecfg((struct pci_devinfo *)dinfo);
> continue;
> }
> pci_add_child(dev, (struct pci_devinfo *)dinfo);
258,259d241
< struct ofw_pcibus_devinfo *dinfo = device_get_ivars(child);
< pcicfgregs *cfg = &dinfo->opd_dinfo.cfg;
263c245,246
< isz = OF_getprop(dinfo->opd_node, "interrupts", &intr, sizeof(intr));
---
> isz = OF_getprop(ofw_bus_get_node(child), "interrupts", &intr,
> sizeof(intr));
266c249
< intr = cfg->intpin;
---
> intr = pci_get_intpin(child);
286,287c269,270
< static const char *
< ofw_pcibus_get_compat(device_t bus, device_t dev)
---
> static const struct ofw_bus_devinfo *
> ofw_pcibus_get_devinfo(device_t bus, device_t dev)
290,298d272
<
< dinfo = device_get_ivars(dev);
< return (dinfo->opd_compat);
< }
<
< static const char *
< ofw_pcibus_get_model(device_t bus, device_t dev)
< {
< struct ofw_pcibus_devinfo *dinfo;
301c275
< return (dinfo->opd_model);
---
> return (&dinfo->opd_obdinfo);
303,329d276
<
< static const char *
< ofw_pcibus_get_name(device_t bus, device_t dev)
< {
< struct ofw_pcibus_devinfo *dinfo;
<
< dinfo = device_get_ivars(dev);
< return (dinfo->opd_name);
< }
<
< static phandle_t
< ofw_pcibus_get_node(device_t bus, device_t dev)
< {
< struct ofw_pcibus_devinfo *dinfo;
<
< dinfo = device_get_ivars(dev);
< return (dinfo->opd_node);
< }
<
< static const char *
< ofw_pcibus_get_type(device_t bus, device_t dev)
< {
< struct ofw_pcibus_devinfo *dinfo;
<
< dinfo = device_get_ivars(dev);
< return (dinfo->opd_type);
< }