Bug 61671 - i915 silently fails to load on generation >= 6 gpus with nomodeset
Summary: i915 silently fails to load on generation >= 6 gpus with nomodeset
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: intel-gfx-bugs@lists.freedesktop.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-19 11:51 UTC by Sylvia Else
Modified: 2013-09-20 01:50 UTC (History)
3 users (show)

See Also:
Kernel Version: 3.10.12
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Sylvia Else 2013-09-19 11:51:49 UTC
It appears that i915 cannot function without modeset on generation >= 6 gpus, and in that situation the i915_driver_load function returns -ENODEV. If "nomodeset" makes no sense for those gpus, then maybe it should be ignored, but at least an error message would be helpful.
Comment 1 Chris Wilson 2013-09-19 11:59:16 UTC
You request nomodeset, you get nomodeset. Where is the failure in expectations?
Comment 2 Sylvia Else 2013-09-19 12:18:43 UTC
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.
Comment 3 Chris Wilson 2013-09-19 12:24:55 UTC
But you disable the entire driver? Just exactly what miracles are you expecting?
Comment 4 Daniel Vetter 2013-09-19 12:28:30 UTC
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.
Comment 5 Jani Nikula 2013-09-19 13:59:35 UTC
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;
Comment 6 Sylvia Else 2013-09-20 01:50:13 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.