Age | Commit message (Collapse) | Author |
|
|
|
fix corrupt in some subspans
|
|
|
|
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.
|
|
Our driver private is stored in the bus that we set up, not the DDC device
that xf86 code does.
|
|
Also, don't bother reading the PP_CONTROL register to try to get LVDS status --
that's what PP_STATUS is for.
|
|
|
|
Use new TV output condition (all 9xx except 915g)
|
|
|
|
|
|
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.
|
|
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.
|
|
Correctly interpret mode == NULL as CRTC disable, make sure the CRTC is
disabled in this case.
|
|
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.
|
|
|
|
|
|
Outputs and Crtcs now have a driver-independent representation which should
permit generic code to control RandR 1.2 and startup configuration.
|
|
Attempts to override functions in core server fail, so use
new names instead.
|
|
|
|
Change function names, create separate i830_randr.h header file
to contain definitions.
|
|
Conflicts:
man/i810.man
src/Makefile.am
src/i830.h
src/i830_driver.c
src/i830_rotate.c
src/i830_video.c
|
|
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.
|
|
This reverts commit 997e8c9bb4235cab1fff4738387df9afcbea0a03.
The GTT is definitely located at the end of stolen memory. This commit
apparently worked around mis-estimation of the GTT size.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make it easy to track different part of ring state, and
use rectlist primitive instead.
|
|
|
|
Also fix some minors in wm program.
|
|
Not split offscreen mem for exa, but alloc a dedicated one
for G965 states.
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This reduces log noise for those of us with no SDVO devices.
|
|
|
|
|
|
To share load-detect CRTC allocation with TV driver,
move it to the output driver
|
|
Use i830GeLoadDetectPipe again (instead of missing xf86AllocCrtc). Actually
create new Crtc structures. Fix a few other NULL pointer dereferences.
|
|
Outputs and Crtcs are now split between 'generic'
and 'driver specific' pieces in the hope that more code
will be able to migrate to the xf86-generic layer.
Right now, the code remains tangled together, significant
work remains to tease the pieces apart. First the code
needs to be made to actually work as-is though.
|
|
Multi-screen configuration is moving to generic code.
|
|
|
|
This avoids heading past the 8Kbyte stride limit of DRI so
that 3D will be available by default.
|