devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Tomasz Figa <tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Rob Clark <robclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH V2] video: implement a simple framebuffer driver
Date: Fri, 03 May 2013 12:06:24 +0200	[thread overview]
Message-ID: <1956593.M6NmITdEKh@avalon> (raw)
In-Reply-To: <5182AF83.4080705-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

Hi Stephen,

On Thursday 02 May 2013 12:25:07 Stephen Warren wrote:
> On 04/29/2013 04:04 PM, Arnd Bergmann wrote:
> > On Monday 29 April 2013, Laurent Pinchart wrote:
> >> On Monday 29 April 2013 23:31:30 Tomasz Figa wrote:
> >>> Good point. Stephen, would it be a problem to make this a KMS driver
> >>> instead? Old fbdev API could be emulated on top of it, until it goes out
> >>> of use, couldn't it?
> >> 
> >> There's already an fbdev emulation layer in KMS, for such a simple use
> >> case it will work fine.
> > 
> > I suggested the same to Stephen when he first brought up this driver.
> > Unfortunately his attempt to create a simple KMS driver resulted in a
> > significantly larger driver than the one he did for the framebuffer
> > interface. This means that either Stephen did something really wrong
> > in his attempt, or the KMS interface isn't as good as it should be
> > if we want to move people away from frame buffer drivers.
> 
> Well, I didn't actually attempt to write the KMS driver; I simply took a
> look at existing KMS drivers (and perhaps some stub KMS driver; I forget
> right now) to see what it'd take, and it looked quite scary.
> 
> The other issue is that the KMS semantics appear to desire that the
> driver allocate FB memory from some pool, and then point the display
> scanout at the allocated memory. However, this driver's semantics are
> that some other entity has allocated and reserved some memory region for
> scanout, and the simple FB driver exists solely to scribble to that
> memory region. Rob Clark said the thought this could be handled by
> writing a custom memory allocator to support this, but it seemed a
> little pointless to write a whole memory allocator when the existing FB
> interface allows the driver to just set a struct member to the address
> and be done with it.

KMS handles frame buffers through two objects, a GEM object that represents a 
piece of memory and a frame buffer object that represents, well, a frame 
buffer :-)

GEM objects management requires an allocator, and frame buffers reference one 
or more GEM objects to model the frame buffer memory. As allocating new GEM 
objects isn't possible in this case, the driver could create a GEM object and 
a frame buffer at initialization time, and implement GEM allocation stubs that 
would simply return an error unconditionally.

-- 
Regards,

Laurent Pinchart

  parent reply	other threads:[~2013-05-03 10:06 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04  2:39 [PATCH V2] video: implement a simple framebuffer driver Stephen Warren
     [not found] ` <1365043183-28905-1-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-09  0:16   ` Andrew Morton
     [not found]     ` <20130408171637.98b5ad1f867bcbda883af68b-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2013-04-09  3:16       ` Stephen Warren
2013-04-09  8:08       ` Geert Uytterhoeven
2013-04-11  9:56       ` Laurent Pinchart
2013-04-11 16:06         ` Stephen Warren
2013-04-11 20:06           ` Laurent Pinchart
2013-04-11 20:38             ` Stephen Warren
     [not found]               ` <51671F3D.5040501-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-29 20:56                 ` Laurent Pinchart
2013-04-29 21:15         ` Tomasz Figa
2013-04-29 21:20           ` Laurent Pinchart
2013-04-29 21:31             ` Tomasz Figa
2013-04-29 21:40               ` Laurent Pinchart
2013-04-29 22:04                 ` Arnd Bergmann
     [not found]                   ` <201304300004.20320.arnd-r2nGTMty4D4@public.gmane.org>
2013-04-29 22:23                     ` Laurent Pinchart
2013-04-29 22:40                       ` Olof Johansson
     [not found]                         ` <CAOesGMiCvBwck0Z6Nyo9zW=1=J=wjhJW68qNGMrN_8iim=8Srg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-30  9:50                           ` Laurent Pinchart
2013-05-02 18:25                     ` Stephen Warren
2013-05-02 18:35                       ` Geert Uytterhoeven
     [not found]                       ` <5182AF83.4080705-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-03 10:06                         ` Laurent Pinchart [this message]
2013-05-07 21:33                           ` Andrew Morton
     [not found]                             ` <20130507143338.79b3d893fcdc3bd79fbe9a57-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2013-05-08  2:36                               ` Stephen Warren
     [not found]                                 ` <5189BA36.9000105-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-08 19:28                                   ` Olof Johansson
2013-05-08 20:58                                   ` Rob Landley
2013-04-30  7:28           ` Tomi Valkeinen
2013-04-11 10:42   ` Geert Uytterhoeven
2013-04-11 16:10     ` Stephen Warren
2013-05-18 10:29   ` Alexandre Courbot
     [not found]     ` <CAAVeFuJ5q4Y0QtvJX2iVmq_O2ofs1B9=MB_aA8VdcEBdM4zf2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-20 15:25       ` Stephen Warren
2013-04-30  7:27 ` Tomi Valkeinen
     [not found]   ` <517F7245.2050606-X3B1VOXEql0@public.gmane.org>
2013-04-30 10:28     ` Arnd Bergmann
     [not found]       ` <201304301228.42245.arnd-r2nGTMty4D4@public.gmane.org>
2013-04-30 11:42         ` Laurent Pinchart
2013-04-30 11:48           ` Tomi Valkeinen
     [not found]             ` <517FAF78.1010306-l0cyMroinI0@public.gmane.org>
2013-04-30 11:49               ` Laurent Pinchart
2013-04-30 11:46       ` Tomi Valkeinen
     [not found]         ` <517FAF0C.1060901-l0cyMroinI0@public.gmane.org>
2013-05-03  5:40           ` Dave Airlie
2013-04-30  7:39 ` Tomi Valkeinen
2013-04-30 10:34   ` Arnd Bergmann
2013-04-30 14:38   ` Re[2]: " Alexander Shiyan
2013-04-30 15:07     ` Arnd Bergmann

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=1956593.M6NmITdEKh@avalon \
    --to=laurent.pinchart-rylnwiuwjnjg/c1bvhzhaw@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=robclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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).