summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c
Commit message (Collapse)AuthorAgeFilesLines
* drm/nv50/disp: shhh compilerBen Skeggs2014-08-101-4/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: implement nvif event sources for vblank/connector notifiersBen Skeggs2014-08-101-0/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: allow user direct access to channel control registersBen Skeggs2014-08-101-0/+15
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: audit and version display classesBen Skeggs2014-08-101-29/+71
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: audit and version SCANOUTPOS methodBen Skeggs2014-08-101-30/+31
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version PIOR_PWR methodBen Skeggs2014-08-101-3/+4
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version SOR_DP_PWR methodBen Skeggs2014-08-101-0/+24
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version LVDS_SCRIPT methodBen Skeggs2014-08-101-1/+15
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version SOR_HDMI_PWR methodBen Skeggs2014-08-101-0/+4
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version SOR_HDA_ELD methodBen Skeggs2014-08-101-0/+4
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version SOR_PWR methodBen Skeggs2014-08-101-1/+2
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version DAC_LOAD methodBen Skeggs2014-08-101-1/+2
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: audit and version DAC_PWR methodBen Skeggs2014-08-101-2/+71
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: share channel creation between nv50/gf110 implsBen Skeggs2014-08-101-71/+82
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: audit and version NV_DEVICE classBen Skeggs2014-08-101-1/+1
| | | | | | | | The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: rework event interfaceBen Skeggs2014-08-101-19/+26
| | | | | | | | | | | | | | | This is a lot of prep-work for being able to send event notifications back to userspace. Events now contain data, rather than a "something just happened" signal. Handler data is now embedded into a containing structure, rather than being kmalloc()'d, and can optionally have the notify routine handled in a workqueue. Various races between suspend/unload with display HPD/DP IRQ handlers automagically solved as a result. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/dp: fix required link bandwidth calculationsBen Skeggs2014-07-081-3/+3
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: fix a potential oops in supervisor handlingBen Skeggs2014-06-171-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp/dp: fix tmds passthrough on dp connectorBen Skeggs2014-06-111-5/+33
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp/dp: maintain link in response to hpd signalBen Skeggs2014-06-111-1/+20
| | | | | | | | | This previously worked for the most part due to userspace doing a modeset in response to HPD interrupts. This will allow us to properly handle cases where sync is lost for other reasons, or if userspace isn't caring. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: train PIOR-attached DP from second supervisorBen Skeggs2014-06-111-21/+11
| | | | | | Same place as for SOR, between detach and attach phases. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp/dp: make use of existing output data for link trainingBen Skeggs2014-06-111-5/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: start removing direct vbios parsing from supervisorBen Skeggs2014-06-111-107/+116
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp/dp: create subclass for dp outputsBen Skeggs2014-06-111-0/+7
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: allow event source to handle multiple event types per indexBen Skeggs2014-06-111-4/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: dump channel state when update method failsBen Skeggs2014-03-261-0/+32
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: allow dumping core channel state at first supervisor intrBen Skeggs2014-03-261-0/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: add method descriptions for debuggingBen Skeggs2014-03-261-0/+263
| | | | | | | Lists of known methods for the DMA channel classes, and mappings to their priv register addresses (where known). Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: decode the known error codes to human readable formBen Skeggs2014-03-261-20/+43
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: preparation for storing static class dataBen Skeggs2014-03-261-7/+5
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: use correct register to determine DP display bppIlia Mirkin2014-02-181-1/+1
| | | | | | | | | | | | | | Commit 0a0afd282f ("drm/nv50-/disp: move DP link training to core and train from supervisor") added code that uses the wrong register for computing the display bpp, used for bandwidth calculation. Adjust to use the same register as used by exec_clkcmp and nv50_disp_intr_unk20_2_dp. Reported-by: Torsten Wagner <torsten.wagner@gmail.com> Reported-by: Michael Gulick <mgulick@mathworks.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67628 Cc: stable@vger.kernel.org # 3.9+ Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: add a method to fetch info needed by drm vblank timestampingBen Skeggs2014-01-301-0/+30
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: use the number of dac, sor, pior rather than hardcoded valuesEmil Velikov2013-09-041-17/+17
| | | | | | | | | The values are already stored on chipset specific basis in the ctor. Make the most of them and simplify the code further by using a temporary variable to avoid code duplication. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: Use output specific mask in interruptEmil Velikov2013-07-051-1/+5
| | | | | | | | | | | | | | | | | | | | | The commit commit 476e84e126171d809f9c0b5d97137f5055f95ca8 Author: Ben Skeggs <bskeggs@redhat.com> Date: Mon Feb 11 09:24:23 2013 +1000 drm/nv50-/disp: initial supervisor support for off-chip encoders changed the write mask in one of the interrupt functions for on-chip encoders, causing a regression in certain VGA dual-head setups. This commit reintroduces the mask thus resolving the regression Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66129 Reported-and-Tested-by: Yves-Alexis <corsac@debian.org> Cc: stable@vger.kernel.org [3.9+] CC: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/devinit: move simple pll setting routines to devinitBen Skeggs2013-07-011-3/+3
| | | | | | | | | These are pretty much useless for reclocking purposes. Lets make it clearer what they're for and move them to DEVINIT to signify they're for the very simple PLL setting requirements of running the init tables. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: use self as parent for subobjectsBen Skeggs2013-04-261-1/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: inform core when we're not creating a new contextBen Skeggs2013-04-261-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix regression in vblankingMaarten Lankhorst2013-03-111-2/+2
| | | | | | | | | | | nv50_vblank_enable/disable got switched from NV50_PDISPLAY_INTR_EN_1_VBLANK_CRTC_0 (4) << head to 1 << head, which is wrong. 4 << head is the correct value. Fixes regression with vblanking since 1d7c71a3e2f77 "drm/nouveau/disp: port vblank handling to event interface" Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: handle multiple actions from one set of supervisor intrsBen Skeggs2013-02-201-108/+118
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: initial supervisor support for off-chip encodersBen Skeggs2013-02-201-31/+93
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: initial work towards supporting external encodersBen Skeggs2013-02-201-0/+6
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: move DP link training to core and train from supervisorBen Skeggs2013-02-201-5/+24
| | | | | | | | | | | | | | | We need to be able to do link training for PIOR-connected ANX9805 from the third supervisor handler (due to script ordering in the bios, can't have the "user" call train because some settings are overwritten from the modesetting bios scripts). This moves link training for SOR-connected DP encoders to the second supervisor interrupt, *before* we call the modesetting scripts (yes, different ordering from PIOR is necessary). This is useful since we should now be able to remove some hacks to workaround races between the supervisor and link training paths. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: handle supervisor tasks from workqueueBen Skeggs2013-02-201-10/+12
| | | | | | i2c_algo_bit sleeps... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/disp: 0x0000 is a valid udisp config valueBen Skeggs2013-02-201-9/+7
| | | | | | | Return an out-of-range value instead to signal a failure from exec_clkcmp(). Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: sizeof() wrong pointerDan Carpenter2013-02-201-2/+2
| | | | | | | | | | "data" is a void pointer and "args" is "data" after we have casted it to a struct. We care about the size of the struct here. Btw, sizeof(*data) is 1. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/disp: port vblank handling to event interfaceBen Skeggs2013-02-201-52/+18
| | | | | | | | | This removes the nastiness with the interactions between display and software engines when handling vblank semaphore release interrupts. Now, all the semantics are handled in one place (sw) \o/. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: fix selection of bios script for analog outputsMarcin Slusarz2013-01-131-20/+26
| | | | | | | | | | | | | | | | | | | | Analog output number was overwritten by value from digital output path. Fix it. Fixes resume from s2ram: https://bugs.freedesktop.org/show_bug.cgi?id=58729 (as stumbled on by J Binder, Pontus Fuchs and me) Fixes blank screen on module load (reported by Sune Mølgaard). Fixes regression from commit 186ecad21c854385823a430b1402053ae7fd59dc ("drm/nv50/disp: move remaining interrupt handling into core"). Reported-by: J Binder <wheel@herr-der-mails.de> Reported-by: Pontus Fuchs <pontus.fuchs@gmail.com> Reported-by: Sune Mølgaard <sune@molgaard.org> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Tested-by: Marcin Slusarz <marcin.slusarz@gmail.com> Tested-by: Sune Mølgaard <sune@molgaard.org> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie2012-12-101-11/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into drm-next Alex writes: Pretty minor -next pull request. We some additional new bits waiting internally for release. Hopefully Monday we can get at least some of them out. The others will probably take a few more weeks. Highlights of the current request: - ELD registers for passing audio information to the sound hardware - Handle GPUVM page faults more gracefully - Misc fixes Merge radeon test * 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux: (483 commits) drm/radeon: bump driver version for new info ioctl requests drm/radeon: fix eDP clk and lane setup for scaled modes drm/radeon: add new INFO ioctl requests drm/radeon/dce32+: use fractional fb dividers for high clocks drm/radeon: use cached memory when evicting for vram on non agp drm/radeon: add a CS flag END_OF_FRAME drm/radeon: stop page faults from hanging the system (v2) drm/radeon/dce4/5: add registers for ELD handling drm/radeon/dce3.2: add registers for ELD handling radeon: fix pll/ctrc mapping on dce2 and dce3 hardware Linux 3.7-rc7 powerpc/eeh: Do not invalidate PE properly Revert "drm/i915: enable rc6 on ilk again" ALSA: hda - Fix build without CONFIG_PM of/address: sparc: Declare of_iomap as an extern function for sparc again PM / QoS: fix wrong error-checking condition bnx2x: remove redundant warning log vxlan: fix command usage in its doc 8139cp: revert "set ring address before enabling receiver" MPI: Fix compilation on MIPS with GCC 4.4 and newer ... Conflicts: drivers/gpu/drm/exynos/exynos_drm_encoder.c drivers/gpu/drm/exynos/exynos_drm_fbdev.c drivers/gpu/drm/nouveau/core/engine/disp/nv50.c
| * drm/nvc0/disp: fix thinko in vblank regression fix..Kelly Doran2012-11-191-7/+12
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0/disp: fix regression in vblank semaphore releaseKelly Doran2012-11-091-8/+12
| | | | | | | | | | | | Signed-off-by: Kelly Doran <kel.p.doran@gmail.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud