summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/include
Commit message (Collapse)AuthorAgeFilesLines
...
| * drm/nouveau/therm: better transitions and debug loggingBen Skeggs2013-02-201-5/+4
| | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * drm/nouveau/pbus: add a PBUS subdev that hands IRQs to the right subdevsMartin Peres2013-02-202-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to use PTHERM's IRQs for thermal monitoring but we need to route them first. On nv31-50, PBUS's IRQ line is shared with GPIOs IRQs. It seems like nv10-31 GPIO interruptions aren't well handled. I kept the original behaviour but it is wrong and may lead to an IRQ storm. Since we enable all PBUS IRQs, we need a way to avoid being stormed if we don't handle them. The solution I used was to mask the IRQs that have not been handled. This will also print one message in the logs to let us know. v2: drop the shared intr handler because of was racy v3: style fixes v4: drop a useless construct in the chipset-dependent INTR v5: add BUS to the disable mask v6 (Ben Skeggs): - general tidy to match the rest of the driver's style - nva3->nvc0, nva3 can be serviced just fine with nv50.c, rnndb even notes that the THERM_ALARM bit got left in the hw until fermi anyway.. so, it's not going to conflict - removed the peephole and user stuff, for the moment.. will handle them later if we find a good reason to actually care.. - limited INTR_EN to just what we can handle for now, mostly to prevent spam of unknown status bits (seen on at least nv4x) Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * drm/nouveau/therm: implement automatic fan managementMartin Peres2013-02-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | v2: improved design but drops safety monitoring (to be in a later patch) v3: fix locking and mode management v4: gently fallback to the no-control mode when temperature cannot be got and use kernel-provided min/max macros v5 (Ben Skeggs): - rebased on my previous patches v6: fix hysterisis management in trip-based auto fan management This commit also forbids access to fan management to nvc0+ chipsets as fan management is already taken care of my PDAEMON's default fw. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * drm/nouveau/bios: parse fan bump/slow periods, and trip pointsMartin Peres2013-02-201-0/+16
| | | | | | | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fan: add toggle fan supportMartin Peres2013-02-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | v2: change percent from int to atomic_t v3: random fixes v4 (Ben Skeggs): - adapted for split-out fan-control "protocol" structure - removed need for timer resched - support for forcing 'toggle' control on PWM boards Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * drm/nouveau/therm: cleanly separate pwm control logic from thermBen Skeggs2013-02-201-8/+14
| | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * drm/nva3/therm: add support for hardware fan tachometerBen Skeggs2013-02-201-0/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/therm: fix various style issues, make more consistentBen Skeggs2013-02-201-1/+14
| | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@labri.fr>
| * nvd0/therm: implement more appropriate pwm fan control functionsBen Skeggs2013-02-201-0/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau: add lockdep annotationsMarcin Slusarz2013-02-091-2/+5
|/ | | | | | | | | | | | | | | | 1) Lockdep thinks all nouveau subdevs belong to the same class and can be locked in arbitrary order, which is not true (at least in general case). Tell it to distinguish subdevs by (o)class type. 2) DRM client can be locked under user client lock - tell lockdep to put DRM client lock in a separate class. Reported-by: Arend van Spriel <arend@broadcom.com> Reported-by: Peter Hurley <peter@hurleysoftware.com> Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Reported-by: Daniel J Blueman <daniel@quora.org> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: stable@vger.kernel.org [3.7, but needs s/const ofuncs/ofuncs/ to build] Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clock: fix support for more than 2 monitors on nve0Aleksi Torhamo2013-01-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Fixes regression introduced in commit 70790f4f "drm/nouveau/clock: pull in the implementation from all over the place" When code was moved from nv50_crtc_set_clock to nvc0_clock_pll_set, the PLLs it is used for got limited to only the first two VPLLs. nv50_crtc_set_clock was only called to change VPLLs, so it didn't limit what it was used for in any way. Since nvc0_clock_pll_set is used for all PLLs, it has to specify which PLLs the code is used for, and only listed the first two VPLLs. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=58735 This patch is a -stable candidate for 3.7. Signed-off-by: Aleksi Torhamo <aleksi@torhamo.net> Tested-by: Aleksi Torhamo <aleksi@torhamo.net> Tested-by: Sean Santos <quantheory@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org
* drm/nouveau: fix nouveau_client allocation failure pathMarcin Slusarz2013-01-131-0/+3
| | | | | | | | Depending on the point of failure, freed object would be returned or memory leak would happen. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bios: cache ramcfg strap on later chipsetsBen Skeggs2012-12-231-0/+1
| | | | | | This fixes suspend/resume on at least Quadro 400. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bios: parse/display extra version componentBen Skeggs2012-12-231-0/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bios: implement opcode 0xa9Ben Skeggs2012-12-231-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bios: update gpio parsing apis to match current designBen Skeggs2012-12-231-3/+5
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie2012-12-102-6/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/nouveau/bios: fix DCB v1.5 parsingMarcin Slusarz2012-11-191-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | memcmp->nv_strncmp conversion, in addition to name change, should have inverted the return value. But nv_strncmp does not act like strncmp - it does not check for string terminator, returns true/false instead of -1/0/1 and has different parameters order. Let's rename it to nv_memcmp and let it act like memcmp. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: add missing pll_calc callsMaarten Lankhorst2012-11-191-1/+2
| | | | | | | | | | | | | | Fixes a null pointer dereference when reclocking on my fermi. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/core: fix the assumption that NVDEV_XXXX is always under 32Martin Peres2012-11-292-2/+2
| | | | | | | | | | | | | | | | It fixes a bug that would have been introduced when adding more sudevs/engines. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/ppp: remove nouveau_ppp base classBen Skeggs2012-11-291-39/+0
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | nvc0/ppp: initial implementation of engineMaarten Lankhorst2012-11-291-0/+1
| | | | | | | | | | | | | | Will allow use of the engine if firmware (nvXX_fuc086) provided. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | nvc0/vp: initial implementation of engineMaarten Lankhorst2012-11-291-0/+1
| | | | | | | | | | | | | | Will allow use of the engine if firmware (nvXX_fuc085) provided. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | nvc0/bsp: initial implementation of engineMaarten Lankhorst2012-11-291-0/+1
| | | | | | | | | | | | | | Will allow use of the engine if firmware (nvXX_fuc084) provided. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/vdec: remove nouveau_{bsp,vp} base classes, use nouveau_engine ↵Ben Skeggs2012-11-292-78/+0
| | | | | | | | | | | | | | | | | | | | | | directly Later chipsets use falcon anyway, and I can't currently see a good need for a shared base class. PPP will get the same treatment once Maarten's patches are merged. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nve0/vp: implement initial support for engineBen Skeggs2012-11-291-0/+1
| | | | | | | | | | | | Will allow use of the engine if firmware (nvXX_fuc085) provided. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nve0/bsp: implement initial support for engineBen Skeggs2012-11-291-0/+1
| | | | | | | | | | | | Will allow use of the engine if firmware (nvXX_fuc084) provided. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/core: implement shortcut for simple engctx constructionBen Skeggs2012-11-292-0/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvc0/copy: share interrupt handler with nva3Ben Skeggs2012-11-291-0/+2
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nv50/fb: implement trap handler as subdev interrupt handlerBen Skeggs2012-11-291-1/+0
| | | | | | | | | | | | | | nv50_fb_trap() will now be called automagically by the mc intr handler, rather than each engine's handler having to check for traps manually. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/copy: remove nouveau_copy base classBen Skeggs2012-11-291-39/+0
| | | | | | | | | | | | nva3/nvc0 are using falcon, nve0 is now using engine directly. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nv98/crypt: use nouveau_falcon base classBen Skeggs2012-11-291-39/+0
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau: initial falcon (fuc) engine base class implementationBen Skeggs2012-11-291-0/+80
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/dp: remove last bits of VBIOS parsing from DRM codeBen Skeggs2012-11-291-0/+7
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: calculate U script id in supervisor interruptBen Skeggs2012-11-291-0/+2
| | | | | | | | | | | | | | | | This is like we do on nv50:nvd9 already. There's been no problems seen yet with using this *seemingly* scratch register to store the value, but we won't be able to do this anymore once nv50's code is merged. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/bios: implement some dcb output entry parsing/matching functionsBen Skeggs2012-11-291-0/+5
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: move HDMI control to coreBen Skeggs2012-11-291-0/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: move HDA codec setup to coreBen Skeggs2012-11-291-0/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: call into core to handle dac power state changesBen Skeggs2012-11-291-0/+20
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: call into core to handle sor power state changesBen Skeggs2012-11-291-0/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/disp: move link training helpers into core as display methodsBen Skeggs2012-11-291-0/+19
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/core: allow representing method ranges in nouveau_omthdsBen Skeggs2012-11-291-2/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/core: expose full method calling capabilities with nv_execBen Skeggs2012-11-291-2/+8
| | | | | | | | | | | | | | nv_call() just allows mthd+u32 submission, nv_exec() exposes the mthd+data+size interface which will be used in future commits. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/bios: implement "full" BIT 'd' table (and subtable) parsing in coreBen Skeggs2012-11-292-32/+29
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/core: add some missing subdev/engine disable flagsBen Skeggs2012-11-291-0/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau/bios: implement BIT 'U' table (and subtable) parsing in coreBen Skeggs2012-11-291-0/+48
| | | | | | | | | | | | | | This will, in the near future, replace what's currently in the DRM nouveau_bios.c code. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0-nve0/disp: initial implementation of evo channel classesBen Skeggs2012-11-292-0/+25
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nv50/disp: initial implementation of the various channel object classesBen Skeggs2012-11-291-0/+103
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nv50/disp: create skeleton display/channel object classesBen Skeggs2012-11-291-0/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nvd0/dmaobj: initial bind() method implementationBen Skeggs2012-11-291-0/+9
| | | | | | | | | | | | | | Currently unused, and rudimentary. Lots to figure out here still, but this is sufficient for what disp will need. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud