GitHub/LineageOS/G12/android_kernel_amlogic_linux-4.9.git
14 years agodrm/radeon/kms: prepare for more reclocking operations
Rafał Miłecki [Tue, 2 Mar 2010 21:06:52 +0000 (22:06 +0100)]
drm/radeon/kms: prepare for more reclocking operations

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: switch to condition waiting for reclocking
Rafał Miłecki [Tue, 2 Mar 2010 21:06:51 +0000 (22:06 +0100)]
drm/radeon/kms: switch to condition waiting for reclocking

We tried to implement interruptible waiting with timeout (it was broken
anyway) which was not a good idea as explained by Andrew. It's possible
to avoid using additional variable but actually it inroduces using more
complex in-kernel tools. So simply add one variable for condition.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/r600: add missing license and comments to r600_blit_shaders.c
Alex Deucher [Sat, 6 Mar 2010 00:22:24 +0000 (19:22 -0500)]
drm/radeon/r600: add missing license and comments to r600_blit_shaders.c

R6xx+ cards need to use the 3D engine to blit data which requires
quite a bit of hw state setup.  Rather than pull the whole 3D driver
(which normally generates the 3D state) into the DRM, we opt to use
statically generated state tables.  The regsiter state and shaders
were hand generated to support blitting functionality.  See the 3D
driver or documentation for descriptions of the registers and
shader instructions.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: improve coding style a little
Rafał Miłecki [Sat, 6 Mar 2010 13:03:38 +0000 (13:03 +0000)]
drm/radeon/kms: improve coding style a little

We still have many magic numbers in HDMI/audio to define

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: remove dead audio/HDMI code
Rafał Miłecki [Sat, 6 Mar 2010 13:03:37 +0000 (13:03 +0000)]
drm/radeon/kms: remove dead audio/HDMI code

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: enable audio engine on DCE32
Rafał Miłecki [Sat, 6 Mar 2010 13:03:36 +0000 (13:03 +0000)]
drm/radeon/kms: enable audio engine on DCE32

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: add HDMI code for pre-DCE3 R6xx GPUs
Rafał Miłecki [Sat, 6 Mar 2010 13:03:35 +0000 (13:03 +0000)]
drm/radeon/kms: add HDMI code for pre-DCE3 R6xx GPUs

Older GPUs are little different, HDMI blocks are not hard-wired, but routable.
We should just find some free HDMI block and route it to choosen encoder. In
case of RS6x0 there is only one HDMI block, we don't enable HDMI on RS6x00 yet
however.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: clean assigning HDMI blocks to encoders
Rafał Miłecki [Mon, 8 Mar 2010 22:14:01 +0000 (22:14 +0000)]
drm/radeon/kms: clean assigning HDMI blocks to encoders

We almost always used first HDMI block for first encoder and second for sencod.
Exception was KLDSCP_LVTMA. Analyzing code picking DIG encoder shows the same
behaviour. It shows HDMI block are related to DIGs, which relation we now use.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: clean HDMI definitions
Rafał Miłecki [Sat, 6 Mar 2010 13:03:33 +0000 (13:03 +0000)]
drm/radeon/kms: clean HDMI definitions

We already know same offsets are used for different encoders/transmitters, so
just numeric them instead naming incorrectly. Additionaly we found additional
registers needed for RV770+

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms/rs4xx: make sure crtcs are enabled when setting timing
Alex Deucher [Thu, 11 Mar 2010 15:38:07 +0000 (10:38 -0500)]
drm/radeon/kms/rs4xx: make sure crtcs are enabled when setting timing

based on ddx patch from Matthias Hopf.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms/r1xx: enable hw i2c
Alex Deucher [Fri, 12 Mar 2010 18:30:49 +0000 (13:30 -0500)]
drm/radeon/kms/r1xx: enable hw i2c

fixing the i2c prescale in the last patch
gets it working on r1xx.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: fix i2c prescale calc on older radeons
Alex Deucher [Fri, 12 Mar 2010 17:55:34 +0000 (12:55 -0500)]
drm/radeon/kms: fix i2c prescale calc on older radeons

Should fix fdo bug 26430

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: fix for hw i2c
Alex Deucher [Thu, 11 Mar 2010 18:28:14 +0000 (13:28 -0500)]
drm/radeon/kms: fix for hw i2c

use the i2c pads to drive SDA

Possible fix for fdo bug 26430

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: fix pal tv-out support on legacy IGP chips
Alex Deucher [Wed, 10 Mar 2010 23:33:03 +0000 (18:33 -0500)]
drm/radeon/kms: fix pal tv-out support on legacy IGP chips

Based on ddx patch by Andrzej Hajda.

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: further spread spectrum fixes
Alex Deucher [Mon, 8 Mar 2010 22:10:41 +0000 (17:10 -0500)]
drm/radeon/kms: further spread spectrum fixes

Adjust modeset ordering to fix spread spectrum.
The spread spectrum command table relies on the
crtc routing to already be set in order to work
properly on some asics.

Should fix fdo bug 25741.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms: use lcd pll limits when available
Alex Deucher [Mon, 8 Mar 2010 17:55:16 +0000 (12:55 -0500)]
drm/radeon/kms: use lcd pll limits when available

The bios has alternate pll output limits for LCD panels.
If available, use these for pll divider calculations.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon/kms/atom: spread spectrum fix
Alex Deucher [Sat, 6 Mar 2010 15:57:30 +0000 (10:57 -0500)]
drm/radeon/kms/atom: spread spectrum fix

The atom spread spectrum table does not always
disable ss.  Explicitly disable it and then use
the atom table to enable later if needed (currently
only used for LVDS).

Fixes display issues on some systems.

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: catch atombios infinite loop and break out of it
Jerome Glisse [Tue, 2 Mar 2010 19:37:52 +0000 (20:37 +0100)]
drm/radeon/kms: catch atombios infinite loop and break out of it

In somecase the atombios code might lead to infinite loop because
the GPU is in broken state, this patch track the jump history and
will abort atombios execution if we are stuck executing the same
jump for more than 1sec. Note that otherwise in some case we might
enter an infinite loop in the kernel context which is bad.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agodrm/radeon: add new RS880 pci id
Alex Deucher [Wed, 3 Mar 2010 18:39:13 +0000 (13:39 -0500)]
drm/radeon: add new RS880 pci id

This should go to 2.6.33 stable as well.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@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
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>