From: Geert Uytterhoeven <geert@linux-m68k.org> To: Maxime Ripard <mripard@kernel.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch> Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven <geert@linux-m68k.org> Subject: [PATCH 3/5] video: fbdev: ssd1307fb: Extract ssd1307fb_set_address_range() Date: Tue, 18 May 2021 10:28:07 +0200 [thread overview] Message-ID: <20210518082809.1467549-4-geert@linux-m68k.org> (raw) In-Reply-To: <20210518082809.1467549-1-geert@linux-m68k.org> Extract the code to set the column and page ranges into a helper function. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> --- drivers/video/fbdev/ssd1307fb.c | 61 +++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c index 6d7bd025bca1a175..cfa27ea0feab4f01 100644 --- a/drivers/video/fbdev/ssd1307fb.c +++ b/drivers/video/fbdev/ssd1307fb.c @@ -152,6 +152,38 @@ static inline int ssd1307fb_write_cmd(struct i2c_client *client, u8 cmd) return ret; } +static int ssd1307fb_set_address_range(struct ssd1307fb_par *par, u8 col_start, + u8 cols, u8 page_start, u8 pages) +{ + u8 col_end = col_start + cols - 1; + u8 page_end = page_start + pages - 1; + int ret; + + /* Set column range */ + ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, col_start); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, col_end); + if (ret < 0) + return ret; + + /* Set page range */ + ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, page_start); + if (ret < 0) + return ret; + + return ssd1307fb_write_cmd(par->client, page_end); +} + static int ssd1307fb_update_display(struct ssd1307fb_par *par) { struct ssd1307fb_array *array; @@ -461,31 +493,10 @@ static int ssd1307fb_init(struct ssd1307fb_par *par) if (ret < 0) return ret; - /* Set column range */ - ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->col_offset); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->col_offset + par->width - 1); - if (ret < 0) - return ret; - - /* Set page range */ - ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->page_offset); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, - par->page_offset + - DIV_ROUND_UP(par->height, 8) - 1); + /* Set column and page range */ + ret = ssd1307fb_set_address_range(par, par->col_offset, par->width, + par->page_offset, + DIV_ROUND_UP(par->height, 8)); if (ret < 0) return ret; -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert@linux-m68k.org> To: Maxime Ripard <mripard@kernel.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch> Cc: linux-fbdev@vger.kernel.org, Geert Uytterhoeven <geert@linux-m68k.org>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH 3/5] video: fbdev: ssd1307fb: Extract ssd1307fb_set_address_range() Date: Tue, 18 May 2021 10:28:07 +0200 [thread overview] Message-ID: <20210518082809.1467549-4-geert@linux-m68k.org> (raw) In-Reply-To: <20210518082809.1467549-1-geert@linux-m68k.org> Extract the code to set the column and page ranges into a helper function. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> --- drivers/video/fbdev/ssd1307fb.c | 61 +++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c index 6d7bd025bca1a175..cfa27ea0feab4f01 100644 --- a/drivers/video/fbdev/ssd1307fb.c +++ b/drivers/video/fbdev/ssd1307fb.c @@ -152,6 +152,38 @@ static inline int ssd1307fb_write_cmd(struct i2c_client *client, u8 cmd) return ret; } +static int ssd1307fb_set_address_range(struct ssd1307fb_par *par, u8 col_start, + u8 cols, u8 page_start, u8 pages) +{ + u8 col_end = col_start + cols - 1; + u8 page_end = page_start + pages - 1; + int ret; + + /* Set column range */ + ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, col_start); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, col_end); + if (ret < 0) + return ret; + + /* Set page range */ + ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE); + if (ret < 0) + return ret; + + ret = ssd1307fb_write_cmd(par->client, page_start); + if (ret < 0) + return ret; + + return ssd1307fb_write_cmd(par->client, page_end); +} + static int ssd1307fb_update_display(struct ssd1307fb_par *par) { struct ssd1307fb_array *array; @@ -461,31 +493,10 @@ static int ssd1307fb_init(struct ssd1307fb_par *par) if (ret < 0) return ret; - /* Set column range */ - ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->col_offset); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->col_offset + par->width - 1); - if (ret < 0) - return ret; - - /* Set page range */ - ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, par->page_offset); - if (ret < 0) - return ret; - - ret = ssd1307fb_write_cmd(par->client, - par->page_offset + - DIV_ROUND_UP(par->height, 8) - 1); + /* Set column and page range */ + ret = ssd1307fb_set_address_range(par, par->col_offset, par->width, + par->page_offset, + DIV_ROUND_UP(par->height, 8)); if (ret < 0) return ret; -- 2.25.1
next prev parent reply other threads:[~2021-05-18 9:06 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-18 8:28 [PATCH 0/5] video: fbdev: ssd1307fb: Optimizations and improvements Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven 2021-05-18 8:28 ` [PATCH 1/5] video: fbdev: ssd1307fb: Propagate errors via ssd1307fb_update_display() Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven 2021-05-18 8:28 ` [PATCH 2/5] video: fbdev: ssd1307fb: Simplify ssd1307fb_update_display() Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven [this message] 2021-05-18 8:28 ` [PATCH 3/5] video: fbdev: ssd1307fb: Extract ssd1307fb_set_address_range() Geert Uytterhoeven 2021-05-18 8:28 ` [PATCH 4/5] video: fbdev: ssd1307fb: Optimize screen updates Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven 2021-05-18 8:28 ` [PATCH 5/5] video: fbdev: ssd1307fb: Cache address ranges Geert Uytterhoeven 2021-05-18 8:28 ` Geert Uytterhoeven
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=20210518082809.1467549-4-geert@linux-m68k.org \ --to=geert@linux-m68k.org \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-fbdev@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mripard@kernel.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: linkBe 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.