From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Jonathan Corbet <corbet@lwn.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
linux-doc@vger.kernel.org, devel@driverdev.osuosl.org
Subject: Re: [PATCH v2 1/3] staging: sm7xxfb: move sm712fb out of staging
Date: Wed, 02 Sep 2015 11:58:19 +0000 [thread overview]
Message-ID: <55E6E45B.5030500@ti.com> (raw)
In-Reply-To: <20150901135514.GB15833@sudip-pc>
[-- Attachment #1: Type: text/plain, Size: 3049 bytes --]
On 01/09/15 16:55, Sudip Mukherjee wrote:
> On Tue, Sep 01, 2015 at 04:27:24PM +0300, Tomi Valkeinen wrote:
>>
>>
>> On 18/07/15 07:08, Sudip Mukherjee wrote:
>>> Now since all cleanups are done and the code is ready to be merged lets
>>> move it out of staging into fbdev location.
>>
>> Have you considered writing a DRM driver for this? I'm not happy at all
>> adding new fbdev drivers, as the DRM framework is much better,
>> supported, and continuously improved. With fbdev you end up with things
>> like module parameters used to define video modes etc, which is just ugly.
> Yes, I am working on a DRM driver, but since these are all voluntary
> work it is taking time. And Greg has already merged it.
>>
>> Anyway, some comments below.
> Some replies inline and remaining I will fix and send patches to you.
Wouldn't the time be better spent on the DRM driver?
This driver will be obsolete immediately when there's a DRM driver for
this device, and then it'll be yet another obsoleted fbdev driver we
need to maintain.
>>> +static const struct vesa_mode vesa_mode_table[] = {
>>> + {"0x301", 640, 480, 8},
>>> + {"0x303", 800, 600, 8},
>>> + {"0x305", 1024, 768, 8},
>>> + {"0x307", 1280, 1024, 8},
>>> +
>>> + {"0x311", 640, 480, 16},
>>> + {"0x314", 800, 600, 16},
>>> + {"0x317", 1024, 768, 16},
>>> + {"0x31A", 1280, 1024, 16},
>>> +
>>> + {"0x312", 640, 480, 24},
>>> + {"0x315", 800, 600, 24},
>>> + {"0x318", 1024, 768, 24},
>>> + {"0x31B", 1280, 1024, 24},
>>> +};
>>
>> We have "vesa_modes" in include/linux/fb.h. What is the above table for?
> The resolutions that are supported along with the kernel boot parameter
> to point to the resolution to boot with.
Why does the user need to give such hex values? Why not modes according
to Documentation/fb/modedb.txt?
>>> +
>>> +/**********************************************************************
>>> + SM712 Mode table.
>>> + **********************************************************************/
>>> +static const struct modeinit vgamode[] = {
>>> + {
> <snip>
>>> + { /* Init_CR90_CRA7 */
>>> + 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
>>> + 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
>>> + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
>>> + },
>>> + },
>>> +};
>>
>> What are these tables above for?
> Different register settings based on the display resolution. Do you want
> me to do anything with these vgamode table and the vesa_mode_table?
The vgamode table looks quite horrible. It's unmaintainable, and with a
quick look it seems to have lots of repetition. Large blocks of the data
for different modes are the same.
I don't know what the register there are, but I'd imagine you could
write generic functions like, say, "set_timings", which takes normal
linux videomode struct and writes those settings to the registers.
There should be no such bulk-write register tables in a proper driver,
except in some very special cases.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Jonathan Corbet <corbet@lwn.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
<linux-kernel@vger.kernel.org>, <linux-fbdev@vger.kernel.org>,
<linux-doc@vger.kernel.org>, <devel@driverdev.osuosl.org>
Subject: Re: [PATCH v2 1/3] staging: sm7xxfb: move sm712fb out of staging
Date: Wed, 2 Sep 2015 14:58:19 +0300 [thread overview]
Message-ID: <55E6E45B.5030500@ti.com> (raw)
In-Reply-To: <20150901135514.GB15833@sudip-pc>
[-- Attachment #1: Type: text/plain, Size: 3049 bytes --]
On 01/09/15 16:55, Sudip Mukherjee wrote:
> On Tue, Sep 01, 2015 at 04:27:24PM +0300, Tomi Valkeinen wrote:
>>
>>
>> On 18/07/15 07:08, Sudip Mukherjee wrote:
>>> Now since all cleanups are done and the code is ready to be merged lets
>>> move it out of staging into fbdev location.
>>
>> Have you considered writing a DRM driver for this? I'm not happy at all
>> adding new fbdev drivers, as the DRM framework is much better,
>> supported, and continuously improved. With fbdev you end up with things
>> like module parameters used to define video modes etc, which is just ugly.
> Yes, I am working on a DRM driver, but since these are all voluntary
> work it is taking time. And Greg has already merged it.
>>
>> Anyway, some comments below.
> Some replies inline and remaining I will fix and send patches to you.
Wouldn't the time be better spent on the DRM driver?
This driver will be obsolete immediately when there's a DRM driver for
this device, and then it'll be yet another obsoleted fbdev driver we
need to maintain.
>>> +static const struct vesa_mode vesa_mode_table[] = {
>>> + {"0x301", 640, 480, 8},
>>> + {"0x303", 800, 600, 8},
>>> + {"0x305", 1024, 768, 8},
>>> + {"0x307", 1280, 1024, 8},
>>> +
>>> + {"0x311", 640, 480, 16},
>>> + {"0x314", 800, 600, 16},
>>> + {"0x317", 1024, 768, 16},
>>> + {"0x31A", 1280, 1024, 16},
>>> +
>>> + {"0x312", 640, 480, 24},
>>> + {"0x315", 800, 600, 24},
>>> + {"0x318", 1024, 768, 24},
>>> + {"0x31B", 1280, 1024, 24},
>>> +};
>>
>> We have "vesa_modes" in include/linux/fb.h. What is the above table for?
> The resolutions that are supported along with the kernel boot parameter
> to point to the resolution to boot with.
Why does the user need to give such hex values? Why not modes according
to Documentation/fb/modedb.txt?
>>> +
>>> +/**********************************************************************
>>> + SM712 Mode table.
>>> + **********************************************************************/
>>> +static const struct modeinit vgamode[] = {
>>> + {
> <snip>
>>> + { /* Init_CR90_CRA7 */
>>> + 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
>>> + 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
>>> + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
>>> + },
>>> + },
>>> +};
>>
>> What are these tables above for?
> Different register settings based on the display resolution. Do you want
> me to do anything with these vgamode table and the vesa_mode_table?
The vgamode table looks quite horrible. It's unmaintainable, and with a
quick look it seems to have lots of repetition. Large blocks of the data
for different modes are the same.
I don't know what the register there are, but I'd imagine you could
write generic functions like, say, "set_timings", which takes normal
linux videomode struct and writes those settings to the registers.
There should be no such bulk-write register tables in a proper driver,
except in some very special cases.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-09-02 11:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-18 4:08 [PATCH v2 1/3] staging: sm7xxfb: move sm712fb out of staging Sudip Mukherjee
2015-07-18 4:08 ` [PATCH v2 2/3] Documentation/fb: add documentation for sm712fb Sudip Mukherjee
2015-07-18 4:20 ` Sudip Mukherjee
2015-07-18 4:08 ` [PATCH v2 3/3] MAINTAINERS: update maintainers list Sudip Mukherjee
2015-07-18 4:20 ` Sudip Mukherjee
2015-07-27 4:53 ` [PATCH v2 1/3] staging: sm7xxfb: move sm712fb out of staging Sudip Mukherjee
2015-07-27 4:53 ` Sudip Mukherjee
2015-09-01 13:27 ` Tomi Valkeinen
2015-09-01 13:27 ` Tomi Valkeinen
2015-09-01 13:55 ` Sudip Mukherjee
2015-09-01 13:55 ` Sudip Mukherjee
2015-09-02 11:58 ` Tomi Valkeinen [this message]
2015-09-02 11:58 ` Tomi Valkeinen
2015-09-02 12:48 ` Sudip Mukherjee
2015-09-02 12:48 ` Sudip Mukherjee
2015-09-24 11:58 ` Tomi Valkeinen
2015-09-24 11:58 ` Tomi Valkeinen
2015-09-25 13:42 ` Sudip Mukherjee
2015-09-25 13:54 ` Sudip Mukherjee
2015-09-27 4:42 ` Mike Rapoport
2015-09-27 4:42 ` Mike Rapoport
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=55E6E45B.5030500@ti.com \
--to=tomi.valkeinen@ti.com \
--cc=corbet@lwn.net \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=plagnioj@jcrosoft.com \
--cc=sudipm.mukherjee@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.