[PATCH] intel TV out margin configuration via xorg.conf

Robert Lowery rglowery at exemail.com.au
Mon Nov 24 12:59:34 PST 2008


> On 2008.11.07 20:17:37 +0800, Robert Lowery wrote:
>> Any reason why we don't support TV out margin setting via xorg.conf?
>> It's
>> a pain using xrandr to configure after X is started (or am I missing
>> something how this should be done?)
>>
>> diff below works for me with settings like the following in xorg.conf
>> Section "Monitor"
>>         Identifier "TV"
>>         Option          "TV Format" "576p"
>>         Option          "Left" "35"
>>         Option          "Top" "30"
>>         Option          "Bottom" "22"
>>         Option          "Right" "42"
>> EndSection
>>
>> Apologies if SquirrelMail corrupts the diff
>>
>
> yeah, that hurts. :) So I tried to fix and update your patch like below.
> Tested ok. Fine with it?
Looks good, thanks

-Rob

>
> From e6150f005023cadbb57cb67cd0aac526800869ed Mon Sep 17 00:00:00 2001
> From: Robert Lowery <rglowery at exemail.com.au>
> Date: Tue, 25 Nov 2008 00:52:40 +0800
> Subject: [PATCH] TV: add support to set TV margins in xorg.conf
>
> ---
>  man/intel.man |    2 +-
>  src/i830_tv.c |   32 ++++++++++++++++++--------------
>  2 files changed, 19 insertions(+), 15 deletions(-)
>
> diff --git a/man/intel.man b/man/intel.man
> index ef0337c..81a94ac 100644
> --- a/man/intel.man
> +++ b/man/intel.man
> @@ -296,7 +296,7 @@ Integrated TV output.  Available properties include:
>  .B BOTTOM, RIGHT, TOP, LEFT
>  - margins
>  .TP 2
> -Adjusting these properties allows you to control the placement of your TV
> output buffer on the screen.
> +Adjusting these properties allows you to control the placement of your TV
> output buffer on the screen. The options with the same name can also be
> set in xorg.conf with integer value.
>
>  .PP
>  .B TV_FORMAT
> diff --git a/src/i830_tv.c b/src/i830_tv.c
> index 09a46e9..d507a0c 100644
> --- a/src/i830_tv.c
> +++ b/src/i830_tv.c
> @@ -1691,6 +1691,8 @@ i830_tv_init(ScrnInfoPtr pScrn)
>      I830OutputPrivatePtr    intel_output;
>      struct i830_tv_priv	    *dev_priv;
>      uint32_t		    tv_dac_on, tv_dac_off, save_tv_dac;
> +    char                    *mon_option_lst = NULL;
> +    char		    *tv_format = NULL;
>
>      if (pI830->quirk_flag & QUIRK_IGNORE_TV)
>  	return;
> @@ -1745,21 +1747,23 @@ i830_tv_init(ScrnInfoPtr pScrn)
>
>      dev_priv->tv_format = NULL;
>
> -    /* BIOS margin values */
> -    dev_priv->margin[TV_MARGIN_LEFT] = 54;
> -    dev_priv->margin[TV_MARGIN_TOP] = 36;
> -    dev_priv->margin[TV_MARGIN_RIGHT] = 46;
> -    dev_priv->margin[TV_MARGIN_BOTTOM] = 37;
> -
>      if (output->conf_monitor)
> -    {
> -	char	*tv_format;
> -
> -	tv_format = xf86findOptionValue (output->conf_monitor->mon_option_lst,
> "TV Format");
> -	if (tv_format)
> -	    dev_priv->tv_format = xstrdup (tv_format);
> -    }
> -    if (!dev_priv->tv_format)
> +	mon_option_lst = output->conf_monitor->mon_option_lst;
> +
> +     /* BIOS margin values */
> +    dev_priv->margin[TV_MARGIN_LEFT] = xf86SetIntOption (mon_option_lst,
> +	    "Left", 54);
> +    dev_priv->margin[TV_MARGIN_TOP] = xf86SetIntOption (mon_option_lst,
> +	    "Top", 36);
> +    dev_priv->margin[TV_MARGIN_RIGHT] = xf86SetIntOption (mon_option_lst,
> +	    "Right", 46);
> +    dev_priv->margin[TV_MARGIN_BOTTOM] = xf86SetIntOption
> (mon_option_lst,
> +	    "Bottom", 37);
> +
> +    tv_format = xf86findOptionValue (mon_option_lst, "TV Format");
> +    if (tv_format)
> +	dev_priv->tv_format = xstrdup (tv_format);
> +    else
>  	dev_priv->tv_format = xstrdup (tv_modes[0].name);
>
>      output->driver_private = intel_output;
> --
> 1.5.6.5
>
>
> --
> Open Source Technology Center, Intel ltd.
>
> $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
>





More information about the xorg mailing list