Linux 3.4-rc4

Nick Bowler nbowler at
Tue Apr 24 18:35:37 PDT 2012

On 2012-04-23 21:03 -0400, Nick Bowler wrote:
> On 2012-04-22 22:45 -0400, Konrad Rzeszutek Wilk wrote:
> > On Sun, Apr 22, 2012 at 08:05:54PM -0400, Nick Bowler wrote:
> > > Following up on the above, the commit which introduces the panics during
> > > boot is this one:
> > >
> > > commit 8e7e70522d760c4ccd4cd370ebfa0ba69e006c6e
> > > Author: Jerome Glisse <jglisse at>
> > > Date:   Wed Nov 9 17:15:26 2011 -0500
> > > 
> > >     drm/ttm: isolate dma data from ttm_tt V4
> > dea7e0a ttm: fix agp since ttm tt rework
> > 
> > fixed that.
> Yes, I just tested this commit and the one immediately before it.  The
> one before crashes in the usual way, and dea7e0a boots (with the VGA
> output black as in the original report).  So this fixed the crash.

OK, here's what I did:

 - Since dea7e0a is the first commit that both (a) boots and (b) has
   broken VGA, I checked it out on a new branch:

     git checkout -b crazy dea7e0a

 - Next, I reverted *all* (well, I missed one by accident) the remaining
   nouveau-specific commits between 3230cfc34 ("drm/nouveau: enable the
   ttm dma pool when swiotlb is active V3") (i.e., the last commit that
   (a) boots and (b) has non-broken VGA) and dea7e0a:

     git revert --no-edit 0c101461e267..f7b24c42da1a

 - Amazingly, the resulting kernel booted and had working VGA, so I did
   a "backwards" bisect on this branch of reverts.  In a strange twist
   of fate, this actually managed to produce bootable kernels the entire
   time.  The bisection pinpointed the following commit as the culprit:

commit a0b25635515ef5049f93b032a1e37f18b16e0f6f
Author: Ben Skeggs <bskeggs at>
Date:   Mon Nov 21 16:41:48 2011 +1000

    drm/nouveau/gpio: reimplement as nouveau_gpio.c, fixing a number of issues
    - moves out of nouveau_bios.c and demagics the logical state definitions
    - simplifies chipset-specific driver interface
    - makes most of gpio irq handling common, will use for nv4x hpd later
    - api extended to allow both direct gpio access, and access using the
      logical function states
    - api extended to allow for future use of gpio extender chips
    - pre-nv50 was handled very badly, the main issue being that all GPIOs
      were being treated as output-only.
    - fixes nvd0 so gpio changes actually stick, magic reg needs bashing
    Signed-off-by: Ben Skeggs <bskeggs at>

Unfortunately, there are a number of seemingly non-trivial conflicts
trying to revert just this one gigantic commit.  So to avoid any
conflicts, I reverted all of the following (in this order) on top of
3.3.3 (there are even more conflicts trying to revert on top of Linus'

  7df898b1a70b ("drm/nouveau/disp: check that panel power gpio is enabled at init time")
  52c4d767437b ("drm/nouveau: move hpd enable/disable to common code")
  47e5d5cb83d4 ("drm/nv40/disp: implement support for hotplug irq")
  a0b25635515e ("drm/nouveau/gpio: reimplement as nouveau_gpio.c, fixing a number of issues")

and my VGA is working again!

Nick Bowler, Elliptic Technologies (

More information about the dri-devel mailing list