From patchwork Sat May 26 14:20:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 920979 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="t3wj8Gke"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40tQJy2gXsz9s02 for ; Sun, 27 May 2018 00:21:06 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754669AbeEZOVE (ORCPT ); Sat, 26 May 2018 10:21:04 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:42330 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754475AbeEZOVE (ORCPT ); Sat, 26 May 2018 10:21:04 -0400 Received: by mail-wr0-f193.google.com with SMTP id w10-v6so13595826wrk.9; Sat, 26 May 2018 07:21:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=5EH1ztMAOGWBrLrMeyCIoR3p6jraO7mDpUaO2lgcSyk=; b=t3wj8GkelaUfs3DJRSAcnZJsB3Uwh7e76PixHiKnm/x/vk/qvbLr9FooMVUkuFVgvR /+wPlRL8g6+ZgnGIzGOecUvTnlOHIJXwdo20lK+JuPSyVBQKKAMgJ9/WX0dZodjYz1Ip pjXBWcao1HJSjqK+htvNXxevgS99Mxc5GcnlKfDCjhaJMc3137AYILx0r4DeTa4VcJzA +O2BCSi3kOOTidVlBMLL2tXphqVtnSGwnQpnkH6AS5WwWFOtSyEUk1tovIiWyb++pUVR 2wFd/RNqYuvV6BrdwDDpBKdeoVSeEcd6i2YT17fdnwPNh5nD6f+qRc21tRHOC9+dTPSL gqbQ== 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; bh=5EH1ztMAOGWBrLrMeyCIoR3p6jraO7mDpUaO2lgcSyk=; b=IMC3KECwRJ4g0qUU8+7xHwHKZKF+y0quvKPiYJukEYbBdx8+izaIkS9wKNPFT6bW7W Na1OubJeOYbdhSBBmnrxjfmcz+pQfRsqK0ywMUddFGZlWWZUK/4kMNckPgvGuV9gV5N2 zED0fW856oi/uxNkfdoROo3+3XtEx5PsbP5DjpJy0zaSkD6axdVzUgcw814sdpqxGZ2C xwk7bJBewPeODHRD7qaZf6Bgo7zPmeID1kc4TDjicoCetTP9tCxho2jtTCVTY8WftLOa kRXoWLBMvcbGc1iJ7ivMZqv4HxYFfT6JzTo95ce/JWYrBVJh4i6eTHWERg+vf7vkTZkR KEfA== X-Gm-Message-State: ALKqPwcAAYycOjXkI8SGGeU2um7H9UzLZzDG3ONh4s4+l63+2Kb9oukh Bg+42uLuajitaefpPRQFbHk= X-Google-Smtp-Source: AB8JxZpjy9KxOXlKqKc03dRa4wWAeISS4FlYYCn0YnAEm/3ln1t6qQ4AR6Hs07zP00pUcA5U00nh+Q== X-Received: by 2002:adf:bc8f:: with SMTP id g15-v6mr5396319wrh.266.1527344462735; Sat, 26 May 2018 07:21:02 -0700 (PDT) Received: from localhost.localdomain (109-252-91-41.nat.spd-mgts.ru. [109.252.91.41]) by smtp.gmail.com with ESMTPSA id 44-v6sm62043051wrv.47.2018.05.26.07.21.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 26 May 2018 07:21:01 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1] memory: tegra: Correct driver probe order Date: Sat, 26 May 2018 17:20:35 +0300 Message-Id: <20180526142035.21741-1-digetx@gmail.com> X-Mailer: git-send-email 2.17.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org The Reset Controller should be registered in the end of probe, otherwise Memory Controller device goes away if IRQ requesting fails and the Reset Controller stays registered. To avoid having to unwind the MC probing in a case of SMMU probe failure, let's simply print the error message without failing the MC probe. This allows us to just move the Reset Controller registering before the SMMU registration, reducing code churning. Also let's not fail MC probe in a case of Reset Controller registration failure as it doesn't prevent the MC driver to work. Signed-off-by: Dmitry Osipenko --- drivers/memory/tegra/mc.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c index 22ec959db7d3..8ef95e34b5c7 100644 --- a/drivers/memory/tegra/mc.c +++ b/drivers/memory/tegra/mc.c @@ -692,13 +692,6 @@ static int tegra_mc_probe(struct platform_device *pdev) return err; } - err = tegra_mc_reset_setup(mc); - if (err < 0) { - dev_err(&pdev->dev, "failed to register reset controller: %d\n", - err); - return err; - } - mc->irq = platform_get_irq(pdev, 0); if (mc->irq < 0) { dev_err(&pdev->dev, "interrupt not specified\n"); @@ -717,13 +710,16 @@ static int tegra_mc_probe(struct platform_device *pdev) return err; } + err = tegra_mc_reset_setup(mc); + if (err < 0) + dev_err(&pdev->dev, "failed to register reset controller: %d\n", + err); + if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU)) { mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc); - if (IS_ERR(mc->smmu)) { + if (IS_ERR(mc->smmu)) dev_err(&pdev->dev, "failed to probe SMMU: %ld\n", PTR_ERR(mc->smmu)); - return PTR_ERR(mc->smmu); - } } return 0;