From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46A49C433EF for ; Tue, 19 Jul 2022 15:26:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237527AbiGSP0v (ORCPT ); Tue, 19 Jul 2022 11:26:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238232AbiGSP0o (ORCPT ); Tue, 19 Jul 2022 11:26:44 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E2A5564E0 for ; Tue, 19 Jul 2022 08:26:43 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id os14so27882399ejb.4 for ; Tue, 19 Jul 2022 08:26:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pY2CMxbe7mYFu8lMmKdq8QyweRoqymfe+8LQesF8uYE=; b=fECi+8lG3d2QZQyelZpEsteMq5/Ly7PqyvAXApZORRN6U6VHI/Xd+RT65kVSQlhDfs RIifDvE6urMrudmyO/TXET1KzXJlRNUevdgDbV4Gy8PkxHRcCI9979O3Pwkm1ooW1IZl 9k/2wyz4Y8r9wO9qqWZu5nBeC6mOWJ7ljwgzEKOPo3COpIzVJCP0oPj3c9atpX7OPNZW B14tRFln6rYqvb17WBktV6HEXlgQX97UT3VJNDoFJE2QmKONgjh22rmFbr9Ou2oQNlUf Q4trtaDSh5fGHLmUMI5/YAHF+CaUk6pM8Ghcb3JO/WsEeYAI131CpfPk9hn8m/fwMvfL lesQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pY2CMxbe7mYFu8lMmKdq8QyweRoqymfe+8LQesF8uYE=; b=iRf3c8lQCfME/vfUoemtvGPb5J8frLq0CTA7Y2flAB67CUc4YhPoZHgy4iM2pXTvB7 LfUaB2UAc3+GYsb0S53kDAJLPT6axaIhUpj1cF1Wnrr9L6gA3M0I13lOoODvHNE05YUF NS/ML0RowGmKrxhh/8+iNZ8t35w7T/gHXCKpZQVJjAVrT9tKLxmuy/GdYoE8VayBIIIy g2QODjKpPJ7GbZijw3drDHsVsnB21K6HIxSfhE0DVA/ZgDq/5qqtGUIDyduRBJejzA/0 d5r4RRArFTpVsSSvsetp7djYrlu2EVhwCd6dG4rsrZcGPQ8RYYswtnXgozAT2nxeQnda Uhyg== X-Gm-Message-State: AJIora8OSLVaTJl8EIRNENSz/dRROEhnpV/GTa8G37+9uvgO7przOLzs yv9huwoA1wdxnu8JNvb0cGypinGb26hGMyetwnBH/A== X-Google-Smtp-Source: AGRyM1s6y2msksPTZYolBnXWbfyuEFWIjNOwAkx3R6nBSLm9wzLQ6VqBIZlWJeeQ4oXvE+CAxIYjBR203JAhhI/UfDE= X-Received: by 2002:a17:907:7f9e:b0:72e:d375:431 with SMTP id qk30-20020a1709077f9e00b0072ed3750431mr27276672ejc.580.1658244401767; Tue, 19 Jul 2022 08:26:41 -0700 (PDT) MIME-Version: 1.0 References: <20220713031547.11641-1-allen.chen@ite.com.tw> In-Reply-To: <20220713031547.11641-1-allen.chen@ite.com.tw> From: Robert Foss Date: Tue, 19 Jul 2022 17:26:30 +0200 Message-ID: Subject: Re: [PATCH v2] drm/bridge: it6505: Add i2c api power on check To: allen Cc: Jau-Chih Tseng , Kenneth Hung , Hermes Wu , Pin-yen Lin , Pin-Yen Lin , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , "open list:DRM DRIVERS" , open list Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 13 Jul 2022 at 05:16, allen wrote: > > From: allen chen > > Use i2c bus to read/write when it6505 power off will occur i2c error. > Add this check will prevent i2c error when it6505 power off. > > Signed-off-by: Pin-Yen Lin > Signed-off-by: Allen Chen > Reviewed-by: Robert Foss > --- > drivers/gpu/drm/bridge/ite-it6505.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c > index aa5e0aa1af85..cfd2c3275dc5 100644 > --- a/drivers/gpu/drm/bridge/ite-it6505.c > +++ b/drivers/gpu/drm/bridge/ite-it6505.c > @@ -518,6 +518,9 @@ static int it6505_read(struct it6505 *it6505, unsigned int reg_addr) > int err; > struct device *dev = &it6505->client->dev; > > + if (!it6505->powered) > + return -ENODEV; > + > err = regmap_read(it6505->regmap, reg_addr, &value); > if (err < 0) { > dev_err(dev, "read failed reg[0x%x] err: %d", reg_addr, err); > @@ -533,6 +536,9 @@ static int it6505_write(struct it6505 *it6505, unsigned int reg_addr, > int err; > struct device *dev = &it6505->client->dev; > > + if (!it6505->powered) > + return -ENODEV; > + > err = regmap_write(it6505->regmap, reg_addr, reg_val); > > if (err < 0) { > @@ -550,6 +556,9 @@ static int it6505_set_bits(struct it6505 *it6505, unsigned int reg, > int err; > struct device *dev = &it6505->client->dev; > > + if (!it6505->powered) > + return -ENODEV; > + > err = regmap_update_bits(it6505->regmap, reg, mask, value); > if (err < 0) { > dev_err(dev, "write reg[0x%x] = 0x%x mask = 0x%x failed err %d", > @@ -2553,13 +2562,12 @@ static int it6505_poweron(struct it6505 *it6505) > usleep_range(10000, 20000); > } > > + it6505->powered = true; > it6505_reset_logic(it6505); > it6505_int_mask_enable(it6505); > it6505_init(it6505); > it6505_lane_off(it6505); > > - it6505->powered = true; > - > return 0; > } > > -- > 2.25.1 > This patch no longer applies to the drm-misc-next tree, could you rebase it and send out a v3?