8229c885fe361e521ac64de36b16011e54a30de0 |
|
15-Mar-2012 |
Dave Airlie <airlied@redhat.com> |
drm: Merge tag 'v3.3-rc7' into drm-core-next Merge the fixes so far into core-next, needed to test intel driver. Conflicts: drivers/gpu/drm/i915/intel_ringbuffer.c
|
f712812e1ba7f17a270f285c3e7e70c65186a8b4 |
|
23-Feb-2012 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/kms: make ring_start, ring_test, and ib_test per ring Each ring type may need a different variant. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
89e5181f3f79fbe46dbf811f9bc470f524704450 |
|
23-Feb-2012 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/kms: add a radeon asic callback for mc idle Required for future functionality. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
6b7746e8768e1c550b320d5af761f73e5aa37f76 |
|
20-Feb-2012 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: properly set accel working flag and bailout when false If accel is not working many subsystem such as the ib pool might not be initialized properly that can lead to segfault inside kernel when cs ioctl is call with non working acceleration. To avoid this make sure the accel working flag is false when an error in GPU startup happen and return EBUSY from cs ioctl if accel is not working. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
b15ba51207e54245409d6f46e20dab36f906eed1 |
|
15-Nov-2011 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon: introduce a sub allocator and convert ib pool to it v4 Somewhat specializaed sub-allocator designed to perform sub-allocation for command buffer not only for current cs ioctl but for future command submission ioctl as well. Patch also convert current ib pool to use the sub allocator. Idea is that ib poll buffer can be share with other command buffer submission not having 64K granularity. v2 Harmonize pool handling and add suspend/resume callback to pin/unpin sa bo (tested on rv280, rv370, r420, rv515, rv610, rv710, redwood, cayman, rs480, rs690, rs880) v3 Simplify allocator v4 Fix radeon_ib_get error path to properly free fence Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
30eb77f4e6ba20f797af4ff79807fae7cb67429e |
|
20-Nov-2011 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon: precompute fence cpu/gpu addr once v3 Add a start fence driver helper function which will be call once for each ring and will compute cpu/gpu addr for fence depending on wether to use wb buffer or scratch reg. This patch replace initialize fence driver separately which was broken in regard of GPU lockup. The fence list for created, emited, signaled must be initialize once and only from the asic init callback not from the startup call back which is call from the gpu reset. v2: With this in place we no longer need to know the number of rings in fence_driver_init, also writing to the scratch reg before knowing its offset is a bad idea. v3: rebase on top of change to previous patch in the serie Signed-off-by: Christian König <deathsimple@vodafone.de> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
7465280c076d6440e5908c158c83b542dc063a30 |
|
25-Aug-2011 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/kms: add support for multiple fence queues v2 For supporting multiple CP ring buffers, async DMA engines and UVD. We still need a way to synchronize between engines. v2 initialize unused fence driver ring to avoid issue in suspend/unload Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
e16b396ce314b2bcdfe6c173fe075bf8e3432368 |
|
18-Mar-2011 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits) doc: CONFIG_UNEVICTABLE_LRU doesn't exist anymore Update cpuset info & webiste for cgroups dcdbas: force SMI to happen when expected arch/arm/Kconfig: remove one to many l's in the word. asm-generic/user.h: Fix spelling in comment drm: fix printk typo 'sracth' Remove one to many n's in a word Documentation/filesystems/romfs.txt: fixing link to genromfs drivers:scsi Change printk typo initate -> initiate serial, pch uart: Remove duplicate inclusion of linux/pci.h header fs/eventpoll.c: fix spelling mm: Fix out-of-date comments which refers non-existent functions drm: Fix printk typo 'failled' coh901318.c: Change initate to initiate. mbox-db5500.c Change initate to initiate. edac: correct i82975x error-info reported edac: correct i82975x mci initialisation edac: correct commented info fs: update comments to point correct document target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c ... Trivial conflict in fs/eventpoll.c (spelling vs addition)
|
5359533801e3dd3abca5b7d3d985b0b33fd9fe8b |
|
14-Mar-2011 |
Dave Airlie <airlied@redhat.com> |
drm/radeon: fix problem with changing active VRAM size. (v2) So we used to use lpfn directly to restrict VRAM when we couldn't access the unmappable area, however this was removed in 93225b0d7bc030f4a93165347a65893685822d70 as it also restricted the gtt placements. However it was only later noticed that this broke on some hw. This removes the active_vram_size, and just explicitly sets it when it changes, TTM/drm_mm will always use the real_vram_size, and the active vram size will change the TTM size used for lpfn setting. We should re-work the fpfn/lpfn to per-placement at some point I suspect, but that is too late for this kernel. Hopefully this addresses: https://bugs.freedesktop.org/show_bug.cgi?id=35254 v2: fix reported useful VRAM size to userspace to be correct. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
ec4f2ac471e25d3e0cea05abb8da34c05a0868f9 |
|
28-Jan-2011 |
Paul Bolle <pebolle@tiscali.nl> |
drm: Fix printk typo 'failled' Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
/drivers/gpu/drm/radeon/rs690.c
|
265aa6c8d8822c9074a2174e8c9f31a37fa02e50 |
|
14-Feb-2011 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: fix a few more atombios endian issues Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
b7ae5056c94a8191c1fd0b5697707377516c0c5d |
|
19-Oct-2010 |
Dave Airlie <airlied@redhat.com> |
Merge branch 'drm-fixes' of /home/airlied/kernel/linux-2.6 into drm-core-next Conflicts: drivers/gpu/drm/i915/intel_fb.c drivers/gpu/drm/radeon/r600_blit_kms.c drivers/gpu/drm/ttm/ttm_bo.c
|
c919b371cb734f42b1130e706ecee262f8d9261d |
|
10-Aug-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: avoid corner case issue with unmappable vram V2 We should not allocate any object into unmappable vram if we have no means to access them which on all GPU means having the CP running and on newer GPU having the blit utility working. This patch limit the vram allocation to visible vram until we have acceleration up and running. Note that it's more than unlikely that we run into any issue related to that as when acceleration is not woring userspace should allocate any object in vram beside front buffer which should fit in visible vram. V2 use real_vram_size as mc_vram_size could be bigger than the actual amount of vram [airlied: fixup r700_cp_stop case] Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
724c80e1d630296d1324859e964d80d35007d83c |
|
28-Aug-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: enable writeback (v2) When writeback is enabled, the GPU shadows writes to certain registers into a buffer in memory. The driver can then read the values from the shadow rather than reading back from the register across the bus. Writeback can be disabled by setting the no_wb module param to 1. On r6xx/r7xx/evergreen, the following registers are shadowed: - CP scratch registers - CP read pointer - IH write pointer On r1xx-rr5xx, the following registers are shadowed: - CP scratch registers - CP read pointer v2: - Combine wb patches for r6xx-evergreen and r1xx-r5xx - Writeback is disabled on AGP boards since it tends to be unreliable on AGP using the gart. - Check radeon_wb_init return values properly. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
4c70b2eae371ebe83019ac47de6088b78124ab36 |
|
03-Aug-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms/igp: sideport is AMD only Intel variants don't support it. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
e06b14ee91a2ddefc9a67443a6cd8ee0fa800115 |
|
02-Aug-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: handle the case of no active displays properly in the bandwidth code Logic was: if (mode0 && mode1) else if (mode0) else Should be: if (mode0 && mode1) else if (mode0) else if (mode1) Otherwise we may end up calculating the priority regs with unitialized values. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=16492 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
d656ae53f64cb0f01dac8a02c4d31453d64ef97c |
|
02-Aug-2010 |
Dave Airlie <airlied@redhat.com> |
Merge tag 'v2.6.35-rc6' into drm-radeon-next Need this to avoid conflicts with future radeon fixes
|
4c712e6c7ef19e7e8e1f38b27bb65290def39b40 |
|
14-Jul-2010 |
Dave Airlie <airlied@redhat.com> |
drm/radeon/kms: check/restore sanity before doing anything else with GPU. 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 <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
fe50ac78a6ec20db267b32e27a1d191128eaaa46 |
|
19-Jun-2010 |
Rafał Miłecki <zajec5@gmail.com> |
drm/radeon/kms: enable HDMI audio on RS600/RS690/RS740 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 <zajec5@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
8d369bb196f1f9111cb7ab839d4f420378fa7b30 |
|
15-Jul-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: fix gtt MC base alignment on rs4xx/rs690/rs740 asics The asics in question have the following requirements with regard to their gart setups: 1. The GART aperture size has to be in the form of 2^X bytes, where X is from 25 to 31 2. The GART aperture MC base has to be aligned to a boundary equal to the size of the aperture. 3. The GART page table has to be aligned to the boundary equal to the size of the table. 4. The GART page table size is: table_entry_size * (aperture_size / page_size) 5. The GART page table has to be allocated in non-paged, non-cached, contiguous system memory. This patch takes care 2. The rest should already be handled properly. This fixes a regression noticed by: Torsten Kaiser <just.for.lkml@googlemail.com> Tested-by: Torsten Kaiser <just.for.lkml@googlemail.com> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
db8cc27b804f89e8fd5f9d5385161956a777c471 |
|
07-Jul-2010 |
Dave Airlie <airlied@redhat.com> |
Merge branch 'drm-platform' into drm-testing * drm-platform: drm: Make sure the DRM offset matches the CPU drm: Add __arm defines to DRM drm: Add support for platform devices to register as DRM devices drm: Remove drm_resource wrappers
|
f892034a8ce80ed7098f667aae2eb6300e570603 |
|
30-Jun-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms/igp: fix possible divide by 0 in bandwidth code (v2) Some IGP systems specify the system memory clock in the Firmware table rather than the IGP info table. Check both and make sure we have a value system memory clock value. v2: make sure rs690_pm_info is called on rs780/rs880 as well. fixes a regression since 07d4190327b02ab3aaad25a2d168f79d92e8f8c2. Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Tested-by: Markus Trippelsdorf <markus@trippelsdorf.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
0888e883ea5ff8fac27e813256d6c1eaede5a234 |
|
12-Jun-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: fix bandwidth calculation when sideport is present Fixes fdo bug 27529: https://bugs.freedesktop.org/show_bug.cgi?id=27529 Reported-by: steckdenis@yahoo.fr Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
01d73a6967f12fe6c4bbde1834a9fe662264a2eb |
|
27-May-2010 |
Jordan Crouse <jcrouse@codeaurora.org> |
drm: Remove drm_resource wrappers Remove the drm_resource wrappers and directly use the actual PCI and/or platform functions in their place. [airlied: fixup nouveau properly to build] Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
ce8f53709bf440100cb9d31b1303291551cf517f |
|
07-May-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms/pm: rework power management - Separate dynpm and profile based power management methods. You can select the pm method by echoing the selected method ("dynpm" or "profile") to power_method in sysfs. - Expose basic 4 profile in profile method "default" - default clocks "auto" - select between low and high based on ac/dc state "low" - DC, low power mode "high" - AC, performance mode The current base profile is "default", but it should switched to "auto" once we've tested on more systems. Switching the state is a matter of echoing the requested profile to power_profile in sysfs. The lowest power states are selected automatically when dpms turns the monitors off in all states but default. - Remove dynamic fence-based reclocking for the moment. We can revisit this later once we have basic pm in. - Move pm init/fini to modesetting path. pm is tightly coupled with display state. Make sure display side is initialized before pm. - Add pm suspend/resume functions to make sure pm state is properly reinitialized on resume. - Remove dynpm module option. It's now selectable via sysfs. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
68adac5e49436992e9c999fbae879d9ac5b72d4e |
|
28-Apr-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm: move radeon_fixed.h to shared drm_fixed.h header Will be used by nouveau driver also in the near future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
90aca4d2740255bd130ea71a91530b9920c70abe |
|
09-Mar-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: simplify & improve GPU reset V2 This simplify and improve GPU reset for R1XX-R6XX hw, it's not 100% reliable here are result: - R1XX/R2XX works bunch of time in a row, sometimes it seems it can work indifinitly - R3XX/R3XX the most unreliable one, sometimes you will be able to reset few times, sometimes not even once - R5XX more reliable than previous hw, seems to work most of the times but once in a while it fails for no obvious reasons (same status than previous reset just no same happy ending) - R6XX/R7XX are lot more reliable with this patch, still it seems that it can fail after a bunch (reset every 2sec for 3hour bring down the GPU & computer) This have been tested on various hw, for some odd reasons i wasn't able to lockup RS480/RS690 (while they use to love locking up). Note that on R1XX-R5XX the cursor will disapear after lockup haven't checked why, switch to console and back to X will restore cursor. Next step is to record the bogus command that leaded to the lockup. V2 Fix r6xx resume path to avoid reinitializing blit module, use the gpu_lockup boolean to avoid entering inifinite waiting loop on fence while reiniting the GPU Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
a2d07b7438f015a0349bc9af3c96a8164549bbc5 |
|
09-Mar-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: rename gpu_reset to asic_reset Patch rename gpu_reset to asic_reset in prevision of having gpu_reset doing more stuff than just basic asic reset. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
f46c01208da1881591e3f55ca77d37f54469f8e4 |
|
31-Mar-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: display watermark updates (v2) - Add module option to force the display priority 0 = auto, 1 = normal, 2 = high - Default to high on r3xx/r4xx/rv515 chips Fixes flickering problems during heavy acceleration due to underflow to the display controllers - Fill in minimal support for RS600 v2 - update display priority when bandwidth is updated so the user can change the parameter at runtime and it will take affect on the next modeset. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
a084e6ee6e64a76f1a9665d527203cdab7d6048f |
|
18-Mar-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms/atom: make sure tables are valid (v2) Check that atom cmd and data tables are valid before using them. (v2) - fix some whitespace errors noticed by Rafał Miłecki - check a few more cases Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
f47299c55a837af1727bc601e1fc0fa33adaeda5 |
|
17-Mar-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: display watermark fixes - rs780/880 were using the wrong bandwidth functions - convert r1xx-r4xx to use the same pm sclk/mclk structs as r5xx+ - move bandwidth setup to a common function Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
29fb52ca78b4e265ec6c626b0c7b2927953949cf |
|
11-Mar-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: expose thermal/fan i2c buses Look up i2c bus in the power table and expose it. You'll need to load a hwmon driver for any chips on the bus, this patch just exposes the bus. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
/drivers/gpu/drm/radeon/rs690.c
|
e6990375ef4ec449994991034238f1ffab8a3a1a |
|
11-Mar-2010 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm/radeon: include radeon_asic.h in the asic specific files In essence this creates a home for all asic specific declarations in radeon_asic.h Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
51e5fcd353a55364984bda3dd1391742e4dec53c |
|
19-Feb-2010 |
Jerome Glisse <jglisse@redhat.com> |
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>
/drivers/gpu/drm/radeon/rs690.c
|
d594e46ace22afa1621254f6f669e65430048153 |
|
17-Feb-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: simplify memory controller setup V2 Get rid of _location and use _start/_end also simplify the computation of vram_start|end & gtt_start|end. For R1XX-R2XX we place VRAM at the same address of PCI aperture, those GPU shouldn't have much memory and seems to behave better when setup that way. For R3XX and newer we place VRAM at 0. For R6XX-R7XX AGP we place VRAM before or after AGP aperture this might limit to limit the VRAM size but it's very unlikely. For IGP we don't change the VRAM placement. Tested on (compiz,quake3,suspend/resume): PCI/PCIE:RV280,R420,RV515,RV570,RV610,RV710 AGP:RV100,RV280,R420,RV350,RV620(RPB*),RV730 IGP:RS480(RPB*),RS690,RS780(RPB*),RS880 RPB: resume previously broken V2 correct commit message to reflect more accurately the bug and move VRAM placement to 0 for most of the GPU to avoid limiting VRAM. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
655efd3dc92cd0d37292157178d33deb0430aeaa |
|
02-Feb-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: don't call suspend path before cleaning up GPU In suspend path we unmap the GART table while in cleaning up path we will unbind buffer and thus try to write to unmapped GART leading to oops. In order to avoid this we don't call the suspend path in cleanup path. Cleanup path is clever enough to desactive GPU like the suspend path is doing, thus this was redondant. Tested on: RV370, R420, RV515, RV570, RV610, RV770 (all PCIE) Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
cafe6609d6dc0a6a278f9fdbb59ce4d761a35ddd |
|
07-Jan-2010 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Schedule host path read cache flush through the ring V2 R300 family will hard lockup if host path read cache flush is done through MMIO to HOST_PATH_CNTL. But scheduling same flush through ring seems harmless. This patch remove the hdp_flush callback and add a flush after each fence emission which means a flush after each IB schedule. Thus we should have same behavior without the hard lockup. Tested on R100,R200,R300,R400,R500,R600,R700 family. V2: Adjust fence counts in r600_blit_prepare_copy() Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
06b6476d6b291473d0928ed242158a001d50c0f0 |
|
05-Jan-2010 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: detect sideport memory on IGP chips This detects if the sideport memory is enabled and if it is VRAM is evicted on suspend/resume. This should fix s/r issues on some IGPs. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
550e2d9270e2f0a10c3b063899f70e4cca25fe72 |
|
09-Dec-2009 |
Dave Airlie <airlied@redhat.com> |
drm/radeon/kms: restore surface registers on resume. On resume on my rv530 laptop surface cntl was left disabled, so wierd stuff would happen with rendering to a tiled front buffer. This checks if the surface regs are assigned to bos and reprograms the surface registers on resume using the same path that clears them all on init. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
69b3b5e59bc763c30d0098ae4bbe1225c0e82a04 |
|
09-Dec-2009 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
/drivers/gpu/drm/radeon/rs690.c
|
22dd50133ab7548adb23e86c302d6e8b75817e8c |
|
07-Dec-2009 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: fix vram setup on rs600/rs690/rs740 Don't remap vram to 0 on IGP chips. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
0088dbdb809e8799cb8f26da5ac64b15201fa99d |
|
03-Dec-2009 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
722f29434e72188b2d20f9b41f4b5952073ed568 |
|
03-Dec-2009 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon/kms: fix vram setup on rs600 also fix up rs690 mem width. should fix fdo bug 25408 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
4c7886791264f03428d5424befb1b96f08fc90f4 |
|
20-Nov-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Rework radeon object handling The locking & protection of radeon object was somewhat messy. This patch completely rework it to now use ttm reserve as a protection for the radeon object structure member. It also shrink down the various radeon object structure by removing field which were redondant with the ttm information. Last it converts few simple functions to inline which should with performances. airlied: rebase on top of r600 and other changes. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
1614f8b17b8cc3ad143541d41569623d30dbc9ec |
|
01-Dec-2009 |
Dave Airlie <airlied@redhat.com> |
drm/radeon/kms: add irq mitigation code for sw interrupt. We really don't need to process every irq that comes in, we only really want to do SW irq processing when we are actually waiting for a fence to pass. I'm not 100% sure this is race free esp on non-MSI systems so it needs some testing. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
72542d77058bd45ccafd1e15ed3c70349fe3277b |
|
01-Dec-2009 |
Dave Airlie <airlied@redhat.com> |
drm/radeon/kms: ignore unposted GPUs with no BIOS. If we find a GPU but we can't find its BIOS and it isn't posted, then ignore it. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
7433874e31f7f2e6e942b12012790565731d0f4a |
|
03-Nov-2009 |
Rafał Miłecki <zajec5@gmail.com> |
drm/radeon/kms: add debugfs for power management for AtomBIOS devices Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
ac447df4f2283a116a3fbbc28cbaabf05758b736 |
|
30-Sep-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Fix irq handling on AVIVO hw Avivo hw have vblank interrupt in different place, fixes irq handling (especialy irq disabling while suspending or shuting down the module). Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
62a8ea3f7bb61e5f92db0a648b7cc566852c36ec |
|
01-Oct-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Remove old init path as no hw use it anymore This remove old init path and allow code cleanup, now all hw use the new init path, see top of radeon.h for description of this. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
3bc6853593bd4fba357dc252b3cf60cd86a1d2ec |
|
01-Oct-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Convert RS690/RS740 to new init path (V2). Also cleanup register specific to RS690/RS740. Version 2 add missing header file for register, remove unecessary call to AGP function and fix an indentation bug. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
d39c3b895876427c5083a936e00f3f5b7f0fc1b3 |
|
28-Sep-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Convert RV515 to new init path and associated cleanup Convert the rv515 asic support to new init path also add an explanation in radeon.h about the new init path. There is also few cleanups associated with this change (others asic calling rv515 helper functions). Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
/drivers/gpu/drm/radeon/rs690.c
|
4aac047323e3082d0866b8ad3784236632105af4 |
|
14-Sep-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: clear confusion in GART init/deinit path GART static one time initialization was mixed up with GART enabling/disabling which could happen several time for instance during suspend/resume cycles. This patch splits all GART handling into 4 differents function. gart_init is for one time initialization, gart_deinit is called upon module unload to free resources allocated by gart_init, gart_enable enable the GART and is intented to be call after first initialization and at each resume cycle or reset cycle. Finaly gart_disable stop the GART and is intended to be call at suspend time or when unloading the module. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
3f7dc91adef90a20f806282724c40d68d5b020aa |
|
27-Aug-2009 |
Dave Airlie <airlied@redhat.com> |
drm/rs600/690: use autogenerated safe register tables. This ports rs690 to the safe reg tables and makes rs600 also use the same table. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
616b8434688aa08bd6f019cc60c8dfe121e9e5ae |
|
06-Aug-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: Add specific rs690 authorized register table rs690 is r3xx 3D engine with AVIVO modesetting so we need to allow AVIVO register for vline synchronization. This add a specific table to rs690 to handle that. Thanks to Marc (marvin24) for debugging this and kudos to Andre (taiu1) for spotting the origin of the bugs. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
7a50f01a4ab89d5c05eb2cf62e206ac0bfc61d2c |
|
21-Jul-2009 |
Dave Airlie <airlied@redhat.com> |
drm/radeon/kms: vram sizing on certain r100 chips needs workaround. If an rn50/r100/m6/m7 GPU has < 64MB RAM, i.e. 8/16/32, the aperture used to calculate the MC_FB_LOCATION needs to be worked out from the CONFIG_APER_SIZE register, and not the actual vram size. TTM VRAM size was also being initialised wrong, use actual vram size to initialise it. Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
c93bb85b5cba3e3a06f2cad8e9bc5c23d3d10aac |
|
13-Jul-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon/kms: fix bandwidth computation on avivo hardware Fix bandwidth computation and crtc priority in memory controller so that crtc memory request are fullfill in time to avoid display artifact. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|
771fe6b912fca54f03e8a72eb63058b582775362 |
|
05-Jun-2009 |
Jerome Glisse <jglisse@redhat.com> |
drm/radeon: introduce kernel modesetting for radeon hardware Add kernel modesetting support to radeon driver, use the ttm memory manager to manage memory and DRM/GEM to provide userspace API. In order to avoid backward compatibility issue and to allow clean design and code the radeon kernel modesetting use different code path than old radeon/drm driver. When kernel modesetting is enabled the IOCTL of radeon/drm driver are considered as invalid and an error message is printed in the log and they return failure. KMS enabled userspace will use new API to talk with the radeon/drm driver. The new API provide functions to create/destroy/share/mmap buffer object which are then managed by the kernel memory manager (here TTM). In order to submit command to the GPU the userspace provide a buffer holding the command stream, along this buffer userspace have to provide a list of buffer object used by the command stream. The kernel radeon driver will then place buffer in GPU accessible memory and will update command stream to reflect the position of the different buffers. The kernel will also perform security check on command stream provided by the user, we want to catch and forbid any illegal use of the GPU such as DMA into random system memory or into memory not owned by the process supplying the command stream. This part of the code is still incomplete and this why we propose that patch as a staging driver addition, future security might forbid current experimental userspace to run. This code support the following hardware : R1XX,R2XX,R3XX,R4XX,R5XX (radeon up to X1950). Works is underway to provide support for R6XX, R7XX and newer hardware (radeon from HD2XXX to HD4XXX). Authors: Jerome Glisse <jglisse@redhat.com> Dave Airlie <airlied@redhat.com> Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
/drivers/gpu/drm/radeon/rs690.c
|