int main(int argc, char *argv[]) { struct pci_dev *pci_dev_find(struct drm_device *dev); init(&argc, &argv); devinit(); intel_setup_bios(i915); if (i915->bios_bin) intel_parse_bios(i915); }
int main(int argc, char *argv[]) { struct drm_i915_private *dp; init(&argc, &argv); devinit(); intel_setup_bios(i915); if (i915->bios_bin) intel_parse_bios(i915); #if defined(VERSION) && VERSION == 36 intel_panel_enable_backlight(i915, 0); #else intel_panel_enable_backlight(i915); #endif i915_driver_load(i915, (unsigned long)i915->dev_private->info); /* now walk the connector list, dumping connector type * and EDID */ dp = i915->dev_private; if (dp->int_lvds_connector) { if (verbose){ fprintf(stderr, "We have an lvds: \n"); } } if (dp->int_edp_connector) { if (verbose) fprintf(stderr, "We have an edp: \n"); } u32 pwm = intel_panel_get_backlight(i915); printf("pwm %d\n", pwm); if (argc) pwm = strtol(argv[0], 0, 0); printf("new pwm %d\n", pwm); #if defined(VERSION) && VERSION == 36 intel_panel_enable_backlight(i915, 0); #else intel_panel_enable_backlight(i915); #endif intel_panel_set_backlight(i915, pwm); pwm = intel_panel_get_backlight(i915); printf("pwm at end is %d\n", pwm); }
int main(int argc, char *argv[]) { struct drm_i915_private *dp; bool dpd_is_edp = false; init(&argc, &argv); devinit(); intel_setup_bios(i915); if (i915->bios_bin) intel_parse_bios(i915); #if defined(VERSION) && VERSION == 36 intel_panel_enable_backlight(i915, 0); #else intel_panel_enable_backlight(i915); #endif i915_driver_load(i915, (unsigned long)i915->dev_private->info); dp = i915->dev_private; dpd_is_edp = intel_dpd_is_edp(i915); if (has_edp_a(i915)) printf("DP_A,"); if (dp->int_lvds_connector) printf("LVDS,"); if (I915_READ(HDMIC) & PORT_DETECTED) printf("HDMIC,"); if (I915_READ(HDMID) & PORT_DETECTED) printf("HDMID,"); if (I915_READ(PCH_DP_C) & DP_DETECTED) printf("DPC,"); if (!dpd_is_edp && (I915_READ(PCH_DP_D) & DP_DETECTED)) printf("DPD,"); printf("\n"); }
static int i915_load_modeset_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; int ret; ret = intel_parse_bios(dev); if (ret) DRM_INFO("failed to find VBIOS tables\n"); /* If we have > 1 VGA cards, then we need to arbitrate access * to the common VGA resources. * * If we are a secondary display controller (!PCI_DISPLAY_CLASS_VGA), * then we do not take part in VGA arbitration and the * vga_client_register() fails with -ENODEV. */ ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode); if (ret && ret != -ENODEV) goto out; intel_register_dsm_handler(); ret = vga_switcheroo_register_client(dev->pdev, &i915_switcheroo_ops, false); if (ret) goto cleanup_vga_client; /* Initialise stolen first so that we may reserve preallocated * objects for the BIOS to KMS transition. */ ret = i915_gem_init_stolen(dev); if (ret) goto cleanup_vga_switcheroo; intel_power_domains_init_hw(dev_priv); ret = intel_irq_install(dev_priv); if (ret) goto cleanup_gem_stolen; /* Important: The output setup functions called by modeset_init need * working irqs for e.g. gmbus and dp aux transfers. */ intel_modeset_init(dev); ret = i915_gem_init(dev); if (ret) goto cleanup_irq; intel_modeset_gem_init(dev); /* Always safe in the mode setting case. */ /* FIXME: do pre/post-mode set stuff in core KMS code */ dev->vblank_disable_allowed = true; if (INTEL_INFO(dev)->num_pipes == 0) return 0; ret = intel_fbdev_init(dev); if (ret) goto cleanup_gem; /* Only enable hotplug handling once the fbdev is fully set up. */ intel_hpd_init(dev_priv); /* * 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. Now we should scan for the initial config * only once hotplug handling is enabled, but due to screwed-up locking * around kms/fbdev init we can't protect the fdbev initial config * scanning against hotplug events. Hence do this first and ignore the * tiny window where we will loose hotplug notifactions. */ async_schedule(intel_fbdev_initial_config, dev_priv); drm_kms_helper_poll_init(dev); return 0; cleanup_gem: mutex_lock(&dev->struct_mutex); i915_gem_cleanup_ringbuffer(dev); i915_gem_context_fini(dev); mutex_unlock(&dev->struct_mutex); cleanup_irq: drm_irq_uninstall(dev); cleanup_gem_stolen: i915_gem_cleanup_stolen(dev); cleanup_vga_switcheroo: vga_switcheroo_unregister_client(dev->pdev); cleanup_vga_client: vga_client_register(dev->pdev, NULL, NULL, NULL); out: return ret; }
int i915_load_modeset_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; int ret; ret = intel_parse_bios(dev); if (ret) DRM_INFO("failed to find VBIOS tables\n"); #if 0 intel_register_dsm_handler(); #endif /* IIR "flip pending" bit means done if this bit is set */ if (IS_GEN3(dev) && (I915_READ(ECOSKPD) & ECO_FLIP_DONE)) dev_priv->flip_pending_is_done = true; #ifdef notyet ret = vga_switcheroo_register_client(dev->pdev, &i915_switcheroo_ops); if (ret) goto cleanup_vga_client; /* Initialise stolen first so that we may reserve preallocated * objects for the BIOS to KMS transition. */ ret = i915_gem_init_stolen(dev); if (ret) goto cleanup_vga_switcheroo; #endif intel_modeset_init(dev); ret = i915_gem_init(dev); if (ret) goto cleanup_gem_stolen; intel_modeset_gem_init(dev); ret = drm_irq_install(dev); if (ret) goto cleanup_gem; /* Always safe in the mode setting case. */ /* FIXME: do pre/post-mode set stuff in core KMS code */ dev->vblank_disable_allowed = 1; ret = intel_fbdev_init(dev); if (ret) goto cleanup_irq; drm_kms_helper_poll_init(dev); /* We're off and running w/KMS */ dev_priv->mm.suspended = 0; return (0); cleanup_irq: drm_irq_uninstall(dev); cleanup_gem: DRM_LOCK(); i915_gem_cleanup_ringbuffer(dev); DRM_UNLOCK(); i915_gem_cleanup_aliasing_ppgtt(dev); cleanup_gem_stolen: #ifdef notyet i915_gem_cleanup_stolen(dev); #endif return (ret); }