Thread (10 messages) 10 messages, 4 authors, 2014-07-08

Re: [Intel-gfx] [PATCH 5/5] drm/i915: Kick out vga console

flat view

From: Ed Tomlinson <hidden>
Date: 2014-07-07 10:45:55
Also in: dri-devel, intel-gfx, lkml

Daniel,

I am not quite sure I understand what you want me to test?
Do you want me to try it without:
quoted
+               if (ret = 0) {
+                       ret = do_unregister_con_driver(&vga_con);
Thanks
Ed


On Monday 07 July 2014 10:48:26 Daniel Vetter wrote:
On Mon, Jun 30, 2014 at 07:59:55AM +0100, Chris Wilson wrote:
quoted
On Sat, Jun 28, 2014 at 11:55:19PM -0400, Ed Tomlinson wrote:
quoted
On Saturday 28 June 2014 15:28:22 Ed Tomlinson wrote:

Resend without html krud which causes list to bounce the message.
quoted
Hi

This commit ( a4de05268e674e8ed31df6348269e22d6c6a1803 ) hangs my boot with 3.16-git.  Reverting it lets the boot proceed. 

I have an i7 with a built-in i915 and an pcie r7 260x.  The R7 is the primary console.  The i915 is initialized
but does not have a physical display attached.

With the patch applied the boot stops at the messages:

[drm] Memory usable by graphics device = 2048M
[drm] Replacing VGA console driver
The issue looks like that we are ripping out the radeon fb_con whilst it
is active and that upsets everyone. In which case, I think the
compromise is:

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 5f44581..4915f1d 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1439,18 +1439,20 @@ static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
 #else
 static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
 {
-       int ret;
+       int ret = 0;
 
        DRM_INFO("Replacing VGA console driver\n");
 
        console_lock();
-       ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
-       if (ret = 0) {
-               ret = do_unregister_con_driver(&vga_con);
-
-               /* Ignore "already unregistered". */
-               if (ret = -ENODEV)
-                       ret = 0;
+       if (con_is_bound(&vga_con)) {
+               ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
+               if (ret = 0) {
+                       ret = do_unregister_con_driver(&vga_con);
Hm, we should only conditionalize the take_over_console - unregistering
vga_con is kinda the point to make sure it's gone for real. Ed, can you
please retest with the if (con_is_bound) check just for the
do_take_over_console call?

Still puzzled wtf is going on here since as David says this should be a
no-op.

Thanks, Daniel
quoted
+
+                       /* Ignore "already unregistered". */
+                       if (ret = -ENODEV)
+                               ret = 0;
+               }
        }
        console_unlock();

-Chris
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help