Kristian Høgsberg [Thu, 31 Jul 2008 19:18:32 +0000 (15:18 -0400)]
Merge commit 'origin/master' into modesetting-gem
Conflicts:
linux-core/Makefile.kernel
linux-core/ati_pcigart.c
linux-core/drm_compat.h
linux-core/drm_irq.c
linux-core/drm_lock.c
linux-core/i915_drv.c
shared-core/i915_dma.c
shared-core/i915_drv.h
shared-core/i915_irq.c
shared-core/nouveau_mem.c
shared-core/radeon_cp.c
shared-core/radeon_drv.h
Kristian Høgsberg [Tue, 22 Jul 2008 18:24:32 +0000 (14:24 -0400)]
Make it compile again.
Dave Airlie [Wed, 30 Jul 2008 06:52:13 +0000 (16:52 +1000)]
i915: more version checks
Dave Airlie [Wed, 30 Jul 2008 06:26:51 +0000 (16:26 +1000)]
i915: add version checks for opregion on old kernels
Nicolai Haehnle [Tue, 29 Jul 2008 17:56:51 +0000 (19:56 +0200)]
r300: Fix cliprect emit
This makes our handling of cliprects sane. drm_clip_rect always has exclusive
bottom-right corners, but the hardware expects inclusive bottom-right corners,
so we adjust this here.
This complements Michel Daenzer's commit
57aea290e1e0a26d1e74df6cff777eb9f038f1f8
to Mesa. See also http://bugs.freedesktop.org/show_bug.cgi?id=16123 .
Stuart Bennett [Tue, 29 Jul 2008 01:32:13 +0000 (02:32 +0100)]
nouveau: fix nv04 fifo context save to save reg contents, not reg offset
clearly the function had never been used :)
Stuart Bennett [Tue, 29 Jul 2008 01:26:34 +0000 (02:26 +0100)]
Alex Deucher [Sat, 26 Jul 2008 20:57:02 +0000 (16:57 -0400)]
NV50: s/FALSE/false/
Stefan Becker [Sat, 26 Jul 2008 14:49:14 +0000 (16:49 +0200)]
radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
Nicolai Haehnle [Sat, 26 Jul 2008 09:39:10 +0000 (11:39 +0200)]
r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEX
DRAW_INDEX writes a vertex count to VAP_VF_CNTL. Docs say that behaviour
is undefined (i.e. lockups happen) when this write is not followed by the
right number of vertex indices.
Thus we used to do the wrong thing when drawing across many cliprects was
necessary, because we emitted a sequence
DRAW_INDEX, DRAW_INDEX, INDX_BUFFER, INDX_BUFFER
instead of
DRAW_INDEX, INDX_BUFFER, DRAW_INDEX, INDX_BUFFER
The latter is what we're doing now and which ought to be correct.
Dave Airlie [Fri, 25 Jul 2008 22:56:43 +0000 (08:56 +1000)]
tests: add some basic radeon gem tests
Dave Airlie [Fri, 25 Jul 2008 22:56:23 +0000 (08:56 +1000)]
radeon: add initial atombios modesetting and GEM -> TTM translation layer.
This is an initial import of the atom bios parser with modesetting support
for r500 hw using atombios. It also includes a simple memory manager
layer that translates a radeon GEM style interface onto TTM internally.
So far this memory manager has only been used for pinned object allocation
for the DDX to test modesetting.
Dave Airlie [Fri, 25 Jul 2008 22:46:38 +0000 (08:46 +1000)]
Merge remote branch 'origin/modesetting-101' into modesetting-gem
Dave Airlie [Fri, 25 Jul 2008 03:30:08 +0000 (13:30 +1000)]
drm: don't set the signal blocker on the master process.
this lets us debug the X server through xkb startup.
Not sure what the correct answer is, probably X needs to drop
the lock when execing stuff, with input hotplug it can get
xkb stuff at any time I believe.
Dave Airlie [Fri, 25 Jul 2008 22:43:59 +0000 (08:43 +1000)]
modesetting: pass file priv to cursor
Dave Airlie [Fri, 25 Jul 2008 22:43:01 +0000 (08:43 +1000)]
nv50: remove TRUE/FALSE
Dave Airlie [Fri, 25 Jul 2008 22:41:01 +0000 (08:41 +1000)]
modesetting: pass file_priv into cursor set functions
Dave Airlie [Fri, 25 Jul 2008 22:38:59 +0000 (08:38 +1000)]
Merge remote branch 'origin/modesetting-101' into modesetting-gem
Robert Noland [Fri, 25 Jul 2008 17:46:28 +0000 (13:46 -0400)]
[FreeBSD] Duh, we need to actually define the drm_modeset_ctl...
Dave Airlie [Fri, 25 Jul 2008 03:30:08 +0000 (13:30 +1000)]
drm: don't set the signal blocker on the master process.
this lets us debug the X server through xkb startup.
Not sure what the correct answer is, probably X needs to drop
the lock when execing stuff, with input hotplug it can get
xkb stuff at any time I believe.
Dave Airlie [Thu, 24 Jul 2008 05:22:44 +0000 (15:22 +1000)]
drm: use correct mode destructor
Robert Noland [Thu, 24 Jul 2008 04:21:00 +0000 (00:21 -0400)]
[FreeBSD] Catch up to linux on vblank-rework
Robert Noland [Wed, 23 Jul 2008 23:55:06 +0000 (19:55 -0400)]
i915: Move all of the irq install/uninstall to load time.
This resolves a panic on FreeBSD which was caused by trying
to re-initialize the swap lock. It's just much easier to
initialize all of the locks at load time. It should also
ensure that the vblank structures are available earlier.
Dave Airlie [Tue, 22 Jul 2008 08:47:27 +0000 (18:47 +1000)]
radeon: fix typo with a better typo
Dave Airlie [Tue, 22 Jul 2008 08:10:03 +0000 (18:10 +1000)]
radeon: fix type DST vs Z cache flush
Robert Noland [Mon, 21 Jul 2008 22:04:02 +0000 (18:04 -0400)]
[FreeBSD] Improve upper_32_bits define.
Thanks to airlied.
Maarten Maathuis [Mon, 21 Jul 2008 14:57:25 +0000 (16:57 +0200)]
NV50: Don't create a "native" mode for LVDS when there is none.
Maarten Maathuis [Mon, 21 Jul 2008 14:40:55 +0000 (16:40 +0200)]
NV50: don't fail on LVDS by default
Maarten Maathuis [Mon, 21 Jul 2008 12:50:07 +0000 (14:50 +0200)]
NV50: Use bios table for load pattern when possible.
Maarten Maathuis [Mon, 21 Jul 2008 12:29:13 +0000 (14:29 +0200)]
NV50: Do detect with hpd and load detect if possible.
- Appropriate error messages when an unknown situation is encountered are included.
- Fallback to i2c will occur when needed.
Michel Dänzer [Mon, 21 Jul 2008 11:43:12 +0000 (13:43 +0200)]
Remove accidental leftover tests.
Thanks to Nicolai Haehnle for pointing this out on IRC.
Michel Dänzer [Mon, 21 Jul 2008 09:48:04 +0000 (11:48 +0200)]
Reinstate dev->vblank_enabled[].
I incorrectly thought it was obsolete.
Michel Dänzer [Mon, 21 Jul 2008 06:16:59 +0000 (08:16 +0200)]
Drop workaround for driver vblank counter going backwards.
The driver code that caused this is no longer necessary and has been dropped.
Michel Dänzer [Mon, 21 Jul 2008 06:16:59 +0000 (08:16 +0200)]
radeon: Post-vblank-rework-rework cleanups.
Thanks to the reworked vblank-rework, we can just use the hardware frame
counter directly, and make the RADEON_PARAM_VBLANK_CRTC getparam just return
what was set by the corresponding setparam.
Michel Dänzer [Mon, 21 Jul 2008 06:16:55 +0000 (08:16 +0200)]
vblank-rework rework cleanups.
Remove some dead/obsolete code and make drm_update_vblank_count() static.
Michel Dänzer [Mon, 21 Jul 2008 06:13:45 +0000 (08:13 +0200)]
Remove obsolete dev->vblank_suspend[crtc] tests.
Caused drm_update_vblank_count() not to do its thing when called from
drm_modeset_ctl() -> drm_vblank_get().
The vblank functionality no longer needs to be suspended during a modeset, so
rename the field to vblank_inmodeset.
Maarten Maathuis [Sun, 20 Jul 2008 13:40:40 +0000 (15:40 +0200)]
NV50: delay changing gpu<->non-gpu scaling modes until next modeset
Maarten Maathuis [Sun, 20 Jul 2008 12:58:46 +0000 (14:58 +0200)]
modesetting-101: Only store property value when set_property was successful.
Maarten Maathuis [Sun, 20 Jul 2008 12:55:59 +0000 (14:55 +0200)]
NV50: LVDS always needs some kind of gpu scaling
Maarten Maathuis [Sun, 20 Jul 2008 12:51:22 +0000 (14:51 +0200)]
modesetting-101: set_property should return an int, not a bool
Maarten Maathuis [Sun, 20 Jul 2008 11:49:18 +0000 (13:49 +0200)]
modesetting-101: implement optional scaling and dithering properties
Maarten Maathuis [Sat, 19 Jul 2008 22:09:06 +0000 (00:09 +0200)]
drm: As a workaround don't tear down sg with a modesetting driver.
- This allows me to maintain a useful prototype driver.
Jesse Barnes [Sat, 19 Jul 2008 17:18:02 +0000 (13:18 -0400)]
i915: convert to using drm_vblank_get/put around vblank counter usage
All interrupt off vblank count updates are done in drm_vblank_get/put
now, so convert users of the vblank counter over to that interface.
Jesse Barnes [Sat, 19 Jul 2008 17:15:23 +0000 (13:15 -0400)]
Update vblank code to new API
In my last push I forgot to convert users of drm_update_vblank_count
over to drm_vblank_get/put, since that's where any interrupt off->on
update accounting is done now. Since the modeset ioctl did something
similar (an open coded update of the counter) convert it over to using
get/put too, which saves us from having to deal with every combination
of interrupt off & on between calls.
Ben Skeggs [Sun, 22 Jun 2008 15:24:11 +0000 (01:24 +1000)]
nv50: use same dma object for fb/tt access
We depend on the VM fully now for memory protection, separate DMA objects
for VRAM and GART are unneccesary. However, until the next interface break
(soon) a client can't depend on the objects being the same and must still
call NV_OBJ_SET_DMA_* methods appropriately.
Ben Skeggs [Tue, 24 Jun 2008 18:39:32 +0000 (04:39 +1000)]
nouveau: interface changes for nv5x 3d
Dave Airlie [Fri, 18 Jul 2008 04:30:57 +0000 (14:30 +1000)]
radeon: remove microcode version
Dave Airlie [Thu, 19 Jun 2008 01:38:43 +0000 (11:38 +1000)]
drm/radeon: fixup 0 vs NULL
Robert Noland [Thu, 17 Jul 2008 18:01:04 +0000 (14:01 -0400)]
[FreeBSD] drm_irq.c updates for vblank fixes.
Jesse Barnes [Thu, 17 Jul 2008 17:51:24 +0000 (13:51 -0400)]
i915: remove old broken vblank code
Remove the unused (and broken) "in vblank" code now that the core has
been fixed to use a counter while interrupts are enabled. Also make the
vblank pipe get/set ioctls into dumb stub functions, since with the new
code we can no longer let userspace control whether vblank interrupts
are enabled, or the core code will misbehave.
Jesse Barnes [Thu, 17 Jul 2008 17:48:14 +0000 (13:48 -0400)]
Avoid incorrect vblank wakeups
The current code uses the hw vblank counter exclusively, which can lead
to wakeups during the active period rather than during the vblank period
if the hw counter counts displayed frames rather than vblank periods.
This change coverts the code over to using the counter while interrupts
are enabled, fixing that issue. It also includes a couple of related
changes: one to not enable the new enable/disable behavior until the
modeset ioctl is called (to preserve old client behavior) and another to
account for lost events due to mode setting with the new counter scheme.
BSD will require similar changes to its drm_irq.c code, but they should
be straightforward.
Robert Noland [Thu, 17 Jul 2008 03:39:25 +0000 (23:39 -0400)]
FreeBSD: Fix radeon build
Owain Gordon Ainsworth [Mon, 7 Jul 2008 16:23:48 +0000 (17:23 +0100)]
BSD: change drm_locked_task*() to use the same scheme as linux.
The current code can sleep in an interrupt handler, that is bad. So
instead if we can't grab the lock, flag it and run the tasklet on
unlock.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Robert Noland [Mon, 9 Jun 2008 12:54:53 +0000 (08:54 -0400)]
[FreeBSD] We aren't allowed to hold locks over bus_dma_tag_create or bus_dmamem_alloc.
Hong Liu [Tue, 15 Jul 2008 17:14:17 +0000 (10:14 -0700)]
This is a modified version of Hong's patch from last month, with a few
modifications to make it work correctly on my test hardware (altered the
backlight write function, made it enable the legacy backlight controller
interrupts on mobile hardware, sorted the interrupt function so we don't
get an excessive number of vblank interrupts). This lets the backlight
keys on my T61 work properly, though there's a 750msec or so delay
between the request and the brightness actually changing - this sounds
awfully like the hardware spinning waiting for a status flag to become
ready, but as far as I can tell they're all set correctly. If anyone can
figure out what's wrong here, it'd be nice to know.
Some of the functions are still stubs and just tell the hardware that
the request was successful. These can be filled in as kernel modesetting
gets integrated. I think it's worth getting this in anyway, since it's
required for backlight control to work properly on some new platforms.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Dave Airlie [Tue, 15 Jul 2008 10:27:14 +0000 (20:27 +1000)]
drm: fix missing symbol export
Dave Airlie [Tue, 15 Jul 2008 06:18:22 +0000 (16:18 +1000)]
drm: add fix for PAT on radeon with 2.6.26
Dave Airlie [Tue, 15 Jul 2008 06:18:04 +0000 (16:18 +1000)]
drm/pcigart: fix warning
Dave Airlie [Sat, 12 Jul 2008 06:32:09 +0000 (16:32 +1000)]
modesetting/helper: fix array overrun - count should be reset here
Dave Airlie [Wed, 9 Jul 2008 04:53:47 +0000 (14:53 +1000)]
Merge remote branch 'origin/modesetting-101' into modesetting-gem
martin capitanio [Tue, 8 Jul 2008 07:58:10 +0000 (17:58 +1000)]
xgi: use true/false instead of TRUE/FALSE
Ben Skeggs [Tue, 24 Jun 2008 18:39:32 +0000 (04:39 +1000)]
nouveau: interface changes for nv5x 3d
Kristian Høgsberg [Mon, 7 Jul 2008 22:00:23 +0000 (18:00 -0400)]
Add back flink, open and close ioctls.
They fell through the cracks in
86accbcb.
Kristian Høgsberg [Mon, 7 Jul 2008 19:43:43 +0000 (15:43 -0400)]
Merge commit 'origin/drm-gem' into ms-gem
Conflicts:
linux-core/drmP.h
linux-core/drm_drv.c
linux-core/drm_stub.c
linux-core/i915_drv.c
linux-core/i915_gem.c
shared-core/i915_drv.h
shared-core/i915_irq.c
Kristian Høgsberg [Mon, 7 Jul 2008 15:56:59 +0000 (11:56 -0400)]
Use lowercase bool constants.
Alan Hourihane [Mon, 7 Jul 2008 14:11:48 +0000 (15:11 +0100)]
Synchronize the DDC EDID read to it's fb_ddc.c counterpart
Maarten Maathuis [Sun, 6 Jul 2008 10:51:43 +0000 (12:51 +0200)]
NV50: init gamma storage
Maarten Maathuis [Sun, 6 Jul 2008 09:23:17 +0000 (11:23 +0200)]
NV50: fix minor bug in fbcon crtc selection
Maarten Maathuis [Sun, 6 Jul 2008 09:08:49 +0000 (11:08 +0200)]
modesetting-101: Rename DPMS modes to avoid compatibility issues with xorg definitions.
Maarten Maathuis [Sun, 6 Jul 2008 08:52:25 +0000 (10:52 +0200)]
modesetting-101: rename modeflags, as to avoid conflicts with the xorg definitions
Maarten Maathuis [Sun, 6 Jul 2008 08:11:33 +0000 (10:11 +0200)]
NV50: minor fix
Maarten Maathuis [Sat, 5 Jul 2008 18:17:49 +0000 (20:17 +0200)]
NV50: remove edid when monitor is gone, improve fbcon, misc fixes
- This should avoid switching crtc's when going to fbcon.
Maarten Maathuis [Sat, 5 Jul 2008 14:54:26 +0000 (16:54 +0200)]
NV50: fix switch_fb and connector_is_digital
Maarten Maathuis [Sat, 5 Jul 2008 10:04:07 +0000 (12:04 +0200)]
modesetting-101: Make the interface variable names a little more consistent + modeprint changes.
- All things are now called _id when they are id's.
- modeprint now accepts driver name as first argument.
Maarten Maathuis [Fri, 4 Jul 2008 16:47:59 +0000 (18:47 +0200)]
modesetting-101: tv_left_margin_property shouldn't be immutable.
Maarten Maathuis [Fri, 4 Jul 2008 15:37:45 +0000 (17:37 +0200)]
Forgot the 0'th element for the tv property.
Maarten Maathuis [Fri, 4 Jul 2008 15:28:04 +0000 (17:28 +0200)]
modesetting-101: Move some defines used for enumeration into the public header.
- Otherwise userspace has no idea of the meaning.
Maarten Maathuis [Fri, 4 Jul 2008 15:17:11 +0000 (17:17 +0200)]
[modesetting-101] Add subconnector and select_subconnector properties.
- These facilitate DVI-I and tv-out that can drive multiple types of signals.
Dave Airlie [Thu, 3 Jul 2008 23:34:24 +0000 (09:34 +1000)]
modesetting: rip out all of the generation code.
not needed, hotplug will work just as well hopefully.
Maarten Maathuis [Thu, 3 Jul 2008 15:25:37 +0000 (17:25 +0200)]
libdrm: fix typo in comment
Maarten Maathuis [Thu, 3 Jul 2008 07:08:01 +0000 (09:08 +0200)]
nv50: s/FALSE/false && s/TRUE/true
Maarten Maathuis [Thu, 3 Jul 2008 06:07:35 +0000 (08:07 +0200)]
[drm-sysfs] connected is ambigious in the context of a connector, replace with enabled
Maarten Maathuis [Thu, 3 Jul 2008 05:18:18 +0000 (07:18 +0200)]
NV50: replace active by enabled
Maarten Maathuis [Wed, 2 Jul 2008 23:05:07 +0000 (01:05 +0200)]
[modeseting-101] add connected field to sysfs
Maarten Maathuis [Wed, 2 Jul 2008 22:30:00 +0000 (00:30 +0200)]
Forgot to fix the modeprint test.
Maarten Maathuis [Wed, 2 Jul 2008 22:25:06 +0000 (00:25 +0200)]
[libdrm] count connectors and such has no place in a crtc object
Dave Airlie [Wed, 2 Jul 2008 22:05:51 +0000 (08:05 +1000)]
modesetting: lookup blob using correct identifier.
blob is a blob not a connector
Jakob Bornecrantz [Wed, 2 Jul 2008 22:03:48 +0000 (00:03 +0200)]
tests: Fix faulty error messages in modeprint
Dave Airlie [Wed, 2 Jul 2008 22:00:39 +0000 (08:00 +1000)]
drm: fix encoders get permissions
Jakob Bornecrantz [Wed, 2 Jul 2008 21:12:33 +0000 (23:12 +0200)]
tests: modeprint s/fb/fd/
Jakob Bornecrantz [Wed, 2 Jul 2008 20:46:44 +0000 (22:46 +0200)]
tests: Updated modeprint
Zhenyu Wang [Wed, 2 Jul 2008 16:49:19 +0000 (00:49 +0800)]
i915: official name for GM45 chipset
Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
Maarten Maathuis [Wed, 2 Jul 2008 14:13:54 +0000 (16:13 +0200)]
NV50: basic fbcon + misc fixes
- There is one fb, used for as many outputs as possible.
- Eventually smaller screens will be scaled to see the full console, but for the moment this'll do.
Jakob Bornecrantz [Wed, 2 Jul 2008 11:59:19 +0000 (13:59 +0200)]
tests: Improved and renamed the mode app to modeprint
Jesse Barnes [Tue, 1 Jul 2008 23:10:01 +0000 (16:10 -0700)]
i915: only use tiled blits on 965+
When scheduled swaps occur, we need to blit between front & back buffers. I
the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit,
only on 965 chips, since it will cause corruption on pre-965 (e.g. 945).
Bug reported by and fix tested by Tomas Janousek <tomi@nomi.cz>.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Jesse Barnes [Tue, 1 Jul 2008 23:09:02 +0000 (16:09 -0700)]
Revert "i915: only use tiled blits on 965+"
This reverts commit
727d4f1d1667e43b3558bd5f6ed6dc2cd9c29401, somehow git
deleted the symlink and replaced it with the file.
Jesse Barnes [Tue, 1 Jul 2008 19:25:16 +0000 (12:25 -0700)]
i915: only use tiled blits on 965+
When scheduled swaps occur, we need to blit between front & back buffers. If
the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit, but
only on 965 chips, since it will cause corruption on pre-965 (e.g. 945).
Bug reported by and fix tested by Tomas Janousek <tomi@nomi.cz>.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Jie Luo [Tue, 24 Jun 2008 17:38:31 +0000 (10:38 -0700)]
i915: enable bus mastering on i915 at resume time
On 9xx chips, bus mastering needs to be enabled at resume time for much of the
chip to function. With this patch, vblank interrupts will work as expected
on resume, along with other chip functions. Fixes kernel bugzilla #10844.
Signed-off-by: Jie Luo <clotho67@gmail.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Maarten Maathuis [Tue, 1 Jul 2008 14:00:09 +0000 (16:00 +0200)]
NV50: switch to fixed point scale factor calculations
Maarten Maathuis [Tue, 1 Jul 2008 13:14:30 +0000 (15:14 +0200)]
NV50: some i2c cleanup