John Baldwin wrote:
jhb         2005-12-20 22:41:33 UTC

  FreeBSD src repository

  Added files:
sys/dev/pci vga_pci.c Log:
  Add a vgapci(4) stub device driver for VGA PCI devices.  This device serves
  as a bus so that other drivers such as drm(4), acpi_video(4), and agp(4)
  can attach to it thus allowing multiple drivers for the same device.  It
  also removes the need for the drmsub hack for the i8[13]0/i915 drm and agp
  drivers.
Revision Changes Path
  1.3       +262 -0    src/sys/dev/pci/vga_pci.c (new)



All the methods seem to just be a straight-through mapping or a debug print + mapping. For the ones you don't plan to do anything special in, can you just make the methods map directly to the generic versions?

+static int
+vga_pci_suspend(device_t dev)
+{
+
+       return (bus_generic_suspend(dev));
+}
+
+static int
+vga_pci_resume(device_t dev)
+{
+
+       return (bus_generic_resume(dev));
+}
+
+/* Bus interface. */
+
+static int
+vga_pci_read_ivar(device_t dev, device_t child, int which, uintptr_t *result)
+{
+
+       return (BUS_READ_IVAR(device_get_parent(dev), dev, which, result));
+}
+
+static int
+vga_pci_write_ivar(device_t dev, device_t child, int which, uintptr_t value)
+{
+
+       return (EINVAL);
+}
+
+static struct resource *
+vga_pci_alloc_resource(device_t dev, device_t child, int type, int *rid,
+    u_long start, u_long end, u_long count, u_int flags)
+{
+
+       return (bus_alloc_resource(dev, type, rid, start, end, count, flags));
+}
+
+static int
+vga_pci_release_resource(device_t dev, device_t child, int type, int rid,
+    struct resource *r)
+{
+
+       return (bus_release_resource(dev, type, rid, r));
+}
+
+/* PCI interface. */
+
+static uint32_t
+vga_pci_read_config(device_t dev, device_t child, int reg, int width)
+{
+
+       return (pci_read_config(dev, reg, width));
+}
+
+static void
+vga_pci_write_config(device_t dev, device_t child, int reg, + uint32_t val, int width)
+{
+
+       pci_write_config(dev, reg, val, width);
+}
+
+static int
+vga_pci_enable_busmaster(device_t dev, device_t child)
+{
+
+       device_printf(dev, "child %s requested pci_enable_busmaster\n",
+           device_get_nameunit(child));
+       return (pci_enable_busmaster(dev));
+}
+
+static int
+vga_pci_disable_busmaster(device_t dev, device_t child)
+{
+
+       device_printf(dev, "child %s requested pci_disable_busmaster\n",
+           device_get_nameunit(child));
+       return (pci_disable_busmaster(dev));
+}
+
+static int
+vga_pci_enable_io(device_t dev, device_t child, int space)
+{
+
+       device_printf(dev, "child %s requested pci_enable_io\n",
+           device_get_nameunit(child));
+       return (pci_enable_io(dev, space));
+}
+
+static int
+vga_pci_disable_io(device_t dev, device_t child, int space)
+{
+
+       device_printf(dev, "child %s requested pci_disable_io\n",
+           device_get_nameunit(child));
+       return (pci_disable_io(dev, space));
+}
+
+static int
+vga_pci_set_powerstate(device_t dev, device_t child, int state)
+{
+
+       device_printf(dev, "child %s requested pci_set_powerstate\n",
+           device_get_nameunit(child));
+       return (pci_set_powerstate(dev, state));
+}
+
+static int
+vga_pci_get_powerstate(device_t dev, device_t child)
+{
+
+       device_printf(dev, "child %s requested pci_get_powerstate\n",
+           device_get_nameunit(child));
+       return (pci_get_powerstate(dev));
+}
+
+static int
+vga_pci_assign_interrupt(device_t dev, device_t child)
+{
+
+       device_printf(dev, "child %s requested pci_assign_interrupt\n",
+           device_get_nameunit(child));
+       return (PCI_ASSIGN_INTERRUPT(device_get_parent(dev), dev));
+}
+
+static int
+vga_pci_find_extcap(device_t dev, device_t child, int capability,
+    int *capreg)
+{
+
+       return (pci_find_extcap(dev, capability, capreg));
+}


--
Nate
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to