From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V2] video: implement a simple framebuffer driver
Date: Mon, 29 Apr 2013 20:56:56 +0000 [thread overview]
Message-ID: <1803841.rv79ElYKi3@avalon> (raw)
In-Reply-To: <51671F3D.5040501@wwwdotorg.org>
Hi Stephen,
Sorry for the late reply.
On Thursday 11 April 2013 14:38:21 Stephen Warren wrote:
> On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> > On Thursday 11 April 2013 10:06:49 Stephen Warren wrote:
> >> On 04/11/2013 03:56 AM, Laurent Pinchart wrote:
> >>> On Monday 08 April 2013 17:16:37 Andrew Morton wrote:
> >>>> On Wed, 3 Apr 2013 20:39:43 -0600 Stephen Warren wrote:
> >>>>> A simple frame-buffer describes a raw memory region that may be
> >>>>> rendered to, with the assumption that the display hardware has already
> >>>>> been set up to scan out from that buffer.
> >>>>>
> >>>>> This is useful in cases where a bootloader exists and has set up the
> >>>>> display hardware, but a Linux driver doesn't yet exist for the display
> >>>>> hardware.
> >>>>>
> >>>>> ...
> >>>>>
> >>>>> +config FB_SIMPLE
> >>>>> + bool "Simple framebuffer support"
> >>>>> + depends on (FB = y) && OF
> >>>>
> >>>> It's sad that this simple little thing requires Open Firmware. Could
> >>>> it be generalised in some way so that the small amount of setup info
> >>>> could be provided by other means (eg, module_param) or does the
> >>>> dependency go deeper than that?
> >>>
> >>> I second that request. I like the idea of a simple framebuffer driver if
> >>> it helps deprecating fbdev in the long term, but I don't want it to
> >>> offer an excuse not to implement a DRM/KMS driver. In particular adding
> >>> DT bindings would force us to keep supporting the ABI for a (too) long
> >>> time.
> >>
> >> The platforms I intend to use this with only support device tree. Adding
> >> support for platform data right now would just be dead code. If somebody
> >> wants to use this driver with a board file based system rather than a DT
> >> based system, it would be trivial do modify the driver to add a platform
> >> data structure at that time.
> >
> > What about using module parameters instead of DT bindings and platform
> > data ? As this is a hack designed to work around the lack of a proper
> > display driver the frame buffer address and size could just be passed by
> > the boot loader through the kernel command line, and the device would
> > then be instantiated by the driver.
>
> I'm afraid I strongly dislike the idea of using module parameters. One
> of the things that I dislike the most about NVIDIA's downstream Android
> kernels is the huge number of random parameters that are required on the
> kernel command-line just to get it to boot.
>
> I'd specifically prefer the configuration for this driver to be a device
> tree binding so that it /is/ an ABI. That way, arbitrary software that
> boots the Linux kernel will be able to target a common standard for how
> to pass this information to the kernel. If we move to module parameters
> instead, especially with the specific intent that the format of those
> parameters is no longer an ABI, we run in to issues where a new kernel
> requires a bootloader update in order to generate the new set of module
> parameters that are required by the driver. If we say the module
> parameters will never change except in a backwards-compatible fashion,
> and hence that issue won't arise, then why not just make it a DT binding?
>
> Do module parameters handle the case of multiple device instances?
Not well. It can be handled manually by using parameter arrays, but that's a
bit hackish.
> Also, I really don't see this driver as a hack. It's a perfectly reasonable
> situation to have some other SW set up the frame-buffer, and Linux simply
> continue to use it. Perhaps that other SW even ran on a difference CPU, or
> the parameters are hard-coded in HW design, and so there's no HW that Linux
> ever could drive, so it just isn't possible to create any more advanced
> driver.
I totally agree that this driver would be very useful during board bring-up.
My concern is that it would also give an incentive to vendors not to develop a
proper KMS driver (or rather remove an incentive to develop one).
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2] video: implement a simple framebuffer driver
Date: Mon, 29 Apr 2013 22:56:56 +0200 [thread overview]
Message-ID: <1803841.rv79ElYKi3@avalon> (raw)
In-Reply-To: <51671F3D.5040501@wwwdotorg.org>
Hi Stephen,
Sorry for the late reply.
On Thursday 11 April 2013 14:38:21 Stephen Warren wrote:
> On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> > On Thursday 11 April 2013 10:06:49 Stephen Warren wrote:
> >> On 04/11/2013 03:56 AM, Laurent Pinchart wrote:
> >>> On Monday 08 April 2013 17:16:37 Andrew Morton wrote:
> >>>> On Wed, 3 Apr 2013 20:39:43 -0600 Stephen Warren wrote:
> >>>>> A simple frame-buffer describes a raw memory region that may be
> >>>>> rendered to, with the assumption that the display hardware has already
> >>>>> been set up to scan out from that buffer.
> >>>>>
> >>>>> This is useful in cases where a bootloader exists and has set up the
> >>>>> display hardware, but a Linux driver doesn't yet exist for the display
> >>>>> hardware.
> >>>>>
> >>>>> ...
> >>>>>
> >>>>> +config FB_SIMPLE
> >>>>> + bool "Simple framebuffer support"
> >>>>> + depends on (FB = y) && OF
> >>>>
> >>>> It's sad that this simple little thing requires Open Firmware. Could
> >>>> it be generalised in some way so that the small amount of setup info
> >>>> could be provided by other means (eg, module_param) or does the
> >>>> dependency go deeper than that?
> >>>
> >>> I second that request. I like the idea of a simple framebuffer driver if
> >>> it helps deprecating fbdev in the long term, but I don't want it to
> >>> offer an excuse not to implement a DRM/KMS driver. In particular adding
> >>> DT bindings would force us to keep supporting the ABI for a (too) long
> >>> time.
> >>
> >> The platforms I intend to use this with only support device tree. Adding
> >> support for platform data right now would just be dead code. If somebody
> >> wants to use this driver with a board file based system rather than a DT
> >> based system, it would be trivial do modify the driver to add a platform
> >> data structure at that time.
> >
> > What about using module parameters instead of DT bindings and platform
> > data ? As this is a hack designed to work around the lack of a proper
> > display driver the frame buffer address and size could just be passed by
> > the boot loader through the kernel command line, and the device would
> > then be instantiated by the driver.
>
> I'm afraid I strongly dislike the idea of using module parameters. One
> of the things that I dislike the most about NVIDIA's downstream Android
> kernels is the huge number of random parameters that are required on the
> kernel command-line just to get it to boot.
>
> I'd specifically prefer the configuration for this driver to be a device
> tree binding so that it /is/ an ABI. That way, arbitrary software that
> boots the Linux kernel will be able to target a common standard for how
> to pass this information to the kernel. If we move to module parameters
> instead, especially with the specific intent that the format of those
> parameters is no longer an ABI, we run in to issues where a new kernel
> requires a bootloader update in order to generate the new set of module
> parameters that are required by the driver. If we say the module
> parameters will never change except in a backwards-compatible fashion,
> and hence that issue won't arise, then why not just make it a DT binding?
>
> Do module parameters handle the case of multiple device instances?
Not well. It can be handled manually by using parameter arrays, but that's a
bit hackish.
> Also, I really don't see this driver as a hack. It's a perfectly reasonable
> situation to have some other SW set up the frame-buffer, and Linux simply
> continue to use it. Perhaps that other SW even ran on a difference CPU, or
> the parameters are hard-coded in HW design, and so there's no HW that Linux
> ever could drive, so it just isn't possible to create any more advanced
> driver.
I totally agree that this driver would be very useful during board bring-up.
My concern is that it would also give an incentive to vendors not to develop a
proper KMS driver (or rather remove an incentive to develop one).
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
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,
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: Mon, 29 Apr 2013 22:56:56 +0200 [thread overview]
Message-ID: <1803841.rv79ElYKi3@avalon> (raw)
In-Reply-To: <51671F3D.5040501-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Hi Stephen,
Sorry for the late reply.
On Thursday 11 April 2013 14:38:21 Stephen Warren wrote:
> On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> > On Thursday 11 April 2013 10:06:49 Stephen Warren wrote:
> >> On 04/11/2013 03:56 AM, Laurent Pinchart wrote:
> >>> On Monday 08 April 2013 17:16:37 Andrew Morton wrote:
> >>>> On Wed, 3 Apr 2013 20:39:43 -0600 Stephen Warren wrote:
> >>>>> A simple frame-buffer describes a raw memory region that may be
> >>>>> rendered to, with the assumption that the display hardware has already
> >>>>> been set up to scan out from that buffer.
> >>>>>
> >>>>> This is useful in cases where a bootloader exists and has set up the
> >>>>> display hardware, but a Linux driver doesn't yet exist for the display
> >>>>> hardware.
> >>>>>
> >>>>> ...
> >>>>>
> >>>>> +config FB_SIMPLE
> >>>>> + bool "Simple framebuffer support"
> >>>>> + depends on (FB = y) && OF
> >>>>
> >>>> It's sad that this simple little thing requires Open Firmware. Could
> >>>> it be generalised in some way so that the small amount of setup info
> >>>> could be provided by other means (eg, module_param) or does the
> >>>> dependency go deeper than that?
> >>>
> >>> I second that request. I like the idea of a simple framebuffer driver if
> >>> it helps deprecating fbdev in the long term, but I don't want it to
> >>> offer an excuse not to implement a DRM/KMS driver. In particular adding
> >>> DT bindings would force us to keep supporting the ABI for a (too) long
> >>> time.
> >>
> >> The platforms I intend to use this with only support device tree. Adding
> >> support for platform data right now would just be dead code. If somebody
> >> wants to use this driver with a board file based system rather than a DT
> >> based system, it would be trivial do modify the driver to add a platform
> >> data structure at that time.
> >
> > What about using module parameters instead of DT bindings and platform
> > data ? As this is a hack designed to work around the lack of a proper
> > display driver the frame buffer address and size could just be passed by
> > the boot loader through the kernel command line, and the device would
> > then be instantiated by the driver.
>
> I'm afraid I strongly dislike the idea of using module parameters. One
> of the things that I dislike the most about NVIDIA's downstream Android
> kernels is the huge number of random parameters that are required on the
> kernel command-line just to get it to boot.
>
> I'd specifically prefer the configuration for this driver to be a device
> tree binding so that it /is/ an ABI. That way, arbitrary software that
> boots the Linux kernel will be able to target a common standard for how
> to pass this information to the kernel. If we move to module parameters
> instead, especially with the specific intent that the format of those
> parameters is no longer an ABI, we run in to issues where a new kernel
> requires a bootloader update in order to generate the new set of module
> parameters that are required by the driver. If we say the module
> parameters will never change except in a backwards-compatible fashion,
> and hence that issue won't arise, then why not just make it a DT binding?
>
> Do module parameters handle the case of multiple device instances?
Not well. It can be handled manually by using parameter arrays, but that's a
bit hackish.
> Also, I really don't see this driver as a hack. It's a perfectly reasonable
> situation to have some other SW set up the frame-buffer, and Linux simply
> continue to use it. Perhaps that other SW even ran on a difference CPU, or
> the parameters are hard-coded in HW design, and so there's no HW that Linux
> ever could drive, so it just isn't possible to create any more advanced
> driver.
I totally agree that this driver would be very useful during board bring-up.
My concern is that it would also give an incentive to vendors not to develop a
proper KMS driver (or rather remove an incentive to develop one).
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2013-04-29 20:56 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-04 2:39 [PATCH V2] video: implement a simple framebuffer driver Stephen Warren
2013-04-04 2:39 ` Stephen Warren
2013-04-04 2:39 ` Stephen Warren
2013-04-09 0:16 ` Andrew Morton
2013-04-09 0:16 ` Andrew Morton
2013-04-09 0:16 ` Andrew Morton
2013-04-09 3:16 ` Stephen Warren
2013-04-09 3:16 ` Stephen Warren
2013-04-09 3:16 ` Stephen Warren
2013-04-09 8:08 ` Geert Uytterhoeven
2013-04-09 8:08 ` Geert Uytterhoeven
2013-04-09 8:08 ` Geert Uytterhoeven
2013-04-11 9:56 ` Laurent Pinchart
2013-04-11 9:56 ` Laurent Pinchart
2013-04-11 9:56 ` Laurent Pinchart
2013-04-11 16:06 ` Stephen Warren
2013-04-11 16:06 ` Stephen Warren
2013-04-11 16:06 ` Stephen Warren
2013-04-11 20:06 ` Laurent Pinchart
2013-04-11 20:06 ` Laurent Pinchart
2013-04-11 20:06 ` Laurent Pinchart
2013-04-11 20:38 ` Stephen Warren
2013-04-11 20:38 ` Stephen Warren
2013-04-11 20:38 ` Stephen Warren
2013-04-29 20:56 ` Laurent Pinchart [this message]
2013-04-29 20:56 ` Laurent Pinchart
2013-04-29 20:56 ` Laurent Pinchart
2013-04-29 21:15 ` Tomasz Figa
2013-04-29 21:15 ` Tomasz Figa
2013-04-29 21:15 ` Tomasz Figa
2013-04-29 21:20 ` Laurent Pinchart
2013-04-29 21:20 ` Laurent Pinchart
2013-04-29 21:20 ` Laurent Pinchart
2013-04-29 21:31 ` Tomasz Figa
2013-04-29 21:31 ` Tomasz Figa
2013-04-29 21:31 ` Tomasz Figa
2013-04-29 21:40 ` Laurent Pinchart
2013-04-29 21:40 ` Laurent Pinchart
2013-04-29 21:40 ` Laurent Pinchart
2013-04-29 22:04 ` Arnd Bergmann
2013-04-29 22:04 ` Arnd Bergmann
2013-04-29 22:04 ` Arnd Bergmann
2013-04-29 22:23 ` Laurent Pinchart
2013-04-29 22:23 ` Laurent Pinchart
2013-04-29 22:23 ` Laurent Pinchart
2013-04-29 22:40 ` Olof Johansson
2013-04-29 22:40 ` Olof Johansson
2013-04-29 22:40 ` Olof Johansson
2013-04-30 9:50 ` Laurent Pinchart
2013-04-30 9:50 ` Laurent Pinchart
2013-04-30 9:50 ` Laurent Pinchart
2013-05-02 18:25 ` Stephen Warren
2013-05-02 18:25 ` Stephen Warren
2013-05-02 18:25 ` Stephen Warren
2013-05-02 18:35 ` Geert Uytterhoeven
2013-05-02 18:35 ` Geert Uytterhoeven
2013-05-02 18:35 ` Geert Uytterhoeven
2013-05-03 10:06 ` Laurent Pinchart
2013-05-03 10:06 ` Laurent Pinchart
2013-05-03 10:06 ` Laurent Pinchart
2013-05-07 21:33 ` Andrew Morton
2013-05-07 21:33 ` Andrew Morton
2013-05-07 21:33 ` Andrew Morton
2013-05-08 2:36 ` Stephen Warren
2013-05-08 2:36 ` Stephen Warren
2013-05-08 2:36 ` Stephen Warren
2013-05-08 19:28 ` Olof Johansson
2013-05-08 19:28 ` Olof Johansson
2013-05-08 19:28 ` Olof Johansson
2013-05-08 20:58 ` Rob Landley
2013-05-08 20:58 ` Rob Landley
2013-05-08 20:58 ` Rob Landley
2013-04-30 7:28 ` Tomi Valkeinen
2013-04-30 7:28 ` Tomi Valkeinen
2013-04-30 7:28 ` Tomi Valkeinen
2013-04-11 10:42 ` Geert Uytterhoeven
2013-04-11 10:42 ` Geert Uytterhoeven
2013-04-11 10:42 ` Geert Uytterhoeven
2013-04-11 16:10 ` Stephen Warren
2013-04-11 16:10 ` Stephen Warren
2013-04-11 16:10 ` Stephen Warren
2013-04-30 7:27 ` Tomi Valkeinen
2013-04-30 7:27 ` Tomi Valkeinen
2013-04-30 7:27 ` Tomi Valkeinen
2013-04-30 10:28 ` Arnd Bergmann
2013-04-30 10:28 ` Arnd Bergmann
2013-04-30 10:28 ` Arnd Bergmann
2013-04-30 11:42 ` Laurent Pinchart
2013-04-30 11:42 ` Laurent Pinchart
2013-04-30 11:42 ` Laurent Pinchart
2013-04-30 11:48 ` Tomi Valkeinen
2013-04-30 11:48 ` Tomi Valkeinen
2013-04-30 11:48 ` Tomi Valkeinen
2013-04-30 11:49 ` Laurent Pinchart
2013-04-30 11:49 ` Laurent Pinchart
2013-04-30 11:49 ` Laurent Pinchart
2013-04-30 11:46 ` Tomi Valkeinen
2013-04-30 11:46 ` Tomi Valkeinen
2013-04-30 11:46 ` Tomi Valkeinen
2013-05-03 5:40 ` Dave Airlie
2013-05-03 5:40 ` Dave Airlie
2013-05-03 5:40 ` Dave Airlie
2013-04-30 7:39 ` Tomi Valkeinen
2013-04-30 7:39 ` Tomi Valkeinen
2013-04-30 7:39 ` Tomi Valkeinen
2013-04-30 10:34 ` Arnd Bergmann
2013-04-30 10:34 ` Arnd Bergmann
2013-04-30 10:34 ` Arnd Bergmann
2013-04-30 14:38 ` Re[2]: [PATCH V2] video: implement a simple f =?UTF-8?B?cmFtZWJ1ZmZlciBkc Alexander Shiyan
2013-04-30 14:38 ` Re[2]: [PATCH V2] video: implement a simple framebuffer driver Alexander Shiyan
2013-04-30 14:38 ` Alexander Shiyan
2013-04-30 15:07 ` Arnd Bergmann
2013-04-30 15:07 ` Arnd Bergmann
2013-04-30 15:07 ` Arnd Bergmann
2013-05-18 10:29 ` Alexandre Courbot
2013-05-18 10:29 ` Alexandre Courbot
2013-05-18 10:29 ` Alexandre Courbot
2013-05-20 15:25 ` Stephen Warren
2013-05-20 15:25 ` Stephen Warren
2013-05-20 15:25 ` Stephen Warren
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=1803841.rv79ElYKi3@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.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 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.