The head number of a given display controller is fixed in hardware and
required to program outputs appropriately. Relying on the driver probe
order to determine this number will not work, since that could yield a
situation where the second head was probed first and would be assigned
head number 0 instead of 1.
By explicitly specifying the head number in the device tree, it is no
longer necessary to rely on these assumptions. As a fallback, if the
property isn't available, derive the head number from the display
controller node's position in the device tree. That's somewhat more
reliable than the previous default but not a proper solution.
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Add new definitions for hotplug live status bits for VLV2 since they're
in reverse order from the gen4x ones.
Changelog:
- Restored gen4 bit definitions
- Added new definitions for VLV2
- Added platform check for IS_VALLEYVIEW() in dp_detect to use the correct
bit defintions
- Replaced a lost trailing brace for the added switch()
Signed-off-by: Todd Previte <tprevite@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73951
[danvet: Switch to _VLV postfix instead of prefix and regroupg
comments again so that the g4x warning is right next to those defines.
Also add a _G4X suffix for those special ones. Also cc stable.]
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Summary:
- GK110/GK208 acceleration
- loads more work towards pm, though, still behind a disable wall for now
- error reporting improvements from both Ilia and myself
- more old-school overlay improvements from Ilia
- misc other bits and pieces
* 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (68 commits)
drm/nouveau: call drm_vblank_cleanup() earlier
drm/nouveau: create base display from common code
drm/nv50/gr: print mpc trap name when it's not an mp trap
drm/nv50/gr: update list of mp errors, make it a bitfield
drm/nv50/gr: add more trap names to print on error
drm/nouveau/devinit: lock/unlock crtc regs for all devices, not just pre-nv50
drm/nouveau: hold mutex while syncing to kernel channel
drm/nv50-/devinit: prevent use of engines marked as disabled by hw/vbios
drm/nouveau/device: provide a way for devinit to mark engines as disabled
drm/nouveau/devinit: tidy up the subdev class definition
drm/nouveau/bar: tidy up the subdev and object class definitions
drm/nouveau/instmem: tidy up the object class definition
drm/nouveau/instmem: tidy up the subdev class definition
drm/nouveau/pwr: implement a simple i2c stack
drm/nouveau/pwr: have rd/wr32 routines clobber data instead of addr
drm/nve0/fb: turn off some bits in 10f584 at init
drm/nve0/fb/gddr5: merge a fix from ddr3 for one of the timing settings
drm/nve0/fb/gddr5: yet another random 10f200 bit
drm/nvc0-/fb: hook up skeleton interrupt handler
drm/nve0/fb/gddr5: more 10f200 stuff
...
Also make nv_lockvgac work for nv50+ devices. This should fix
IO_CONDITION and related VBIOS opcodes that read/write the crtc regs.
See https://bugs.freedesktop.org/show_bug.cgi?id=60680
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Not holding the mutex potentially causes corruption of the kernel
channel when page flipping.
Cc: stable@vger.kernel.org #3.13
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Seen on Titan. NFI what the condition to switch this on is yet, and,
hardcoding it to on currently causes master to report unknown intr
with a mask of 0x08002000.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Still essentially a struct of magic values with magic names and unknown
purposes. But, we will shortly need to be able to mix and match bits of
the previous and next configurations to do a transition reclock, as such,
we can no longer directly use the vbios data with any ease.
This is probably nicer anyway in the long run, for a few reasons.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>