summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote branch 'korg/drm-radeon-dp' into drm-linusDave Airlie2009-12-0824-323/+2657
|\ | | | | | | | | | | | | | | | | This merges the radeon KMS DisplayPort and hotplug detect support. Tested on RV635 DP card with a Dell 2408 monitor. Conflicts: drivers/gpu/drm/drm_fb_helper.c
| * drm/radeon/kms: enable hpd supportAlex Deucher2009-12-0810-10/+98
| | | | | | | | | | | | | | | | | | | | | | This enabled interrupt driven hpd support for all radeon chips. Assuming the hpd pin is wired up correctly, the driver will generate uevents on digital monitor connect and disconnect and retrain DP monitors automatically. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add asic callbacks for hpdAlex Deucher2009-12-083-1/+65
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add hpd support for r6xx/r7xx/rs780/rs880 asicsAlex Deucher2009-12-081-23/+485
| | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add hpd support for r5xx/rs600/rs690/rs740 asicsAlex Deucher2009-12-081-0/+130
| | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add hpd support for r1xx-r4xx asicsAlex Deucher2009-12-081-2/+104
| | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add regs and irq tracking bits for hpdAlex Deucher2009-12-084-23/+154
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: get HPD info for connectorsAlex Deucher2009-12-087-84/+330
| | | | | | | | | | | | | | | | | | This populates the connectors with HPD (Hot Plug Detect) information. This will be used in subsequent patches for automatic digital monitor connect/disconnect handling. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: clean up DP debuggingAlex Deucher2009-12-081-28/+28
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: fix DP detectAlex Deucher2009-12-084-11/+10
| | | | | | | | | | | | | | | | only return connected if there is actually a monitor connected. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: drop unused array to fix warning.Dave Airlie2009-12-081-3/+0
| | | | | | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: do dp link training at dpms on time not mode set.Dave Airlie2009-12-081-4/+6
| | | | | | | | | | | | | | This moves the radeon DP link training call to happen when we dpms on the encoder not when we set the mode. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: make displayport work by reorganising vsemph setup.Dave Airlie2009-12-081-1/+2
| | | | | | | | | | | | | | This fix reorganises the initial DP link training slightly, and actually makes DP work under kms here. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms/dp: fix return in dpcd retrival.Dave Airlie2009-12-081-0/+1
| | | | | | | | | | | | | | Not returning here caused us to get a display port version of 0 for everything this caused power up to not get sent which ends up in a black screen. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: free aux channel i2c adapter on destroyAlex Deucher2009-12-081-1/+18
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add support for DP modesettingAlex Deucher2009-12-086-82/+600
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: handle dp sinks in atom encoder/transmitter tablesAlex Deucher2009-12-083-12/+100
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: store sink type in atom dig connectorAlex Deucher2009-12-083-10/+17
| | | | | | | | | | | | | | | | This will be used laster when the encoder and transmitters are set up. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: i2c reorgAlex Deucher2009-12-087-120/+166
| | | | | | | | | | | | | | | | | | | | - keep the atom i2c id in the i2c rec - fix gpio regs for GPIO and MDGPIO on pre-avivo chips - track whether the i2c line is hw capable - track whether the i2c line uses the multimedia i2c block Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: DP fixes and cleanup from the ddxAlex Deucher2009-12-085-150/+105
| | | | | | | | | | | | | | | | | | - dpcp -> dpcd - fix up dig encoder routing - aux transaction table takes delay in 10 usec units Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: initial radeon displayport portingDave Airlie2009-12-089-24/+500
| | | | | | | | | | | | This is enough to retrieve EDID and DPCP. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: add support to atom parser for FB read/writeDave Airlie2009-12-083-4/+8
| | | | | | | | | | | | | | | | FB read/write really doesn't need to access the actual VRAM, we can just use a scratch area. This is required for using atom displayport calls later. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * Merge remote branch 'origin/drm-core-next' into testDave Airlie2009-12-0839-289/+2509
| |\ | | | | | | | | | | | | Conflicts: drivers/gpu/drm/drm_fb_helper.c
* | | Merge remote branch 'korg/drm-radeon-next' into drm-linusDave Airlie2009-12-0842-1122/+2731
|\| | | | | | | | | | | This merges all the radeon changes that weren't reliant on core-next.
| * | drm/radeon/kms: fix vram setup on rs600/rs690/rs740Alex Deucher2009-12-083-5/+21
| | | | | | | | | | | | | | | | | | | | | 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>
| * | drm/radeon/kms: more r4xx lvds fixesAlex Deucher2009-12-083-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | Grab pll ref div from regs at driver init. r4xx seems very picky about the dividers for the pll driving lvds. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms/legacy: set common regs to sane valueAlex Deucher2009-12-084-0/+21
| | | | | | | | | | | | | | | | | | | | | The DDX and radeonfb always set these regs to a sane value. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms/legacy: set overscan regs on modesetAlex Deucher2009-12-082-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | These can end up with garbage otherwise. fixes rh bug 537140 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: fix RS600 MC setup.Dave Airlie2009-12-071-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Again we try to put VRAM at 0, and it didn't work on this chipset, reports of corrupt RAM appeared on irc and bugzilla. Fix the vram location according to what the BIOS setup, I'm not 100% sure we don't need the same thing on rs690/rs780/rs880, we probably should do it there just in case as its what the DDX does. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: fix up gart setup on rs600Alex Deucher2009-12-071-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set up rs600 gart like r600: - set gart system aperture to vram - inside gart system aperture is unmapped* - outside gart system aperture is mapped* *mapped refers to memory handled by page tables Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: quirk for Gigabyte RV515 card, DVI+VGA not 2xDVI.Dave Airlie2009-12-041-0/+9
| | | | | | | | | | | | | | | | | | Similiar to other quirks for RV515, this card has no second DVI port. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: rs6xx/rs740: clamp vram to aperture sizeAlex Deucher2009-12-042-4/+14
| | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: fix vram setup on rs600Alex Deucher2009-12-042-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | drm/radeon/kms: fix legacy crtc2 dpmsAlex Deucher2009-12-041-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | noticed by Matthijs Kooijman on fdo bug 22140 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: handle vblanks properly with dpms onAlex Deucher2009-12-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | avivo chips Copied from pre-avivo code. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: Add quirk for HIS X1300 boardAlex Deucher2009-12-041-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Board is DVI+VGA, not DVI+DVI Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: don't use bios dividers for lvds on r4xxAlex Deucher2009-12-041-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | R4xx cards don't have lvds pll dividers since they use atom. should fix rh bug 541562 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: fix ring info in debugfs on r600+Rafał Miłecki2009-12-041-7/+7
| | | | | | | | | | | | | | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Acked-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: fix typo in define: engine -> memoryRafał Miłecki2009-12-041-1/+1
| | | | | | | | | | | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms/pm: fix typosRafał Miłecki2009-12-041-3/+3
| | | | | | | | | | | | | | | | | | | | | Unit typo noticed by taiu on IRC Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: Rework radeon object handlingJerome Glisse2009-12-0226-701/+901
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | drm/radeon/kms: add irq mitigation code for sw interrupt.Dave Airlie2009-12-0213-12/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | drm/radeon/kms: Add support for interrupts on r6xx/r7xx chips (v3)Alex Deucher2009-12-0210-75/+754
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables the use of interrupts on r6xx/r7xx hardware. Interrupts are implemented via a ring buffer. The GPU adds interrupts vectors to the ring and the host reads them off in the interrupt handler. The interrupt controller requires firmware like the CP. This firmware must be installed and accessble to the firmware loader for interrupts to function. MSIs don't seem to work on my RS780. They work fine on all my discrete cards. I'm not sure about other RS780s or RS880s. I've disabled MSIs on RS780 and RS880, but it would probably be worth checking on some other systems. v2 - fix some checkpatch.pl problems; re-read the disp int status reg if we restart the ih; v3 - remove the irq handler if r600_irq_init() fails; remove spinlock in r600_ih_ring_fini(); move ih rb overflow check to r600_get_ih_wptr(); move irq ack to separate function; Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: call correct atom table for digital output dpms.Dave Airlie2009-12-021-2/+2
| | | | | | | | | | | | | | | | | | found while working on displayport. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: Don't overwrite crtc_gen_cntl or crtc_gen_cntl2Jerome Glisse2009-12-021-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't overwritte crtc_gen_cntl or crtc_gen_cntl2 or we may loose the cursor. This especialy happen when changing video mode. Fix bugs: https://bugzilla.redhat.com/show_bug.cgi?id=529146 Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: add tv standard property to tv connectorsAlex Deucher2009-12-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Lets user select tv-standard. The property was there, just not hooked up. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: ignore unposted GPUs with no BIOS.Dave Airlie2009-12-0212-34/+50
| | | | | | | | | | | | | | | | | | | | | 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>
| * | drm/radeon/kms: fix divide by 0 in clocks codeDave Airlie2009-12-022-1/+9
| | | | | | | | | | | | | | | | | | | | | If the chip isn't initialised properly this can happen. also fix return value in combios clocks function. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms/atom: pull misc mode info for lvds from bios tablesAlex Deucher2009-12-021-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | sync polarity, etc. This will likely fix LVDS problems on some laptops. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: Disable agp only if we are dealing with an AGP GPUJerome Glisse2009-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On IGP if you pass option agpmode=-1 you would overwrite the set_page function callback with improper function which endup in non functioning hw. This patch will disable agp when giving agpmode=-1 parameter only if we are dealing with an AGP GPU. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>