04 Aug, 2010
1 commit
-
I wrote this for the prime sharing work, but I also noticed other external
non-upstream drivers from a large company carrying a similiar patch, so I
may as well ship it in master.Signed-off-by: Dave Airlie
02 Aug, 2010
39 commits
-
HPD is digital only.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
If we were not able to map the io bar in device init, don't attempt
to unmap it in device fini. All radeons should have a io bar, so
I doubt this would ever trigger, but just to be on the safe side...Pointed out by: Alberto Milone
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
This interface allows userspace to request hyperz support, it probably
needs more locking, and really reporting that you can have hyperz is racy
since someone else might get it before you do.v2: modify so we pass 0 valued packets to let DDX/r300c keep working.
also fixed incorrect 0x4f1c reference.v3: fixup zb_bw_cntl so older drivers keep working
v4: add locking, fixup SC_HYPERZ_EN - patch stream to disable hiz
Signed-off-by: Dave Airlie
-
This migrates a bunch of DRM_DEBUG->DRM_DEBUG_KMS so we can get more modesetting related info without all the other ioctl handling easily.
Also the PM code moves to DRM_DEBUG_DRIVER mostly.
Signed-off-by: Dave Airlie
-
* 'nouveau/for-airlied' of ../drm-nouveau-next: (77 commits)
drm/nouveau: set TASK_(UN)INTERRUPTIBLE before schedule_timeout()
drm/nv50: fix some not-error error messages
drm/nouveau: introduce gpio engine
drm/nv50: correct wait condition for instmem flush
drm/nouveau: Fix TV-out detection on unposted cards lacking a usable DCB table.
drm/nouveau: Get rid of the remaining VGA CRTC locking.
drm/nouveau: Move display init to a new nouveau_engine.
drm/nouveau: Put back the old 2-messages I2C slave test.
drm/nouveau: Reset AGP before running the init scripts.
drm/nv30: Init the PFB+0x3xx memory timing regs.
drm/nouveau: disable hotplug detect around DP link training
drm/nv50: add function to control GPIO IRQ reporting
drm/nouveau: add nv_mask register accessor
drm/nouveau: fix build without CONFIG_ACPI
drm/nouveau: Reset CRTC owner to 0 before BIOS init.
drm/nouveau: No need to lock/unlock the VGA CRTC regs all the time.
drm/nouveau: Remove useless CRTC_OWNER logging.
drm/nouveau: Add some generic I2C gadget detection code.
drm/i2c/ch7006: Don't assume that the specified config points to static memory.
drm/nv04-nv3x: Implement init-compute-mem.
...Conflicts:
drivers/gpu/drm/nouveau/nouveau_bios.c -
* 'drm-radeon-next' of ../drm-radeon-next: (333 commits)
drm/radeon/kms: trivial code style fixes for audio
drm/radeon: remove viewport transform from r6xx/r7xx blit emit
drm/radeon: group r6xx/r7xx newly sequential blit state
drm/radeon: reorder r6xx/r7xx blit state emit to make more regs sequential
drm/radeon: r6xx/r7xx move vport clipping to a single packet
drm/radeon: group r6xx/r7xx sequential blit state
drm/radeon: remove duplicate state emit in r6xx/r7xx blit
drm/radeon: add comments to r6xx/r7xx blit state
drm/radeon/kms/r7xx: add workaround for hw issue with HDP flush
drm/radeon/kms: remove rs4xx gart limit
drm: radeon: fix sign bug
drm/radeon/kms: check/restore sanity before doing anything else with GPU.
drm/radeon: fall back to GTT if bo creation/validation in VRAM fails.
drm/radeon/kms: add ioport register access
drm/radeon/kms: enable HDMI audio on RS600/RS690/RS740
drm/radeon/kms: track audio engine state, do not use not setup timer
drm/radeon/kms/r6xx+: add query for tile config (v2)
drm/radeon/kms: fix CS alignment checking for tiling (v2)
drm/radeon/kms: add tiling support to the cs checker for r6xx/r7xx
drm/radeon/kms: Add crtc tiling setup support for evergreen
... -
sil164 transmitters are used for DVI outputs on Intel/nvidia and ATI setups.
So far only nouveau can use this driver.
Signed-off-by: Francisco Jerez
Tested-by: Patrice Mandin
Signed-off-by: Dave Airlie -
Fixed brace and spacing coding style issues.
Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
Fixed brace and spacing coding style issues.
Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
Fixed brace, macro and spacing coding style issues.
Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
Fixed brace, macro and spacing coding style issues.
Simplified
-if (ret) return ret;
-return 0;
+return ret;Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
Signed-off-by: Rafał Miłecki
Signed-off-by: Dave Airlie -
Fixed brace and spacing coding style issues.
Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
Fixed brace, macro and spacing coding style issues, and a C99 comment.
Signed-off-by: Nicolas Kaiser
Signed-off-by: Dave Airlie -
The device name is tightly coupled and created at the same time as the
master->unique address, so we need to free it with the master. Currently
we overwrite it each time we create a new master:unreferenced object 0xe32c54b0 (size 32):
comm "Xorg", pid 1455, jiffies 4294721798 (age 3196.879s)
hex dump (first 32 bytes):
69 39 31 35 40 70 63 69 3a 30 30 30 30 3a 30 30 i915@pci:0000:00
3a 30 32 2e 30 00 6b 6b 6b 6b 6b 6b 6b 6b 6b a5 :02.0.kkkkkkkkk.
backtrace:
[] create_object+0x124/0x1f1
[] kmemleak_alloc+0x4c/0x90
[] __kmalloc+0x155/0x175
[] drm_setversion+0x11d/0x1b1 [drm]
[] drm_ioctl+0x29a/0x356 [drm]
[] vfs_ioctl+0x33/0x91
[] do_vfs_ioctl+0x46b/0x496
[] sys_ioctl+0x46/0x66
[] sysenter_do_call+0x12/0x38
[] 0xffffffffSigned-off-by: Chris Wilson
Signed-off-by: Dave Airlie -
/* A typical clean-up sequence for objects stored in an idr tree, will
* use idr_for_each() to free all objects, if necessary, then
* idr_remove_all() to remove all ids, and idr_destroy() to free
* up the cached idr_layers.
*/We were missing the vital idr_rmove_all() step and so were leaking
the used layers for every dri client:unreferenced object 0xf32133c0 (size 148):
comm "plymouthd", pid 131, jiffies 4294678490 (age 2308.030s)
hex dump (first 32 bytes):
04 00 00 00 00 00 00 00 00 00 00 00 00 40 19 f3 .............@..
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[] create_object+0x124/0x1f1
[] kmemleak_alloc+0x4c/0x90
[] kmem_cache_alloc+0xee/0x13c
[] idr_pre_get+0x24/0x61
[] drm_gem_handle_create+0x27/0x7f [drm]
[] i915_gem_create_ioctl+0x4f/0x71 [i915]
[] drm_ioctl+0x272/0x356 [drm]
[] vfs_ioctl+0x33/0x91
[] do_vfs_ioctl+0x46b/0x496
[] sys_ioctl+0x46/0x66
[] sysenter_do_call+0x12/0x38
[] 0xffffffffFixes https://bugzilla.kernel.org/show_bug.cgi?id=15803
Signed-off-by: Chris Wilson
Signed-off-by: Dave Airlie -
set_current_state() is called only once before the first iteration.
After return from schedule_timeout() current state is TASK_RUNNING. If
we are going to wait again, set_current_state() must be called.Signed-off-by: Kulikov Vasiliy
Signed-off-by: Francisco Jerez
Signed-off-by: Ben Skeggs -
Trivial fix to set y1 = y2 = 0.
Signed-off-by: Chris Wilson
Cc: Jakob Bornecrantz
Signed-off-by: Dave Airlie -
We aren't using it, so no need. Save additional dwords.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
group state that is emitted sequentially into fewer packets.
This saves a number of dwords.Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Saves lots of dwords in blit emit
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
group state that is emitted sequentially into fewer packets.
This saves a number of dwords.Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Use of HDP_*_COHERENCY_FLUSH_CNTL can cause a hang in certain
situations. Add workaround.Signed-off-by: Alex Deucher
Cc: stable@kernel.org
Signed-off-by: Dave Airlie -
We used to limit the rs4xx gart aperture to 32 MB, but I suspect
that was due to not meeting the alignment requirements of the
aperture. This patch should only be applied after:
"drm/radeon/kms: fix gtt MC base alignment on rs4xx/rs690/rs740 asics"
has been applied.This patch should probably soak for a bit in d-r-t.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Need this to avoid conflicts with future radeon fixes
-
The "error" variable is unsigned so it's never less than zero. I
changed it to check if (freq < current_freq) directly."best_error" is also unsigned so "best_error - 100" could be a large
number instead of a negative. Since "error" is unsigned it is never
less than a negative and so the cases where "best_error" is less than or
equal to 100 are false.Signed-off-by: Dan Carpenter
Reviewed-by: Alex Deucher
Signed-off-by: Dave Airlie -
On systems using kexec, the new kernel is booted straight from the old kernel, without any warning to the graphics driver. So the GPU is basically left as-is in a running state, however the CPU side is completly reset.
Without stating the saneness of anyone using kexec on live systems, we should at least try not to crash the GPU. This patch resets 3 registers to 0 that could cause bad things to happen to the running system.
This allows kexec to work on a Power6/RN50 system.
Signed-off-by: Dave Airlie
-
This fixes a problem where on low VRAM cards we'd run out of space for validation.
[airlied: Tested on my M7, Thinkpad T42, compiz works with no problems.]
Signed-off-by: Michel Dänzer
Cc: stable@kernel.org
Signed-off-by: Dave Airlie -
This is required for the NB_MISC regs on rs780/rs880 which
means HDMI/DVI/DP ports using PCIEPHY won't work without
it. It might also help with s/r (asic init) issues on other
atombios cards.Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=28774
and similar issues reported by Alberto Milone.[airlied: Squash io fix patch]
Signed-off-by: Alex Deucher
Tested-by: Rafał Miłecki
Signed-off-by: Dave Airlie -
We will need method of selecting encoder that should receive HDMI block. For
now we assign HDMI block to first enabled encoder. Hopefully there are not many
RS6x0 chips with two digital encoders.[airlied: add RS740 checks as per Alex suggestion.]
Signed-off-by: Rafał Miłecki
Signed-off-by: Dave Airlie -
This is needed to enable audio support on devices using polling. In case user
decides to disable audio (module parameter) we still will try to use timer in
r600_audio_enable_polling. This would lead to BUG in kernel/timer.c.Signed-off-by: Rafał Miłecki
Signed-off-by: Dave Airlie -
Userspace needs this information to access tiled
buffers via the CPU.v2: rebased on evergreen accel changes
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Covers depth, cb, and textures. Hopefully I got this right.
v2: - fix bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=28327
https://bugs.freedesktop.org/show_bug.cgi?id=28381
- use ALIGNED(), IS_ALIGNED() macrosSigned-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Check for relocs for DB_DEPTH_INFO, CB_COLOR*_INFO, and texture
resources.Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Needed for scanning out of a tiled buffer.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie -
Needed for scanning out of a tiled buffer.
Signed-off-by: Alex Deucher
Signed-off-by: Dave Airlie