Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp36361ybp; Tue, 8 Oct 2019 13:36:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqz9DLPDAgG1YgKgpd33UmKhqD0pZ3Pn8Zv8cx3YBJCT7/5rOJYn6B8ZbanRwkFQDlPmRXuK X-Received: by 2002:a17:906:f0d5:: with SMTP id dk21mr30985566ejb.253.1570567005510; Tue, 08 Oct 2019 13:36:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570567005; cv=none; d=google.com; s=arc-20160816; b=Ri3EdV57InC5QEGM5hX5eXvKU7AFdnCXEaH1CFZEgy0d0v1s02BwgYyVP1UzRXmzR/ IAP1uUHRNLcrCTNKpKdbrka6IcBuz/kTAuRdvNW0FT2eiWS+y9on1Yf3tM0d4bvlK6VZ vMFt5ZgVGVEWCBNzVoEB7T62V5WVen3LM0XVve4fXpZCuka/C84WciKKU80c7PXlzuI+ HYgAtUOSlMol17WDxIGlaRf8yobeITNvH338pZnffGDc1B7qGgOykXRV83d7meroD1le MPC4ENG16/E0YwKRSC2OuJh3rgjo32kbI7YGThQGWZ0eLl/1QH3q5swO/ZkPi0IH/Okg 6t9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=1MchpA0WHCOjOcURgJPxYtD4cK0dMn8Zz3tzzcjb4wI=; b=C18ITfUABqMfnSV38IhG5jEgb0bfBAS7sLZ+Ix9fvrZOuQmQnwnUtgK5JvOk1CxnSb U/i3hM+vA0tXMIx1OJXVBlSb/+79kCV5nPu3KdUddeCuaGUiZcNbYB0K58oB9zjv8Ugo w5IOFnn47mKVK2tDfOPPxMP3T4jgUUCHqKYnb8qjtglOUaaRR1/+k3m+tqy9xs9xanUA kK6p+JAu3m6zcOhV73TNp+OwvPPLpabYqYm5AVV3aJWKKzOT10ZG2sCUi9ZLWXLRSlDF 74wssUy2MhbSoR9FXZ/ad4vKM6zR99brr75S+Ctb8X0XQgzGLcqz7wVr32Sz9lI75UqP tApA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id fx14si9466131ejb.268.2019.10.08.13.36.21; Tue, 08 Oct 2019 13:36:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730888AbfJHUda (ORCPT + 99 others); Tue, 8 Oct 2019 16:33:30 -0400 Received: from sauhun.de ([88.99.104.3]:52996 "EHLO pokefinder.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730523AbfJHUda (ORCPT ); Tue, 8 Oct 2019 16:33:30 -0400 Received: from localhost (p54B3324A.dip0.t-ipconnect.de [84.179.50.74]) by pokefinder.org (Postfix) with ESMTPSA id 365942C07DC; Tue, 8 Oct 2019 22:33:28 +0200 (CEST) From: Wolfram Sang To: dri-devel@lists.freedesktop.org Cc: linux-i2c@vger.kernel.org, Wolfram Sang , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org Subject: [PATCH RESEND] gpu: drm: bridge: sii9234: convert to devm_i2c_new_dummy_device Date: Tue, 8 Oct 2019 22:33:22 +0200 Message-Id: <20191008203322.3238-1-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move from the deprecated i2c_new_dummy() to devm_i2c_new_dummy_device(). We now get an ERRPTR which we use in error handling and we can skip removal of the created devices. Signed-off-by: Wolfram Sang --- Rebased to v5.4-rc2 since last time. One of the last two users of the old API, so please apply soon, so I can remove the old interface. Only build tested. drivers/gpu/drm/bridge/sii9234.c | 36 +++++++++++--------------------- 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/bridge/sii9234.c b/drivers/gpu/drm/bridge/sii9234.c index 25d4ad8c7ad6..8a6c85693a88 100644 --- a/drivers/gpu/drm/bridge/sii9234.c +++ b/drivers/gpu/drm/bridge/sii9234.c @@ -841,39 +841,28 @@ static int sii9234_init_resources(struct sii9234 *ctx, ctx->client[I2C_MHL] = client; - ctx->client[I2C_TPI] = i2c_new_dummy(adapter, I2C_TPI_ADDR); - if (!ctx->client[I2C_TPI]) { + ctx->client[I2C_TPI] = devm_i2c_new_dummy_device(&client->dev, adapter, + I2C_TPI_ADDR); + if (IS_ERR(ctx->client[I2C_TPI])) { dev_err(ctx->dev, "failed to create TPI client\n"); - return -ENODEV; + return PTR_ERR(ctx->client[I2C_TPI]); } - ctx->client[I2C_HDMI] = i2c_new_dummy(adapter, I2C_HDMI_ADDR); - if (!ctx->client[I2C_HDMI]) { + ctx->client[I2C_HDMI] = devm_i2c_new_dummy_device(&client->dev, adapter, + I2C_HDMI_ADDR); + if (IS_ERR(ctx->client[I2C_HDMI])) { dev_err(ctx->dev, "failed to create HDMI RX client\n"); - goto fail_tpi; + return PTR_ERR(ctx->client[I2C_HDMI]); } - ctx->client[I2C_CBUS] = i2c_new_dummy(adapter, I2C_CBUS_ADDR); - if (!ctx->client[I2C_CBUS]) { + ctx->client[I2C_CBUS] = devm_i2c_new_dummy_device(&client->dev, adapter, + I2C_CBUS_ADDR); + if (IS_ERR(ctx->client[I2C_CBUS])) { dev_err(ctx->dev, "failed to create CBUS client\n"); - goto fail_hdmi; + return PTR_ERR(ctx->client[I2C_CBUS]); } return 0; - -fail_hdmi: - i2c_unregister_device(ctx->client[I2C_HDMI]); -fail_tpi: - i2c_unregister_device(ctx->client[I2C_TPI]); - - return -ENODEV; -} - -static void sii9234_deinit_resources(struct sii9234 *ctx) -{ - i2c_unregister_device(ctx->client[I2C_CBUS]); - i2c_unregister_device(ctx->client[I2C_HDMI]); - i2c_unregister_device(ctx->client[I2C_TPI]); } static inline struct sii9234 *bridge_to_sii9234(struct drm_bridge *bridge) @@ -950,7 +939,6 @@ static int sii9234_remove(struct i2c_client *client) sii9234_cable_out(ctx); drm_bridge_remove(&ctx->bridge); - sii9234_deinit_resources(ctx); return 0; } -- 2.20.1