aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-05-19amd64-agp: Probe unknown AGP devices the right wayBen Hutchings1-12/+15
The current initialisation code probes 'unsupported' AGP devices simply by calling its own probe function. It does not lock these devices or even check whether another driver is already bound to them. We must use the device core to manage this. So if the specific device id table didn't match anything and agp_try_unsupported=1, switch the device id table and call driver_attach() again. Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-19sis-agp: Remove SIS 760, handled by amd64-agpBen Hutchings1-8/+0
SIS 760 is listed in the device tables for both amd64-agp and sis-agp. amd64-agp is apparently preferable since it has workarounds for some BIOS misconfigurations that sis-agp doesn't handle. Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-19Merge remote branch 'anholt/drm-intel-next' into drm-nextDave Airlie594-3199/+8689
* anholt/drm-intel-next: (515 commits) drm/i915: Fix out of tree builds drm/i915: move fence lru to struct drm_i915_fence_reg drm/i915: don't allow tiling changes on pinned buffers v2 drm/i915: Be extra careful about A/D matching for multifunction SDVO drm/i915: Fix DDC bus selection for multifunction SDVO drm/i915: cleanup mode setting before unmapping registers drm/i915: Make fbc control wrapper functions drm/i915: Wait for the GPU whilst shrinking, if truly desperate. drm/i915: Use spatio-temporal dithering on PCH [MTD] Remove zero-length files mtdbdi.c and internal.ho pata_pcmcia / ide-cs: Fix bad hashes for Transcend and kingston IDs libata: Fix several inaccuracies in developer's guide slub: Fix bad boundary check in init_kmem_cache_nodes() raid6: fix recovery performance regression KEYS: call_sbin_request_key() must write lock keyrings before modifying them KEYS: Use RCU dereference wrappers in keyring key type code KEYS: find_keyring_by_name() can gain access to a freed keyring ALSA: hda: Fix 0 dB for Packard Bell models using Conexant CX20549 (Venice) ALSA: hda - Add quirk for Dell Inspiron 19T using a Conexant CX20582 ALSA: take tu->qlock with irqs disabled ...
2010-05-18drm/radeon/pm: fix device_create_file return value checks.Dave Airlie1-2/+7
print an error if these fail. Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: fix r6xx+ profile setupAlex Deucher1-61/+53
This patch is a combination of the previous two profile patches, but without the index bugs. It cleans up and fixes some issues with pm profile setup on r6xx chips. Some tables have different orderings for the power states, also, r600 only has 1 clock mode per power state. On desktop cards there are no battery modes, so the low and high power states are the same. For the low profile case, choose the lower clock mode. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: make pm spam debug onlyAlex Deucher4-24/+24
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: rework power managementAlex Deucher19-519/+790
- Separate dynpm and profile based power management methods. You can select the pm method by echoing the selected method ("dynpm" or "profile") to power_method in sysfs. - Expose basic 4 profile in profile method "default" - default clocks "auto" - select between low and high based on ac/dc state "low" - DC, low power mode "high" - AC, performance mode The current base profile is "default", but it should switched to "auto" once we've tested on more systems. Switching the state is a matter of echoing the requested profile to power_profile in sysfs. The lowest power states are selected automatically when dpms turns the monitors off in all states but default. - Remove dynamic fence-based reclocking for the moment. We can revisit this later once we have basic pm in. - Move pm init/fini to modesetting path. pm is tightly coupled with display state. Make sure display side is initialized before pm. - Add pm suspend/resume functions to make sure pm state is properly reinitialized on resume. - Remove dynpm module option. It's now selectable via sysfs. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: add support for no display power statesAlex Deucher8-40/+94
The lowest power states often cause display problems, so only enable them when all displays are off. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: fix lock ordering in ring, ib handlingAlex Deucher1-17/+22
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Use fences to gate entry to reclocking on <r600Matthew Garrett1-0/+8
GUI idle interrupts don't seem to work terribly well on r500 and earlier, so let's use a fence instead. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Split out ring locking and allocationMatthew Garrett2-6/+23
We need to handle the ring while we've already locked it, so split out the allocation and commit functions in order to allow them to be used. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: enable misc pm power state features on r1xx-r4xxAlex Deucher1-2/+0
voltage drop, dynamic voltage, dynamic sclk, pcie lane adjust, etc, Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: enable misc pm power state features on r5xx, rs6xxAlex Deucher2-4/+12
voltage drop, dynamic voltage, dynamic sclk, pcie lane adjust, etc, Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: re-enable gui idle interrupts on r6xx+Alex Deucher1-11/+13
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: take vram mutex pointer before derefing object.Dave Airlie1-2/+4
since derefing the object might free it. Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: more pm fixesAlex Deucher4-63/+45
- disable gui idle interrupt use Seems to hang some r5xx chips - move vbl range check into existing vbl check function in radeon_pm.c - disable crtc mc acccess for the whole reclocking process Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm: move radeon_fixed.h to shared drm_fixed.h headerBen Skeggs9-400/+400
Will be used by nouveau driver also in the near future. Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Enable memory reclocking on r100-500Matthew Garrett1-4/+5
This seems to be relatively stable now, so enable it for these chipsets too. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Try harder to ensure we reclock in vblankMatthew Garrett4-1/+39
The vblank interrupt on r600 doesn't seem to be especially reliable, so perform some sanity checks before the actual reclock. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Fix locking in power management pathsMatthew Garrett1-14/+4
The ttm code could take vram_mutex followed by cp_mutex, while the reclocking code would do the reverse. Hilarity could ensue. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Make sure that we determine the correct PM state before transitionMatthew Garrett1-0/+3
We need to choose the correct PM state to transition into before starting the actual change. Call radeon_get_power_state() at the top of the clock setting to do so. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Enable memory reclockong on r600Matthew Garrett1-9/+7
With luck, dynamic memory reclocking on r600 should be stable with the previous patches. Enable it. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Stop the ttm workqueue while reclockingMatthew Garrett1-0/+3
The ttm bo workqueue may touch objects while we're reclocking, so make sure it's blocked until we're done. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18ttm: Provide an API for starting and stopping the delayed workqueueMatthew Garrett2-0/+31
We want to be able to prevent the delayed workqueue from changing state while we're reclocking, so add an API to block and unblock it. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Take drm struct_mutex over reclockingMatthew Garrett1-0/+10
We need to block the drm core from doing anything that may touch our vram during reclock, so take the drm mutex for the duration. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Unmap vram pages when reclockingMatthew Garrett5-1/+39
Touching vram while the card is reclocking can lead to lockups. Unmap any pages that could be touched by the CPU and block any accesses to vram until the reclocking is complete. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18radeon: Unify PM entry pathsMatthew Garrett1-58/+32
There's a moderate amount of effort involved in setting the card up for clock transitions, so unify the codepaths to make it easier to implement. Signed-off-by: Matthew Garrett <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: rework power managementAlex Deucher5-56/+229
Add two new sysfs attributes: - dynpm - power_state Echoing 0/1 to dynpm disables/enables dynamic power management. The driver scales the sclk dynamically based on the number of queued fences. dynpm only scales sclk dynamically in single head mode. Echoing x.y to power_state selects a static power state (x) and clock mode (y). This allows you to statically select a power state and clock mode. Selecting a static clock mode will disable dynpm. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: add additional asic callbacksAlex Deucher12-0/+441
- pm_misc() - handles voltage, pcie lanes, and other non clock related power mode settings. Currently disabled. Needs further debugging - pm_prepare() - disables crtc mem requests right now. All memory clients need to be disabled when changing memory clocks. This function can be expanded to include disabling fb access as well. - pm_finish() - enable active memory clients. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: restore default power state on exitAlex Deucher4-1/+25
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: minor pm cleanupsAlex Deucher6-32/+24
- remove non_clock_info struct - track power state misc flags Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: clean power state printingAlex Deucher1-1/+1
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: don't enable pm if there is only on power stateAlex Deucher1-1/+1
Just adds overhead when the power state will never change. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/atom: load hwmon driversAlex Deucher1-26/+43
Hook the atom table parsing up to module loading, so we can automatically load the appropriate hwmon drivers. Based on initial patch for r6xx from Matthew Garrett Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: update display watermarks with power state changesAlex Deucher1-0/+5
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: add asic specific callbacks for getting power state (v2)Alex Deucher10-246/+413
This also simplifies the code and enables reclocking with multiple heads active by tracking whether the power states are single or multi-head capable. Eventually, we will want to select a power state based on external factors (AC/DC state, user selection, etc.). (v2) Update for evergreen Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: add asic specific callbacks for setting power state (v2)Alex Deucher8-49/+148
(v2) Add evergreen vbl checks Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: move pm state update to crtc functionsAlex Deucher4-20/+18
crtcs are what we ultimately care about wrt to pm. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/pm: interate across crtcs for vblankAlex Deucher1-14/+12
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms/atom/pm: rework power mode parsingAlex Deucher1-4/+19
On pre-r6xx, the power mode array is usually ordered: low ... high default On r6xx+: default low ... high Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: wait for gpu idle before changing power modeAlex Deucher1-0/+10
set proper wait condition as noted by Rafał Miłecki. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: add support for gui idle interrupts (v4)Alex Deucher9-1/+74
Useful for certain power management operations. You need to wait for the GUI engine (2D, 3D, CP, etc.) to be idle before changing clocks or adjusting engine parameters. (v2) Fix gui idle enable on pre-r6xx asics (v3) The gui idle interrrupt status bit is permanently asserted on pre-r6xx chips, but the interrrupt is still generated. workaround it in the driver. (v4) Add support for evergreen Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/radeon/kms: add gui_idle callbackAlex Deucher5-0/+34
Check to see if the GUI engine and related blocks (2D, 3D, CP, etc) are idle or not. There are a number of cases when we need to know if the drawing engine is busy. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/fbdev: fix cloning on fbconDave Airlie3-13/+96
Simple cloning rules compared to server: (a) single crtc (b) > 1 connector active (c) check command line mode (d) try and find 1024x768 DMT mode if no command line. (e) fail to clone Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm/fbdev: rework output polling to be back in the core. (v4)Dave Airlie26-157/+211
After thinking it over a lot it made more sense for the core to deal with the output polling especially so it can notify X. v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings. v3: add config lock take inside polling, add intel/nouveau poll init/fini calls v4: config lock was a bit agressive, only needed around connector list reading. otherwise it could re-enter. glisse: discard drm_helper_hpd_irq_event v3: Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm: off by one in drm_edid.cDan Carpenter1-1/+1
m == num_est3_modes is one past the end of the est3_modes[]. Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Adam Jackson <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18vga16fb, drm: vga16fb->drm handoffMarcin Slusarz4-12/+38
let vga16fb claim 0xA0000+0x10000 region as its aperture; drm drivers don't use it, so we have to detect it and kick vga16fb manually - but only if drm is driving the primary card Signed-off-by: Marcin Slusarz <[email protected]> Cc: James Simmons <[email protected]> Cc: Dave Airlie <[email protected]> Cc: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18fbmem, drm/nouveau: kick firmware framebuffers as soon as possibleMarcin Slusarz5-36/+71
Currently vesafb/efifb/... is kicked when hardware driver is registering framebuffer. To do it hardware must be fully functional, so there's a short window between start of initialisation and framebuffer registration when two drivers touch the hardware. Unfortunately sometimes it breaks nouveau initialisation. Fix it by kicking firmware driver(s) before we start touching the hardware. Reported-by: Didier Spaier <[email protected]> Tested-by: Didier Spaier <[email protected]> Signed-off-by: Marcin Slusarz <[email protected]> Cc: Ben Skeggs <[email protected]> Cc: Peter Jones <[email protected]> Cc: Andrew Morton <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18fbdev: allow passing more than one aperture for handoffMarcin Slusarz10-88/+123
It removes a hack from nouveau code which had to detect which region to pass to kick vesafb/efifb. Signed-off-by: Marcin Slusarz <[email protected]> Cc: Eric Anholt <[email protected]> Cc: Ben Skeggs <[email protected]> Cc: Thomas Hellstrom <[email protected]> Cc: Dave Airlie <[email protected]> Cc: Peter Jones <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-18drm: Prefix info printk about registering panic notifier with 'drm'Kirill Smelkov1-2/+2
Recently I've studied my system dmesg and seen this: <lots of stuff before> 1 [ 0.478416] ACPI: Battery Slot [C1B4] (battery present) 2 [ 0.478648] ACPI: Battery Slot [C1B3] (battery absent) 3 [ 0.906678] [drm] initialized overlay support 4 [ 1.762304] Console: switching to colour frame buffer device 128x48 5 [ 1.765211] fb0: inteldrmfb frame buffer device 6 [ 1.765242] registered panic notifier 7 [ 1.765272] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 8 [ 1.765372] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled <lots of stuff after> and it was not evident who registered that panic notifier on line 6. I'd bought it as some low-level stuff needed by kernel itself, but the time was inappropriate -- too late for such things. So I had to study sources to see it was drm who was registering switch-to-fb on panic. Let's avoid possible confusion and mark this message as going from drm subsystem. (I'm a bit unsure whether to use '[drm]:' or 'drm:' -- the rest of the kernel just uses 'topic:', and even in drm_fb_helper.c we use 'fb%d:' without [] brackets. Either way is ok with me.) Signed-off-by: Kirill Smelkov <[email protected]> Signed-off-by: Dave Airlie <[email protected]>