Bug 61671
Summary: | i915 silently fails to load on generation >= 6 gpus with nomodeset | ||
---|---|---|---|
Product: | Drivers | Reporter: | Sylvia Else (sylviabz832) |
Component: | Video(DRI - Intel) | Assignee: | intel-gfx-bugs (intel-gfx-bugs) |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | chris, daniel, intel-gfx-bugs |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.10.12 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Sylvia Else
2013-09-19 11:51:49 UTC
You request nomodeset, you get nomodeset. Where is the failure in expectations? The failure in expectation is that the driver will run, but not modeset, not that the driver will just bail out without comment. It's not as if most people actually ever write a kernel command line. The command line is supplied to them as part of the software they've installed. There may be a valid reason for i915 not loading if nomodeset is specified, but a simple one line message stating the reason would give people a chance to seek help as to the real problem, rather than obscure things like [2.317467] [drm:drm_pci_agp_init] *ERROR* Cannot initialize the agpgart module. [2.317529] DRM: Fill_in_dev failed. which is what they get now. But you disable the entire driver? Just exactly what miracles are you expecting? To elaborate: There is not non-kms driver available for your platform. Never was. If your distro sets this, then the kernel/gfx maintainers of your distro better know what they're doing. That btw applies in general to setting random options for i915 - the defaults are there usually for good reasons. Well, since there's plenty of old, ill-advised tips out there to try nomodeset, we could just do something along the lines of: diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index be5120f7..70499e5 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1468,8 +1468,11 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) info = (struct intel_device_info *) flags; /* Refuse to load on gen6+ without kms enabled. */ - if (info->gen >= 6 && !drm_core_check_feature(dev, DRIVER_MODESET)) + if (info->gen >= 6 && !drm_core_check_feature(dev, DRIVER_MODESET)) { + DRM_INFO("This hardware requires kernel modesetting (KMS).\n" + "See CONFIG_DRM_I915_KMS, nomodeset, and/or i915.modeset parameters.\n"); return -ENODEV; + } /* i915 has 4 more counters */ dev->counters += 4; That seems a sensible solution, and once there is a definite error message, stuff can be posted to forums explaining what that message means for the uninformed, and will hopefully be found on a Google search. |