diff options
| author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-03-03 12:03:47 -0500 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-03-27 06:22:52 -0400 |
| commit | 5bedeb2de2127b3b80b40d977a17fe4fce83fe25 (patch) | |
| tree | 61a3f88b403a9f25a0a540428780a8fdbbbd09a0 | |
| parent | 55bb9992db9b2c65cc3dd11cc75785f80e8d7e66 (diff) | |
drm/i915: Add module param to test the load detect code
This is useful for writing igts to make sure we don't break this,
without being forced to own a one of these dinosaurs.
Suggested-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_params.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 6 |
3 files changed, 12 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index a4db7a7db444..6ccdf954b1ca 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
| @@ -2462,6 +2462,7 @@ struct i915_params { | |||
| 2462 | bool enable_hangcheck; | 2462 | bool enable_hangcheck; |
| 2463 | bool fastboot; | 2463 | bool fastboot; |
| 2464 | bool prefault_disable; | 2464 | bool prefault_disable; |
| 2465 | bool load_detect_test; | ||
| 2465 | bool reset; | 2466 | bool reset; |
| 2466 | bool disable_display; | 2467 | bool disable_display; |
| 2467 | bool disable_vtd_wa; | 2468 | bool disable_vtd_wa; |
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index f3b8b62cb74d..bb64415a1c3e 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c | |||
| @@ -43,6 +43,7 @@ struct i915_params i915 __read_mostly = { | |||
| 43 | .enable_ips = 1, | 43 | .enable_ips = 1, |
| 44 | .fastboot = 0, | 44 | .fastboot = 0, |
| 45 | .prefault_disable = 0, | 45 | .prefault_disable = 0, |
| 46 | .load_detect_test = 0, | ||
| 46 | .reset = true, | 47 | .reset = true, |
| 47 | .invert_brightness = 0, | 48 | .invert_brightness = 0, |
| 48 | .disable_display = 0, | 49 | .disable_display = 0, |
| @@ -139,11 +140,16 @@ module_param_named(fastboot, i915.fastboot, bool, 0600); | |||
| 139 | MODULE_PARM_DESC(fastboot, | 140 | MODULE_PARM_DESC(fastboot, |
| 140 | "Try to skip unnecessary mode sets at boot time (default: false)"); | 141 | "Try to skip unnecessary mode sets at boot time (default: false)"); |
| 141 | 142 | ||
| 142 | module_param_named(prefault_disable, i915.prefault_disable, bool, 0600); | 143 | module_param_named_unsafe(prefault_disable, i915.prefault_disable, bool, 0600); |
| 143 | MODULE_PARM_DESC(prefault_disable, | 144 | MODULE_PARM_DESC(prefault_disable, |
| 144 | "Disable page prefaulting for pread/pwrite/reloc (default:false). " | 145 | "Disable page prefaulting for pread/pwrite/reloc (default:false). " |
| 145 | "For developers only."); | 146 | "For developers only."); |
| 146 | 147 | ||
| 148 | module_param_named_unsafe(load_detect_test, i915.load_detect_test, bool, 0600); | ||
| 149 | MODULE_PARM_DESC(load_detect_test, | ||
| 150 | "Force-enable the VGA load detect code for testing (default:false). " | ||
| 151 | "For developers only."); | ||
| 152 | |||
| 147 | module_param_named(invert_brightness, i915.invert_brightness, int, 0600); | 153 | module_param_named(invert_brightness, i915.invert_brightness, int, 0600); |
| 148 | MODULE_PARM_DESC(invert_brightness, | 154 | MODULE_PARM_DESC(invert_brightness, |
| 149 | "Invert backlight brightness " | 155 | "Invert backlight brightness " |
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 573aaff3389a..6095a998bdac 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
| @@ -690,7 +690,7 @@ intel_crt_detect(struct drm_connector *connector, bool force) | |||
| 690 | * broken monitor (without edid) to work behind a broken kvm (that fails | 690 | * broken monitor (without edid) to work behind a broken kvm (that fails |
| 691 | * to have the right resistors for HP detection) needs to fix this up. | 691 | * to have the right resistors for HP detection) needs to fix this up. |
| 692 | * For now just bail out. */ | 692 | * For now just bail out. */ |
| 693 | if (I915_HAS_HOTPLUG(dev)) { | 693 | if (I915_HAS_HOTPLUG(dev) && !i915.load_detect_test) { |
| 694 | status = connector_status_disconnected; | 694 | status = connector_status_disconnected; |
| 695 | goto out; | 695 | goto out; |
| 696 | } | 696 | } |
| @@ -706,8 +706,10 @@ intel_crt_detect(struct drm_connector *connector, bool force) | |||
| 706 | if (intel_get_load_detect_pipe(connector, NULL, &tmp, &ctx)) { | 706 | if (intel_get_load_detect_pipe(connector, NULL, &tmp, &ctx)) { |
| 707 | if (intel_crt_detect_ddc(connector)) | 707 | if (intel_crt_detect_ddc(connector)) |
| 708 | status = connector_status_connected; | 708 | status = connector_status_connected; |
| 709 | else | 709 | else if (INTEL_INFO(dev)->gen < 4) |
| 710 | status = intel_crt_load_detect(crt); | 710 | status = intel_crt_load_detect(crt); |
| 711 | else | ||
| 712 | status = connector_status_unknown; | ||
| 711 | intel_release_load_detect_pipe(connector, &tmp, &ctx); | 713 | intel_release_load_detect_pipe(connector, &tmp, &ctx); |
| 712 | } else | 714 | } else |
| 713 | status = connector_status_unknown; | 715 | status = connector_status_unknown; |
