#
bc6a6295 |
| 25-Feb-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: resume old pm late
Moving the pm resume up in the init order to fix dpm seems to have regressed somes cases with the old pm code. Move it back to late resume.
Signed-off-by: Alex Deuch
drm/radeon: resume old pm late
Moving the pm resume up in the init order to fix dpm seems to have regressed somes cases with the old pm code. Move it back to late resume.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
df0af440 |
| 03-Mar-2014 |
Christian König <christian.koenig@amd.com> |
drm/radeon: remove struct radeon_bo_list
Just move all fields into radeon_cs_reloc, removing unused/duplicated fields.
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex De
drm/radeon: remove struct radeon_bo_list
Just move all fields into radeon_cs_reloc, removing unused/duplicated fields.
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
2d2fe3f9 |
| 18-Feb-2014 |
Christian König <christian.koenig@amd.com> |
drm/radeon: drop radeon_ring_force_activity
The reason for the false positives was fixed quite some time ago and since most engines can still execute NOPs while being locked up it leads to false neg
drm/radeon: drop radeon_ring_force_activity
The reason for the false positives was fixed quite some time ago and since most engines can still execute NOPs while being locked up it leads to false negatives.
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
ff212f25 |
| 18-Feb-2014 |
Christian König <christian.koenig@amd.com> |
drm/radeon: drop drivers copy of the rptr
In all cases where it really matters we are using the read functions anyway.
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex De
drm/radeon: drop drivers copy of the rptr
In all cases where it really matters we are using the read functions anyway.
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
ea31bf69 |
| 09-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: remove generic rptr/wptr functions (v2)
Fill in asic family specific versions rather than using the generic version. This lets us handle asic specific differences more easily. In this
drm/radeon: remove generic rptr/wptr functions (v2)
Fill in asic family specific versions rather than using the generic version. This lets us handle asic specific differences more easily. In this case, we disable sw swapping of the rtpr writeback value on r6xx+ since the hw does it for us. Fixes bogus rptr readback on BE systems.
v2: remove missed cpu_to_le32(), add comments
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
6c7bccea |
| 18-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/pm: move pm handling into the asic specific code
We need more control over the ordering of dpm init with respect to the rest of the asic. Specifically, the SMC has to be initialized befo
drm/radeon/pm: move pm handling into the asic specific code
We need more control over the ordering of dpm init with respect to the rest of the asic. Specifically, the SMC has to be initialized before the rlc and cg/pg. The pm code currently initializes late in the driver, but we need it to happen much earlier so move pm handling into the asic specific callbacks.
This makes dpm more reliable and makes clockgating work properly on CIK parts and should help on SI parts as well.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
1654b817 |
| 12-Nov-2013 |
Christian König <christian.koenig@amd.com> |
drm/radeon: allow semaphore emission to fail
To workaround bugs and/or certain limits it's sometimes useful to fall back to waiting on fences.
Signed-off-by: Christian König <christian.koenig@amd.c
drm/radeon: allow semaphore emission to fail
To workaround bugs and/or certain limits it's sometimes useful to fall back to waiting on fences.
Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
show more ...
|
#
10e10d34 |
| 17-Oct-2013 |
Ville Syrjälä <ville.syrjala@linux.intel.com> |
drm/radeon: Return -ENOENT when a mode object can't be found
Let's be a bit more consistent with our error values.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave A
drm/radeon: Return -ENOENT when a mode object can't be found
Let's be a bit more consistent with our error values.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
show more ...
|
#
0eb3448a |
| 20-Sep-2013 |
Alex Ivanov <gnidorah@p0n4ik.tk> |
drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2)
Prevent NULL pointer dereference in case when radeon_ring_fini() did it's job.
Reading of r100_cp_ring_info and radeon_ring_gfx
drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2)
Prevent NULL pointer dereference in case when radeon_ring_fini() did it's job.
Reading of r100_cp_ring_info and radeon_ring_gfx debugfs entries will lead to a KP if ring buffer was deallocated, e.g. on failed ring test. Seen on PA-RISC machine having "radeon: ring test failed (scratch(0x8504)=0xCAFEDEAD)" issue.
v2: agd5f: add some parens around ring->ready check
Signed-off-by: Alex Ivanov <gnidorah@p0n4ik.tk> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
show more ...
|
#
0a5b7b0b |
| 03-Sep-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: add spinlocks for indirect register accesss
This adds spinlocks to protect access to other indirect register apertures. These indirect spaces are used pretty infrequently and we haven't
drm/radeon: add spinlocks for indirect register accesss
This adds spinlocks to protect access to other indirect register apertures. These indirect spaces are used pretty infrequently and we haven't had an reported problems, but better safe than sorry.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
2e1e6dad |
| 13-Aug-2013 |
Christian König <christian.koenig@amd.com> |
drm/radeon: remove special handling for the DMA ring
Now that we have callbacks for [rw]ptr handling we can remove the special handling for the DMA rings and use the callbacks instead.
Signed-off-b
drm/radeon: remove special handling for the DMA ring
Now that we have callbacks for [rw]ptr handling we can remove the special handling for the DMA rings and use the callbacks instead.
Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
b72a8925 |
| 10-Jul-2013 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm/radeon: s/drm_order/order_base_2/
Last driver and pretty obviously a major user of this little function.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Alex Deucher <alexand
drm/radeon: s/drm_order/order_base_2/
Last driver and pretty obviously a major user of this little function.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@gmail.com>
show more ...
|
#
0a168933 |
| 11-Jul-2013 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon: use radeon device for request firmware
Avoid creating temporary platform device that will lead to issue when several radeon gpu are in same computer. Instead directly use the radeon devi
drm/radeon: use radeon device for request firmware
Avoid creating temporary platform device that will lead to issue when several radeon gpu are in same computer. Instead directly use the radeon device for requesting firmware.
Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
67d5ced5 |
| 05-Jul-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix surface setup on r1xx
r1xx asics have a slightly different surface register setup compared to newer asics. There is no specific enable bit for macro tiling, rather, to disable macro
drm/radeon: fix surface setup on r1xx
r1xx asics have a slightly different surface register setup compared to newer asics. There is no specific enable bit for macro tiling, rather, to disable macro tiling, you need to set the surface pitch to 0.
With this fixed, the special rn50 handling can go.
Noticed-by: Mark Kettenis <mark.kettenis@xs4all.nl> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
e49f3959 |
| 02-Jun-2013 |
Adis Hamzić <adis@hamzadis.com> |
radeon: Fix system hang issue when using KMS with older cards
The current radeon driver initialization routines, when using KMS, are written so that the IRQ installation routine is called before ini
radeon: Fix system hang issue when using KMS with older cards
The current radeon driver initialization routines, when using KMS, are written so that the IRQ installation routine is called before initializing the WB buffer and the CP rings. With some ASICs, though, the IRQ routine tries to access the GFX_INDEX ring causing a call to RREG32 with the value of -1 in radeon_fence_read. This, in turn causes the system to completely hang with some cards, requiring a hard reset.
A call stack that can cause such a hang looks like this (using rv515 ASIC for the example here): * rv515_init (rv515.c) * radeon_irq_kms_init (radeon_irq_kms.c) * drm_irq_install (drm_irq.c) * radeon_driver_irq_preinstall_kms (radeon_irq_kms.c) * rs600_irq_process (rs600.c) * radeon_fence_process - due to SW interrupt (radeon_fence.c) * radeon_fence_read (radeon_fence.c) * hang due to RREG32(-1)
The patch moves the IRQ installation to the card startup routine, after the ring has been initialized, but before the IRQ has been set. This fixes the issue, but requires a check to see if the IRQ is already installed, as is the case in the system resume codepath. I have tested the patch on three machines using the rv515, the rv770 and the evergreen ASIC. They worked without issues.
This seems to be a known issue and has been reported on several bug tracking sites by various distributions (see links below). Most of reports recommend booting the system with KMS disabled and then enabling KMS by reloading the radeon module. For some reason, this was indeed a usable workaround, however, UMS is now deprecated and disabled by default.
Bug reports: https://bugzilla.redhat.com/show_bug.cgi?id=845745 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/561789 https://bbs.archlinux.org/viewtopic.php?id=156964
Signed-off-by: Adis Hamzić <adis@hamzadis.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
show more ...
|
#
2b48b968 |
| 09-Apr-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: update wait_for_vblank for r1xx-r4xx
Properly wait for the next vblank region. The previous code didn't always wait long enough depending on the timing.
Signed-off-by: Alex Deucher <al
drm/radeon: update wait_for_vblank for r1xx-r4xx
Properly wait for the next vblank region. The previous code didn't always wait long enough depending on the timing.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
show more ...
|
#
4e872ae2 |
| 02-Jan-2013 |
Ilija Hadzic <ihadzic@research.bell-labs.com> |
drm/radeon: consolidate redundant macros and constants
After refactoring the _cs logic, we ended up with many macros and constants that #define the same thing. Clean'em up.
Signed-off-by: Ilija Had
drm/radeon: consolidate redundant macros and constants
After refactoring the _cs logic, we ended up with many macros and constants that #define the same thing. Clean'em up.
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
012e976d |
| 02-Jan-2013 |
Ilija Hadzic <ihadzic@research.bell-labs.com> |
drm/radeon: use common next_reloc function
This patch eliminates ASIC-specific ***_cs_packet_next_reloc functions and hooks up the new common function.
Signed-off-by: Ilija Hadzic <ihadzic@research
drm/radeon: use common next_reloc function
This patch eliminates ASIC-specific ***_cs_packet_next_reloc functions and hooks up the new common function.
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
c3ad63af |
| 02-Jan-2013 |
Ilija Hadzic <ihadzic@research.bell-labs.com> |
drm/radeon: rename r100_cs_dump_packet to radeon_cs_dump_packet
This function is not limited to r100, but it can dump a (raw) packet for any ASIC. Rename it accordingly and move its declaration to r
drm/radeon: rename r100_cs_dump_packet to radeon_cs_dump_packet
This function is not limited to r100, but it can dump a (raw) packet for any ASIC. Rename it accordingly and move its declaration to radeon.h
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
c38f34b5 |
| 02-Jan-2013 |
Ilija Hadzic <ihadzic@research.bell-labs.com> |
drm/radeon: use common cs packet parse function
We now have a common radeon_cs_packet_parse function that is good for all ASICs. Hook it up and eliminate ASIC-specific versions.
Signed-off-by: Ilij
drm/radeon: use common cs packet parse function
We now have a common radeon_cs_packet_parse function that is good for all ASICs. Hook it up and eliminate ASIC-specific versions.
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
66b3543e |
| 02-Jan-2013 |
Ilija Hadzic <ihadzic@research.bell-labs.com> |
drm/radeon: fix formatting
Preparatory patch: patches to follow will touch a piece of code that had broken indentication, so fix it before touching it.
Signed-off-by: Ilija Hadzic <ihadzic@research
drm/radeon: fix formatting
Preparatory patch: patches to follow will touch a piece of code that had broken indentication, so fix it before touching it.
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
2c385151 |
| 02-Dec-2012 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm/radeon: make indirect register access concurrency-safe
With the new per-crtc locking mutliple set-cursor calls could happen in parallel. Out of sheer paranoia I've opted for an irqsave spinlock.
drm/radeon: make indirect register access concurrency-safe
With the new per-crtc locking mutliple set-cursor calls could happen in parallel. Out of sheer paranoia I've opted for an irqsave spinlock. But if there's indeed an access from interrupt contexts to these regs it's already broken with the old code, so this can likely just be reduced to a normal spinlock. Otoh the pageflip completion happens from the vblank irq handler ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
2ef9bdfe |
| 02-Dec-2012 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm/radeon: add W|RREG32_IDX for MM_INDEX|DATA based mmio accesss
Just refactoring to make the next patche simpler. Now all indirect register access in the new modesetting driver should go through t
drm/radeon: add W|RREG32_IDX for MM_INDEX|DATA based mmio accesss
Just refactoring to make the next patche simpler. Now all indirect register access in the new modesetting driver should go through the r100_mm_(w|r)reg fucntions.
RADEON_READ_MM from the old driver seems to be totally unused, so just kill it.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
show more ...
|
#
760285e7 |
| 02-Oct-2012 |
David Howells <dhowells@redhat.com> |
UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/
Convert #include "..." to #include <path/...> in drivers/gpu/.
Signed-off-by: David Howells <dhowells@redhat.com> Acke
UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/
Convert #include "..." to #include <path/...> in drivers/gpu/.
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Dave Airlie <airlied@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com>
show more ...
|
#
4126d5d6 |
| 02-Oct-2012 |
David Howells <dhowells@redhat.com> |
UAPI: (Scripted) Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
Remove redundant #inclusions of core DRM UAPI header
UAPI: (Scripted) Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
Remove redundant #inclusions of core DRM UAPI headers (drm.h, drm_mode.h and drm_sarea.h). They are now #included via drmP.h and drm_crtc.h via a preceding patch.
Without this patch and the patch to make include the UAPI headers from the core headers, after the UAPI split, the DRM C sources cannot find these UAPI headers because the DRM code relies on specific -I flags to make #include "..." work on headers in include/drm/ - but that does not work after the UAPI split without adding more -I flags.
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Dave Airlie <airlied@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com>
show more ...
|