safe/jmp/linux-2.6
14 years agoMerge remote branch 'nouveau/for-airlied' into drm-linus
Dave Airlie [Mon, 15 Mar 2010 01:07:33 +0000 (11:07 +1000)]
Merge remote branch 'nouveau/for-airlied' into drm-linus

* nouveau/for-airlied:
  drm/nouveau: add module option to disable TV detection
  drm/nouveau: Never evict VRAM buffers to system.
  drm/nv50: fix connector table parsing for some cards
  drm/nv50: add a memory barrier to pushbuf submission
  drm/nouveau: print a message very early during suspend
  drm/nv04-nv40: Fix up the programmed horizontal sync pulse delay.
  drm/nouveau: Gigabyte NX85T connector table lies, it has DVI-I not HDMI
  drm/nouveau: add option to allow override of dcb connector table types
  drm/nv50: Improve PGRAPH interrupt handling.
  drm/nv50: Make ctxprog wait until interrupt handler is done.
  drm/nouveau: Fix fbcon corruption with font width not divisible by 8
  drm/nv50: Remove redundant/incorrect ctxvals initialisation.

14 years agodrm/edid: allow certain bogus edids to hit a fixup path rather than fail
Ben Skeggs [Wed, 17 Feb 2010 23:12:09 +0000 (09:12 +1000)]
drm/edid: allow certain bogus edids to hit a fixup path rather than fail

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm: remove the EDID blob stored in the EDID property when it is disconnected
Zhao Yakui [Thu, 4 Mar 2010 08:25:55 +0000 (08:25 +0000)]
drm: remove the EDID blob stored in the EDID property when it is disconnected

Now the EDID property will be updated when the corresponding EDID can be
obtained from the external display device. But after the external device
is plugged-out, the EDID property is not updated. In such case we still
get the corresponding EDID property although it is already detected as
disconnected.

https://bugs.freedesktop.org/show_bug.cgi?id=26743

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/vmwgfx: depends on FB
Randy Dunlap [Thu, 11 Mar 2010 22:01:39 +0000 (22:01 +0000)]
drm/vmwgfx: depends on FB

vmwfgx uses framebuffer interfaces, so it should depend on FB.
Otherwise it has these build errors (e.g., when CONFIG_FB=m):

drivers/built-in.o: In function `vmw_fb_close':
(.text+0x97713): undefined reference to `unregister_framebuffer'
drivers/built-in.o: In function `vmw_fb_close':
(.text+0x97754): undefined reference to `framebuffer_release'
drivers/built-in.o: In function `vmw_fb_init':
(.text+0x97e1c): undefined reference to `framebuffer_alloc'
drivers/built-in.o: In function `vmw_fb_init':
(.text+0x9838d): undefined reference to `register_framebuffer'
drivers/built-in.o: In function `vmw_fb_init':
(.text+0x9842a): undefined reference to `framebuffer_release'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm: "kobject_init/kobject_add" -> "kobject_init_and_add".
Robert P. J. Day [Sat, 13 Mar 2010 10:36:32 +0000 (10:36 +0000)]
drm: "kobject_init/kobject_add" -> "kobject_init_and_add".

Replace sequential calls to kobject_init() and kobject_add() with the
combo wrapper kobject_init_and_add(), which provides the same
semantics.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/ttm: use drm calloc large and free large
Dave Airlie [Tue, 9 Mar 2010 06:33:26 +0000 (06:33 +0000)]
drm/ttm: use drm calloc large and free large

Now that the drm core can do this, lets just use it, split the code out
so TTM doesn't have to drag all of drmP.h in.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/nouveau: add module option to disable TV detection
Ben Skeggs [Sun, 14 Mar 2010 23:43:51 +0000 (09:43 +1000)]
drm/nouveau: add module option to disable TV detection

Intended to be used as a workaround in cases where we falsely detect
that a TV is connected when it's not.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: Never evict VRAM buffers to system.
Francisco Jerez [Sat, 6 Mar 2010 12:42:45 +0000 (13:42 +0100)]
drm/nouveau: Never evict VRAM buffers to system.

VRAM->system is a synchronous operation: it involves scheduling a
VRAM->TT DMA transfer and stalling the CPU until it's finished so that
we can unbind the new memory from the translation tables. VRAM->TT can
always be performed asynchronously, even if TT is already full and we
have to move something out of it.

Additionally, allowing VRAM->system behaves badly under heavy memory
pressure because once we run out of TT, stuff starts to be moved back
and forth between VRAM and system, and the TT contents are hardly
renewed.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: fix connector table parsing for some cards
Ben Skeggs [Wed, 10 Mar 2010 05:52:43 +0000 (15:52 +1000)]
drm/nv50: fix connector table parsing for some cards

The connector table index in the DCB entry for each output type is an
index into the connector table, and does *not* necessarily match up
with what was previously called "index" in the connector table entries
themselves.

Not real sure what that index is exactly, renamed to "index2" as we
still use it to prevent creating multiple TV connectors.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: add a memory barrier to pushbuf submission
Maarten Maathuis [Thu, 25 Feb 2010 19:00:38 +0000 (20:00 +0100)]
drm/nv50: add a memory barrier to pushbuf submission

- This is useful for vram pushbuffers that are write combined.
- pre-nv50 has one too (in WRITE_PUT).

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: print a message very early during suspend
Maarten Maathuis [Sun, 21 Feb 2010 12:28:35 +0000 (13:28 +0100)]
drm/nouveau: print a message very early during suspend

- In case of suspend lockups it's nice to know it happened in nouveau.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv04-nv40: Fix up the programmed horizontal sync pulse delay.
Francisco Jerez [Fri, 5 Mar 2010 14:15:39 +0000 (15:15 +0100)]
drm/nv04-nv40: Fix up the programmed horizontal sync pulse delay.

The calculated values were a little bit off (~16 clocks), the only
effect it could have had is a slightly offset image with respect to
the blob on analog outputs (bug 26790).

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: Gigabyte NX85T connector table lies, it has DVI-I not HDMI
Ben Skeggs [Thu, 4 Mar 2010 02:12:22 +0000 (12:12 +1000)]
drm/nouveau: Gigabyte NX85T connector table lies, it has DVI-I not HDMI

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: add option to allow override of dcb connector table types
Ben Skeggs [Thu, 4 Mar 2010 02:00:39 +0000 (12:00 +1000)]
drm/nouveau: add option to allow override of dcb connector table types

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: Improve PGRAPH interrupt handling.
Marcin Kościelnicki [Mon, 1 Mar 2010 00:18:39 +0000 (00:18 +0000)]
drm/nv50: Improve PGRAPH interrupt handling.

This makes nouveau recognise and report more kinds of PGRAPH errors, as
well as prevent GPU lockups resulting from some of them.

Lots of guesswork was involved and some part of this is probably
incorrect. Some potential-lockuop situations are handled by just
resetting a whole PGRAPH subunit, which doesn't sound like a "proper"
solution, but seems to work just fine... for now.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: Make ctxprog wait until interrupt handler is done.
Marcin Kościelnicki [Sun, 28 Feb 2010 23:45:38 +0000 (23:45 +0000)]
drm/nv50: Make ctxprog wait until interrupt handler is done.

This will fix races between generated ctxprogs and interrupt handler.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: Fix fbcon corruption with font width not divisible by 8
Marcin Kościelnicki [Sat, 27 Feb 2010 18:13:35 +0000 (18:13 +0000)]
drm/nouveau: Fix fbcon corruption with font width not divisible by 8

NV50 is nice and has a switch that autoaligns stuff for us. Pre-NV50,
we need to align input bitmap width manually.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: Remove redundant/incorrect ctxvals initialisation.
Marcin Kościelnicki [Thu, 25 Feb 2010 18:53:37 +0000 (18:53 +0000)]
drm/nv50: Remove redundant/incorrect ctxvals initialisation.

11c/004 offset corresponds to PGRAPH reg 0x400828, and is initialised
earlier anyway by both our ctxprog generator and blob ctxvals. It's
actually incorrect with the generator, since we use different layout
on pre-NVA0.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agovga_switcheroo: disable default y by new rules.
Dave Airlie [Tue, 2 Mar 2010 23:26:35 +0000 (09:26 +1000)]
vga_switcheroo: disable default y by new rules.

Another undocumented rule of kernel folklore, no default y
config options anymore, apparantly hinting to distros they might
want something isn't preferred anymore.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/nouveau: fix *staging* driver build with switcheroo off.
Dave Airlie [Tue, 2 Mar 2010 23:20:25 +0000 (09:20 +1000)]
drm/nouveau: fix *staging* driver build with switcheroo off.

This driver is in *staging*. Fix the build with the switcheroo off.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon: fix typo in Makefile
Alex Deucher [Mon, 1 Mar 2010 19:23:31 +0000 (14:23 -0500)]
drm/radeon: fix typo in Makefile

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agovga_switcheroo: fix build on platforms with no ACPI
Dave Airlie [Mon, 1 Mar 2010 10:50:01 +0000 (21:50 +1100)]
vga_switcheroo: fix build on platforms with no ACPI

radeon was always including the atpx code unnecessarily, also core
switcheroo was including acpi headers.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon: Fix printf type warning in 64bit system.
Pauli Nieminen [Mon, 1 Mar 2010 09:37:11 +0000 (11:37 +0200)]
drm/radeon: Fix printf type warning in 64bit system.

Type of iterator was promoted to unsigned long in 64bit systems.

*header is small structure so it is alwas safe to cast return value
of sizeof operator to int.

Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
14 years agodrm/radeon/kms: bump the KMS version number for square tiling support.
Dave Airlie [Mon, 1 Mar 2010 06:32:15 +0000 (16:32 +1000)]
drm/radeon/kms: bump the KMS version number for square tiling support.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoMerge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage
Dave Airlie [Mon, 1 Mar 2010 06:22:38 +0000 (16:22 +1000)]
Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage

* 'gpu-switcher' of /ssd/git//linux-2.6:
  vga_switcheroo: initial implementation (v15)
  fb: for framebuffer handover don't exit the loop early.

Conflicts:
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/radeon/Makefile
drivers/gpu/drm/radeon/radeon.h

14 years agovga_switcheroo: initial implementation (v15)
Dave Airlie [Mon, 1 Feb 2010 05:38:10 +0000 (15:38 +1000)]
vga_switcheroo: initial implementation (v15)

Many new laptops now come with 2 gpus, one to be used for low power
modes and one for gaming/on-ac applications. These GPUs are typically
wired to the laptop panel and VGA ports via a multiplexer unit which
is controlled via ACPI methods.

4 combinations of systems typically exist - with 2 ACPI methods.
Intel/ATI - Lenovo W500/T500 - use ATPX ACPI method
ATI/ATI - some ASUS - use ATPX ACPI Method
Intel/Nvidia - - use _DSM ACPI method
Nvidia/Nvidia -  - use _DSM ACPI method.

TODO:
This patch adds support for the ATPX method and initial bits
for the _DSM methods that need to written by someone with
access to the hardware.
Add a proper non-debugfs interface - need to get some proper
testing first.

v2: add power up/down support for both devices
on W500 puts i915/radeon into D3 and cuts power to radeon.

v3: redo probing methods, no DMI list, drm devices call to
register with switcheroo, it tries to find an ATPX method on
any device and once there is two devices + ATPX it inits the
switcher.

v4: ATPX msg handling using buffers - should work on more machines

v5: rearchitect after more mjg59 discussion - move ATPX handling to
    radeon driver.

v6: add file headers + initial nouveau bits (to be filled out).

v7: merge delayed switcher code.

v8: avoid suspend/resume of gpu that is off

v9: rearchitect - mjg59 is always right. - move all ATPX code to
radeon, should allow simpler DSM also proper ATRM handling

v10: add ATRM support for radeon BIOS, add mutex to lock vgasr_priv

v11: fix bug in resuming Intel for 2nd time.

v12: start fixing up nvidia code blindly.

v13: blindly guess at finishing nvidia code

v14: remove radeon audio hacks - fix up intel resume more like upstream

v15: clean up printks + remove unnecessary igd/dis pointers

mount debugfs

/sys/kernel/debug/vgaswitcheroo/switch - should exist if ATPX detected
 + 2 cards.

DIS - immediate change to discrete
IGD - immediate change to IGD
DDIS - delayed change to discrete
DIGD - delayed change to IGD
ON - turn on not in use
OFF - turn off not in use

Tested on W500 (Intel/ATI) and T500 (Intel/ATI)

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: do not disable audio engine twice
Rafał Miłecki [Fri, 26 Feb 2010 08:46:32 +0000 (08:46 +0000)]
drm/radeon/kms: do not disable audio engine twice

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoRevert "drm/radeon/kms: disable HDMI audio for now on rv710/rv730"
Rafał Miłecki [Fri, 26 Feb 2010 08:44:57 +0000 (08:44 +0000)]
Revert "drm/radeon/kms: disable HDMI audio for now on rv710/rv730"

This commit "disabled" audio on RV710 and RV740 only, leaving RV770 and RV730.
The order is: CHIP_RV770 < CHIP_RV730 < CHIP_RV710 < CHIP_RV740.

It is not needed anway, as we do not even try to enable audio on RV770 and
newer. We call initializing function in r600.c only, not in rv770.c.

If there is something causing green tinges, it's HDMI mode setting for encoder
and I will try to debug that.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: do not preset audio stuff and start timer when not using audio
Rafał Miłecki [Fri, 26 Feb 2010 08:46:33 +0000 (08:46 +0000)]
drm/radeon/kms: do not preset audio stuff and start timer when not using audio

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoMerge branch 'drm-radeon-testing' of /ssd/git/drm-radeon-next into drm-next-stage
Dave Airlie [Mon, 1 Mar 2010 06:08:57 +0000 (16:08 +1000)]
Merge branch 'drm-radeon-testing' of /ssd/git/drm-radeon-next into drm-next-stage

* 'drm-radeon-testing' of /ssd/git/drm-radeon-next:
  drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond
  drm/ttm: fix function prototype to match implementation
  drm/radeon: use ALIGN instead of open coding it
  drm/radeon/kms: initialize set_surface_reg reg for rs600 asic

14 years agodrm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond
Dave Airlie [Wed, 24 Feb 2010 07:17:13 +0000 (17:17 +1000)]
drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond

radeon's have a special ability to passthrough writes in their internal
memory space directly to PCI, this ability means that if some of the internal
surfaces like the depth buffer point at 0x0, any writes to these will
go directly to RAM at 0x0 via PCI busmastering.

Now mesa used to always emit clears after emitting state, since the
radeon mesa driver was refactored a year or more ago, it was found it
could generate a clear request without ever sending any setup state to the
card. So the clear would attempt to clear the depth buffer at 0x0, which
would overwrite main memory at this point. fs corruption ensues.

Also once one app did this correctly, it would never get set back to 0
making this messy to reproduce.

The kernel should block this from happening as mesa runs without privs,
though it does require the user be connected to the current running X session.

This patch implements a check to make sure the depth offset has been set
before a depth clear occurs and if it finds one it prints a warning and
ignores the depth clear request. There is also a mesa fix to avoid sending
the badness going into mesa.

This only affects r100/r200 GPUs in user modesetting mode.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/ttm: fix function prototype to match implementation
Randy Dunlap [Wed, 24 Feb 2010 22:29:14 +0000 (14:29 -0800)]
drm/ttm: fix function prototype to match implementation

Fix function prototype to match its actual usage and implementation.

drivers/gpu/drm/ttm/ttm_bo_util.c:341:10: error: symbol 'ttm_io_prot' redeclared with different type (originally declared at include/drm/ttm/ttm_bo_driver.h:911) - incompatible argument 1 (different signedness)

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: David Airlie <airlied@linux.ie>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon: use ALIGN instead of open coding it
Matt Turner [Thu, 25 Feb 2010 04:23:31 +0000 (04:23 +0000)]
drm/radeon: use ALIGN instead of open coding it

Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: initialize set_surface_reg reg for rs600 asic
Jerome Glisse [Fri, 26 Feb 2010 19:14:12 +0000 (19:14 +0000)]
drm/radeon/kms: initialize set_surface_reg reg for rs600 asic

rs600 asic was missing set_surface_reg callback leading to
oops.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoMerge remote branch 'anholt/drm-intel-next' into drm-next-stage
Dave Airlie [Mon, 1 Mar 2010 05:41:26 +0000 (15:41 +1000)]
Merge remote branch 'anholt/drm-intel-next' into drm-next-stage

* anholt/drm-intel-next: (103 commits)
  drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
  drm/i915: enable/disable LVDS port at DPMS time
  drm/i915: check for multiple write domains in pin_and_relocate
  drm/i915: clean-up i915_gem_flush_gpu_write_domain
  drm/i915: reuse i915_gpu_idle helper
  drm/i915: ensure lru ordering of fence_list
  drm/i915: extract fence stealing code
  drm/i915: fixup active list locking in object_unbind
  drm/i915: reuse i915_gem_object_put_fence_reg for fence stealing code
  drm/i915: Add dependency on the intel agp module
  drm/i915: More s/IS_IRONLAKE/HAS_PCH_SPLIT for Sandybridge.
  drm/i915: Correct the Sandybridge chipset info structs.
  drm/i915: Disable the hangcheck reset on Sandybridge until we add support.
  drm/i915: Add a new mobile Sandybridge PCI ID.
  agp/intel: Add a new Sandybridge HB/IG PCI ID combo.
  drm/i915, agp/intel: Fix stolen memory size on Sandybridge
  drm/i915: Correct locking in the modesetting failure path, fixing a BUG_ON.
  drm/i915: Disable the surface tile swizzling on Sandybridge.
  agp/intel: Use a non-reserved value for the cache field of the PTEs.
  drm/i915: Fix sandybridge status page setup.
  ...

14 years agoMerge remote branch 'nouveau/for-airlied' into drm-next-stage
Dave Airlie [Mon, 1 Mar 2010 05:41:15 +0000 (15:41 +1000)]
Merge remote branch 'nouveau/for-airlied' into drm-next-stage

* nouveau/for-airlied: (25 commits)
  drm/nouveau: use ALIGN instead of open coding it
  drm/nouveau: report unknown connector state if lid closed
  drm/nouveau: support version 0x20 displayport tables
  drm/nouveau: Fix noaccel/nofbaccel option descriptions.
  drm/nv50: Implement ctxprog/state generation.
  drm/nouveau: use dcb connector types throughout the driver
  drm/nv50: enable hpd on any connector we know the gpio line for
  drm/nouveau: use dcb connector table for creating drm connectors
  drm/nouveau: construct a connector table for cards that lack a real one
  drm/nouveau: check for known dcb connector types
  drm/nouveau: parse dcb gpio/connector tables after encoders
  drm/nouveau: reorganise bios header, add dcb connector type enums
  drm/nouveau: merge nvbios and nouveau_bios_info
  drm/nouveau: merge parsed_dcb and bios_parsed_dcb into dcb_table
  drm/nouveau: rename parsed_dcb_gpio to dcb_gpio_table
  drm/nouveau: allow retrieval of vbios image from debugfs
  drm/nouveau: fix missing spin_unlock in failure path
  drm/nouveau: fix i2ctable bounds checking
  drm/nouveau: fix nouveau_i2c_find bounds checking
  drm/nouveau: fix pramdac_table range checking
  ...

Conflicts:
drivers/gpu/drm/nouveau/nouveau_gem.c

14 years agoMerge remote branch 'korg/drm-core-next' into drm-next-stage
Dave Airlie [Mon, 1 Mar 2010 05:40:12 +0000 (15:40 +1000)]
Merge remote branch 'korg/drm-core-next' into drm-next-stage

* korg/drm-core-next:
  drm/ttm: handle OOM in ttm_tt_swapout
  drm/radeon/kms/atom: fix shr/shl ops
  drm/kms: fix spelling of "CLOCK"
  drm/kms: fix fb_changed = true else statement
  drivers/gpu/drm/drm_fb_helper.c: don't use private implementation of atoi()
  drm: switch all GEM/KMS ioctls to unlocked ioctl status.
  Use drm_gem_object_[handle_]unreference_unlocked where possible
  drm: introduce drm_gem_object_[handle_]unreference_unlocked

14 years agodrm/i915: Use a dmi quirk to skip a broken SDVO TV output.
Zhao Yakui [Mon, 8 Feb 2010 13:35:12 +0000 (21:35 +0800)]
drm/i915: Use a dmi quirk to skip a broken SDVO TV output.

This IBM system has a multi-function SDVO card that reports both VGA
and TV, but the system has no TV connector.  The TV connector always
reported as connected, which would lead to poor modesetting choices.

https://bugs.freedesktop.org/show_bug.cgi?id=25787

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Tested-by: Vance <liangghv@sg.ibm.com>
Cc: stable@kernel.org
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: enable/disable LVDS port at DPMS time
Jesse Barnes [Thu, 11 Feb 2010 20:41:05 +0000 (12:41 -0800)]
drm/i915: enable/disable LVDS port at DPMS time

It would be good to disable the LVDS port when we shut down the panel
to save power.  We haven't done so until now because we had trouble
getting the right LVDS parameters from the BIOS.  I think we're past
that now, so enabling and disabling the port should be safe, though it
would probably be made cleaner with some additional changes to the
display code, where we also bang on the LVDS reg to set the pairing
correctly etc.

Seems to save a bit of power (up to 300mW in my basic wattsup
meter testing).

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: check for multiple write domains in pin_and_relocate
Daniel Vetter [Fri, 19 Feb 2010 10:52:02 +0000 (11:52 +0100)]
drm/i915: check for multiple write domains in pin_and_relocate

The assumption that an object has only ever one write domain is deeply
threaded into gem (it's even encoded the the singular of the variable
name). Don't let userspace screw us over.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: clean-up i915_gem_flush_gpu_write_domain
Daniel Vetter [Fri, 19 Feb 2010 10:52:01 +0000 (11:52 +0100)]
drm/i915: clean-up i915_gem_flush_gpu_write_domain

Now that we have an exact gpu write domain tracking, we don't need
to move objects to the active list ourself. i915_add_request will
take care of that under all circumstances.

Idea stolen from a patch by Chris Wilson <chris@chris-wilson.co.uk>.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: reuse i915_gpu_idle helper
Daniel Vetter [Fri, 19 Feb 2010 10:52:00 +0000 (11:52 +0100)]
drm/i915: reuse i915_gpu_idle helper

We have it, so use it. This required moving the function to avoid
a forward declaration.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: ensure lru ordering of fence_list
Daniel Vetter [Fri, 19 Feb 2010 10:51:59 +0000 (11:51 +0100)]
drm/i915: ensure lru ordering of fence_list

The fence_list should be lru ordered for otherwise we might try
to steal a fence reg from an active object even though there are
fences from inactive objects available. lru ordering was obeyed
for gpu access everywhere save when moving dirty objects from
flushing_list to active_list.

Fixing this cause the code to indent way to much, so I've extracted
the flushing_list processing logic into its on function.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: extract fence stealing code
Daniel Vetter [Fri, 19 Feb 2010 10:51:58 +0000 (11:51 +0100)]
drm/i915: extract fence stealing code

The spaghetti logic in there tripped up my brain's code parser for a
few secs. Prevent this from happening again by extracting the fence
stealing code into a seperate functions. IMHO this slightly clears up
the code flow.

v2: Beautified according to ickle's comments.
v3: ickle forgot to flush his comment queue ... Now there's also a
we-are-paranoid BUG_ON in there.
v4: I've forgotten to switch on my brain when doing v3. Now the BUG_ON
actually checks something useful.
v5: Clean up a stale comment as noted by Eric Anholt.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: fixup active list locking in object_unbind
Daniel Vetter [Fri, 19 Feb 2010 10:51:57 +0000 (11:51 +0100)]
drm/i915: fixup active list locking in object_unbind

All other accesses take this spinlock, so do this here, too.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: reuse i915_gem_object_put_fence_reg for fence stealing code
Daniel Vetter [Fri, 19 Feb 2010 10:51:56 +0000 (11:51 +0100)]
drm/i915: reuse i915_gem_object_put_fence_reg for fence stealing code

This has a few functional changes against the old code:

* a few more unnecessary loads and stores to the drm_i915_fence_reg
  objects. Also an unnecessary store to the hw fence register.

* zaps any userspace mappings before doing other flushes. Only changes
  anything when userspace does racy stuff against itself.

* also flush GTT domain. This is a noop, but still try to keep the
  bookkeeping correct.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Add dependency on the intel agp module
Zhenyu Wang [Tue, 23 Feb 2010 06:05:24 +0000 (14:05 +0800)]
drm/i915: Add dependency on the intel agp module

See http://bugzilla.kernel.org/show_bug.cgi?id=15021

Make sure that the appropriate AGP module is loaded and probed before
trying to set up the DRM.  The DRM already depends on the AGP core,
but in this case we know the specific AGP driver we need too, and can
help users avoid the trap of loading the AGP driver after the DRM
driver.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: More s/IS_IRONLAKE/HAS_PCH_SPLIT for Sandybridge.
Eric Anholt [Fri, 29 Jan 2010 00:45:52 +0000 (16:45 -0800)]
drm/i915: More s/IS_IRONLAKE/HAS_PCH_SPLIT for Sandybridge.

I think this is pretty much correct.  Not really tested.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Correct the Sandybridge chipset info structs.
Eric Anholt [Fri, 29 Jan 2010 00:13:29 +0000 (16:13 -0800)]
drm/i915: Correct the Sandybridge chipset info structs.

Disables CXSR until it's done, and sets the mobile bit on mobile.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Disable the hangcheck reset on Sandybridge until we add support.
Eric Anholt [Fri, 8 Jan 2010 22:25:16 +0000 (14:25 -0800)]
drm/i915: Disable the hangcheck reset on Sandybridge until we add support.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Add a new mobile Sandybridge PCI ID.
Eric Anholt [Thu, 7 Jan 2010 23:08:18 +0000 (15:08 -0800)]
drm/i915: Add a new mobile Sandybridge PCI ID.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agoagp/intel: Add a new Sandybridge HB/IG PCI ID combo.
Eric Anholt [Fri, 8 Jan 2010 00:21:46 +0000 (16:21 -0800)]
agp/intel: Add a new Sandybridge HB/IG PCI ID combo.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915, agp/intel: Fix stolen memory size on Sandybridge
Zhenyu Wang [Tue, 10 Nov 2009 17:25:25 +0000 (01:25 +0800)]
drm/i915, agp/intel: Fix stolen memory size on Sandybridge

New memory control config reg at 0x50 should be used for stolen
memory size detection on Sandybridge.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Correct locking in the modesetting failure path, fixing a BUG_ON.
Eric Anholt [Mon, 9 Nov 2009 22:57:34 +0000 (14:57 -0800)]
drm/i915: Correct locking in the modesetting failure path, fixing a BUG_ON.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Disable the surface tile swizzling on Sandybridge.
Eric Anholt [Thu, 5 Nov 2009 23:30:35 +0000 (15:30 -0800)]
drm/i915: Disable the surface tile swizzling on Sandybridge.

I can't explain this, except that it makes my display correct.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agoagp/intel: Use a non-reserved value for the cache field of the PTEs.
Eric Anholt [Mon, 2 Nov 2009 23:33:05 +0000 (15:33 -0800)]
agp/intel: Use a non-reserved value for the cache field of the PTEs.

I don't know if this is what we'll want to be using long term, we'll see.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Fix sandybridge status page setup.
Eric Anholt [Mon, 2 Nov 2009 20:08:22 +0000 (12:08 -0800)]
drm/i915: Fix sandybridge status page setup.

The register's moved to the same location as the one for the BCS, it seems.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Set up fence registers on sandybridge.
Eric Anholt [Mon, 26 Oct 2009 23:44:17 +0000 (16:44 -0700)]
drm/i915: Set up fence registers on sandybridge.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agodrm/i915: Add initial bits for VGA modesetting bringup on Sandybridge.
Eric Anholt [Thu, 22 Oct 2009 23:11:14 +0000 (16:11 -0700)]
drm/i915: Add initial bits for VGA modesetting bringup on Sandybridge.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agoagp/intel: Add support for Sandybridge.
Eric Anholt [Thu, 22 Oct 2009 23:10:52 +0000 (16:10 -0700)]
agp/intel: Add support for Sandybridge.

Signed-off-by: Eric Anholt <eric@anholt.net>
14 years agoMerge remote branch 'korg/drm-radeon-testing' into drm-next-stage
Dave Airlie [Thu, 25 Feb 2010 03:44:04 +0000 (13:44 +1000)]
Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage

* korg/drm-radeon-testing: (62 commits)
  drm/radeon/kms: update new pll algo
  drm/radeon/kms: add support for square microtiles on r3xx-r5xx
  drm/radeon/kms: force pinning buffer into visible VRAM
  drm/radeon/kms/evergreen: fix typo in cursor code
  drm/radeon/kms: implement reading active PCIE lanes on R600+
  drm/radeon/kms: for downclocking non-mobility check PERFORMANCE state
  drm/radeon/kms: simplify storing current and requested PM mode
  drm/radeon: fixes for r6xx/r7xx gfx init
  drm/radeon/rv740: fix backend setup
  drm/radeon/kms: fix R3XX/R4XX memory controller initialization
  [rfc] drm/radeon/kms: pm debugging check for vbl.
  drm/radeon: Fix memory allocation failures in the preKMS command stream checking.
  drm: Add generic multipart buffer.
  drm/radeon/kms: simplify memory controller setup V2
  drm/radeon: Add asic hook for dma copy to r200 cards.
  drm/radeon/kms: Create asic structure for r300 pcie cards.
  drm/radeon/kms: remove unused r600_gart_clear_page
  drm/radeon/kms: remove HDP flushes from fence emit (v2)
  drm/radeon/kms: add LVDS pll quirk for Dell Studio 15
  drm/radeon/kms: simplify picking power state
  ...

Conflicts:
drivers/gpu/drm/radeon/atom.c
drivers/gpu/drm/radeon/atombios.h
drivers/gpu/drm/radeon/atombios_dp.c
drivers/gpu/drm/radeon/r600.c
drivers/gpu/drm/radeon/r600_audio.c
drivers/gpu/drm/radeon/r600_cp.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_connectors.c
drivers/gpu/drm/radeon/radeon_ring.c
drivers/gpu/drm/radeon/rv770.c

14 years agodrm/nouveau: use ALIGN instead of open coding it
Matt Turner [Thu, 25 Feb 2010 04:27:10 +0000 (23:27 -0500)]
drm/nouveau: use ALIGN instead of open coding it

CC: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: report unknown connector state if lid closed
Ben Skeggs [Thu, 25 Feb 2010 02:12:09 +0000 (12:12 +1000)]
drm/nouveau: report unknown connector state if lid closed

This is in preference to disconnected.  If there's no other outputs
connected this will cause LVDS to be programmed even with the lid
closed rather than having X fail to start because of no available
outputs.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: support version 0x20 displayport tables
Ben Skeggs [Thu, 25 Feb 2010 01:53:00 +0000 (11:53 +1000)]
drm/nouveau: support version 0x20 displayport tables

Not entirely identical to 0x21, the per-encoder table header lacks the
third init table pointer.  However, our current parsing of the table
should work just fine.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: Fix noaccel/nofbaccel option descriptions.
Marcin Kościelnicki [Thu, 25 Feb 2010 00:54:04 +0000 (00:54 +0000)]
drm/nouveau: Fix noaccel/nofbaccel option descriptions.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: Implement ctxprog/state generation.
Marcin Kościelnicki [Thu, 25 Feb 2010 00:54:02 +0000 (00:54 +0000)]
drm/nv50: Implement ctxprog/state generation.

This removes dependence on external firmware for NV50 generation cards.
If the generated ctxprogs don't work for you for some reason, please
report it.

Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: use dcb connector types throughout the driver
Ben Skeggs [Wed, 24 Feb 2010 04:01:40 +0000 (14:01 +1000)]
drm/nouveau: use dcb connector types throughout the driver

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: enable hpd on any connector we know the gpio line for
Ben Skeggs [Wed, 24 Feb 2010 03:45:57 +0000 (13:45 +1000)]
drm/nv50: enable hpd on any connector we know the gpio line for

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: use dcb connector table for creating drm connectors
Ben Skeggs [Wed, 24 Feb 2010 02:07:31 +0000 (12:07 +1000)]
drm/nouveau: use dcb connector table for creating drm connectors

This makes this code common to both the nv04 and nv50 paths.

For the moment, we keep the previous behaviour with HDMI/eDP connectors
and report them as DVI-D/DP instead.  This will be fixed once the rest
of the code has been fixed to deal with those types.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: construct a connector table for cards that lack a real one
Ben Skeggs [Wed, 24 Feb 2010 01:53:59 +0000 (11:53 +1000)]
drm/nouveau: construct a connector table for cards that lack a real one

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: check for known dcb connector types
Ben Skeggs [Wed, 24 Feb 2010 01:09:20 +0000 (11:09 +1000)]
drm/nouveau: check for known dcb connector types

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: parse dcb gpio/connector tables after encoders
Ben Skeggs [Wed, 24 Feb 2010 00:48:16 +0000 (10:48 +1000)]
drm/nouveau: parse dcb gpio/connector tables after encoders

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: reorganise bios header, add dcb connector type enums
Ben Skeggs [Wed, 24 Feb 2010 00:31:39 +0000 (10:31 +1000)]
drm/nouveau: reorganise bios header, add dcb connector type enums

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: merge nvbios and nouveau_bios_info
Ben Skeggs [Wed, 24 Feb 2010 00:03:05 +0000 (10:03 +1000)]
drm/nouveau: merge nvbios and nouveau_bios_info

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: merge parsed_dcb and bios_parsed_dcb into dcb_table
Ben Skeggs [Tue, 23 Feb 2010 23:56:18 +0000 (09:56 +1000)]
drm/nouveau: merge parsed_dcb and bios_parsed_dcb into dcb_table

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: rename parsed_dcb_gpio to dcb_gpio_table
Ben Skeggs [Tue, 23 Feb 2010 23:46:27 +0000 (09:46 +1000)]
drm/nouveau: rename parsed_dcb_gpio to dcb_gpio_table

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: allow retrieval of vbios image from debugfs
Ben Skeggs [Tue, 23 Feb 2010 01:39:02 +0000 (11:39 +1000)]
drm/nouveau: allow retrieval of vbios image from debugfs

It's very useful to be able to access this without additional tools for
debugging purposes.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: fix missing spin_unlock in failure path
Luca Barbieri [Sat, 20 Feb 2010 10:08:56 +0000 (11:08 +0100)]
drm/nouveau: fix missing spin_unlock in failure path

Found by sparse.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: fix i2ctable bounds checking
Marcin Slusarz [Mon, 15 Feb 2010 22:24:49 +0000 (23:24 +0100)]
drm/nouveau: fix i2ctable bounds checking

i2c_entries seems to be the number of i2c entries,
so with index equal to this number, we could read
invalid data from i2ctable. Fix it.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: fix nouveau_i2c_find bounds checking
Marcin Slusarz [Wed, 17 Feb 2010 18:04:01 +0000 (19:04 +0100)]
drm/nouveau: fix nouveau_i2c_find bounds checking

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: fix pramdac_table range checking
Marcin Slusarz [Wed, 17 Feb 2010 18:04:00 +0000 (19:04 +0100)]
drm/nouveau: fix pramdac_table range checking

get_tmds_index_reg reads some value from stack when mlv happens
to be equal to size of pramdac_table array. Fix it.

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: new gem pushbuf interface, bump to 0.0.16
Ben Skeggs [Fri, 12 Feb 2010 00:27:35 +0000 (10:27 +1000)]
drm/nouveau: new gem pushbuf interface, bump to 0.0.16

This commit breaks the userspace interface, and requires a new libdrm for
nouveau to operate again.

The multiple GEM_PUSHBUF ioctls that were present in 0.0.15 for
compatibility purposes are now gone, and replaced with the new ioctl which
allows for multiple push buffers to be submitted (necessary for hw index
buffers in the nv50 3d driver) and relocations to be applied on any buffer.

A number of other ioctls (CARD_INIT, GEM_PIN, GEM_UNPIN) that were needed
for userspace modesetting have also been removed.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
14 years agodrm/nv50: make pushbuf dma object cover entire vm
Ben Skeggs [Fri, 12 Feb 2010 01:11:54 +0000 (11:11 +1000)]
drm/nv50: make pushbuf dma object cover entire vm

This allows us to submit push buffers from any memtype to the hardware.
We'll need this ability for VRAM index buffers at some point.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: remove PUSHBUF_CAL macro
Ben Skeggs [Thu, 11 Feb 2010 23:05:42 +0000 (09:05 +1000)]
drm/nouveau: remove PUSHBUF_CAL macro

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nv50: switch to indirect push buffer controls
Ben Skeggs [Thu, 11 Feb 2010 06:37:26 +0000 (16:37 +1000)]
drm/nv50: switch to indirect push buffer controls

PFIFO on G80 and up has a new mode where the main ring buffer is simply a
ring of pointers to indirect buffers containing the actual command/data
packets.  In order to be able to implement index buffers in the 3D driver
we need to be able to submit data-only push buffers right after the cmd
packet header, which is only possible using the new command submission
method.

This commit doesn't make it possible to implement index buffers yet, some
userspace interface changes will be required, but it does allow for
testing/debugging of the hardware-side support in the meantime.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agodrm/nouveau: protect channel create/destroy and irq handler with a spinlock
Maarten Maathuis [Mon, 1 Feb 2010 19:58:27 +0000 (20:58 +0100)]
drm/nouveau: protect channel create/destroy and irq handler with a spinlock

The nv50 pgraph handler (for example) could reenable pgraph fifo access
and that would be bad when pgraph context is being unloaded (we need the
guarantee a ctxprog isn't running).

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 years agofb: for framebuffer handover don't exit the loop early.
Dave Airlie [Thu, 25 Feb 2010 04:05:09 +0000 (14:05 +1000)]
fb: for framebuffer handover don't exit the loop early.

An offb machine has been seen in the fields which adds two
offb nodes, so continue scanning the list after removing one.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoMerge remote branch 'anholt/drm-intel-next' into drm-next-stage
Dave Airlie [Thu, 25 Feb 2010 03:39:36 +0000 (13:39 +1000)]
Merge remote branch 'anholt/drm-intel-next' into drm-next-stage

* anholt/drm-intel-next:
  drm/i915: Record batch buffer following GPU error
  drm/i915: give up on 8xx lid status
  drm/i915: reduce some of the duplication of tiling checking
  drm/i915: blow away userspace mappings before fence change
  drm/i915: move a gtt flush to the correct place
  agp/intel: official names for Pineview and Ironlake
  drm/i915: overlay: drop superflous gpu flushes
  drm/i915: overlay: nuke readback to flush wc caches
  drm/i915: provide self-refresh status in debugfs
  drm/i915: provide FBC status in debugfs
  drm/i915: fix drps disable so unload & re-load works
  drm/i915: Fix OGLC performance regression on 945
  drm/i915: Deobfuscate the render p-state obfuscation
  drm/i915: add dynamic performance control support for Ironlake
  drm/i915: enable memory self refresh on 9xx
  drm/i915: Don't reserve compatibility fence regs in KMS mode.
  drm/i915: Keep MCHBAR always enabled
  drm/i915: Replace open-coded eviction in i915_gem_idle()

14 years agoMerge remote branch 'korg/drm-core-next' into drm-next-stage
Dave Airlie [Thu, 25 Feb 2010 03:39:29 +0000 (13:39 +1000)]
Merge remote branch 'korg/drm-core-next' into drm-next-stage

* korg/drm-core-next:
  drm/ttm: handle OOM in ttm_tt_swapout
  drm/radeon/kms/atom: fix shr/shl ops
  drm/kms: fix spelling of "CLOCK"
  drm/kms: fix fb_changed = true else statement
  drivers/gpu/drm/drm_fb_helper.c: don't use private implementation of atoi()
  drm: switch all GEM/KMS ioctls to unlocked ioctl status.
  Use drm_gem_object_[handle_]unreference_unlocked where possible
  drm: introduce drm_gem_object_[handle_]unreference_unlocked

14 years agodrm/ttm: handle OOM in ttm_tt_swapout
Maarten Maathuis [Sat, 20 Feb 2010 02:22:21 +0000 (03:22 +0100)]
drm/ttm: handle OOM in ttm_tt_swapout

- Without this change I get a general protection fault.
- Also use PTR_ERR where applicable.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Acked-by: Thomas Hellstrom <thellstrom@vmware.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms/atom: fix shr/shl ops
Alex Deucher [Wed, 24 Feb 2010 02:56:12 +0000 (21:56 -0500)]
drm/radeon/kms/atom: fix shr/shl ops

The whole attribute table is valid for
shr/shl ops.

Fixes fdo bug 26668

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: update new pll algo
Alex Deucher [Tue, 23 Feb 2010 08:24:38 +0000 (03:24 -0500)]
drm/radeon/kms: update new pll algo

- add support for pre-avivo chips
- add support for fixed post/ref dividers
- add support for non-fractional fb dividers

By default avivo chips use the new algo and
pre-avivo chips use the old algo. Use the "new_pll"
module option to toggle between them.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: add support for square microtiles on r3xx-r5xx
Marek Olšák [Sun, 14 Feb 2010 06:10:10 +0000 (07:10 +0100)]
drm/radeon/kms: add support for square microtiles on r3xx-r5xx

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: force pinning buffer into visible VRAM
Jerome Glisse [Fri, 19 Feb 2010 14:33:54 +0000 (14:33 +0000)]
drm/radeon/kms: force pinning buffer into visible VRAM

This patch properly set visible VRAM and enforce any pinned buffer
to be into visible VRAM. We might later add a flag to release this
constraint for some newer hw more clever than previous.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms/evergreen: fix typo in cursor code
Alex Deucher [Tue, 23 Feb 2010 18:12:43 +0000 (13:12 -0500)]
drm/radeon/kms/evergreen: fix typo in cursor code

cursor x/y are surface relative.

fixes fdo bug 26551

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agoLinux 2.6.33 v2.6.33
Linus Torvalds [Wed, 24 Feb 2010 18:52:17 +0000 (10:52 -0800)]
Linux 2.6.33

14 years agoMerge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
Linus Torvalds [Wed, 24 Feb 2010 18:51:21 +0000 (10:51 -0800)]
Merge branch 'urgent' of git://git./linux/kernel/git/kyle/parisc-2.6

* 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  parisc: Set PCI CLS early in boot.

14 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Wed, 24 Feb 2010 18:51:04 +0000 (10:51 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Fix broken sn2 build

14 years agoparisc: Set PCI CLS early in boot.
Carlos O'Donell [Mon, 22 Feb 2010 23:25:59 +0000 (23:25 +0000)]
parisc: Set PCI CLS early in boot.

Set the PCI CLS early in the boot process to prevent
device failures. In pcibios_set_master use the new
pci_cache_line_size instead of a hard-coded value.

Signed-off-by: Carlos O'Donell <carlos@codesourcery.com>
Reviewed-by: Grant Grundler <grundler@google.com>
Signed-off-by: Kyle McMartin <kyle@redhat.com>
14 years agoMerge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze
Linus Torvalds [Wed, 24 Feb 2010 15:43:02 +0000 (07:43 -0800)]
Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze

* 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Fix out_le32() macro
  microblaze: Fix cache loop function for cache range