From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Magnus Damm <magnus.damm@gmail.com>,
linux-gpio@vger.kernel.org, linux-sh@vger.kernel.org
Subject: Re: [PATCH 2/4] pinctrl: sh-pfc: Store register/field widths in u8 instead of unsigned long
Date: Thu, 05 Mar 2015 11:03:23 +0200 [thread overview]
Message-ID: <12083025.CFMfs0EISD@avalon> (raw)
In-Reply-To: <1425058685-12956-3-git-send-email-geert+renesas@glider.be>
Hi Geert,
Thank you for the patch.
On Friday 27 February 2015 18:38:03 Geert Uytterhoeven wrote:
> Register and field widths are in the range 1..32. Storing them in the
> pinctrl data in (arrays of) unsigned long wastes space.
>
> This decreases the size of a (32-bit) shmobile_defconfig kernel
> supporting 7 SoCs by 26460 bytes.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> drivers/pinctrl/sh-pfc/core.c | 2 +-
> drivers/pinctrl/sh-pfc/sh_pfc.h | 10 ++++++----
> 2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
> index a56280814a3f884b..466b899ec78b15d7 100644
> --- a/drivers/pinctrl/sh-pfc/core.c
> +++ b/drivers/pinctrl/sh-pfc/core.c
> @@ -210,7 +210,7 @@ static void sh_pfc_write_config_reg(struct sh_pfc *pfc,
> sh_pfc_config_reg_helper(pfc, crp, field, &mapped_reg, &mask, &pos);
>
> dev_dbg(pfc->dev, "write_reg addr = %lx, value = %ld, field = %ld, "
> - "r_width = %ld, f_width = %ld\n",
> + "r_width = %u, f_width = %u\n",
> crp->reg, value, field, crp->reg_width, crp->field_width);
>
> mask = ~(mask << pos);
> diff --git a/drivers/pinctrl/sh-pfc/sh_pfc.h
> b/drivers/pinctrl/sh-pfc/sh_pfc.h index ed5cf4192fa1a2d0..6aeec8152ea674cf
> 100644
> --- a/drivers/pinctrl/sh-pfc/sh_pfc.h
> +++ b/drivers/pinctrl/sh-pfc/sh_pfc.h
> @@ -69,9 +69,10 @@ struct pinmux_func {
> };
>
> struct pinmux_cfg_reg {
> - unsigned long reg, reg_width, field_width;
> + unsigned long reg;
How about making reg a u32 ? It won't make a difference in practice on 32-bit
systems, but it would be more explicit.
We could also save space by making reg a u16 and storing the register offset
only instead of the full address (assuming it can always fit in 16 bits, which
should be checked). We'll also need to support 64-bit systems at some point,
and making reg a u64 would increase space waste.
> + u8 reg_width, field_width;
> const u16 *enum_ids;
> - const unsigned long *var_field_width;
> + const u8 *var_field_width;
> };
>
> #define PINMUX_CFG_REG(name, r, r_width, f_width) \
> @@ -80,12 +81,13 @@ struct pinmux_cfg_reg {
>
> #define PINMUX_CFG_REG_VAR(name, r, r_width, var_fw0, var_fwn...) \
> .reg = r, .reg_width = r_width, \
> - .var_field_width = (const unsigned long [r_width]) \
> + .var_field_width = (const u8 [r_width]) \
> { var_fw0, var_fwn, 0 }, \
> .enum_ids = (const u16 [])
>
> struct pinmux_data_reg {
> - unsigned long reg, reg_width;
> + unsigned long reg;
> + u8 reg_width;
> const u16 *enum_ids;
> };
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2015-03-05 9:03 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-27 17:38 [PATCH 0/4] pinctrl: sh-pfc: Fix pin bias and cleanups Geert Uytterhoeven
2015-02-27 17:38 ` [PATCH 1/4] pinctrl: sh-pfc: Do not overwrite bias configuration Geert Uytterhoeven
2015-03-05 8:57 ` Laurent Pinchart
2015-03-06 10:45 ` Linus Walleij
2015-02-27 17:38 ` [PATCH 2/4] pinctrl: sh-pfc: Store register/field widths in u8 instead of unsigned long Geert Uytterhoeven
2015-03-05 9:03 ` Laurent Pinchart [this message]
2015-03-05 9:19 ` Geert Uytterhoeven
2015-03-05 18:02 ` Geert Uytterhoeven
2015-03-06 10:55 ` Laurent Pinchart
2015-03-06 11:05 ` Laurent Pinchart
2015-03-06 11:21 ` Geert Uytterhoeven
2015-03-06 11:31 ` Laurent Pinchart
2015-03-06 10:48 ` Linus Walleij
2015-03-06 11:26 ` Geert Uytterhoeven
2015-03-06 11:34 ` Laurent Pinchart
2015-02-27 17:38 ` [PATCH 3/4] pinctrl: sh-pfc: Use u32 to store register data Geert Uytterhoeven
2015-03-05 9:14 ` Laurent Pinchart
2015-03-05 9:28 ` Geert Uytterhoeven
2015-03-09 16:37 ` Linus Walleij
2015-03-09 17:56 ` Geert Uytterhoeven
2015-02-27 17:38 ` [PATCH 4/4] pinctrl: sh-pfc: Use unsigned int for register/field widths and offsets Geert Uytterhoeven
2015-03-05 9:20 ` Laurent Pinchart
2015-03-05 9:34 ` Geert Uytterhoeven
2015-03-06 10:57 ` Laurent Pinchart
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=12083025.CFMfs0EISD@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=geert+renesas@glider.be \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=magnus.damm@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 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).