All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Anderson <dianders@chromium.org>
To: Philip Chen <philipchen@chromium.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Stephen Boyd <swboyd@chromium.org>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Robert Foss <robert.foss@linaro.org>,
	dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [RFC PATCH v2 1/2] drm/bridge: parade-ps8640: Use regmap APIs
Date: Mon, 13 Sep 2021 17:32:01 -0700	[thread overview]
Message-ID: <CAD=FV=XDn3XWt5USOmkhikYMUqY1gt7MQfOQhu7v+soy=u3_0g@mail.gmail.com> (raw)
In-Reply-To: <20210913143255.RFC.v2.1.I8ad7a535bb18a1f41f3858f83379beedb397a9db@changeid>

Hi,

On Mon, Sep 13, 2021 at 2:33 PM Philip Chen <philipchen@chromium.org> wrote:
>
> diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
> index 685e9c38b2db..1b2414601538 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8640.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8640.c
> @@ -9,6 +9,7 @@
>  #include <linux/i2c.h>
>  #include <linux/module.h>
>  #include <linux/of_graph.h>
> +#include <linux/regmap.h>
>  #include <linux/regulator/consumer.h>
>
>  #include <drm/drm_bridge.h>
> @@ -31,6 +32,11 @@
>
>  #define NUM_MIPI_LANES         4
>
> +#define COMMON_PS8640_REGMAP_CONFIG \
> +       .reg_bits = 8, \
> +       .val_bits = 8, \
> +       .cache_type = REGCACHE_NONE

At some point we should see if we get any speed gains by actually
caching, but that could be done later and isn't terribly high
priority.


> +
>  /*
>   * PS8640 uses multiple addresses:
>   * page[0]: for DP control
> @@ -64,12 +70,48 @@ struct ps8640 {
>         struct drm_bridge *panel_bridge;
>         struct mipi_dsi_device *dsi;
>         struct i2c_client *page[MAX_DEVS];
> +       struct regmap   *regmap[MAX_DEVS];
>         struct regulator_bulk_data supplies[2];
>         struct gpio_desc *gpio_reset;
>         struct gpio_desc *gpio_powerdown;
>         bool powered;
>  };
>
> +static const struct regmap_config ps8640_regmap_config[] = {
> +       [PAGE0_DP_CNTL] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xbf
> +       },
> +       [PAGE1_VDO_BDG] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       },
> +       [PAGE2_TOP_CNTL] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       },
> +       [PAGE3_DSI_CNTL1] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       },
> +       [PAGE4_MIPI_PHY] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       },
> +       [PAGE5_VPLL] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0x7f
> +       },
> +       [PAGE6_DSI_CNTL2] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       },
> +       [PAGE7_SPI_CNTL] = {
> +               COMMON_PS8640_REGMAP_CONFIG,
> +               .max_register = 0xff
> +       }

nit: stylistically it's nice to add a "," after the last brace too.
It's not technically needed but it makes diffs cleaner if another
config is later added.


> @@ -362,6 +390,10 @@ static int ps8640_probe(struct i2c_client *client)
>
>         ps_bridge->page[PAGE0_DP_CNTL] = client;
>
> +       ps_bridge->regmap[PAGE0_DP_CNTL] = devm_regmap_init_i2c(client, ps8640_regmap_config);
> +       if (IS_ERR(ps_bridge->regmap[PAGE0_DP_CNTL]))
> +               return PTR_ERR(ps_bridge->regmap[PAGE0_DP_CNTL]);

I'm a huge fan of dev_err_probe(). I wonder if it makes sense to use
it here? Untested:

if (IS_ERR(ps_bridge->regmap[PAGE0_DP_CNTL]))
  return dev_err_probe(dev, PTR_ERR(ps_bridge->regmap[PAGE0_DP_CNTL]),
                       "Error initting page 0 regmap\n");


All of that is just nits, so:

Reviewed-by: Douglas Anderson <dianders@chromium.org>

  parent reply	other threads:[~2021-09-14  0:32 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 21:33 [RFC PATCH v2 1/2] drm/bridge: parade-ps8640: Use regmap APIs Philip Chen
2021-09-13 21:33 ` [RFC PATCH v2 2/2] drm/bridge: parade-ps8640: Add support for AUX channel Philip Chen
2021-09-13 23:43   ` Doug Anderson
2021-09-13 23:43     ` Doug Anderson
2021-09-15  0:27     ` Philip Chen
2021-09-15  0:27       ` Philip Chen
2021-09-15 21:57       ` Doug Anderson
2021-09-15 21:57         ` Doug Anderson
2021-09-14  0:32 ` Doug Anderson [this message]
2021-09-14  0:32   ` [RFC PATCH v2 1/2] drm/bridge: parade-ps8640: Use regmap APIs Doug Anderson
2021-09-14 23:31   ` Philip Chen
2021-09-14 23:31     ` Philip Chen

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='CAD=FV=XDn3XWt5USOmkhikYMUqY1gt7MQfOQhu7v+soy=u3_0g@mail.gmail.com' \
    --to=dianders@chromium.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=narmstrong@baylibre.com \
    --cc=philipchen@chromium.org \
    --cc=robert.foss@linaro.org \
    --cc=swboyd@chromium.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 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.