aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
Commit message (Collapse)AuthorAge
* drm/nv50/kms: prevent lockdep false-positive in page flipping pathBen Skeggs2013-03-19
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: fix return value of nouveau_object_del()Ben Skeggs2013-03-19
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/hwmon: do not expose a buggy temperature if it is unavailableMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm: display the availability of the internal sensorMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm: disable temperature management if the sensor isn't readableMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm: disable auto fan management if temperature is not availableMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv40/therm: reserve negative temperatures for errorsMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv40/therm: disable temperature reading if the bios misses some parametersMartin Peres2013-03-17
| | | | | | | Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm-ic: the temperature is off by sensor_constant, warn the userMartin Peres2013-03-17
| | | | | Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm: remove some confusion introduced by therm_modeMartin Peres2013-03-17
| | | | | | | | | | The kernel message "[ PTHERM][0000:01:00.0] Thermal management: disabled" is misleading as it actually means "fan management: disabled". This patch fixes both the source and the message to improve readability. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/therm: do not make assumptions on temperatureMartin Peres2013-03-17
| | | | | | | | | | | | In nouveau_therm_sensor_event, temperature is stored as an uint8_t even though the original interface returns an int. This change should make it more obvious when the sensor is either very-ill-calibrated or when we selected the wrong sensor style on the nv40 family. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv40/therm: increase the sensor's settling delay to 20msMartin Peres2013-03-17
| | | | | | | | | | | | | Based on my experience, 10ms wasn't always enough. Let's bump that to a little more. If this turns out to be insufficient-enough again, then an approach based on letting the sensor settle for several seconds before starting polling on the temperature would be better suited. This way, boot time wouldn't be impacted by those waits too much. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv40/therm: improve selection between the old and the new styleMartin Peres2013-03-17
| | | | | | | | | | | | The condition to select between the old and new style was a thinko as rnndb orders chipsets based on their release date (or general chronologie hw-wise) and not based on their chipset number. As the nv40 family is a mess when it comes to numbers, this patch introduces a switch-based selection between the old and new style. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: use correct tiling methods for m2mf buffer movesMarcin Slusarz2013-03-10
| | | | | | | Currently used only on original nv50, nvaa and nvac. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: idle channel before releasing notify objectMarcin Slusarz2013-03-10
| | | | | | | | Unmapping it while it's still in use (e.g. by M2MF) can lead to page faults and a lot of TRAP_M2MF spam in dmesg. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix regression in vblankingMaarten Lankhorst2013-03-10
| | | | | | | | | | | 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: encoder creation failure doesn't mean full init failureBen Skeggs2013-03-10
| | | | | | It's meant as a notification only, not a fatal error. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-: prevent some races between modesetting and page flippingBen Skeggs2013-03-03
| | | | | | nexuiz-glx + gnome-shell is able to trigger this a lot of the time. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/i2c: drop parent refcount when creating portsBen Skeggs2013-03-03
| | | | | | | | Fixes issue where i2c subdev never gets destroyed due to its subobjects holding references. This will mean the i2c subdev refcount goes negative during its destruction, but this isn't an issue in practice. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv84: fix regression in page flippingBen Skeggs2013-03-03
| | | | | | | Need to emit the semaphore ctxdma before trying to use the semaphore operations. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Fix typo in init_idx_addr_latched().Francisco Jerez2013-03-03
| | | | | | | Fixes script-based modesetting on some LVDS panels. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Disable AGP on PowerPC again.Francisco Jerez2013-03-03
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/graph: some random reg moved on keplerBen Skeggs2013-03-03
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds2013-02-25
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull drm merge from Dave Airlie: "Highlights: - TI LCD controller KMS driver - TI OMAP KMS driver merged from staging - drop gma500 stub driver - the fbcon locking fixes - the vgacon dirty like zebra fix. - open firmware videomode and hdmi common code helpers - major locking rework for kms object handling - pageflip/cursor won't block on polling anymore! - fbcon helper and prime helper cleanups - i915: all over the map, haswell power well enhancements, valleyview macro horrors cleaned up, killing lots of legacy GTT code, - radeon: CS ioctl unification, deprecated UMS support, gpu reset rework, VM fixes - nouveau: reworked thermal code, external dp/tmds encoder support (anx9805), fences sleep instead of polling, - exynos: all over the driver fixes." Lovely conflict in radeon/evergreen_cs.c between commit de0babd60d8d ("drm/radeon: enforce use of radeon_get_ib_value when reading user cmd") and the new changes that modified that evergreen_dma_cs_parse() function. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (508 commits) drm/tilcdc: only build on arm drm/i915: Revert hdmi HDP pin checks drm/tegra: Add list of framebuffers to debugfs drm/tegra: Fix color expansion drm/tegra: Split DC_CMD_STATE_CONTROL register write drm/tegra: Implement page-flipping support drm/tegra: Implement VBLANK support drm/tegra: Implement .mode_set_base() drm/tegra: Add plane support drm/tegra: Remove bogus tegra_framebuffer structure drm: Add consistency check for page-flipping drm/radeon: Use generic HDMI infoframe helpers drm/tegra: Use generic HDMI infoframe helpers drm: Add EDID helper documentation drm: Add HDMI infoframe helpers video: Add generic HDMI infoframe helpers drm: Add some missing forward declarations drm: Move mode tables to drm_edid.c drm: Remove duplicate drm_mode_cea_vic() gma500: Fix n, m1 and m2 clock limits for sdvo and lvds ...
| * Merge branch 'tilcdc-next' of git://people.freedesktop.org/~robclark/linux ↵Dave Airlie2013-02-20
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into drm-next KMS driver for TI LCD controller * 'tilcdc-next' of git://people.freedesktop.org/~robclark/linux: drm/tilcdc: add support for LCD panels (v5) drm/tilcdc: add encoder slave (v2) drm/i2c: nxp-tda998x (v3) drm/tilcdc: add TI LCD Controller DRM driver (v4) drm/nouveau: use i2c encoder helper wrappers drm: i2c encoder helper wrappers drm/cma: add debugfs helpers drm: small fix in drm_send_vblank_event() drm: Don't set the plane->fb to NULL on successfull set_plane drm/cma-helper: fixup compilation Conflicts: drivers/gpu/drm/Kconfig drivers/gpu/drm/Makefile drivers/gpu/drm/drm_fb_cma_helper.c
| | * drm/nouveau: use i2c encoder helper wrappersRob Clark2013-02-17
| | | | | | | | | | | | Signed-off-by: Rob Clark <robdclark@gmail.com>
| * | Merge branch 'drm-nouveau-next' of ↵Dave Airlie2013-02-20
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next restore debugfs vbios, fix multiple actions with supervisor intrs * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau: restore debugfs/vbios.rom support drm/nv50-/kms: remove UPDATE methods after each encoder disconnect drm/nvd0/disp: handle multiple actions from one set of supervisor intrs drm/nv50/disp: handle multiple actions from one set of supervisor intrs
| | * | drm/nouveau: restore debugfs/vbios.rom supportMarcin Slusarz2013-02-20
| | | | | | | | | | | | | | | | Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
| | * | drm/nv50-/kms: remove UPDATE methods after each encoder disconnectBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Supervisor can now handle more than one operation within a single series of interrupts. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * | drm/nvd0/disp: handle multiple actions from one set of supervisor intrsBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * | drm/nv50/disp: handle multiple actions from one set of supervisor intrsBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | | Merge branch 'drm-nouveau-next' of ↵Dave Airlie2013-02-20
| |\| | | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next Nothing terribly exciting in here probably: - reworked thermal stuff from mupuf/I, has a chance of possibly working well enough when we get to being able to reclock.. - driver will report mmio access faults on chipsets where it's supported - will now sleep waiting on fences on nv84+ rather than polling - some cleanup of the internal fencing, looking towards sli/dmabuf sync - initial support for anx9805 dp/tmds encoder - nv50+ display fixes related to the above, and also might fix a few other issues - nicer error reporting (will log process names with channel errors) - various other random fixes * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (87 commits) nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES drm/nouveau/i2c: add support for ddc/aux, and dp link training on anx9805 drm/nv50: initial kms support for off-chip TMDS/DP encoders drm/nv50-/disp: initial supervisor support for off-chip encoders drm/nv50-/disp: initial work towards supporting external encoders drm/nv50-/kms: remove unnecessary wait-for-completion points drm/nv50-/disp: move DP link training to core and train from supervisor drm/nv50-/disp: handle supervisor tasks from workqueue drm/nouveau/i2c: create proper chipset-specific class implementations drm/nv50-/disp: 0x0000 is a valid udisp config value drm/nv50/devinit: reverse the logic for running encoder init scripts drm/nouveau/bios: store a type/mask hash in parsed dcb data drm/nouveau/i2c: extend type to 16-bits, add lookup-by-type function drm/nouveau/i2c: aux channels not necessarily on nvio drm/nouveau/i2c: fix a bit of a thinko in nv_wri2cr helper functions drm/nouveau/bios: parse external transmitter type if off-chip drm/nouveau: store i2c port pointer directly in nouveau_encoder drm/nouveau/i2c: handle i2c/aux mux outside of port lookup function drm/nv50/graph: avoid touching 400724, it doesn't exist drm/nouveau: Fix DPMS 1 on G4 Snowball, from snow white to coal black. ...
| | * nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICESBen Hutchings2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If I build nouveau on ia64, Kconfig warns: warning: (DRM_NOUVEAU) selects ACPI_WMI which has unmet direct dependencies (X86 && X86_PLATFORM_DEVICES && ACPI) warning: (DRM_NOUVEAU) selects MXM_WMI which has unmet direct dependencies (X86 && X86_PLATFORM_DEVICES && ACPI_WMI) Make all the ACPI support depend on X86 and select X86_PLATFORM_DEVICES. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: add support for ddc/aux, and dp link training on anx9805Ben Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: initial kms support for off-chip TMDS/DP encodersBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50-/disp: initial supervisor support for off-chip encodersBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50-/disp: initial work towards supporting external encodersBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50-/kms: remove unnecessary wait-for-completion pointsBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | DP link training is now handled as part of the supervisor processing, and can no longer race with it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50-/disp: move DP link training to core and train from supervisorBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-20
| | | | | | | | | | | | | | | | | | i2c_algo_bit sleeps... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: create proper chipset-specific class implementationsBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50-/disp: 0x0000 is a valid udisp config valueBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | Return an out-of-range value instead to signal a failure from exec_clkcmp(). Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50/devinit: reverse the logic for running encoder init scriptsBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | A single U encoder table can match multiple DCB entries, whereas the reverse is not true and can lead to us not matching a DCB entry at all, and fail to initialise some encoders. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/bios: store a type/mask hash in parsed dcb dataBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | Matches format used by a couple of other vbios tables, useful to have laying around already calculated. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: extend type to 16-bits, add lookup-by-type functionBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | For off-chip transmitters we won't necessarily have an i2c table entry to lookup, but we can do it instead by encoding the type to include the extdev type and looking that up instead. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: aux channels not necessarily on nvioBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: fix a bit of a thinko in nv_wri2cr helper functionsBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/bios: parse external transmitter type if off-chipBen Skeggs2013-02-20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: store i2c port pointer directly in nouveau_encoderBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is about to become somewhat more complicated to determine in a number of cases, so store the "common" case (DDC/AUX) directly inside the encoder structure. Pre-nv50 code not touched except to fill the pointer, don't care. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau/i2c: handle i2c/aux mux outside of port lookup functionBen Skeggs2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | Not quite how I want it yet, but, I'll fix that at some point. For right now, it's needed because find() won't necessarily be used right before a transaction anymore. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>