From: Adam Jackson <ajax@redhat.com>
To: Paulo Zanoni <przanoni@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
DRI Development <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH 1/2] drm/edid: adjust double-clocked cea modes
Date: Tue, 15 May 2012 11:33:43 -0400 [thread overview]
Message-ID: <4FB27757.7070404@redhat.com> (raw)
In-Reply-To: <CA+gsUGRkAKtvxnapQHBWBE8_E=8fP7LNaM1PDDz+yDecwzGWeg@mail.gmail.com>
On 5/14/12 3:43 PM, Paulo Zanoni wrote:
> Also, I think flag DRM_MODE_FLAG_DBLCLK does not sound correct for
> them, so we would need to create flags:
> - DRM_MODE_FLAG_PR_1_to_10
> - DRM_MODE_FLAG_PR_1_or_2
> - DRM_MODE_FLAG_PR_1_or_2_or_4
>
> Or any other more creative names. And then we should cross our fingers
> in the hope that they don't start creating modes with other possible
> variations of PR :)
> Anyway, how will the user be able to choose the wanted PR? What about
> the aspect ratio? Yet Another Connector Property?
Well, one thing at a time.
Right now we don't have the concept of a mode property. Therefore,
modes exposed to userspace should all be unique. Exposing the pixel
repeat to userspace as a connector property is wrong because it doesn't
apply to all modes for a connector.
So my initial inclination would be to do something like this in the
flags field:
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -58,6 +58,9 @@
#define DRM_MODE_FLAG_PIXMUX (1<<11)
#define DRM_MODE_FLAG_DBLCLK (1<<12)
#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
+/* begin non-xorg definitions */
+#define DRM_PIXREP_MASK (15 << 14)
+#define DRM_MODE_FLAG_PIXREP(x) (((x) << 14) & DRM_PIXMULT_MASK)
/* DPMS flags */
/* bit compatible with the xorg definitions. */
The timings for the variably-repeated modes won't change (right?) so
this is the only way to get the desired pixel repeat passed into the
modesettinng path. And then the "one to ten" and "one two or four"
modes simply need to be added to the list multiple times, once for each
possible pixel replication, and with varying names depending on the
effective framebuffer size.
Problems with this approach are that it means rewriting the CEA mode
list or the VIC table walk or both, and that it means creating a class
of modes that userspace can set but not create (which means, if your X
driver is parsing EDID itself instead of just using the damn kernel mode
list, that many of the modes will be inaccessible to X). Neither is
insoluble, just nngh.
The dual-aspect-ratio modes are, well, ugly. Ideally we'd have scaler
hardware on all digital output routes so we could just make that a
connector property, and then hide the choice of mechanism inside the drm
(either in the monitor if the infoframe says so / if it's controllable
with DDC/CI or something, or in the GPU if not). I don't know if all
the digital outputs in the world live up to that lofty goal. Failing
that we could encode the widescreen-ness in the mode name? All quite
horrible. TVs really are the worst thing.
I think at some point we're going to need to reconsider using xserver's
data type for the mode so literally.
- ajax
next prev parent reply other threads:[~2012-05-15 15:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-12 22:07 [PATCH 1/2] drm/edid: adjust double-clocked cea modes Daniel Vetter
2012-05-12 22:07 ` [PATCH 2/2] drm/i915: properly implement doubleclocked hdmi modes Daniel Vetter
2012-05-14 17:37 ` [PATCH 1/2] drm/edid: adjust double-clocked cea modes Adam Jackson
2012-05-14 19:29 ` Paulo Zanoni
2012-05-14 19:43 ` Paulo Zanoni
2012-05-15 15:33 ` Adam Jackson [this message]
2012-05-15 18:50 ` mesa compile error Kong, Bertrand C
2012-05-16 1:47 ` Eugeni Dodonov
2012-05-18 20:28 ` Kong, Bertrand C
2012-05-19 18:29 ` [PATCH 1/2] drm/edid: adjust double-clocked cea modes Daniel Vetter
2012-05-14 19:55 ` Paulo Zanoni
2012-05-20 15:59 ` Daniel Vetter
-- strict thread matches above, loose matches on Subject: below --
2012-05-12 22:02 Daniel Vetter
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=4FB27757.7070404@redhat.com \
--to=ajax@redhat.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=przanoni@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.