Commit Graph

1801 Commits

Author SHA1 Message Date
Eric Anholt eee23fdd0d Fix copy'n'paste-o of the ordering of h/v fields in DSP[AB]SIZE. 2006-12-05 18:19:49 -08:00
Eric Anholt 58c247c6de Merge branch 'modesetting-origin' into modesetting
Conflicts:

	src/i830_display.c
2006-12-05 15:28:21 -08:00
Eric Anholt 0b4c3e7bff Add a bunch of per-register debug code to i830DumpRegs(). 2006-12-05 15:03:48 -08:00
Eric Anholt 7844e576e7 Move reg dump from i830PipeSetMode to after we set up the modes with RandR. 2006-12-05 14:39:24 -08:00
Eric Anholt e777d38ce9 WIP code to move mode set sequencing to XFree86 handlers.
It compiles.  It definitely doesn't run.
2006-12-05 12:15:34 -08:00
Keith Packard 2e8c927f93 Re-create RandR Crtc/output structures on server regen.
RandR structures must be re-created when the server reinitializes,
but the driver PreInit function is not re-invoked. Recreate them
manually in this case during ScreenInit.
2006-12-04 14:02:30 -08:00
Wang Zhenyu 583619cdb2 set correct default border color 2006-12-04 15:48:04 +08:00
Wang Zhenyu f28d5fc30c fix typo in ps kernel
fix corrupt in some subspans
2006-12-04 15:47:31 +08:00
Keith Packard 677c454469 Merge branch 'modesetting-origin' into modesetting 2006-12-02 23:28:38 -08:00
Keith Packard 8fcf9a8117 DOUBLE_WIDE mode for high pixel clock 8xx. Rewrite PLL search.
High pixel clock modes on pipe A of an 8xx chip require
DOUBLE_WIDE mode. It's supposed to be modes > 180MHz or so,
but the board I have requires DOUBLE_WIDE mode for clocks > 108MHz
or so. The limit is related to the core clock speed of the chip, which
can be found indirectly through PCI config space. None of the possible
values explain why this board needs this mode for these relatively low
clock rates though.

Also, create tables of data for the PLL computation and use them
instead of code. I think it's cleaner looking. It is also untested on
9xx. It'll work. Really.
2006-12-02 22:58:31 -08:00
Eric Anholt 81dde11d41 Fix copy'n'paste-o from restructure-outputs that resulted in crashes.
Our driver private is stored in the bus that we set up, not the DDC device
that xf86 code does.
2006-12-01 13:29:08 -08:00
Eric Anholt a504e31f0f Don't try to write the read-only PP_STATUS register.
Also, don't bother reading the PP_CONTROL register to try to get LVDS status --
that's what PP_STATUS is for.
2006-12-01 12:50:09 -08:00
Eric Anholt f21230d3e1 Add the [ax]4r4g4b4 source picture formats. 2006-12-01 12:50:09 -08:00
Keith Packard 8ddbc26b27 Merge branch 'modesetting' into crestline
Use new TV output condition (all 9xx except 915g)
2006-12-01 10:57:16 -08:00
Keith Packard 16f9a56070 TV output exists on all 9xx chips except for 915G 2006-12-01 10:50:27 -08:00
Keith Packard 93975a5260 Merge branch 'modesetting' into crestline 2006-12-01 10:28:58 -08:00
Keith Packard e603cd0c73 Leave detected TV status alone when no free CRTC is available.
Yes, this means not detecting TV hotplug when two outputs are
already running. An alternative would be to turn off one of the other
outputs temporarily, but that would cause flashing. Something to consider.
2006-12-01 10:08:36 -08:00
Keith Packard ec30356d95 Do output detection before any crtc allocation.
Some output detection requires a crtc for load detection, perform all of the
output detection before allocating any crtcs so that there will be a free
crtc for any load detection. Avoids losing TV detection when two monitors
are connected.
2006-12-01 10:06:29 -08:00
Keith Packard 7642da8278 When CRTC is disable through RandR, the mode is NULL. Don't dereference it.
Correctly interpret mode == NULL as CRTC disable, make sure the CRTC is
disabled in this case.
2006-11-30 23:21:39 -08:00
Eric Anholt de50ca9ed9 Tristate the clock/data pins during GPIO when released while getting values.
While the register is laid out suggesting that you can read a low value while
driving the output high, and the I2C spec seems to indicate that you should be
able to as well, and on some hardware this works successfully, on the i865 and
perhaps some other chips it doesn't.  So, if we're not holding the clock or
data pin low during GetBits, tristate the pin so that we can successfully read.

This fixes i865 analog (VGA) DDC so it successfully sees slave acks.

Also, improve the I2C bit-banging debugging.
2006-11-30 17:57:28 -08:00
Eric Anholt 8c44556408 Preserve some GPIO bits that the docs tell us to. 2006-11-30 15:57:02 -08:00
Eric Anholt 28401b25cc Add debug code for the bit-banging I2C implementation. 2006-11-30 15:45:13 -08:00
Keith Packard ff64bc7397 Merge branch 'restructure-outputs' into modesetting.
Outputs and Crtcs now have a driver-independent representation which should
permit generic code to control RandR 1.2 and startup configuration.
2006-11-30 14:09:31 -08:00
Keith Packard 16e01b117b Oops. Don't try to use xf86RandR names, use xf86RandR12 instead.
Attempts to override functions in core server fail, so use
new names instead.
2006-11-30 11:55:29 -08:00
Keith Packard bcf206ff17 Merge branch 'restructure-outputs-origin' into restructure-outputs 2006-11-30 11:39:56 -08:00
Keith Packard 27ca1c17aa Rename I830 randr functions to xf86 as they are becoming generic.
Change function names, create separate i830_randr.h header file
to contain definitions.
2006-11-30 11:39:37 -08:00
Eric Anholt b94b7c4bcf Merge branch 'exa' of ../xf86-video-intel into modesetting
Conflicts:

	man/i810.man
	src/Makefile.am
	src/i830.h
	src/i830_driver.c
	src/i830_rotate.c
	src/i830_video.c
2006-11-30 09:15:30 -08:00
Eric Anholt b6fc8df9a5 Properly detect the GTT size on the G965.
In the past, the GTT has always been sized just large enough to map the whole
graphics aperture.  However, apparently on the G965 that isn't the case, and
it is actually 512KB on hardware with a 256MB aperture.  This resulted in X
not bothering to allocate memory for 256KB that it thought was already mapped
into stolen memory, and thus garbage rendering (particularly visible in large
video modes that displayed this unallocated memory).  The kernel happens to
get the right answer by hardwiring a 512KB GTT size already, but that may not
be true on future hardware.

Instead, we use a convenient field in PGETBL_CTL that's specifically for the
GTT size rather than the aperture size, which gets us the answer we want.
2006-11-29 15:06:32 -08:00
Eric Anholt 359dc81c07 Revert "Don't allocate stuff in the first 256K of video memory (GATT?)"
This reverts commit 997e8c9bb4.

The GTT is definitely located at the end of stolen memory.  This commit
apparently worked around mis-estimation of the GTT size.
2006-11-29 15:02:45 -08:00
Wang Zhenyu db391e8e4c shut up warning 2006-11-29 17:16:46 +08:00
Wang Zhenyu 290f15cd4c fix alpha blending state 2006-11-29 17:14:55 +08:00
Wang Zhenyu 3d4edd325f Add in sf/wm program for mask picture without CA 2006-11-29 17:05:32 +08:00
Wang Zhenyu a704120b15 misc cleanup for G965 vs/sf/wm states 2006-11-29 16:52:44 +08:00
Wang Zhenyu e3c70c68e3 WM kernel needs scratch space 2006-11-29 16:40:15 +08:00
Wang Zhenyu aa515c54f0 Setup default border color for our samplers 2006-11-29 16:37:06 +08:00
Wang Zhenyu b6eba96584 fix vertex buffer size 2006-11-29 16:30:53 +08:00
Wang Zhenyu 453842c9ff clean up issue cmd to ring buffer
Make it easy to track different part of ring state, and
use rectlist primitive instead.
2006-11-29 16:24:24 +08:00
Wang Zhenyu 18ad7d5cf0 remove wrong scale_units 2006-11-29 16:04:16 +08:00
Wang Zhenyu 3d5bd0c14e Rename exa sf/wm program files
Also fix some minors in wm program.
2006-11-29 16:02:16 +08:00
Wang Zhenyu a06beb5f80 EXA state mem for G965
Not split offscreen mem for exa, but alloc a dedicated one
for G965 states.
2006-11-29 15:47:19 +08:00
Eric Anholt 9e4e7d4fa2 Conditionally compile old-server compatibility code in.
This also replaces calls to compat code with the real names of the functions,
and slips #defines to an i830-namespaced version in when doing compat.
The current server version (7.1.99.2) is still left as requiring compat code,
since the version hasn't been bumped yet.

This also fixes some failures to call the compat code, and some failures to
actually compile the compat code.  Oops.
2006-11-28 16:37:46 -08:00
Eric Anholt 8d9ba2405d sparse cleanups (use NULL instead of 0 for pointers) 2006-11-28 15:44:06 -08:00
Eric Anholt dbb8135e10 Remove printing of the XFree86 screen mode list, and some other detritus. 2006-11-28 13:21:31 -08:00
Eric Anholt e8fb40ab10 Replace custom DDC mode list code with a copy of the X Server's.
The X Server now has most of the mode helper functions we want, and we can
start removing compilation of our copies when the server is new enough.
2006-11-28 11:17:21 -08:00
Keith Packard 2c8c310bd8 Driver-independent code tracks num_crtc itself, don't do it in driver.
Now that driver-independent code manages array of crtcs, let it track
the count and just have the driver compute how many there are in
a separate variable.
2006-11-27 22:18:59 -08:00
Keith Packard c421724d81 Move #include "randrstr.h" from i830.h to i830_xf86Crtc.h
As part of the separation of driver-dependent from driver-independent code,
the interactions with RandR are moving entirely out of the driver, which
means the driver shouldn't even know about RandR, while the
driver-independent code does.
2006-11-27 22:15:40 -08:00
Keith Packard e8d1db3263 Move crtc/output config to sub-structure.
Place crtc/output in separate structure at head
of driver private structure. Use this from the config code
to make it driver-independent. Still lots of effectively driver
independent code that continues to use driver dependent stuff,
but that will change.
2006-11-27 12:01:47 -08:00
Eric Anholt 72692ba2e0 Postpone SDVO DDC bus creation until we've detected the SDVO device.
This reduces log noise for those of us with no SDVO devices.
2006-11-27 11:23:55 -08:00
Eric Anholt 5f38bc3e2a Reduce the severity of many informational log messages. 2006-11-27 11:06:50 -08:00
Eric Anholt 85f404bc67 Re-indent ch7xxx driver. 2006-11-27 09:38:38 -08:00