sys/dev/drm/i915/i915_drv.c
/**
 * i915_driver_register - register the driver with the rest of the system
 * @dev_priv: device private
 *
 * Perform any steps necessary to make the driver available via kernel
 * internal or userspace interfaces.
 */
register the driver with the rest of the system
@dev_priv: device private

Perform any steps necessary to make the driver available via kernel
internal or userspace interfaces.
register the driver with the rest of the system @dev_priv : device private Perform any steps necessary to make the driver available via kernel internal or userspace interfaces .
static void i915_driver_register(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	i915_gem_shrinker_init(dev_priv);
	if (intel_vgpu_active(dev_priv))
		I915_WRITE(vgtif_reg(display_ready), VGT_DRV_DISPLAY_READY);
	if (drm_dev_register(dev, 0) == 0) {
		i915_debugfs_register(dev_priv);
		i915_setup_sysfs(dev);
	} else
		DRM_ERROR("Failed to register driver for userspace access!\n");
	if (INTEL_INFO(dev_priv)->num_pipes) {
		intel_opregion_register(dev_priv);
		acpi_video_register();
	}
	if (IS_GEN5(dev_priv))
		intel_gpu_ips_init(dev_priv);
	i915_audio_component_init(dev_priv);
	intel_fbdev_initial_config_async(dev);
}
static void i915_driver_register ( struct drm_i915_private * dev_priv ) { struct drm_device * dev = dev_priv -> dev ; i915_gem_shrinker_init ( dev_priv ) ; if ( intel_vgpu_active ( dev_priv ) ) I915_WRITE ( vgtif_reg ( display_ready ) , VGT_DRV_DISPLAY_READY ) ; if ( drm_dev_register ( dev , 0 ) == 0 ) { i915_debugfs_register ( dev_priv ) ; i915_setup_sysfs ( dev ) ; } else DRM_ERROR ( " \n " ) ; if ( INTEL_INFO ( dev_priv ) -> num_pipes ) { intel_opregion_register ( dev_priv ) ; acpi_video_register ( ) ; } if ( IS_GEN5 ( dev_priv ) ) intel_gpu_ips_init ( dev_priv ) ; i915_audio_component_init ( dev_priv ) ; intel_fbdev_initial_config_async ( dev ) ; }
i915_driver_register - register the driver with the rest of the system
 @dev_priv: device private
i915_driver_register - register the driver with the rest of the system @dev_priv : device private
/*
	 * Notify a valid surface after modesetting,
	 * when running inside a VM.
	 */ /* Reveal our presence to userspace */ /* Must be done after probing outputs */ /*
	 * Some ports require correctly set-up hpd registers for detection to
	 * work properly (leading to ghost connected connector status), e.g. VGA
	 * on gm45.  Hence we can only set up the initial fbdev config after hpd
	 * irqs are fully enabled. We do it last so that the async config
	 * cannot run before the connectors are registered.
	 */