From: Adam Jackson <ajax@redhat.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomasz Stanislawski <t.stanislaws@samsung.com>,
linux-fbdev@vger.kernel.org,
Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>,
Pawel Osciak <pawel@osciak.com>,
Magnus Damm <magnus.damm@gmail.com>,
Marcus Lorentzon <marcus.lorentzon@linaro.org>,
dri-devel@lists.freedesktop.org,
Alexander Deucher <alexander.deucher@amd.com>,
Rob Clark <rob@ti.com>,
linux-media@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: Kernel Display and Video API Consolidation mini-summit at ELC 2012 - Notes
Date: Fri, 17 Feb 2012 19:42:34 +0000 [thread overview]
Message-ID: <4F3EADAA.9090702@redhat.com> (raw)
In-Reply-To: <1775349.d0yvHiVdjB@avalon>
On 2/16/12 6:25 PM, Laurent Pinchart wrote:
> *** Common video mode data structure and EDID parser ***
>
> Goal: Sharing an EDID parser between DRM/KMS, FBDEV and V4L2.
>
> The DRM EDID parser is currently the most advanced implementation and will
> be taken as a starting point.
>
> Different subsystems use different data structures to describe video
> mode/timing information:
>
> - struct drm_mode_modeinfo in DRM/KMS
> - struct fb_videomode in FBDEV
> - struct v4l2_bt_timings in V4L2
>
> A new common video mode/timing data structure (struct media_video_mode_info,
> exact name is to be defined), not tied to any specific subsystem, is
> required to share the EDID parser. That structure won't be exported to
> userspace.
>
> Helper functions will be implemented in the subsystems to convert between
> that generic structure and the various subsystem-specific structures.
I guess. I don't really see a reason not to unify the structs too, but
then I don't have binary blobs to pretend to be ABI-compatible with.
> The mode list is stored in the DRM connector in the EDID parser. A new mode
> list data structure can be added, or a callback function can be used by the
> parser to give modes one at a time to the caller.
>
> 3D needs to be taken into account (this is similar to interlacing).
Would also be pleasant if the new mode structure had a reasonable way of
representing borders, we copied that mistake from xserver and have been
regretting it.
> Action points:
> - Laurent to work on a proposal. The DRM/KMS EDID parser will be reused.
I'm totally in favor of this. I've long loathed fbdev having such a
broken parser, I just never got around to fixing it since we don't use
fbdev in any real way.
The existing drm_edid.c needs a little detangling, DDC fetch and EDID
parse should be better split. Shouldn't be too terrible though.
Has the embedded world seen any adoption of DisplayID? I wrote a fair
bit of a parser for it at one point [1] but I've yet to find a machine
that's required it.
> *** Split KMS and GPU Drivers ***
>
> Goal: Split KMS and GPU drivers with in kernel API inbetween.
>
> In most (all ?) SoCs, the GPU and the display controller are separate
> devices. Splitting them into separate drivers would allow reusing the GPU
> driver with different devices (e.g. using a single common PowerVR kernel
> module with different display controller drivers). The same approach can be
> used on the desktop for the multi-GPU case and the USB display case.
>
> - OMAP already separates the GPU and DSS drivers, but the GPU driver is some
> kind of DSS plugin. This isn't a long-term approach.
> - Exynos also separates the GPU and FIMD drivers. It's hard to merge GPU
> into display subsystem since UMP, GPU has own memory management codes.
>
> One of the biggest challenges would be to get GPU vendors to use this new
> model. ARM could help here, by making the Mali kernel driver split from the
> display controller drivers. Once one vendor jumps onboard, others could have
> a bigger incentive to follow.
Honestly I want this for Intel already, given how identical Poulsbo's
display block is to gen3.
> *** HDMI CEC Support ***
>
> Goal: Support HDMI CEC and offer a userspace API for applications.
>
> A new kernel API is needed and must be usable by KMS, V4L2 and possibly
> LIRC. There's ongoing effort from Cisco to implement HDMI CEC support. Given
> their background, V4L2 is their initial target. A proposal is available at
> http://www.mail-archive.com/linux-media@vger.kernel.org/msg29241.html with a
> sample implementation at
> http://git.linuxtv.org/hverkuil/cisco.git/shortlog/refs/heads/cobalt-
> mainline
> (drivers/media/video/adv7604.c and ad9389b.c.
>
> In order to avoid API duplication, a new CEC subsystem is probably needed.
> CEC could be modeled as a bus, or as a network device. With the network
> device approach, we could have both kernel and userspace protocol handlers.
I'm not a huge fan of userspace protocol for this. Seems like it'd just
give people more license to do their own subtly-incompatible things that
only work between devices of the same vendor. Interoperability is the
_whole_ point of CEC. (Yes I know every vendor tries to spin it as
their own magical branded thing, but I'd appreciate it if they grew up.)
[1] -
http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/modes/xf86DisplayIDModes.c
- ajax
WARNING: multiple messages have this Message-ID (diff)
From: Adam Jackson <ajax@redhat.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomasz Stanislawski <t.stanislaws@samsung.com>,
linux-fbdev@vger.kernel.org,
Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>,
Pawel Osciak <pawel@osciak.com>,
Magnus Damm <magnus.damm@gmail.com>,
Marcus Lorentzon <marcus.lorentzon@linaro.org>,
dri-devel@lists.freedesktop.org,
Alexander Deucher <alexander.deucher@amd.com>,
Rob Clark <rob@ti.com>,
linux-media@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: Kernel Display and Video API Consolidation mini-summit at ELC 2012 - Notes
Date: Fri, 17 Feb 2012 14:42:34 -0500 [thread overview]
Message-ID: <4F3EADAA.9090702@redhat.com> (raw)
In-Reply-To: <1775349.d0yvHiVdjB@avalon>
On 2/16/12 6:25 PM, Laurent Pinchart wrote:
> *** Common video mode data structure and EDID parser ***
>
> Goal: Sharing an EDID parser between DRM/KMS, FBDEV and V4L2.
>
> The DRM EDID parser is currently the most advanced implementation and will
> be taken as a starting point.
>
> Different subsystems use different data structures to describe video
> mode/timing information:
>
> - struct drm_mode_modeinfo in DRM/KMS
> - struct fb_videomode in FBDEV
> - struct v4l2_bt_timings in V4L2
>
> A new common video mode/timing data structure (struct media_video_mode_info,
> exact name is to be defined), not tied to any specific subsystem, is
> required to share the EDID parser. That structure won't be exported to
> userspace.
>
> Helper functions will be implemented in the subsystems to convert between
> that generic structure and the various subsystem-specific structures.
I guess. I don't really see a reason not to unify the structs too, but
then I don't have binary blobs to pretend to be ABI-compatible with.
> The mode list is stored in the DRM connector in the EDID parser. A new mode
> list data structure can be added, or a callback function can be used by the
> parser to give modes one at a time to the caller.
>
> 3D needs to be taken into account (this is similar to interlacing).
Would also be pleasant if the new mode structure had a reasonable way of
representing borders, we copied that mistake from xserver and have been
regretting it.
> Action points:
> - Laurent to work on a proposal. The DRM/KMS EDID parser will be reused.
I'm totally in favor of this. I've long loathed fbdev having such a
broken parser, I just never got around to fixing it since we don't use
fbdev in any real way.
The existing drm_edid.c needs a little detangling, DDC fetch and EDID
parse should be better split. Shouldn't be too terrible though.
Has the embedded world seen any adoption of DisplayID? I wrote a fair
bit of a parser for it at one point [1] but I've yet to find a machine
that's required it.
> *** Split KMS and GPU Drivers ***
>
> Goal: Split KMS and GPU drivers with in kernel API inbetween.
>
> In most (all ?) SoCs, the GPU and the display controller are separate
> devices. Splitting them into separate drivers would allow reusing the GPU
> driver with different devices (e.g. using a single common PowerVR kernel
> module with different display controller drivers). The same approach can be
> used on the desktop for the multi-GPU case and the USB display case.
>
> - OMAP already separates the GPU and DSS drivers, but the GPU driver is some
> kind of DSS plugin. This isn't a long-term approach.
> - Exynos also separates the GPU and FIMD drivers. It's hard to merge GPU
> into display subsystem since UMP, GPU has own memory management codes.
>
> One of the biggest challenges would be to get GPU vendors to use this new
> model. ARM could help here, by making the Mali kernel driver split from the
> display controller drivers. Once one vendor jumps onboard, others could have
> a bigger incentive to follow.
Honestly I want this for Intel already, given how identical Poulsbo's
display block is to gen3.
> *** HDMI CEC Support ***
>
> Goal: Support HDMI CEC and offer a userspace API for applications.
>
> A new kernel API is needed and must be usable by KMS, V4L2 and possibly
> LIRC. There's ongoing effort from Cisco to implement HDMI CEC support. Given
> their background, V4L2 is their initial target. A proposal is available at
> http://www.mail-archive.com/linux-media@vger.kernel.org/msg29241.html with a
> sample implementation at
> http://git.linuxtv.org/hverkuil/cisco.git/shortlog/refs/heads/cobalt-
> mainline
> (drivers/media/video/adv7604.c and ad9389b.c.
>
> In order to avoid API duplication, a new CEC subsystem is probably needed.
> CEC could be modeled as a bus, or as a network device. With the network
> device approach, we could have both kernel and userspace protocol handlers.
I'm not a huge fan of userspace protocol for this. Seems like it'd just
give people more license to do their own subtly-incompatible things that
only work between devices of the same vendor. Interoperability is the
_whole_ point of CEC. (Yes I know every vendor tries to spin it as
their own magical branded thing, but I'd appreciate it if they grew up.)
[1] -
http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/modes/xf86DisplayIDModes.c
- ajax
next prev parent reply other threads:[~2012-02-17 19:42 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201201171126.42675.laurent.pinchart@ideasonboard.com>
[not found] ` <1654816.MX2JJ87BEo@avalon>
2012-02-16 23:25 ` Kernel Display and Video API Consolidation mini-summit at ELC 2012 - Notes Laurent Pinchart
2012-02-16 23:25 ` Laurent Pinchart
2012-02-17 9:55 ` Daniel Vetter
2012-02-17 9:55 ` Daniel Vetter
2012-02-17 18:46 ` Laurent Pinchart
2012-02-17 18:46 ` Laurent Pinchart
2012-02-22 16:03 ` James Simmons
2012-02-22 16:03 ` James Simmons
2012-02-22 16:24 ` Daniel Vetter
2012-02-22 16:24 ` Daniel Vetter
2012-02-22 16:28 ` Rob Clark
2012-02-22 16:28 ` Rob Clark
2012-02-23 7:34 ` Michel Dänzer
2012-02-23 7:34 ` Michel Dänzer
2012-02-23 7:34 ` Michel Dänzer
2012-02-22 16:36 ` Chris Wilson
2012-02-22 16:36 ` Chris Wilson
2012-02-22 16:36 ` Chris Wilson
2012-02-22 16:40 ` Clark, Rob
2012-02-22 16:40 ` Clark, Rob
2012-02-22 17:26 ` James Simmons
2012-02-22 17:26 ` James Simmons
2012-02-23 0:15 ` Alan Cox
2012-02-22 17:00 ` Adam Jackson
2012-02-22 17:00 ` Adam Jackson
2012-02-20 16:09 ` Guennadi Liakhovetski
2012-02-20 16:09 ` Guennadi Liakhovetski
2012-02-20 16:19 ` David Airlie
2012-02-20 16:19 ` David Airlie
2012-05-17 2:46 ` Jun Nie
2012-05-17 2:46 ` Jun Nie
2012-05-17 7:53 ` Hans Verkuil
2012-05-17 7:53 ` Hans Verkuil
2012-02-17 11:07 ` Semwal, Sumit
2012-02-17 11:19 ` Semwal, Sumit
2012-02-17 18:49 ` Laurent Pinchart
2012-02-17 18:49 ` Laurent Pinchart
2012-02-17 19:42 ` Adam Jackson [this message]
2012-02-17 19:42 ` Adam Jackson
2012-02-18 17:53 ` Clark, Rob
2012-02-18 17:53 ` Clark, Rob
2012-02-18 0:56 ` Keith Packard
2012-02-18 0:56 ` Keith Packard
2012-02-18 0:56 ` Keith Packard
2012-02-20 16:40 ` Guennadi Liakhovetski
2012-02-20 16:40 ` Guennadi Liakhovetski
2012-03-02 14:23 ` Heiko Stübner
2012-03-02 14:23 ` Heiko Stübner
2012-03-02 15:56 ` Marcus Lorentzon
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=4F3EADAA.9090702@redhat.com \
--to=ajax@redhat.com \
--cc=alexander.deucher@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=magnus.damm@gmail.com \
--cc=marcus.lorentzon@linaro.org \
--cc=pawel@osciak.com \
--cc=rob@ti.com \
--cc=sakari.ailus@maxwell.research.nokia.com \
--cc=t.stanislaws@samsung.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.