|
@@ -2091,6 +2091,27 @@ out:
|
|
|
* drm_fb_helper_fill_fix() are provided as helpers to setup simple default
|
|
|
* values for the fbdev info structure.
|
|
|
*
|
|
|
+ * HANG DEBUGGING:
|
|
|
+ *
|
|
|
+ * When you have fbcon support built-in or already loaded, this function will do
|
|
|
+ * a full modeset to setup the fbdev console. Due to locking misdesign in the
|
|
|
+ * VT/fbdev subsystem that entire modeset sequence has to be done while holding
|
|
|
+ * console_lock. Until console_unlock is called no dmesg lines will be sent out
|
|
|
+ * to consoles, not even serial console. This means when your driver crashes,
|
|
|
+ * you will see absolutely nothing else but a system stuck in this function,
|
|
|
+ * with no further output. Any kind of printk() you place within your own driver
|
|
|
+ * or in the drm core modeset code will also never show up.
|
|
|
+ *
|
|
|
+ * Standard debug practice is to run the fbcon setup without taking the
|
|
|
+ * console_lock as a hack, to be able to see backtraces and crashes on the
|
|
|
+ * serial line. This can be done by setting the fb.lockless_register_fb=1 kernel
|
|
|
+ * cmdline option.
|
|
|
+ *
|
|
|
+ * The other option is to just disable fbdev emulation since very likely the
|
|
|
+ * first modest from userspace will crash in the same way, and is even easier to
|
|
|
+ * debug. This can be done by setting the drm_kms_helper.fbdev_emulation=0
|
|
|
+ * kernel cmdline option.
|
|
|
+ *
|
|
|
* RETURNS:
|
|
|
* Zero if everything went ok, nonzero otherwise.
|
|
|
*/
|