linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Javier Martinez Canillas <javierm@redhat.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Linux Fbdev development list" <linux-fbdev@vger.kernel.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"DRI Development" <dri-devel@lists.freedesktop.org>,
	"Noralf Trønnes" <noralf@tronnes.org>,
	"Maxime Ripard" <maxime@cerno.tech>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>
Subject: Re: [PATCH 3/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays
Date: Wed, 2 Feb 2022 09:23:07 +0100	[thread overview]
Message-ID: <946f8fbb-cd64-12d0-ecd9-13af18a00590@suse.de> (raw)
In-Reply-To: <3df2add7-6034-0527-825a-74e62e76dace@redhat.com>


[-- Attachment #1.1: Type: text/plain, Size: 2279 bytes --]

Hi

Am 01.02.22 um 15:36 schrieb Javier Martinez Canillas:
> On 2/1/22 15:05, Geert Uytterhoeven wrote:
>> Hi Javier,
>>
>> On Tue, Feb 1, 2022 at 2:02 PM Javier Martinez Canillas
>> <javierm@redhat.com> wrote:
>>> On 2/1/22 10:33, Thomas Zimmermann wrote:
>>>>> +{
>>>>> +    u8 col_end = col_start + cols - 1;
>>>>> +    int ret;
>>>>> +
>>>>> +    if (col_start == ssd1307->col_start && col_end == ssd1307->col_end)
>>>>> +            return 0;
>>>>> +
>>>>> +    ret = ssd1307_write_cmd(ssd1307->client, SSD1307_SET_COL_RANGE);
>>>>> +    if (ret < 0)
>>>>> +            return ret;
>>>>> +
>>>>> +    ret = ssd1307_write_cmd(ssd1307->client, col_start);
>>>>> +    if (ret < 0)
>>>>> +            return ret;
>>>>> +
>>>>> +    ret = ssd1307_write_cmd(ssd1307->client, col_end);
>>>>> +    if (ret < 0)
>>>>> +            return ret;
>>>>
>>>> Can you write these cmds in one step, such as setting up an array and
>>>> sending it with ssd1307_write_array?
>>>
>>> I don't think so because the commands are different. But I'll check the
>>> ssd1306 datasheet again to confirma that's the case.
>>
>> IIRC, I tried that while working on the optimizations for ssd1307fb,
>> and it didn't work.
>>
> 
> That's what I would had expected by reading the datasheet. Thanks a
> lot for confirming my assumption.

Thanks to both of you. I was asking because I found the code to be 
repetitive and it's not clear that these 3 statements belong together.

I'd like to suggest to add a function

   ssd1307_write_cmds(client, len, const u8 *cmds)

that loops through cmds and sends the values one by one. A call would 
look like this:

   const u8 set_col_range[] = {
     SSD1307_SET_COL_RANGE,
     col_start,
     col_end
   };

   ssd1307_write_cmds(client, ARRAY_SIZE(set_col_range), set_col_range);

AND/OR

You could have functions that take a command with arguments; either as 
va_args or with one function per number of arguments. Or you could 
combine all these somehow.

Best regards
Thomas

>   
> 
> Best regards,

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

  reply	other threads:[~2022-02-02  8:23 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-31 20:29 [PATCH 3/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays Javier Martinez Canillas
2022-02-01  9:33 ` Thomas Zimmermann
2022-02-01  9:48   ` Andy Shevchenko
2022-02-01 13:01   ` Javier Martinez Canillas
2022-02-01 14:05     ` Geert Uytterhoeven
2022-02-01 14:36       ` Javier Martinez Canillas
2022-02-02  8:23         ` Thomas Zimmermann [this message]
2022-02-02  8:29           ` Javier Martinez Canillas
     [not found] ` <YfhVBtv1UIA7bJja@ravnborg.org>
2022-02-01  0:14   ` Javier Martinez Canillas
2022-02-01  9:44     ` Andy Shevchenko
2022-02-01 11:45       ` Javier Martinez Canillas
2022-02-01 14:02         ` Andy Shevchenko
2022-02-01 15:10           ` Javier Martinez Canillas
2022-02-01  9:41   ` Andy Shevchenko
2022-02-01 11:40     ` Javier Martinez Canillas

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=946f8fbb-cd64-12d0-ecd9-13af18a00590@suse.de \
    --to=tzimmermann@suse.de \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert@linux-m68k.org \
    --cc=javierm@redhat.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime@cerno.tech \
    --cc=noralf@tronnes.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).