summaryrefslogtreecommitdiff
path: root/src/i830_tv.c
AgeCommit message (Collapse)Author
2008-08-15Reorganize VBIOS codeJesse Barnes
Make VBT parsing happen at driver init time rather than in each output init function, to save time and better separate VBIOS code into i830_bios.[ch]. The changes end up touching the output files due to field name changes, and allow us to reorder & simplify our LFP mode detection code. (cherry picked from commit a21d4794b6812ce05d08f06dc47b26c4fb1c1fef)
2008-07-21Get prototype for i830_bios_get_tv().Eric Anholt
(cherry picked from commit 1b1c4975768f63ed0f3933ec384d24c324a383b3)
2008-07-21Add VBIOS based TV connector detectionJesse Barnes
Now that the VBIOS code supports it, we can use the general features block to detect whether a TV connector is present on a given platform. Reviewed by Nanhai Zou. (cherry picked from commit 3c0f2bcc9965155fecab606edae68874427d3423)
2008-06-09Fix TV programming: add vblank wait after TV_CTL writesJesse Barnes
Fxies FDO bug #14000; we need to wait for vblank after writing TV_CTL or followi ng "DPMS on" calls may not actually enable the output.
2008-06-05Fix TV out connection type detectionRobert Lowery
Make sure we wait for vblank when using the TV DAC to detect the connection type. Fixes FDO bug #14000.
2008-03-26More compile warning fixes.Paulo Cesar Pereira de Andrade
o Check for RANDR_GET_CRTC_INTERFACE before defining functions that are used only if it is defined. o Declare a variable before code, and rename it from ret to xvmc_status to better describe it. o if 0 some static functions not used. o Don't declare some unused variables. o Declare as static some functions that are used only in the file defining it. o Add a default/fallback return True to the Bool function src/xvmc/intel_batchbuffer.c:intelInitBatchBuffer(). o Ansify src/xvmc/xf86dri.c. o Add missing prototype to src/xvmc/xf86dri.h and follow pattern of other headers by adding "extern" before function prototype.
2008-03-17Add support for new ->get_crtc output callbacksJesse Barnes
Using the new interface allows the server to avoid some flicker at startup.
2008-03-11Remove i830+ driver's use of CARD*/INT* types for great justice.Eric Anholt
Several uses are actually left, which are determined by the X Server interfaces we're implementing.
2008-01-02TV: fix 576p refresh rateNanhai Zou
2007-11-15Fix typo in 1920x1080 resolution entryJesse Barnes
2007-11-15Adjust default TV out paramatersJesse Barnes
According to several users, a default brightness of 0 results in much better TV output. Improved control of these parameters will be provided by Randr1.3, which will standardize several output properties across various chips.
2007-11-15Add 1920x1080 mode to TV outJesse Barnes
Allows users to use 1080p modes on TV out, see bug #13034.
2007-10-24Fix typo in my hand-application of rglowery's patch.Eric Anholt
2007-10-24Fix a crash in TV mode handling by initializing the prev field of modes.Rob
2007-08-28Don't set supported TV formats until after RandR initialized.Keith Packard
The TV format property cannot be configured until RandR has been initialized.
2007-08-28Limit TV formats to those supported by current connectionKeith Packard
2007-08-26Mechanical API conversions for libpciaccess.Keith Packard
Uncomplicated API transistions for libpciaccess usage: Legacy xf86 API libpciaccess API --------------- ---------------- xf86ReadPciBIOS pci_device_read_rom pciReadWord pci_device_cfg_read_u16 pciWriteByte pci_device_cfg_write_u8 And, more use of the API-independent DEVICE_ID/SUBVENDOR_ID/SUBSYS_ID macros to pull PCI identification data from the underlying structure.
2007-08-16Disambiguate plane and pipe mapping, use plane A on pipe B on pre-965 LVDSJesse Barnes
Add a new 'plane' field to the intel_crtc private structure for tracking planes separate from pipes. This allows pre-965 chips to use plane A on pipe B, enabling framebuffer compression for builtin LVDS displays.
2007-08-10Clean up tv mode name allocation and copy.Keith Packard
TV mode names used to contain the signalling standard along with the pixel size. The signalling has been moved to the TV_FORMAT property, but the allocation and initialization of the mode name was left a bit messy as a result.
2007-07-27Add quirk supportWang Zhenyu
This one trys to use a flag for possible quirks. It adds a quirk for my Lenovo T61 TV output, and ports some origin LVDS quirks to it.
2007-07-13Ensure pipe/output active before doing load detection.Keith Packard
If the pipe or output have been set to DPMSOff, then load detection will not work correctly. Also, share the load detection configuration code between crt and tv outputs.
2007-06-30Fix load detection to use border region instead of blanking.Keith Packard
Make sure there is some border area to use by changing how the pipe is configured, then pick a scanline in the middle of the border for load detection. This lets the load detect code use an active pipe instead of requiring an idle one.
2007-05-17Make each output control clones/crtcs. Split DVO into LVDS, TMDS, TV.Keith Packard
Move clone/crtc config into each output where it's easier to understand (no need for a switch statement in I830PrepareOutputs. Also, split DVO into three sub-types (TMDS, LVDS, TVOUT) as those have different cloning abilities.
2007-04-03Move a bunch of debugging verbosity under Option "ModeDebug".Eric Anholt
2007-03-25Switch TV_FORMAT property to format XA_ATOMKeith Packard
This allows the driver to report the set of valid formats in the property data.
2007-03-23Eliminate calls to RRPostPendingProperty.Keith Packard
RRPostPendingProperty has been removed in favor of RRPostPendingProperties, and that call is now managed outside of the driver.
2007-03-23Property size is in units, not bytes.Keith Packard
Several places were using byte lengths instead of unit lengths for properties.
2007-03-23TV output properties: TV_FORMAT, LEFT, TOP, RIGHT, BOTTOM.Keith Packard
Remove TV format from mode name, instead use an explicit output property and split the input resolution from the tv format. Add properties to set the blank area on all four sides of the image.
2007-03-04Support new CRTC/Output prepare/commit hooks.Keith Packard
New hooks replace explicit invocation of DPMS functions to manage mode setting sequencing.
2007-02-14Global namespace cleanups, filename fixes.Keith Packard
Ensure all xf86 symbols created here are protected with XF86NAME. Remove accidentally exported symbols from namespace. Make all to-be-DI files prefixed with i830_xf86.
2007-02-09 TV EnableZou Nan hai
2007-01-16Interim work on rotation support with new xf86 code.Keith Packard
Yes, there are lots of bits tied together here, and we should split this patch apart. Move I830 mode setting to xf86 mode setting. Make mode setting function also set the base address. This should fix problems where the base gets set incorrectly at times. Add driver-independent rotation support, requires driver-specific hooks for shadow pixmap allocation, otherwise it uses Render for painting.
2007-01-15Convert I830PipeSetMode to xf86CrtcSetMode. Add rotation structures.Keith Packard
Makes the mode setting logic device independent. Magic rename hooks allow multiple drivers to provide the generic code without name conflicts. Rotation code requires special pixmap creation hook, and uses Render to perform the actual rotation.
2007-01-06Merge branch 'modesetting-origin' into modesettingWang Zhenyu
2007-01-06support NTSC 480i M-J, PAL 576i for 640x480-1280x1024 sizesZou Nan hai
I still have problem with non-interlace mode and Hi Res mode. also I don't know how to pickup those mode in xorg.conf
2007-01-06More sparse cleanups:Jesse Barnes
NULL vs. 0 make some variables static remove redundant variables There are only a few sparse warnings left now: some bitfield warnings and a few 'mixing code and declarations' warnings from the ring macros.
2007-01-02Make driver build and run on Xorg 7.1. Delay DSP*BASE setting until last.Keith Packard
Autodetect libdrm version, disable new memory manager on older libraries. Move new M_T_ defines from i830.h to i830_xf86Crtc.h. Add many system headers to define functions. Use i830PipeSetBase at end of mode setting code to set DSP*BASE and flush changes. Don't duplicate PipeSetBase call from screen init function. Make initial RandR configuration code usable on older versions of extension so the server doesn't start in a panning mode. Use xfree instead of free in i830_tv.c.
2006-12-30Detect in ProbeModes. Let get_modes set edid. Prune interlace/dblscan.Keith Packard
Move output connection status detection from RandR code up to ProbeModes so it is done before mode sets are built. Otherwise, the mode building code will elide all modes the first time through as it ignores outputs that are disconnected. Most get_modes functions fetch EDID data; make sure that any EDID changes are used in the ProbeModes filtering of default modes. Otherwise, stale EDID data will be used. Allow outputs to advertise support for interlaced and double scan modes; prune such modes from the default mode list when outputs do not support them.
2006-12-21Computed corred color conversion values.Keith Packard
Extract correct color conversion values for all video formats from documentation. Use those, with appropriate conversions, for the color conversion register values.
2006-12-21TV subcarrier was computed from wrong clock value.Keith Packard
The constants provided in the documentation for the subcarrier DDA values assumed the clock was programmed to precisely 108MHz, but the PLL can't hit that value exactly (or our PLL computation can't, in any case). The result was an incorrect subcarrier frequency which resulted in synthetic subcarrier phase shift and a lovely rainbow effect on the screen. Unfortunately, the documentation didn't exactly describe the function performed by the subcarrier clock hardware, so a bit of detective work was needed. New constants were computed using the code in tv.5c and those, along with lots of other values from the documentation were inserted into the necessary tables. The result appears to generate stable NTSC video on the svideo connector.
2006-12-19TV output I830OutputPrivate had wrong type (crashed in SetMode).Keith Packard
TV output private type field was set to I830_OUTPUT_SDVO instead of I830_OUTPUT_TVOUT. When DGA mode setting occurred, the sdvo output debug code would be invoked and attempt to dereference sdvo-specific bits of the private structure leading to a segfault.
2006-12-14Change TV modes from Preferred to Driver.Keith Packard
This avoids having the artificial TV mode size drive overall screen size.
2006-12-13Move xf86CrtcConfig to ScrnInfo private.Keith Packard
Pull xf86CrtcConfig out of the driver private structure and allocate a ScrnInfo private index for it. Also, make the arrays of outputs and crtcs dynamic instead of fixed.
2006-12-13Auto-detect working TV output by checking TV regs functionality.Keith Packard
We can't figure out which chips are supposed to have TV out, so instead we prod the TV_DAC register to see if it will hold the value written to it, if not, we assume the chip doesn't have TV out.
2006-12-06Remove stale i830_tv_pre_set_mode. Replaced by generic dpms hook call.Eric Anholt
Also replaced by not spamming unrelated ADPA register. At least, it had sure better not be related.
2006-12-06Save/restore more TV registers.Eric Anholt
2006-12-06Merge branch 'modesetting' into nonrandr-setupnonrandr-setupKeith Packard
Also, fix buffer overflow in i830_debug.c
2006-12-06Use xf86 structures for default config instead of RandR.Keith Packard
To avoid requiring RandR 1.2 in the X server, use the xf86 Crtc and Output structures as the basis for the default configuration computation (and, eventually, the config-file based configuration as well).
2006-12-05WIP code to move mode set sequencing to XFree86 handlers.Eric Anholt
It compiles. It definitely doesn't run.
2006-12-01Leave detected TV status alone when no free CRTC is available.Keith Packard
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.