Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp883066pxb; Wed, 8 Sep 2021 14:57:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJypLdKZzU4kfDSU48Q4cjMw5VNu5pN3dG3ouLHFH/QDjV5TN5RCN7e/tPAIcfEPUkpD6y9J X-Received: by 2002:a17:906:5d6:: with SMTP id t22mr299069ejt.98.1631138253039; Wed, 08 Sep 2021 14:57:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631138253; cv=none; d=google.com; s=arc-20160816; b=lOoNaGSzAQ+3KS1cjInC6aAYYUkFzwpbGF3Ne7DrsNjHqaLH8wyNiEwYOqzg16KVG2 vZSy1g2m1ARDmwune0bPv94t1ABCymJfU056zbKyX1Lr5ydm9Xay4/oSwamxIfxYy0/z CuxbdbKtJJP6OC4HxNO+QC01moXVNeMiEaMqqvvqXXGjdZQivZZtwFUCVnweNLcLdmzT yIffhKvIcaenIT4hycLXdj4y93Yz5pkcJFTALNQ/L8L/xc/ArNQJs+5BG01vO6F2YQhn EeEOxNC14E0gOl08DfOeanyftno8N/hsDZvWe+RVh/TyISsBuKMA4CQYmsubDKhz4NB3 M1ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:user-agent:from :references:in-reply-to:mime-version:dkim-signature; bh=id1AC9x8vyJiUkyhS8f6o/K9GxgIl6ioqhTgdnqtmHw=; b=CSZp7eeJCy8Ma/npqtigy1VpAf/TL8a86Nx1cZrBiKOUgUrm9SPdIE9I+E7gAsAjLO TJFYtN98ICnWLQLCTSBv3hJQyOJbt+9B7riV7/7WqDRaGHxumTL+OmNrOx1KhNSgoqge 5aMVFaa9ywmfrKdWL8Lhv7Y0fLSGPQX65v6Tp+C7p4OfAnbi3dkDWaWMcmVxQzFZMlmD z/Mc18F7tc34EnMfwPFqVjyC5WbNv5mYan/IXNT8tWHVJB92mHqI8ZlEXc+hhhUosxSO Yk3eKsO3cTtcZl/+6O08JTBsuGLQxQz6OhQ6h8QDVtx+mLVJW989SNyX6lXN7TWJ3QW3 EEeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=No3Q7Hwh; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l15si181180ejg.444.2021.09.08.14.56.58; Wed, 08 Sep 2021 14:57:33 -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; dkim=pass header.i=@chromium.org header.s=google header.b=No3Q7Hwh; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235363AbhIHVzx (ORCPT + 99 others); Wed, 8 Sep 2021 17:55:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234515AbhIHVzw (ORCPT ); Wed, 8 Sep 2021 17:55:52 -0400 Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2736EC061575 for ; Wed, 8 Sep 2021 14:54:44 -0700 (PDT) Received: by mail-oi1-x22f.google.com with SMTP id y128so4985407oie.4 for ; Wed, 08 Sep 2021 14:54:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:in-reply-to:references:from:user-agent:date:message-id :subject:to:cc; bh=id1AC9x8vyJiUkyhS8f6o/K9GxgIl6ioqhTgdnqtmHw=; b=No3Q7Hwhui8zWlFb5CeTFJxyT8/3MnSJ7OK4NxBc7YRGvJpjmfXVdHmXiNuWHn4agA ZeTwh2NMwGDD2cwVqE6uZCG8udQ+ZXxsBBPJ79QJwPYReN+sOzcTK27HXvtYK1rBzhDi hLDZtdx91gW4OvDS4WlgAtwTcswVwJOK279EA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:in-reply-to:references:from :user-agent:date:message-id:subject:to:cc; bh=id1AC9x8vyJiUkyhS8f6o/K9GxgIl6ioqhTgdnqtmHw=; b=QTcgURBHLKwdxDo4eywk6jjS347R1iI7PQKNa4gJLOx/CV5o+RFUZ/hBwc5owBcWp5 r/OGsPoyMOF/1i8IcoXreyKqyvdkKfskhRajCrr2ER+ZOhQxs/fX741IUcuw6/GLO5+8 J0kL+2h5jc6UK4WLCtciDzYPOf9le7PM2uGer4MogA619xVhZAq9GbK8MV/DMP/8/FsS BIVI0AuZrDzoY5DWLLpajtyKC3b0ly3Yk+YJ+zH+Fu/qwnM20BTyYnIYORC3fdz+7vRP mh79gbSE+dXtBW+thm8u4qnfwLotCbwSGKo7B7dfyKdn4KN2ulqZulREoXUADoHS6HVr UUFg== X-Gm-Message-State: AOAM533on0dDJBLXJ4JkLQ5Hhdj+jS8TloECm69CsaE63s+ayD/uG/ZQ WNqfQIFNUYmOi3QN0KgulLpqAeTa+MrzVQd3Rh7fuVHu0oI= X-Received: by 2002:a05:6808:909:: with SMTP id w9mr3975413oih.164.1631138083381; Wed, 08 Sep 2021 14:54:43 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Wed, 8 Sep 2021 21:54:42 +0000 MIME-Version: 1.0 In-Reply-To: <20210908111500.1.I9f6dac462da830fa0a8ccccbe977ca918bf14e4a@changeid> References: <20210908111500.1.I9f6dac462da830fa0a8ccccbe977ca918bf14e4a@changeid> From: Stephen Boyd User-Agent: alot/0.9.1 Date: Wed, 8 Sep 2021 21:54:42 +0000 Message-ID: Subject: Re: [PATCH 1/2] drm/bridge: parade-ps8640: Use regmap APIs To: LKML , Philip Chen Cc: dianders@chromium.org, Andrzej Hajda , Daniel Vetter , David Airlie , Jernej Skrabec , Jonas Karlman , Laurent Pinchart , Neil Armstrong , Robert Foss , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Philip Chen (2021-09-08 11:18:05) > diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c > index 685e9c38b2db..a16725dbf912 100644 > --- a/drivers/gpu/drm/bridge/parade-ps8640.c > +++ b/drivers/gpu/drm/bridge/parade-ps8640.c > @@ -64,12 +65,29 @@ 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_range ps8640_volatile_ranges[] = { > + { .range_min = 0, .range_max = 0xff }, Is the plan to fill this out later or is 0xff the max register? If it's the latter then I think adding the max register to regmap_config is simpler. > +}; > + > +static const struct regmap_access_table ps8640_volatile_table = { > + .yes_ranges = ps8640_volatile_ranges, > + .n_yes_ranges = ARRAY_SIZE(ps8640_volatile_ranges), > +}; > + > +static const struct regmap_config ps8640_regmap_config = { > + .reg_bits = 8, > + .val_bits = 8, > + .volatile_table = &ps8640_volatile_table, > + .cache_type = REGCACHE_NONE, > +}; > + > static inline struct ps8640 *bridge_to_ps8640(struct drm_bridge *e) > { > return container_of(e, struct ps8640, bridge); > @@ -78,13 +96,13 @@ static inline struct ps8640 *bridge_to_ps8640(struct drm_bridge *e) > static int ps8640_bridge_vdo_control(struct ps8640 *ps_bridge, > const enum ps8640_vdo_control ctrl) > { > - struct i2c_client *client = ps_bridge->page[PAGE3_DSI_CNTL1]; > - u8 vdo_ctrl_buf[] = { VDO_CTL_ADD, ctrl }; > + struct regmap *map = ps_bridge->regmap[PAGE3_DSI_CNTL1]; > + u8 vdo_ctrl_buf[] = {VDO_CTL_ADD, ctrl}; Nitpick: Add a space after { and before }. > int ret; > > - ret = i2c_smbus_write_i2c_block_data(client, PAGE3_SET_ADD, > - sizeof(vdo_ctrl_buf), > - vdo_ctrl_buf); > + ret = regmap_bulk_write(map, PAGE3_SET_ADD, > + vdo_ctrl_buf, sizeof(vdo_ctrl_buf)); > + > if (ret < 0) { > DRM_ERROR("failed to %sable VDO: %d\n", > ctrl == ENABLE ? "en" : "dis", ret);