Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3251418pxk; Mon, 5 Oct 2020 05:18:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz7ZBb7OvKqrcjoR4Wpzbwo84DfR0oYl//CUKh/zoewRZgjvIbljukVvr+DHuYgGe1LL469 X-Received: by 2002:a50:fd87:: with SMTP id o7mr16625376edt.180.1601900324751; Mon, 05 Oct 2020 05:18:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601900324; cv=none; d=google.com; s=arc-20160816; b=mJJibRQe3wVy2L9o4RqnZO06l/jUDDUCFFA5hFDvncy15f3awtS6whAqy9C76mIMz+ Qa4tno9ONwqttWezBMA+FOo+A9RoSyT9Fh62QTShDcy9g0gCO5AA0KQ+acToI8txrZUi 7KTWN9O6EM/jz1sV9Yw32yW+94qMpIqtwWBLMbnuIoSJyYgyWX9i3VoBdRAOCrG7MLnY e+o6Xj/pAqw2d20OvAyKlug0QAA1re/A1gVup9z/UsAPZkFF3UE7bbDoPJd0dM/qlHfG ZwoVXeVu3Cqx3+AvITtGw9lASrjgSkrOP1RKD7oduChDzns+yrgEgUOT1caXQydvGnxd 3Z+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=UuNn/cpb9F5LXfviQXvel5C1edbMGDQWtY6ZLUDw5qU=; b=CHXfnIpwFPwZFSpZwrph8ib9L9x/PqeuWb1Vs1+QmGnGc/DzDwdOdqxAoS4JStSzxc ylhHGdN1fhTKku8qwR18pDG6hhXwbILinU9TjHnPibMua8HYPM2CsNm5l7CjieMRkuGs i0Pk4M3YiNur5yDRNmbI9zKBLHCBPIjRyo4448sY777ySQFGcJ21XFuFAqhY/Fipl9Hg O2RfARKR1v7HgBcM+Mdris6R+3u9oIqGB4GKNnhIZxtEmH7gql7qnQCkbX8ewOTEJoLB HPAQoFQOX08IgMTu4vgU5qI3DK5n2shtvmN6E46Yh2cNUW7HZft9f9/agHncmospSj8G 9eOg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j8si7375306ejt.416.2020.10.05.05.18.22; Mon, 05 Oct 2020 05:18:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726807AbgJEMO0 (ORCPT + 99 others); Mon, 5 Oct 2020 08:14:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725891AbgJEMMX (ORCPT ); Mon, 5 Oct 2020 08:12:23 -0400 Received: from smtp2-2.goneo.de (smtp2.goneo.de [IPv6:2001:1640:5::8:33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FCCEC0613CE for ; Mon, 5 Oct 2020 05:12:22 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.goneo.de (Postfix) with ESMTP id 6853623F48B; Mon, 5 Oct 2020 14:12:21 +0200 (CEST) X-Virus-Scanned: by goneo X-Spam-Flag: NO X-Spam-Score: -2.994 X-Spam-Level: X-Spam-Status: No, score=-2.994 tagged_above=-999 tests=[ALL_TRUSTED=-1, AWL=-0.094, BAYES_00=-1.9] autolearn=ham Received: from smtp2.goneo.de ([127.0.0.1]) by localhost (smtp2.goneo.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yE6E7ebm6XJg; Mon, 5 Oct 2020 14:12:19 +0200 (CEST) Received: from lem-wkst-02.lemonage.de. (hq.lemonage.de [87.138.178.34]) by smtp2.goneo.de (Postfix) with ESMTPA id 9C92623F8A1; Mon, 5 Oct 2020 14:12:19 +0200 (CEST) From: poeschel@lemonage.de To: Miguel Ojeda Sandonis , linux-kernel@vger.kernel.org (open list) Cc: Lars Poeschel , Willy Tarreau Subject: [PATCH v3 04/32] auxdisplay: Move ifwidth to struct hd44780_common Date: Mon, 5 Oct 2020 14:11:32 +0200 Message-Id: <20201005121200.3427363-5-poeschel@lemonage.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201005121200.3427363-1-poeschel@lemonage.de> References: <20201005121200.3427363-1-poeschel@lemonage.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lars Poeschel Move struct charlcd member ifwidth to our new struct hd44780_common. ifwidth is hd44780 device specific and is used by two drivers at the moment, so we move it to a common place, where both can use this. Reviewed-by: Willy Tarreau Signed-off-by: Lars Poeschel --- drivers/auxdisplay/charlcd.c | 12 ++++++------ drivers/auxdisplay/charlcd.h | 1 - drivers/auxdisplay/hd44780.c | 2 +- drivers/auxdisplay/hd44780_common.c | 1 + drivers/auxdisplay/hd44780_common.h | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c index 02392336d7d3..59e0a815bf3d 100644 --- a/drivers/auxdisplay/charlcd.c +++ b/drivers/auxdisplay/charlcd.c @@ -223,9 +223,10 @@ static int charlcd_init_display(struct charlcd *lcd) { void (*write_cmd_raw)(struct charlcd *lcd, int cmd); struct charlcd_priv *priv = charlcd_to_priv(lcd); + struct hd44780_common *hdc = lcd->drvdata; u8 init; - if (lcd->ifwidth != 4 && lcd->ifwidth != 8) + if (hdc->ifwidth != 4 && hdc->ifwidth != 8) return -EINVAL; priv->flags = ((lcd->height > 1) ? LCD_FLAG_N : 0) | LCD_FLAG_D | @@ -238,7 +239,7 @@ static int charlcd_init_display(struct charlcd *lcd) * the LCD is in 8-bit mode afterwards */ init = LCD_CMD_FUNCTION_SET | LCD_CMD_DATA_LEN_8BITS; - if (lcd->ifwidth == 4) { + if (hdc->ifwidth == 4) { init >>= 4; write_cmd_raw = lcd->ops->write_cmd_raw4; } else { @@ -251,7 +252,7 @@ static int charlcd_init_display(struct charlcd *lcd) write_cmd_raw(lcd, init); long_sleep(10); - if (lcd->ifwidth == 4) { + if (hdc->ifwidth == 4) { /* Switch to 4-bit mode, 1 line, small fonts */ lcd->ops->write_cmd_raw4(lcd, LCD_CMD_FUNCTION_SET >> 4); long_sleep(10); @@ -260,7 +261,7 @@ static int charlcd_init_display(struct charlcd *lcd) /* set font height and lines number */ lcd->ops->write_cmd(lcd, LCD_CMD_FUNCTION_SET | - ((lcd->ifwidth == 8) ? LCD_CMD_DATA_LEN_8BITS : 0) | + ((hdc->ifwidth == 8) ? LCD_CMD_DATA_LEN_8BITS : 0) | ((priv->flags & LCD_FLAG_F) ? LCD_CMD_FONT_5X10_DOTS : 0) | ((priv->flags & LCD_FLAG_N) ? LCD_CMD_TWO_LINES : 0)); long_sleep(10); @@ -543,7 +544,7 @@ static inline int handle_lcd_special_code(struct charlcd *lcd) else if ((oldflags ^ priv->flags) & (LCD_FLAG_F | LCD_FLAG_N)) lcd->ops->write_cmd(lcd, LCD_CMD_FUNCTION_SET | - ((lcd->ifwidth == 8) ? LCD_CMD_DATA_LEN_8BITS : 0) | + ((hdc->ifwidth == 8) ? LCD_CMD_DATA_LEN_8BITS : 0) | ((priv->flags & LCD_FLAG_F) ? LCD_CMD_FONT_5X10_DOTS : 0) | ((priv->flags & LCD_FLAG_N) ? LCD_CMD_TWO_LINES : 0)); /* check whether L flag was changed */ @@ -794,7 +795,6 @@ struct charlcd *charlcd_alloc(void) priv->esc_seq.len = -1; lcd = &priv->lcd; - lcd->ifwidth = 8; return lcd; } diff --git a/drivers/auxdisplay/charlcd.h b/drivers/auxdisplay/charlcd.h index 2a12d07705a3..5dce9dd36562 100644 --- a/drivers/auxdisplay/charlcd.h +++ b/drivers/auxdisplay/charlcd.h @@ -18,7 +18,6 @@ struct charlcd { const struct charlcd_ops *ops; const unsigned char *char_conv; /* Optional */ - int ifwidth; /* 4-bit or 8-bit (default) */ int height; int width; diff --git a/drivers/auxdisplay/hd44780.c b/drivers/auxdisplay/hd44780.c index 0603af8f2336..f6786239c36f 100644 --- a/drivers/auxdisplay/hd44780.c +++ b/drivers/auxdisplay/hd44780.c @@ -275,7 +275,7 @@ static int hd44780_probe(struct platform_device *pdev) /* Optional properties */ device_property_read_u32(dev, "internal-buffer-width", &hdc->bwidth); - lcd->ifwidth = ifwidth; + hdc->ifwidth = ifwidth; lcd->ops = ifwidth == 8 ? &hd44780_ops_gpio8 : &hd44780_ops_gpio4; ret = charlcd_register(lcd); diff --git a/drivers/auxdisplay/hd44780_common.c b/drivers/auxdisplay/hd44780_common.c index 34e6d292fde8..285073a00302 100644 --- a/drivers/auxdisplay/hd44780_common.c +++ b/drivers/auxdisplay/hd44780_common.c @@ -12,6 +12,7 @@ struct hd44780_common *hd44780_common_alloc(void) if (!hd) return NULL; + hd->ifwidth = 8; hd->bwidth = DEFAULT_LCD_BWIDTH; hd->hwidth = DEFAULT_LCD_HWIDTH; return hd; diff --git a/drivers/auxdisplay/hd44780_common.h b/drivers/auxdisplay/hd44780_common.h index 3ff47d2c5691..1100e0a32394 100644 --- a/drivers/auxdisplay/hd44780_common.h +++ b/drivers/auxdisplay/hd44780_common.h @@ -4,6 +4,7 @@ #define DEFAULT_LCD_HWIDTH 64 struct hd44780_common { + int ifwidth; /* 4-bit or 8-bit (default) */ int bwidth; /* Default set by hd44780_alloc() */ int hwidth; /* Default set by hd44780_alloc() */ void *hd44780; -- 2.28.0