|
@@ -38,120 +38,6 @@
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
#include <drm/drm_crtc_helper.h>
|
|
#include <drm/drm_crtc_helper.h>
|
|
|
|
|
|
-static int i915_modeset __read_mostly = -1;
|
|
|
|
-module_param_named(modeset, i915_modeset, int, 0400);
|
|
|
|
-MODULE_PARM_DESC(modeset,
|
|
|
|
- "Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, "
|
|
|
|
- "1=on, -1=force vga console preference [default])");
|
|
|
|
-
|
|
|
|
-int i915_panel_ignore_lid __read_mostly = 1;
|
|
|
|
-module_param_named(panel_ignore_lid, i915_panel_ignore_lid, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(panel_ignore_lid,
|
|
|
|
- "Override lid status (0=autodetect, 1=autodetect disabled [default], "
|
|
|
|
- "-1=force lid closed, -2=force lid open)");
|
|
|
|
-
|
|
|
|
-unsigned int i915_powersave __read_mostly = 1;
|
|
|
|
-module_param_named(powersave, i915_powersave, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(powersave,
|
|
|
|
- "Enable powersavings, fbc, downclocking, etc. (default: true)");
|
|
|
|
-
|
|
|
|
-int i915_semaphores __read_mostly = -1;
|
|
|
|
-module_param_named(semaphores, i915_semaphores, int, 0400);
|
|
|
|
-MODULE_PARM_DESC(semaphores,
|
|
|
|
- "Use semaphores for inter-ring sync (default: -1 (use per-chip defaults))");
|
|
|
|
-
|
|
|
|
-int i915_enable_rc6 __read_mostly = -1;
|
|
|
|
-module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0400);
|
|
|
|
-MODULE_PARM_DESC(i915_enable_rc6,
|
|
|
|
- "Enable power-saving render C-state 6. "
|
|
|
|
- "Different stages can be selected via bitmask values "
|
|
|
|
- "(0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). "
|
|
|
|
- "For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. "
|
|
|
|
- "default: -1 (use per-chip default)");
|
|
|
|
-
|
|
|
|
-int i915_enable_fbc __read_mostly = -1;
|
|
|
|
-module_param_named(i915_enable_fbc, i915_enable_fbc, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(i915_enable_fbc,
|
|
|
|
- "Enable frame buffer compression for power savings "
|
|
|
|
- "(default: -1 (use per-chip default))");
|
|
|
|
-
|
|
|
|
-unsigned int i915_lvds_downclock __read_mostly = 0;
|
|
|
|
-module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400);
|
|
|
|
-MODULE_PARM_DESC(lvds_downclock,
|
|
|
|
- "Use panel (LVDS/eDP) downclocking for power savings "
|
|
|
|
- "(default: false)");
|
|
|
|
-
|
|
|
|
-int i915_lvds_channel_mode __read_mostly;
|
|
|
|
-module_param_named(lvds_channel_mode, i915_lvds_channel_mode, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(lvds_channel_mode,
|
|
|
|
- "Specify LVDS channel mode "
|
|
|
|
- "(0=probe BIOS [default], 1=single-channel, 2=dual-channel)");
|
|
|
|
-
|
|
|
|
-int i915_panel_use_ssc __read_mostly = -1;
|
|
|
|
-module_param_named(lvds_use_ssc, i915_panel_use_ssc, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(lvds_use_ssc,
|
|
|
|
- "Use Spread Spectrum Clock with panels [LVDS/eDP] "
|
|
|
|
- "(default: auto from VBT)");
|
|
|
|
-
|
|
|
|
-int i915_vbt_sdvo_panel_type __read_mostly = -1;
|
|
|
|
-module_param_named(vbt_sdvo_panel_type, i915_vbt_sdvo_panel_type, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(vbt_sdvo_panel_type,
|
|
|
|
- "Override/Ignore selection of SDVO panel mode in the VBT "
|
|
|
|
- "(-2=ignore, -1=auto [default], index in VBT BIOS table)");
|
|
|
|
-
|
|
|
|
-static bool i915_try_reset __read_mostly = true;
|
|
|
|
-module_param_named(reset, i915_try_reset, bool, 0600);
|
|
|
|
-MODULE_PARM_DESC(reset, "Attempt GPU resets (default: true)");
|
|
|
|
-
|
|
|
|
-bool i915_enable_hangcheck __read_mostly = true;
|
|
|
|
-module_param_named(enable_hangcheck, i915_enable_hangcheck, bool, 0644);
|
|
|
|
-MODULE_PARM_DESC(enable_hangcheck,
|
|
|
|
- "Periodically check GPU activity for detecting hangs. "
|
|
|
|
- "WARNING: Disabling this can cause system wide hangs. "
|
|
|
|
- "(default: true)");
|
|
|
|
-
|
|
|
|
-int i915_enable_ppgtt __read_mostly = -1;
|
|
|
|
-module_param_named(i915_enable_ppgtt, i915_enable_ppgtt, int, 0400);
|
|
|
|
-MODULE_PARM_DESC(i915_enable_ppgtt,
|
|
|
|
- "Override PPGTT usage. "
|
|
|
|
- "(-1=auto [default], 0=disabled, 1=aliasing, 2=full)");
|
|
|
|
-
|
|
|
|
-int i915_enable_psr __read_mostly = 0;
|
|
|
|
-module_param_named(enable_psr, i915_enable_psr, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(enable_psr, "Enable PSR (default: false)");
|
|
|
|
-
|
|
|
|
-unsigned int i915_preliminary_hw_support __read_mostly = IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT);
|
|
|
|
-module_param_named(preliminary_hw_support, i915_preliminary_hw_support, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(preliminary_hw_support,
|
|
|
|
- "Enable preliminary hardware support.");
|
|
|
|
-
|
|
|
|
-int i915_disable_power_well __read_mostly = 1;
|
|
|
|
-module_param_named(disable_power_well, i915_disable_power_well, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(disable_power_well,
|
|
|
|
- "Disable the power well when possible (default: true)");
|
|
|
|
-
|
|
|
|
-int i915_enable_ips __read_mostly = 1;
|
|
|
|
-module_param_named(enable_ips, i915_enable_ips, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(enable_ips, "Enable IPS (default: true)");
|
|
|
|
-
|
|
|
|
-bool i915_fastboot __read_mostly = 0;
|
|
|
|
-module_param_named(fastboot, i915_fastboot, bool, 0600);
|
|
|
|
-MODULE_PARM_DESC(fastboot, "Try to skip unnecessary mode sets at boot time "
|
|
|
|
- "(default: false)");
|
|
|
|
-
|
|
|
|
-int i915_enable_pc8 __read_mostly = 1;
|
|
|
|
-module_param_named(enable_pc8, i915_enable_pc8, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(enable_pc8, "Enable support for low power package C states (PC8+) (default: true)");
|
|
|
|
-
|
|
|
|
-int i915_pc8_timeout __read_mostly = 5000;
|
|
|
|
-module_param_named(pc8_timeout, i915_pc8_timeout, int, 0600);
|
|
|
|
-MODULE_PARM_DESC(pc8_timeout, "Number of msecs of idleness required to enter PC8+ (default: 5000)");
|
|
|
|
-
|
|
|
|
-bool i915_prefault_disable __read_mostly;
|
|
|
|
-module_param_named(prefault_disable, i915_prefault_disable, bool, 0600);
|
|
|
|
-MODULE_PARM_DESC(prefault_disable,
|
|
|
|
- "Disable page prefaulting for pread/pwrite/reloc (default:false). For developers only.");
|
|
|
|
-
|
|
|
|
static struct drm_driver driver;
|
|
static struct drm_driver driver;
|
|
|
|
|
|
static const struct intel_device_info intel_i830_info = {
|
|
static const struct intel_device_info intel_i830_info = {
|
|
@@ -480,12 +366,12 @@ bool i915_semaphore_is_enabled(struct drm_device *dev)
|
|
|
|
|
|
/* Until we get further testing... */
|
|
/* Until we get further testing... */
|
|
if (IS_GEN8(dev)) {
|
|
if (IS_GEN8(dev)) {
|
|
- WARN_ON(!i915_preliminary_hw_support);
|
|
|
|
|
|
+ WARN_ON(!i915.preliminary_hw_support);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- if (i915_semaphores >= 0)
|
|
|
|
- return i915_semaphores;
|
|
|
|
|
|
+ if (i915.semaphores >= 0)
|
|
|
|
+ return i915.semaphores;
|
|
|
|
|
|
#ifdef CONFIG_INTEL_IOMMU
|
|
#ifdef CONFIG_INTEL_IOMMU
|
|
/* Enable semaphores on SNB when IO remapping is off */
|
|
/* Enable semaphores on SNB when IO remapping is off */
|
|
@@ -750,7 +636,7 @@ int i915_reset(struct drm_device *dev)
|
|
bool simulated;
|
|
bool simulated;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- if (!i915_try_reset)
|
|
|
|
|
|
+ if (!i915.reset)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
mutex_lock(&dev->struct_mutex);
|
|
mutex_lock(&dev->struct_mutex);
|
|
@@ -818,7 +704,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
struct intel_device_info *intel_info =
|
|
struct intel_device_info *intel_info =
|
|
(struct intel_device_info *) ent->driver_data;
|
|
(struct intel_device_info *) ent->driver_data;
|
|
|
|
|
|
- if (IS_PRELIMINARY_HW(intel_info) && !i915_preliminary_hw_support) {
|
|
|
|
|
|
+ if (IS_PRELIMINARY_HW(intel_info) && !i915.preliminary_hw_support) {
|
|
DRM_INFO("This hardware requires preliminary hardware support.\n"
|
|
DRM_INFO("This hardware requires preliminary hardware support.\n"
|
|
"See CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT, and/or modparam preliminary_hw_support\n");
|
|
"See CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT, and/or modparam preliminary_hw_support\n");
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
@@ -1049,14 +935,14 @@ static int __init i915_init(void)
|
|
* the default behavior.
|
|
* the default behavior.
|
|
*/
|
|
*/
|
|
#if defined(CONFIG_DRM_I915_KMS)
|
|
#if defined(CONFIG_DRM_I915_KMS)
|
|
- if (i915_modeset != 0)
|
|
|
|
|
|
+ if (i915.modeset != 0)
|
|
driver.driver_features |= DRIVER_MODESET;
|
|
driver.driver_features |= DRIVER_MODESET;
|
|
#endif
|
|
#endif
|
|
- if (i915_modeset == 1)
|
|
|
|
|
|
+ if (i915.modeset == 1)
|
|
driver.driver_features |= DRIVER_MODESET;
|
|
driver.driver_features |= DRIVER_MODESET;
|
|
|
|
|
|
#ifdef CONFIG_VGA_CONSOLE
|
|
#ifdef CONFIG_VGA_CONSOLE
|
|
- if (vgacon_text_force() && i915_modeset == -1)
|
|
|
|
|
|
+ if (vgacon_text_force() && i915.modeset == -1)
|
|
driver.driver_features &= ~DRIVER_MODESET;
|
|
driver.driver_features &= ~DRIVER_MODESET;
|
|
#endif
|
|
#endif
|
|
|
|
|