summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'drm-nouveau-next' of ↵Dave Airlie2013-04-26105-644/+1316
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next "Nothing overly exciting here aside from calim's fermi/kepler vram compression patches. The rest is misc fixes I gathered from the list. Most of the stuff from me is fixing issues that have come up from the work on kepler PM, as well as a commit moving all the old-school modesetting out of the way (no code changes here). There's other patches to go on top of that, but, it'll have to wait until I can rip out the old PM code, it's a bit tangled." * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (38 commits) drm/nouveau/fifo: implement channel creation event generation drm/nouveau/core: allow non-maskable events drm/nouveau/timer: allow alarms to be cancelled drm/nouveau/device: tweak the device/subdev relationship a little drm/nouveau/device: enable proper constructor/destructor drm/nouveau/device: have engine object initialised before creation drm/nouveau/device: convert to engine, rather than subdev drm/nv50-/disp: use self as parent for subobjects drm/nv50-/fifo: use parent as self for subobjects drm/nv20-nv30/gr: use parent as self for subobjects drm/nvc0-/gr: use self as parent for subobjects drm/nv04-nv40/instmem: use self as parent for subobjects drm/nv04-nv40/vm: use self as parent for subobjects drm/nv50-/bar: use self as parent for subobjects drm/nv04-nv40/instmem: remove parent deref hack drm/nouveau/i2c: remove parent deref hack drm/nouveau/core: rebase object ref/use counts after ctor/init/fini events drm/nv50/disp: inform core when we're not creating a new context drm/nouveau/therm: send some messages to debug level drm/nve0/gr: add handling for a bunch of PGRAPH traps ...
| * drm/nouveau/fifo: implement channel creation event generationBen Skeggs2013-04-262-1/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: allow non-maskable eventsBen Skeggs2013-04-261-4/+8
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/timer: allow alarms to be cancelledBen Skeggs2013-04-261-4/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/device: tweak the device/subdev relationship a littleBen Skeggs2013-04-262-88/+71
| | | | | | | | | | | | | | Fixes not-in-use engines not having their reset() method called on resume. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/device: enable proper constructor/destructorBen Skeggs2013-04-261-1/+16
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/device: have engine object initialised before creationBen Skeggs2013-04-264-5/+12
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/device: convert to engine, rather than subdevBen Skeggs2013-04-2615-32/+32
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-/disp: use self as parent for subobjectsBen Skeggs2013-04-262-2/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-/fifo: use parent as self for subobjectsBen Skeggs2013-04-264-25/+31
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv20-nv30/gr: use parent as self for subobjectsBen Skeggs2013-04-266-6/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0-/gr: use self as parent for subobjectsBen Skeggs2013-04-263-9/+13
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv04-nv40/instmem: use self as parent for subobjectsBen Skeggs2013-04-262-8/+13
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv04-nv40/vm: use self as parent for subobjectsBen Skeggs2013-04-263-3/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-/bar: use self as parent for subobjectsBen Skeggs2013-04-262-15/+21
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv04-nv40/instmem: remove parent deref hackBen Skeggs2013-04-263-12/+0
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: remove parent deref hackBen Skeggs2013-04-261-5/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: rebase object ref/use counts after ctor/init/fini eventsBen Skeggs2013-04-261-6/+13
| | | | | | | | | | | | | | | | | | | | | | This is intended to support named (with a handle, etc) objects having children that don't have an outside reference. This will replace the various hacks around the place where subdev objects have children, and have to manually drop the self-refs so that they can be destroyed etc when all the outside refs have gone. 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/therm: send some messages to debug levelBen Skeggs2013-04-262-14/+14
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nve0/gr: add handling for a bunch of PGRAPH trapsChristoph Bumiller2013-04-261-0/+222
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: handle irq-related setup ourselvesBen Skeggs2013-04-2612-127/+75
| | | | | | | | | | | | | | | | We need to be able to process interrupts before the DRM code is able to actually enable them, set it up ourselves. Also, it's less convoluted to *not* use the DRM wrappers it appears... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv04/disp: hide all the cruft away in its own little holeBen Skeggs2013-04-2624-28/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It'd be pretty awesome if someone would care enough to port this all properly to a class interface, perhaps submitting a command stream to the core via a sw object on PFIFO (emulating how EVO works basically, and also what nvidia have done forever..).. But, this seems unlikely given how old this hardware is now, so, lets just hide it away. There's a heap of other bits and pieces laying around that are still tangled. I'll (re)move them in pieces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add missing newline on IO*_OR opcode debuggingBen Skeggs2013-04-261-2/+2
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: suppress some parser errors when dry-running scriptsBen Skeggs2013-04-261-19/+33
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nve0: magic up some support for GF117Ben Skeggs2013-04-266-25/+63
| | | | | | | | | | | | | | | | | | | | | | Seen in the wild, don't have the hardware but this hacks things up to treat it the same as GF119 for now. Should be relatively safe, I'd be very surprised if anything major changed outside of PGRAPH. PGRAPH (3D etc) is disabled by default however until it's confirmed working. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0-/ltcg: Fix build on 32-bit platforms (v2)Roy Spliet2013-04-261-1/+1
| | | | | | | | | | | | | | v2: read, don't assume.. *puts on brown paper bag* Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/drm: adding support for backlight control of GT525M (NVC0)Florian Scholz2013-04-261-0/+3
| | | | | | | | | | | | | | | | | | This patch adds support for the backlight control of the NVIDIA GT 525M, which identifies itself as a member of the NVC0 family. v2. Extended to handle Kepler too Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/drm: bump the driver version to 1.1.1 to report new featuresChristoph Bumiller2013-04-261-1/+12
| | | | | | | | | | Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0/gr: add software methods to control some MP regsChristoph Bumiller2013-04-261-0/+29
| | | | | | | | | | Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0-: support NOUVEAU_GETPARAM_GRAPH_UNITSChristoph Bumiller2013-04-267-8/+47
| | | | | | | | | | Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0-/ltcg: implement VRAM compressionChristoph Bumiller2013-04-264-29/+220
| | | | | | | | | | Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/ttm: allow tiled memtype on system memory buffer objectsBen Skeggs2013-04-261-0/+16
| | | | | | | | | | | | | | | | Compression not supported, and will be silently dropped. Original G80 can't handle this either and requires LINEAR memtype, though it's still possible to correctly texture and m2mf to/from these objects anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nve0/grctx: initial attempt at unhardcoding yet more magicBen Skeggs2013-04-261-4/+9
| | | | | | | | | | | | | | Not sure about the (gpc_nr == 1) condition, it's probably wrong but for all the examples I've seen so far it matches what NVIDIA end up poking. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50/therm: implement temperature readingMartin Peres2013-04-261-3/+39
| | | | | | | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/therm: split the nv50 and nv84 codeMartin Peres2013-04-269-164/+239
| | | | | | | | | | | | | | | | This is needed because temperature management on nv50 can be enabled and it looks about the same as nv40. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/drm: fix crash in vram manager debug callbackMarcin Slusarz2013-04-261-3/+6
| | | | | | | | | | | | | | | | It's probably impossible to hit it now on mainline kernel. I only noticed it because one of my debugging patches uses it. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nvc0/fb: ignore readback page alloc failure to support userspaceBen Skeggs2013-04-261-8/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp: fix uninitialised eq_done in error pathBen Skeggs2013-04-261-1/+1
| | | | | | | | | | Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/edid: Check both 60Hz and 59.94Hz when looking for a CEA modeVille Syrjälä2013-04-261-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drm_match_cea_mode() should be able to match both the 60Hz version, and the 59.94Hz version of modes. We only store one pixel clock value per mode in edid_cea_modes, so the other value must be calculated. Depending on the mode, edid_cea_modes contains the pixel clock for either the 60Hz version or the 59.94Hz version, so a bit of care is needed so that the calculation produces the correct result. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46800 Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/edid: Populate vrefresh for CEA modesVille Syrjälä2013-04-261-64/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Well have use for the vrefresh information of CEA modes later. Just populate the information into the table to avoid having to calculate it. I'm too lazy to check if someone relies on newly allocated CEA modes having 0 vrefresh, so just clear vrefresh back to 0 when adding the mode to the connector's modelist. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm: Add drm_mode_equal_no_clocks()Ville Syrjälä2013-04-261-1/+21
|/ | | | | | | | | | | | | drm_mode_equal_no_clocks() is like drm_mode_equal() except it doesn't compare the clock or vrefresh values. drm_mode_equal() is now implemented by first doing the clock checks, and then calling drm_mode_equal_no_clocks(). v2: Add missing EXPORT_SYMBOL() Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/shmobile: Fix race condition between page flip request and handlerLaurent Pinchart2013-04-261-1/+1
| | | | | | | | | | | | | | | | | The page flip handler stores the page flip event pointer and then calls drm_vblank_get() to enable the vblank interrupt. Due to the vblank off delay, the vblank interrupt can be enabled in the hardware at that point, even if the vblank reference count is equal to 0. If a vblank interrupt is triggered between storing the event pointer and calling drm_vblank_get(), the page flip completion handler will process the event and call drm_vblank_put() with a reference count equal to 0. This will result in a BUG_ON. Fix the race condition by calling drm_vblank_get() before storing the event pointer. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: export drm_vm_open_lockedArnd Bergmann2013-04-261-0/+1
| | | | | | | | | | | | | | | The EXYNOS DRM driver uses drm_vm_open_locked in its mmap() function, and it can be built as a loadable module, which currently fails. This exports the symbol from the DRM core to avoid ERROR: "drm_vm_open_locked" [drivers/gpu/drm/exynos/exynosdrm.ko] undefined! Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/tilcdc: use only a single module device tableArnd Bergmann2013-04-263-3/+0
| | | | | | | | | | | | | | | | | | | | | | The tilcdc driver fails to be built as a module because of extraneous MODULE_DEVICE_TABLE entries: drivers/gpu/drm/tilcdc/tilcdc_slave.o:(.data+0x54): multiple definition of `__mod_of_device_table' drivers/gpu/drm/tilcdc/tilcdc_tfp410.o:(.data+0x54): first defined here drivers/gpu/drm/tilcdc/tilcdc_panel.o:(.data+0x54): multiple definition of `__mod_of_device_table' drivers/gpu/drm/tilcdc/tilcdc_tfp410.o:(.data+0x54): first defined here drivers/gpu/drm/tilcdc/tilcdc_drv.o:(.data+0x184): multiple definition of `__mod_of_device_table' drivers/gpu/drm/tilcdc/tilcdc_tfp410.o:(.data+0x54): first defined here Since the entire point of these entries is to make the module autoload when one of the devices is present, it's enough to keep the one entry for "ti,am33xx-tilcdc", which should always be there if any of the others are. Acked-by: Rob Clark <robdclark@gmail.com> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge branch 'gma500-fixes' of git://github.com/patjak/drm-gma500 into drm-nextDave Airlie2013-04-262-3/+3
|\ | | | | | | | | | | | | | | | | | | Two fixes for gma500. First one from Anisse allows us to handle ASLE irqs even when BIOS doesn't trigger a pipe event irq. The second one allows dual head setups to have a big shared framebuffer. * 'gma500-fixes' of git://github.com/patjak/drm-gma500: drm/gma500: Increase max resolution for mode setting drm/gma500: fix backlight hotkeys behaviour on netbooks
| * drm/gma500: Increase max resolution for mode settingPatrik Jakobsson2013-04-251-2/+2
| | | | | | | | | | | | | | | | By having a higher max resolution we can now set up a virtual framebuffer that spans several monitors. 4096 should be ok since we're gen 3 or higher and should be enough for most dual head setups. Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
| * drm/gma500: fix backlight hotkeys behaviour on netbooksAnisse Astier2013-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backlight hotkeys weren't working before on certain cedartrail laptops. The source of this problem is that the hotkeys' ASLE opregion interrupts were simply ignored. Driver seemed to expect the interrupt to be associated with a pipe, but it wasn't. Accepting the ASLE interrupt without an associated pipe event flag fixes the issue, the backlight code is called when needed, making the brightness keys work properly. [patrik: This patch affects irq handling on any netbook with opregion support] Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=833597 Reference: http://lists.freedesktop.org/archives/dri-devel/2012-July/025279.html Cc: stable@kernel.org Signed-off-by: Anisse Astier <anisse@astier.eu> Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
* | drm/tilcdc: Fix checkpatch error in tilcdc_panel.cSachin Kamat2013-04-241-1/+1
| | | | | | | | | | | | | | | | | | Fixes the following checkpatch error: ERROR: "foo * bar" should be "foo *bar" Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/tilcdc: Remove space before tabSachin Kamat2013-04-241-1/+1
| | | | | | | | | | | | | | | | | | Silences the following checkpatch warning: WARNING: please, no space before tabs Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
OpenPOWER on IntegriCloud