From: Stephen Warren <swarren@wwwdotorg.org>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V2] video: implement a simple framebuffer driver
Date: Thu, 11 Apr 2013 20:38:21 +0000 [thread overview]
Message-ID: <51671F3D.5040501@wwwdotorg.org> (raw)
In-Reply-To: <1828875.4dYa7WRt67@avalon>
On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> Hi Stephen,
>
> 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?
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.
WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2] video: implement a simple framebuffer driver
Date: Thu, 11 Apr 2013 14:38:21 -0600 [thread overview]
Message-ID: <51671F3D.5040501@wwwdotorg.org> (raw)
In-Reply-To: <1828875.4dYa7WRt67@avalon>
On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> Hi Stephen,
>
> 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?
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.
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Laurent Pinchart
<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@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: Thu, 11 Apr 2013 14:38:21 -0600 [thread overview]
Message-ID: <51671F3D.5040501@wwwdotorg.org> (raw)
In-Reply-To: <1828875.4dYa7WRt67@avalon>
On 04/11/2013 02:06 PM, Laurent Pinchart wrote:
> Hi Stephen,
>
> 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?
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.
next prev parent reply other threads:[~2013-04-11 20:38 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 [this message]
2013-04-11 20:38 ` Stephen Warren
2013-04-11 20:38 ` Stephen Warren
2013-04-29 20:56 ` Laurent Pinchart
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=51671F3D.5040501@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--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.