aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu
AgeCommit message (Collapse)AuthorFilesLines
2010-05-26drm/i915: Convert more trace events to DEFINE_EVENTLi Zefan1-17/+7
Convert i915_gem_object_clflush to DEFINE_EVENT, and save ~0.5K: text data bss dec hex filename 13204 2732 12 15948 3e4c i915_trace_points.o.orig 12668 2732 12 15412 3c34 i915_trace_points.o No change in functionality. Signed-off-by: Li Zefan <[email protected]> Acked-by: Steven Rostedt <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-05-26drm/i915: add timeout to FBC disable waitsJesse Barnes1-2/+11
FBC disable on 965 can take long enough to trigger latency checks in the kernel so be sure to timeout after a reasonable period. Fixes https://bugzilla.kernel.org/show_bug.cgi?id=15015. Tested-by: James Ettle <[email protected]> Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-05-26drm/i915: implement BSD ring buffer V2Zou Nan hai6-15/+276
The BSD (bit stream decoder) ring is used for accessing the BSD engine which decodes video bitstream for H.264 and VC1 on G45+. It is asynchronous with the render ring and has access to separate parts of the GPU from it, though the render cache is coherent between the two. Signed-off-by: Zou Nan hai <[email protected]> Signed-off-by: Xiang Hai hao <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-05-26drm/i915: convert some gem structures to per-ring V2Zou Nan hai7-153/+207
The active list and request list move into the ringbuffer structure, so each can track its active objects in the order they are in that ring. The flushing list does not, as it doesn't matter which ring caused data to end up in the render cache. Objects gain a pointer to the ring they are active on (if any). Signed-off-by: Zou Nan hai <[email protected]> Signed-off-by: Xiang Hai hao <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-05-26drm/i915: introduce intel_ring_buffer structure (V2)Zou Nan hai10-376/+603
Introduces a more complete intel_ring_buffer structure with callbacks for setup and management of a particular ringbuffer, and converts the render ring buffer consumers to use it. Signed-off-by: Zou Nan hai <[email protected]> Signed-off-by: Xiang Hai hao <[email protected]> [anholt: Fixed up whitespace fail and rebased against prep patches] Signed-off-by: Eric Anholt <[email protected]>
2010-05-26drm/i915: Rename dev_priv->ring to dev_priv->render_ring.Eric Anholt7-55/+55
With the advent of the BSD ring, be clear about which ring this is. The docs are pretty consistent with calling this the Render engine at this point.
2010-05-26drm/i915: Move ringbuffer-related code to intel_ringbuffer.c.Eric Anholt6-534/+592
This is preparation for supporting multiple ringbuffers on Ironlake. The non-copy-and-paste changes are: - de-staticing functions - I915_GEM_GPU_DOMAINS moving to i915_drv.h to be used by both files. - i915_gem_add_request had only half its implementation copy-and-pasted out of the middle of it.
2010-05-26drm/i915: Fail to load driver if KMS request without GEMChris Wilson1-0/+7
The i915's implementation of KMS requires GEM in order to manage the memory and execution domains of the framebuffer and associated resources. By the point at which we detect broken a BIOS and need to disable GEM, we have already registered ourselves as a KMS driver with several subsystems. Rather than introducing a fragile unwind and attempt to continue with UMS, spit out an error and unload the driver. References: [Bug 15754] IP: [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm] BUG: unable to handle kernel NULL pointer dereference at (null) https://bugzilla.kernel.org/show_bug.cgi?id=15754 [drm:i915_driver_load] *ERROR* Detected broken video BIOS with 262140/262144kB of video memory stolen. [drm:i915_driver_load] *ERROR* Disabling GEM. (try reducing stolen memory or updating the BIOS to fix). i915 0000:00:02.0: irq 30 for MSI/MSI-X [drm] set up 255M of stolen space BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm] PGD 69719067 PUD 69dda067 PMD 0 Oops: 0000 [#1] PREEMPT SMP last sysfs file: /sys/module/snd_seq_oss/initstate CPU 1 Pid: 867, comm: modprobe Not tainted 2.6.33-ARCH #1 G43Twins-FullHD/To Be Filled By O.E.M. RIP: 0010:[<ffffffffa0207589>] [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm] RSP: 0018:ffff8800699f3af8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffffffffffffff RCX: 0000000000000000 RDX: 0000000000001000 RSI: 0000000000001000 RDI: ffff8800693d0f78 RBP: ffff8800699f3b18 R08: 0000000000001000 R09: 0000000000000000 R10: 2222222222222222 R11: 0000000000000000 R12: ffff880068de70c0 R13: 0000000000001000 R14: 0000000000000000 R15: ffff8800689cb000 FS: 00007fa93f4e5700(0000) GS:ffff880001880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 00000000695a0000 CR4: 00000000000406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process modprobe (pid: 867, threadinfo ffff8800699f2000, task ffff8800694f4740) Stack: ffff880068de73c0 ffff880068de70c0 ffff8800689cb000 0000000000001000 <0> ffff8800699f3b68 ffffffffa0299f63 ffff8800693d0f78 0000120068de70c0 <0> ffff8800689cb000 ffff880068de73c0 ffff880068de70c0 ffff8800689cb000 Call Trace: [<ffffffffa0299f63>] i915_gem_object_bind_to_gtt+0x83/0x360 [i915] [<ffffffffa029a2e5>] i915_gem_object_pin+0xa5/0xb0 [i915] [<ffffffffa029a3c5>] i915_gem_init_ringbuffer+0xd5/0x510 [i915] [<ffffffffa028dbee>] i915_driver_load+0x4ce/0xd00 [i915] [<ffffffffa0205d37>] ? drm_sysfs_device_add+0x87/0xb0 [drm] [<ffffffffa0203363>] ? drm_get_minor+0x1d3/0x330 [drm] [<ffffffffa02037e6>] drm_get_dev+0x326/0x580 [drm] [<ffffffffa02bc0a5>] i915_pci_probe+0x10/0xd0 [i915] [<ffffffff811e98a2>] local_pci_probe+0x12/0x20 [<ffffffff811ea8e0>] pci_device_probe+0x80/0xb0 [<ffffffff8127b12a>] ? driver_sysfs_add+0x5a/0x90 [<ffffffff8127b273>] driver_probe_device+0x93/0x1a0 [<ffffffff8127b413>] __driver_attach+0x93/0xa0 [<ffffffff8127b380>] ? __driver_attach+0x0/0xa0 [<ffffffff8127a8f8>] bus_for_each_dev+0x68/0x90 [<ffffffff8127b0c9>] driver_attach+0x19/0x20 [<ffffffff8127a0ad>] bus_add_driver+0xcd/0x2d0 [<ffffffff8127b718>] driver_register+0x78/0x140 [<ffffffff811eab91>] __pci_register_driver+0x51/0xd0 [<ffffffffa02d6000>] ? i915_init+0x0/0x52 [i915] [<ffffffffa01fdc31>] drm_init+0x111/0x120 [drm] [<ffffffff810eb0cd>] ? register_shrinker+0x4d/0x60 [<ffffffffa02d6000>] ? i915_init+0x0/0x52 [i915] [<ffffffffa02d6050>] i915_init+0x50/0x52 [i915] [<ffffffff81002047>] do_one_initcall+0x37/0x1a0 [<ffffffff8108ed17>] sys_init_module+0xd7/0x250 [<ffffffff81009fc2>] system_call_fastpath+0x16/0x1b Code: eb 29 49 8b 41 28 31 d2 49 f7 f5 85 d2 74 39 44 89 c0 29 d0 48 89 c2 48 01 f2 49 39 d2 73 29 0f 1f 00 49 89 da 4c 89 d3 4d 89 d9 <4d> 8b 19 49 39 f9 41 0f 18 0b 74 2b 4d 8b 51 30 4d 89 cc 49 39 RIP [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm] RSP <ffff8800699f3af8> CR2: 0000000000000000 Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-05-26Merge branch 'drm-linus' of ↵Linus Torvalds8-5/+33
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: agp: amd64, fix pci reference leaks drm/edid: Allow non-fatal checksum errors in CEA blocks drm/radeon/kms: suppress a build warning (unused variable) drm: Fixes linux-next & linux-2.6 checkstack warnings: nouveau: fix acpi_lid_open undefined drm/radeon/kms: release AGP bridge at suspend
2010-05-26drm/edid: Allow non-fatal checksum errors in CEA blocksAdam Jackson1-1/+4
Switches will try to update the topology address and not correctly fix up the checksum, so just let it slide. https://bugs.freedesktop.org/28229 Signed-off-by: Adam Jackson <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-26drm/radeon/kms: suppress a build warning (unused variable)Stefan Richter1-0/+1
At least 'make CONFIG_DEBUG_SECTION_MISMATCH=y' causes drivers/gpu/drm/radeon/atombios_crtc.c: In function 'atombios_crtc_set_pll': drivers/gpu/drm/radeon/atombios_crtc.c:684: warning: 'pll' may be used uninitialized in this function which has the looks of a falso positive. Add a default: case so that gcc rests assured that all possible pll_id's are covered. Keep the present cases that fall through to the default one for self-documentation. Signed-off-by: Stefan Richter <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-24drm: Fixes linux-next & linux-2.6 checkstack warnings:Prarit Bhargava2-3/+18
drivers/gpu/drm/nouveau/nv40_graph.c: In function `nv40_graph_init': drivers/gpu/drm/nouveau/nv40_graph.c:400: warning: the frame size of 1184 bytes is larger than 1024 bytes drivers/gpu/drm/radeon/radeon_atombios.c: In function `radeon_get_atom_connector_info_from_supported_devices_table': drivers/gpu/drm/radeon/radeon_atombios.c:857: warning: the frame size of 1872 bytes is larger than 1024 bytes Signed-off-by: Prarit Bhargava <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-24nouveau: fix acpi_lid_open undefinedRandy Dunlap1-1/+2
When CONFIG_ACPI_BUTTON=m (and probably when ACPI_BUTTON is not enabled) and NOUVEAU is built-in (not as a loadable module): nouveau_connector.c:(.text+0xe17ce): undefined reference to `acpi_lid_open' Signed-off-by: Randy Dunlap <[email protected]> Acked-by: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-24drm/radeon/kms: release AGP bridge at suspendJerome Glisse3-0/+8
I think it's good to release the AGP bridge at suspend and reacquire it at resume. Also fix : https://bugzilla.kernel.org/show_bug.cgi?id=15969 Signed-off-by: Jerome Glisse <[email protected]> Cc: stable <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-21Merge branch 'drm-for-2.6.35' of ↵Linus Torvalds136-5291/+11992
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-for-2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (207 commits) drm/radeon/kms/pm/r600: select the mid clock mode for single head low profile drm/radeon: fix power supply kconfig interaction. drm/radeon/kms: record object that have been list reserved drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU. drm/radeon/kms: don't default display priority to high on rs4xx drm/edid: fix typo in 1600x1200@75 mode drm/nouveau: fix i2c-related init table handlers drm/nouveau: support init table i2c device identifier 0x81 drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlers drm/nouveau: display error message for any failed init table opcode drm/nouveau: fix init table handlers to return proper error codes drm/nv50: support fractional feedback divider on newer chips drm/nv50: fix monitor detection on certain chipsets drm/nv50: store full dcb i2c entry from vbios drm/nv50: fix suspend/resume with DP outputs drm/nv50: output calculated crtc pll when debugging on drm/nouveau: dump pll limits entries when debugging is on drm/nouveau: bios parser fixes for eDP boards drm/nouveau: fix a nouveau_bo dereference after it's been destroyed drm/nv40: remove some completed ctxprog TODOs ...
2010-05-21sysfs: add struct file* to bin_attr callbacksChris Wright1-2/+3
This allows bin_attr->read,write,mmap callbacks to check file specific data (such as inode owner) as part of any privilege validation. Signed-off-by: Chris Wright <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-05-21drm/radeon/kms/pm/r600: select the mid clock mode for single head low profileAlex Deucher1-1/+1
This saves some more power at the expense of performance. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-21Merge remote branch 'nouveau/for-airlied' into drm-nextDave Airlie15-223/+1067
* nouveau/for-airlied: drm/nouveau: fix i2c-related init table handlers drm/nouveau: support init table i2c device identifier 0x81 drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlers drm/nouveau: display error message for any failed init table opcode drm/nouveau: fix init table handlers to return proper error codes drm/nv50: support fractional feedback divider on newer chips drm/nv50: fix monitor detection on certain chipsets drm/nv50: store full dcb i2c entry from vbios drm/nv50: fix suspend/resume with DP outputs drm/nv50: output calculated crtc pll when debugging on drm/nouveau: dump pll limits entries when debugging is on drm/nouveau: bios parser fixes for eDP boards drm/nouveau: fix a nouveau_bo dereference after it's been destroyed drm/nv40: remove some completed ctxprog TODOs drm/nv04: Implement missing nv04 PGRAPH methods in software. drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.
2010-05-21drm/radeon: fix power supply kconfig interaction.Dave Airlie2-1/+1
radeon needs power supply to get correct PM info so select it at the radeon level not at the kms option. Signed-off-by: Dave Airlie <[email protected]>
2010-05-21drm/radeon/kms: record object that have been list reservedJerome Glisse2-1/+6
list reservation was too optimistic about ttm object reservation and could think that an object reserved by some other process as reserved by the list reservation which was false. Thus when unreserving the list it might unreserve object that it didn't reserved in the list. Sorry if it's hard to follow but this kind of things are just causing headheck. Signed-off-by: Jerome Glisse <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-21drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU.Michel Dänzer1-1/+1
Fixes AGP initialization failure with Apple UniNorth bridges due to trying to ioremap() normal RAM. Signed-off-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-21drm/radeon/kms: don't default display priority to high on rs4xxAlex Deucher1-1/+4
Seems to cause issues with the sound hardware. Fixes kernel bug 15982: https://bugzilla.kernel.org/show_bug.cgi?id=15982 Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-05-21drm/edid: fix typo in 1600x1200@75 modeAlex Deucher1-1/+1
Spotted by Scott Bertilson. Fixes fdo bug 28146. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Mark Marshall <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-20Merge branch 'for-linus' of ↵Linus Torvalds3-5/+5
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits) vlynq: make whole Kconfig-menu dependant on architecture add descriptive comment for TIF_MEMDIE task flag declaration. EEPROM: max6875: Header file cleanup EEPROM: 93cx6: Header file cleanup EEPROM: Header file cleanup agp: use NULL instead of 0 when pointer is needed rtc-v3020: make bitfield unsigned PCI: make bitfield unsigned jbd2: use NULL instead of 0 when pointer is needed cciss: fix shadows sparse warning doc: inode uses a mutex instead of a semaphore. uml: i386: Avoid redefinition of NR_syscalls fix "seperate" typos in comments cocbalt_lcdfb: correct sections doc: Change urls for sparse Powerpc: wii: Fix typo in comment i2o: cleanup some exit paths Documentation/: it's -> its where appropriate UML: Fix compiler warning due to missing task_struct declaration UML: add kernel.h include to signal.c ...
2010-05-19drm/nouveau: fix i2c-related init table handlersBen Skeggs1-39/+38
Mutliple issues. INIT_ZM_I2C_BYTE/INIT_I2C_BYTE didn't even try and use the register value, and all the handlers were using the wrong slave address. Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: support init table i2c device identifier 0x81Ben Skeggs1-0/+3
It appears to be meant to reference the second "default index". Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlersBen Skeggs1-77/+88
We may not have parsed the entry yet if the i2c_index is for an i2c bus that's not referenced by a DCB encoder. This could be done oh so much more nicely, except we have to care about prehistoric DCB tables too, and they make life painful. Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: display error message for any failed init table opcodeBen Skeggs1-16/+23
Some handlers don't report specific errors, but we still *really* want to know if we failed to parse a complete init table. Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: fix init table handlers to return proper error codesBen Skeggs1-23/+28
We really want to be able to distinguish between INIT_DONE and an actual error sometimes. This commit fixes up several lazy "return 0;" to be actual error codes, and explicitly reserves "0" as "success, but stop parsing this table". Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv50: support fractional feedback divider on newer chipsBen Skeggs4-24/+120
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv50: fix monitor detection on certain chipsetsBen Skeggs1-5/+16
There appears to be some kind of switch on certain chips to control whether the DP auxch or traditional i2c bus will be operational on a connector, this commit hopefully fixes nouveau to do the right thing. Likely only relevent on chips with DP outputs. Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv50: store full dcb i2c entry from vbiosBen Skeggs2-2/+7
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv50: fix suspend/resume with DP outputsBen Skeggs4-5/+46
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv50: output calculated crtc pll when debugging onBen Skeggs1-0/+6
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: dump pll limits entries when debugging is onBen Skeggs1-25/+26
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: bios parser fixes for eDP boardsBen Skeggs1-0/+124
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: fix a nouveau_bo dereference after it's been destroyedBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv40: remove some completed ctxprog TODOsBen Skeggs1-5/+0
I actually thought these were gone already when the initial commit was done.. I guess not! Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nv04: Implement missing nv04 PGRAPH methods in software.Marcin Kościelnicki1-13/+553
Signed-off-by: Marcin Kościelnicki <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.Marcin Kościelnicki1-1/+1
Signed-off-by: Marcin Kościelnicki <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-05-19drm/radeon: fix hdmi offset bug reported by smatch.Dave Airlie1-1/+1
Reported-by: Dan Carpenter Signed-off-by: Dave Airlie <[email protected]>
2010-05-19drm/radeon/kms: hpd cleanupAlex Deucher4-16/+15
- Use radeon hpd enum consistently (in both hotplug and dp) - Legacy r100 with DVI should be HPD_1 not NONE Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-05-19drm/radeon/kms: reset ddc_bus in object header parsingAlex Deucher1-3/+2
Some LVDS connectors don't have a ddc bus, so reset the ddc bus to invalid before parsing the next connector to avoid using stale ddc bus data. Should fix fdo bug 28164. Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-05-19Merge remote branch 'anholt/drm-intel-next' into drm-nextDave Airlie35-220/+526
* 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]>