linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: kfyatek+publicgit@gmail.com
Cc: "Karol Herbst" <kherbst@redhat.com>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"David Airlie" <airlied@linux.ie>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Lyude Paul" <lyude@redhat.com>, "Emma Anholt" <emma@anholt.net>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Samuel Holland" <samuel@sholland.org>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Dom Cobley" <dom@raspberrypi.com>,
	linux-sunxi@lists.linux.dev,
	"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
	"Noralf Trønnes" <noralf@tronnes.org>,
	intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	linux-arm-kernel@lists.infradead.org,
	dri-devel@lists.freedesktop.org,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Phil Elwell" <phil@raspberrypi.com>
Subject: Re: [PATCH v5 06/22] drm/modes: Add a function to generate analog display modes
Date: Tue, 18 Oct 2022 10:08:06 +0200	[thread overview]
Message-ID: <20221018080806.mkw4zbzchlatxgwq@houat> (raw)
In-Reply-To: <30dbbcc8-1d14-0fc8-ed7c-0c3f7d094ea3@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4518 bytes --]

Hi,

On Sun, Oct 16, 2022 at 07:34:12PM +0200, Mateusz Kwiatkowski wrote:
> Hi Maxime & everyone,
> 
> Sorry for being inactive in the discussions about this patchset for the last
> couple of weeks.
> 
> > +const static struct analog_parameters tv_modes_parameters[] = {
> > +	TV_MODE_PARAMETER(DRM_MODE_ANALOG_NTSC,
> > +			  NTSC_LINES_NUMBER,
> > +			  NTSC_LINE_DURATION_NS,
> > +			  PARAM_RANGE(NTSC_HACT_DURATION_MIN_NS,
> > +				      NTSC_HACT_DURATION_TYP_NS,
> > +				      NTSC_HACT_DURATION_MAX_NS),
> > +			  PARAM_RANGE(NTSC_HFP_DURATION_MIN_NS,
> > +				      NTSC_HFP_DURATION_TYP_NS,
> > +				      NTSC_HFP_DURATION_MAX_NS),
> > +			  PARAM_RANGE(NTSC_HSLEN_DURATION_MIN_NS,
> > +				      NTSC_HSLEN_DURATION_TYP_NS,
> > +				      NTSC_HSLEN_DURATION_MAX_NS),
> > +			  PARAM_RANGE(NTSC_HBP_DURATION_MIN_NS,
> > +				      NTSC_HBP_DURATION_TYP_NS,
> > +				      NTSC_HBP_DURATION_MAX_NS),
> > +			  PARAM_RANGE(NTSC_HBLK_DURATION_MIN_NS,
> > +				      NTSC_HBLK_DURATION_TYP_NS,
> > +				      NTSC_HBLK_DURATION_MAX_NS),
> > +			  16,
> > +			  PARAM_FIELD(3, 3),
> > +			  PARAM_FIELD(3, 3),
> > +			  PARAM_FIELD(16, 17)),
> > +	TV_MODE_PARAMETER(DRM_MODE_ANALOG_PAL,
> > +			  PAL_LINES_NUMBER,
> > +			  PAL_LINE_DURATION_NS,
> > +			  PARAM_RANGE(PAL_HACT_DURATION_MIN_NS,
> > +				      PAL_HACT_DURATION_TYP_NS,
> > +				      PAL_HACT_DURATION_MAX_NS),
> > +			  PARAM_RANGE(PAL_HFP_DURATION_MIN_NS,
> > +				      PAL_HFP_DURATION_TYP_NS,
> > +				      PAL_HFP_DURATION_MAX_NS),
> > +			  PARAM_RANGE(PAL_HSLEN_DURATION_MIN_NS,
> > +				      PAL_HSLEN_DURATION_TYP_NS,
> > +				      PAL_HSLEN_DURATION_MAX_NS),
> > +			  PARAM_RANGE(PAL_HBP_DURATION_MIN_NS,
> > +				      PAL_HBP_DURATION_TYP_NS,
> > +				      PAL_HBP_DURATION_MAX_NS),
> > +			  PARAM_RANGE(PAL_HBLK_DURATION_MIN_NS,
> > +				      PAL_HBLK_DURATION_TYP_NS,
> > +				      PAL_HBLK_DURATION_MAX_NS),
> > +			  12,
> > +
> > +			  /*
> > +			   * The front porch is actually 6 short sync
> > +			   * pulses for the even field, and 5 for the
> > +			   * odd field. Each sync takes half a life so
> > +			   * the odd field front porch is shorter by
> > +			   * half a line.
> > +			   *
> > +			   * In progressive, we're supposed to use 6
> > +			   * pulses, so we're fine there
> > +			   */
> > +			  PARAM_FIELD(3, 2),
> > +
> > +			  /*
> > +			   * The vsync length is 5 long sync pulses,
> > +			   * each field taking half a line. We're
> > +			   * shorter for both fields by half a line.
> > +			   *
> > +			   * In progressive, we're supposed to use 5
> > +			   * pulses, so we're off by half
> > +			   * a line.
> > +			   *
> > +			   * In interlace, we're now off by half a line
> > +			   * for the even field and one line for the odd
> > +			   * field.
> > +			   */
> > +			  PARAM_FIELD(3, 3),
> > +
> > +			  /*
> > +			   * The back porch starts with post-equalizing
> > +			   * pulses, consisting in 5 short sync pulses
> > +			   * for the even field, 4 for the odd field. In
> > +			   * progressive, it's 5 short syncs.
> > +			   *
> > +			   * In progressive, we thus have 2.5 lines,
> > +			   * plus the 0.5 line we were missing
> > +			   * previously, so we should use 3 lines.
> > +			   *
> > +			   * In interlace, the even field is in the
> > +			   * exact same case than progressive. For the
> > +			   * odd field, we should be using 2 lines but
> > +			   * we're one line short, so we'll make up for
> > +			   * it here by using 3.
> > +			   *
> > +			   * The entire blanking area is supposed to
> > +			   * take 25 lines, so we also need to account
> > +			   * for the rest of the blanking area that
> > +			   * can't be in either the front porch or sync
> > +			   * period.
> > +			   */
> > +			  PARAM_FIELD(19, 20)),
> > +};
> 
> Nit: setting vbp limits like that makes it impossible to use
> drm_analog_tv_mode() to generate modes that include the VBI for e.g. emitting
> teletext.
> 
> This probably doesn't matter, as it can still be created as a custom mode from
> userspace, hence I'm mentioning it as a nit.

Yeah, I think it's out of scope at least for now. Also, the compositor
should probably be aware of the margins being used to put the VBI data,
so expecting userspace to come up with the mode is probably best?

> > +		 * By convention, NSTC (aka 525/60) systems start with
> 
> Typo: s/NSTC/NTSC/

Fixed, thanks
Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2022-10-18  8:08 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220728-rpi-analog-tv-properties-v5-0-d841cc64fe4b@cerno.tech>
     [not found] ` <20220728-rpi-analog-tv-properties-v5-22-d841cc64fe4b@cerno.tech>
2022-10-13 18:23   ` [PATCH v5 22/22] drm/sun4i: tv: Convert to the new TV mode property Jernej Škrabec
2022-10-14  7:38     ` Maxime Ripard
2022-10-15  8:59       ` Jernej Škrabec
     [not found] ` <20220728-rpi-analog-tv-properties-v5-1-d841cc64fe4b@cerno.tech>
2022-10-15 15:06   ` [PATCH v5 01/22] drm/tests: Add Kunit Helpers Noralf Trønnes
     [not found] ` <20220728-rpi-analog-tv-properties-v5-8-d841cc64fe4b@cerno.tech>
2022-10-16 16:11   ` [PATCH v5 08/22] drm/modes: Move named modes parsing to a separate function Noralf Trønnes
2022-10-18  7:57     ` Maxime Ripard
     [not found] ` <20220728-rpi-analog-tv-properties-v5-6-d841cc64fe4b@cerno.tech>
2022-10-16 17:34   ` [PATCH v5 06/22] drm/modes: Add a function to generate analog display modes Mateusz Kwiatkowski
2022-10-18  8:08     ` Maxime Ripard [this message]
     [not found] ` <20220728-rpi-analog-tv-properties-v5-13-d841cc64fe4b@cerno.tech>
2022-10-16 17:51   ` [PATCH v5 13/22] drm/modes: Introduce the tv_mode property as a command-line option Mateusz Kwiatkowski
2022-10-17 10:21     ` Noralf Trønnes
     [not found] ` <20220728-rpi-analog-tv-properties-v5-19-d841cc64fe4b@cerno.tech>
2022-10-16 18:12   ` [PATCH v5 19/22] drm/vc4: vec: Check for VEC output constraints Mateusz Kwiatkowski
2022-10-16 18:16     ` Mateusz Kwiatkowski
2022-10-18  8:27       ` Maxime Ripard
     [not found] ` <20220728-rpi-analog-tv-properties-v5-20-d841cc64fe4b@cerno.tech>
2022-10-16 18:52   ` [PATCH v5 20/22] drm/vc4: vec: Convert to the new TV mode property Mateusz Kwiatkowski
2022-10-16 18:56     ` Mateusz Kwiatkowski
2022-10-17 10:31     ` Noralf Trønnes
2022-10-18 10:00       ` Maxime Ripard
     [not found]         ` <da2b4cb4-5d12-3161-64e3-e87a8cc63e81@gmail.com>
2022-10-20 11:58           ` maxime
2022-10-17 11:39   ` Noralf Trønnes
     [not found] ` <20220728-rpi-analog-tv-properties-v5-21-d841cc64fe4b@cerno.tech>
2022-10-16 19:02   ` [PATCH v5 21/22] drm/vc4: vec: Add support for more analog TV standards Mateusz Kwiatkowski
2022-10-16 19:46   ` [PATCH] drm/vc4: vec: Add support for PAL-60 Mateusz Kwiatkowski
2022-10-18  8:31     ` Maxime Ripard
2022-10-18 20:57       ` Mateusz Kwiatkowski
2022-10-20 15:34         ` maxime
     [not found] ` <20220728-rpi-analog-tv-properties-v5-16-d841cc64fe4b@cerno.tech>
2022-10-17 10:36   ` [PATCH v5 16/22] drm/atomic-helper: Add a TV properties reset helper Noralf Trønnes
     [not found] ` <20220728-rpi-analog-tv-properties-v5-12-d841cc64fe4b@cerno.tech>
2022-10-17 10:44   ` [PATCH v5 12/22] drm/connector: Add a function to lookup a TV mode by its name Noralf Trønnes
2022-10-18  9:33     ` Maxime Ripard
2022-10-18 12:29       ` Noralf Trønnes
2022-10-19  8:48         ` Maxime Ripard
2022-10-19 10:43           ` Noralf Trønnes
2022-10-20 11:29             ` maxime
     [not found] ` <20220728-rpi-analog-tv-properties-v5-7-d841cc64fe4b@cerno.tech>
2022-10-15 16:58   ` [PATCH v5 07/22] drm/client: Add some tests for drm_connector_pick_cmdline_mode() Noralf Trønnes
2022-10-20  7:55   ` Michał Winiarski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221018080806.mkw4zbzchlatxgwq@houat \
    --to=maxime@cerno.tech \
    --cc=airlied@linux.ie \
    --cc=bskeggs@redhat.com \
    --cc=daniel@ffwll.ch \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=dom@raspberrypi.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emma@anholt.net \
    --cc=geert@linux-m68k.org \
    --cc=hdegoede@redhat.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kfyatek+publicgit@gmail.com \
    --cc=kherbst@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=lyude@redhat.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=noralf@tronnes.org \
    --cc=nouveau@lists.freedesktop.org \
    --cc=phil@raspberrypi.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=samuel@sholland.org \
    --cc=tvrtko.ursulin@linux.intel.com \
    --cc=tzimmermann@suse.de \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).