static int mach64_attach(device_t nbdev) { drm_device_t *dev = device_get_softc(nbdev); bzero(dev, sizeof(drm_device_t)); mach64_configure(dev); return drm_attach(nbdev, mach64_pciidlist); }
void r128drm_attach(struct device *parent, struct device *self, void *aux) { struct pci_attach_args *pa = aux; struct drm_device *dev = (struct drm_device *)self; r128_configure(dev); return drm_attach(parent, self, pa, r128_pciidlist); }
static int i915_attach(device_t nbdev) { struct drm_device *dev = device_get_softc(nbdev); bzero(dev, sizeof(struct drm_device)); i915_configure(dev); return drm_attach(nbdev, i915_pciidlist); }
static int radeon_attach(device_t nbdev) { drm_device_t *dev = device_get_softc(nbdev); bzero(dev, sizeof(drm_device_t)); radeon_configure(dev); return drm_attach(nbdev, radeon_pciidlist); }
static void sisdrm_attach(struct device *parent, struct device *self, void *aux) { struct pci_attach_args *pa = aux; drm_device_t *dev = device_private(self); sis_configure(dev); return drm_attach(self, pa, sis_pciidlist); }
static int i915_attach(device_t kdev) { struct drm_device *dev; dev = device_get_softc(kdev); if (i915_modeset == 1) i915_driver_info.driver_features |= DRIVER_MODESET; dev->driver = &i915_driver_info; return (drm_attach(kdev, i915_pciidlist)); }
static int pscnv_attach(device_t kdev) { struct drm_device *dev; dev = device_get_softc(kdev); if (nouveau_modeset == 1) driver.driver_features |= DRIVER_MODESET; dev->driver = &driver; /* drm_sleep_locking_init(dev); XXX PLHK */ return (drm_attach(kdev, pciidlist)); }
static int mach64_attach(device_t kdev) { struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); mach64_configure(dev); return drm_attach(kdev, mach64_pciidlist); }
static void i915drm_attach(struct device *parent, struct device *self, void *aux) { struct pci_attach_args *pa = aux; drm_device_t *dev = (drm_device_t *)self; i915_configure(dev); pmf_device_register(self, NULL, NULL); drm_attach(self, pa, i915_pciidlist); }
static void sisdrm_attach(device_t parent, device_t self, void *aux) { struct pci_attach_args *pa = aux; struct drm_device *dev = device_private(self); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); sis_configure(dev); drm_attach(self, pa, sis_pciidlist); }
static int radeon_attach(device_t kdev) { struct drm_device *dev; dev = device_get_softc(kdev); if (radeon_modeset == 1) { kms_driver.driver_features |= DRIVER_MODESET; kms_driver.max_ioctl = radeon_max_kms_ioctl; radeon_register_atpx_handler(); } dev->driver = &kms_driver; return (drm_attach(kdev, pciidlist)); }
/* static int __init i915_init(void) */ static int i915_attach(device_t kdev) { struct drm_device *dev; dev = device_get_softc(kdev); driver.num_ioctls = i915_max_ioctl; if (i915_modeset == 1) driver.driver_features |= DRIVER_MODESET; dev->driver = &driver; return (drm_attach(kdev, i915_attach_list)); }
static int vboxvideo_attach(device_t kdev) { struct drm_device *dev = device_get_softc(kdev); #if __FreeBSD_version >= 702000 dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); #else bzero(&dev->driver, sizeof(struct drm_driver_info)); #endif vboxvideo_configure(dev); return drm_attach(kdev, vboxvideo_pciidlist); }
static void radeondrm_attach(device_t parent, device_t self, void *aux) { struct pci_attach_args *pa = aux; struct drm_device *dev = device_private(self); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); radeon_configure(dev); if (!pmf_device_register(self, radeondrm_suspend, radeondrm_resume)) aprint_error_dev(self, "couldn't establish power handler\n"); drm_attach(self, pa, radeon_pciidlist); }
static int radeon_attach(device_t kdev) { struct drm_device *dev; dev = device_get_softc(kdev); if (radeon_modeset == 1) { kms_driver.driver_features |= DRIVER_MODESET; kms_driver.max_ioctl = radeon_max_kms_ioctl; #ifdef COMPAT_FREEBSD32 kms_driver.compat_ioctls = radeon_compat_ioctls; kms_driver.compat_ioctls_nr = &radeon_num_compat_ioctls; #endif radeon_register_atpx_handler(); } dev->driver = &kms_driver; return (drm_attach(kdev, pciidlist)); }
/** * Attach entry point, to attach a device to the system or resume it. * * @param pDip The module structure instance. * @param enmCmd Operation type (attach/resume). * * @returns corresponding solaris error code. */ static int VBoxVideoSolarisAttach(dev_info_t *pDip, ddi_attach_cmd_t enmCmd) { LogFlow((DEVICE_NAME ":VBoxVideoSolarisAttach pDip=%p enmCmd=%d\n", pDip, enmCmd)); cmn_err(CE_NOTE, DEVICE_NAME ":attach\n"); switch (enmCmd) { case DDI_ATTACH: { drm_device_t *pState; int Instance = ddi_get_instance(pDip); int rc = ddi_soft_state_zalloc(g_pVBoxVideoSolarisState, Instance); if (rc == DDI_SUCCESS) { pState = ddi_get_soft_state(g_pVBoxVideoSolarisState, Instance); pState->dip = pDip; pState->driver = &g_VBoxVideoSolarisDRMDriver; /* * Register using the DRM module which will create the minor nodes */ void *pDRMHandle = drm_supp_register(pDip, pState); if (pDRMHandle) { pState->drm_handle = pDRMHandle; /* * Probe with our pci-id. * -XXX- is probing really required??? */ pState->drm_supported = DRM_UNSUPPORT; rc = drm_probe(pState, vboxvideo_pciidlist); if (rc == DDI_SUCCESS) { pState->drm_supported = DRM_SUPPORT; /* * Call the common attach DRM routine. */ rc = drm_attach(pState); if (rc == DDI_SUCCESS) { return DDI_SUCCESS; } else LogRel((DEVICE_NAME ":VBoxVideoSolarisAttach drm_attach failed.rc=%d\n", rc)); } else LogRel((DEVICE_NAME ":VBoxVideoSolarisAttach drm_probe failed.rc=%d\n", rc)); drm_supp_unregister(pDRMHandle); } else LogRel((DEVICE_NAME ":VBoxVideoSolarisAttach drm_supp_register failed.\n")); ddi_soft_state_free(g_pVBoxVideoSolarisState, Instance); } else LogRel((DEVICE_NAME ":VBoxVideoSolarisAttach failed to alloc memory for soft state.rc=%d\n", rc)); return DDI_FAILURE; } case DDI_RESUME: { /* Nothing to do here... */ return DDI_SUCCESS; } } return DDI_FAILURE; }