Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp10818647ybi; Thu, 25 Jul 2019 05:42:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqxYsY+iPP9KkCCAGOHSSIS/uxBo4Tz85F3tunuEQntgbDvIjbCN4EBd1g9/dhJrm6iKPlu4 X-Received: by 2002:a17:90a:f98a:: with SMTP id cq10mr92779797pjb.43.1564058570400; Thu, 25 Jul 2019 05:42:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564058570; cv=none; d=google.com; s=arc-20160816; b=WtomTW0d26K2xzCvzVJrSHvLJXwX3r60yb+iO0PWH207h46NW5lvq2dRbvHWcsFNlk v9uL4/NtAUejWdT2hL0VC46vQeUOr9eQNRlAxIXeFJVQnc203iMZPLvB4nNh0UXV8wCK mTqJ3NzS6ShpdUZPB6rz+OIfjnIxXVWkDKxZ/wnwlefZIEsOUqtNLChALGcjqqp+BMdx zjB8zA/7LLDh0PpiBUKw9nUKXUB9cNXaSvhm4iN+ddcdtv9OpkG7g7x/Z7Q/KNu1pG56 QVfAdNFB3wxEwD80wHMexJlxiYhEsQu94CkOPXpyxn9MVKdJE0JGqVQNty+bmUaOPbnY Lwcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=eNURmCt1o5sob1QOowvJXr5pL73KlOzcHKdzSxjtEkQ=; b=Sq+9enLjsUtSqRMaftGh6gsDkqHZldeoo1EYFOQXCDIQI+42Ht5N/qKQrP1X/BCskg L9sSeOU0r8w6SxVkqsb4XXD6Azruot2oJLlwBeYx5qxAtXxBkDdNOue5oh3ty99mJwTr NdFk4BF5AsfQCwyUYR8zPFY1mXoroftvjtE4Vunp9FIMGq4aTcU5KN0gpedw1EzPOQed I66Rw8aodQ3hWO00iF4F0DeQ4tFtHZ6+Z8Us0snqRd8/DGAd5SUrZf/KkOgs8l3SsqNW BsITTmsdxM+lfC2olet2HMfu8xRx1o0tcnOvHodRDmzX03ahkE2gfUJE0BeZW3cBSqTm IYfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=U7zeKlTb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c5si18554290pfr.25.2019.07.25.05.42.35; Thu, 25 Jul 2019 05:42:50 -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; dkim=pass header.i=@linaro.org header.s=google header.b=U7zeKlTb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388738AbfGYH4n (ORCPT + 99 others); Thu, 25 Jul 2019 03:56:43 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:44897 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388695AbfGYH4l (ORCPT ); Thu, 25 Jul 2019 03:56:41 -0400 Received: by mail-pf1-f195.google.com with SMTP id t16so22297165pfe.11 for ; Thu, 25 Jul 2019 00:56:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=eNURmCt1o5sob1QOowvJXr5pL73KlOzcHKdzSxjtEkQ=; b=U7zeKlTbIuS5u7DJxz9XnFhiBxEa+BpR7S41Ci+3WJQgscfSV6So2gzcTVQd+R96nf 5bg7QLcpx9FMCe/bbTeQ9qWon/c3Em0JdujbSKBovxMrHDRMbHPFUuxE0ZuVlhEoZbul Yxwj3ky3V06UmwsFaveXirOuoElDv2qXDcZPJ4pPMn2QK//CIoDzMdS3l0BHFhBW+NfI FLBhyvp4e5tBqxKQWI9M+VaoMfn/DaN4MOm+qzA1OSHnWH38gCy5D5VvVwS5psNckamW Wv79LKVv8TX6CrbAJq69u9WQIvlYR068FfnYjuIthjm0VOqh8SMh/KR3z/GyrC2TfUTF K0Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=eNURmCt1o5sob1QOowvJXr5pL73KlOzcHKdzSxjtEkQ=; b=bhMd+ayHMrFPN48i9nvEf6s8y4hESlRz67c1tqMnIr47Q6fbFsoV/PutKsQbIB2rRi af8OFIs5LBhSTM5mdP+cuKbUTe+/8XoPNWgcqjK4S4P8p2ZCnw47FStUNs+tZFu/O6fk nzx4Wj061SyMF6vUVF8FuZbn48WT0sqV7ip0FNMO+j7Kmh2NK2dEW8ob3xtDuCEQPSDu lfvIQQ+8aygfdF4vhgV6JfX5wc7T+1QUQSVAiSChBzz0w5hiYnl+koaBeXr7P2I2aXHC tP280vcUTckvezFpuOAGJjcz58ROkP4q7j8VGJzv3cSrE2KdGB+G7W61K2j8kYzbFRSw C/2A== X-Gm-Message-State: APjAAAUgSjiywOs8kYZ376pV4/Uu3oOjiLZynkqf2SsDUBermwHpOJBj FOhTKL984WFrOAxN3+RFWaRqNQ== X-Received: by 2002:a17:90a:8688:: with SMTP id p8mr92850220pjn.57.1564041400592; Thu, 25 Jul 2019 00:56:40 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.82]) by smtp.gmail.com with ESMTPSA id m9sm89021419pgr.24.2019.07.25.00.56.38 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 25 Jul 2019 00:56:40 -0700 (PDT) From: Baolin Wang To: wsa+renesas@sang-engineering.com, orsonzhai@gmail.com, zhang.lyra@gmail.com Cc: baolin.wang@linaro.org, vincent.guittot@linaro.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] i2c: sprd: Validate the return value of clock initialization Date: Thu, 25 Jul 2019 15:56:18 +0800 Message-Id: <5f64dc0eedb348b15442f31f2f22f5bded7cd6ef.1564041157.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The 'enable' clock of I2C master is required, we should return an error if failed to get the 'enable' clock, to make sure the I2C driver can be defer probe if the clock resource is not ready. Signed-off-by: Baolin Wang --- drivers/i2c/busses/i2c-sprd.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/busses/i2c-sprd.c b/drivers/i2c/busses/i2c-sprd.c index bbcb056..b432e75 100644 --- a/drivers/i2c/busses/i2c-sprd.c +++ b/drivers/i2c/busses/i2c-sprd.c @@ -466,9 +466,9 @@ static int sprd_i2c_clk_init(struct sprd_i2c *i2c_dev) i2c_dev->clk = devm_clk_get(i2c_dev->dev, "enable"); if (IS_ERR(i2c_dev->clk)) { - dev_warn(i2c_dev->dev, "i2c%d can't get the enable clock\n", - i2c_dev->adap.nr); - i2c_dev->clk = NULL; + dev_err(i2c_dev->dev, "i2c%d can't get the enable clock\n", + i2c_dev->adap.nr); + return PTR_ERR(i2c_dev->clk); } return 0; @@ -519,7 +519,10 @@ static int sprd_i2c_probe(struct platform_device *pdev) if (i2c_dev->bus_freq != 100000 && i2c_dev->bus_freq != 400000) return -EINVAL; - sprd_i2c_clk_init(i2c_dev); + ret = sprd_i2c_clk_init(i2c_dev); + if (ret) + return ret; + platform_set_drvdata(pdev, i2c_dev); ret = clk_prepare_enable(i2c_dev->clk); -- 1.7.9.5