From patchwork Wed Mar 12 17:19:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 873045 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAC1723F369; Wed, 12 Mar 2025 17:20:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741800022; cv=none; b=fhDiAC07jbzopDobvy7ZbLr/jfIGVvEfVk6JLCcW4OwrVUN4hCfObex+qm3j+uPOnIxsOSxOdO/daE5y3UfhbEk64H2L/J44dwIppuaFQt4eVY5VBwcN2bYCvfIgwoZkg1/XL5Dd2FWe/lftr2ZwFUAih/p0LkjkpJpGovcx9Qk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741800022; c=relaxed/simple; bh=+z9ZTMm+ywSW9cK4py+Gn/5A/QzUp5MWoPjCNUGPUuY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qtq4UngE8CHpOHrm7WSAQxgeLxTNrZQAijxdXZxxkgpoQL5vobAlx2xgcP8Uf4/UcBZfH1EU9R4EESY606FR3k3pLLtFBZYJ9r5yvQdoX8kMD3geQP2cWOpdthQxQ8HMi//DPcAE/3AP1r7tvHgtAu5TUXL01r/mMSU/lkCafPo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=NrxGruL6; arc=none smtp.client-ip=198.175.65.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="NrxGruL6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741800021; x=1773336021; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+z9ZTMm+ywSW9cK4py+Gn/5A/QzUp5MWoPjCNUGPUuY=; b=NrxGruL6A/Br9HCgO1rhOBNLasYgoL8he2FxGsi8GM+K/uu9h9lUoWRI mrbkqdXGek8v/vELxxIDQsWlwHW31j9MNhdbt3u41ExvAKBSqcsHKkfxj ujjpec/ncBeEf/yUjPDHJjAcB0Q0onblMBx+z1ab4aZZZujO9RFUDfbtv 65J7KzTT/ziem0LRsexRD5IHCGr1exCZ+y/9Ej6YH//BHnFS48d0wdsIU AW2bsEQBeYUaLd+A1d/i8aJfqNL46sr9sgOgDSCwaWO9SnnkxjW/+OZIJ zjjtYiUJ2kSMUFyVXcKhhzLciN+2cw9fSZ2VCzR9v/bwfFXYBMxsd3xNY g==; X-CSE-ConnectionGUID: fIG1libjTX6GD+YIS+2iHg== X-CSE-MsgGUID: PdRRRx1eQbSH5Q6TtbZR5g== X-IronPort-AV: E=McAfee;i="6700,10204,11371"; a="60290610" X-IronPort-AV: E=Sophos;i="6.14,242,1736841600"; d="scan'208";a="60290610" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Mar 2025 10:20:20 -0700 X-CSE-ConnectionGUID: zmPXf+zDTiC9R94a2DNpJQ== X-CSE-MsgGUID: W93TXelxSxipWOsYnxa81g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,242,1736841600"; d="scan'208";a="125769469" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa004.jf.intel.com with ESMTP; 12 Mar 2025 10:20:19 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 8CE3B130; Wed, 12 Mar 2025 19:20:17 +0200 (EET) From: Andy Shevchenko To: Longbin Li , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mark Brown Subject: [PATCH v1 1/2] spi: sg2044-nor: Fully convert to device managed resources Date: Wed, 12 Mar 2025 19:19:16 +0200 Message-ID: <20250312172016.4070094-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250312172016.4070094-1-andriy.shevchenko@linux.intel.com> References: <20250312172016.4070094-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The driver has a wrong order of the cleaning up the resources, i.e. it first will destroy the mutex and only then free the SPI which might still use it. Fix this by switching to devm_mutex_init(). Signed-off-by: Andy Shevchenko --- drivers/spi/spi-sg2044-nor.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/spi/spi-sg2044-nor.c b/drivers/spi/spi-sg2044-nor.c index 454153a63b42..e104cac57d41 100644 --- a/drivers/spi/spi-sg2044-nor.c +++ b/drivers/spi/spi-sg2044-nor.c @@ -435,7 +435,6 @@ static int sg2044_spifmc_probe(struct platform_device *pdev) return -ENOMEM; spifmc = spi_controller_get_devdata(ctrl); - dev_set_drvdata(&pdev->dev, ctrl); spifmc->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(spifmc->clk)) @@ -457,14 +456,15 @@ static int sg2044_spifmc_probe(struct platform_device *pdev) ctrl->mem_ops = &sg2044_spifmc_mem_ops; ctrl->mode_bits = SPI_RX_DUAL | SPI_TX_DUAL | SPI_RX_QUAD | SPI_TX_QUAD; - mutex_init(&spifmc->lock); + ret = devm_mutex_init(&spifmc->lock); + if (ret) + return ret; sg2044_spifmc_init(spifmc); sg2044_spifmc_init_reg(spifmc); ret = devm_spi_register_controller(&pdev->dev, ctrl); if (ret) { - mutex_destroy(&spifmc->lock); dev_err(&pdev->dev, "spi_register_controller failed\n"); return ret; } @@ -472,13 +472,6 @@ static int sg2044_spifmc_probe(struct platform_device *pdev) return 0; } -static void sg2044_spifmc_remove(struct platform_device *pdev) -{ - struct sg2044_spifmc *spifmc = platform_get_drvdata(pdev); - - mutex_destroy(&spifmc->lock); -} - static const struct of_device_id sg2044_spifmc_match[] = { { .compatible = "sophgo,sg2044-spifmc-nor" }, { /* sentinel */ } @@ -491,7 +484,6 @@ static struct platform_driver sg2044_nor_driver = { .of_match_table = sg2044_spifmc_match, }, .probe = sg2044_spifmc_probe, - .remove = sg2044_spifmc_remove, }; module_platform_driver(sg2044_nor_driver); From patchwork Wed Mar 12 17:19:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 873375 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AABA323A9B4; Wed, 12 Mar 2025 17:20:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.8 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741800022; cv=none; b=Qx+qm+juXWCrux7jyDxZFT6kq7CWnHrVkW0wgC4VAKk5YJpRGlegxdQAA2fzmcfZ4Wr09Lqw26Yrnimbd2t+4aLOAhKacEkS6xzFIBNMMbC9ZxOAudQJy8EDR17O9t9N18tCUKp9GraC8VNKl4cwtfHa9qi6WLPbDk/OQ4QBb5g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741800022; c=relaxed/simple; bh=DSY/0ZYdgoOqfhegeeH5tpLBcAHVsHe199It4fxl4ng=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eBZfK7KH4G3wlS41Vu6+lvGGCClGzNnSdXGQSErX3fTmmfVhW8BZXqBuHPJWRyLAPOpxS/nrknC5TDTUwZl71cqOYbUeBK0qwp6HP2ot1A11a2LbRE/VHTlDBzp4qACgmCLWiatwgTICMfJ5a5sp+Mkz8Hr3TXjdO0gEFrw3Jkk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=F2WErT8m; arc=none smtp.client-ip=192.198.163.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="F2WErT8m" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741800021; x=1773336021; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DSY/0ZYdgoOqfhegeeH5tpLBcAHVsHe199It4fxl4ng=; b=F2WErT8mb0BbJFbwY6IhPQUfj7lqJp/pIzMcoF186EQ0bucCCTF4Vk2t DoWSCKBDnqsTFHYP2Ef+ciXujz1k6e4cf8ev+90E2a9A5A8dtMBiAVq9o x0T1HXpIGj4/UWIXhu96mQvxM8UqaVhsokIrVz2cayCH4L310DYxJ+ZRT 8++mgvcLlakHbYF9Fo5pWdx8D9w7cVxBMCKPO5QpEFkY7Pang4Tr0Ffmu JxnI7yS7HkU+W5lFKSK7iGfERaHkfnype0aSTmehmT+KuuyMsj4JppmvG +bfSK0bX1hf6E4/l8F+EsL9VlGYF+1Y0t5El17KyX99VuArWO38Gy1Zm2 w==; X-CSE-ConnectionGUID: 8T+GjSXSSDqvRka2nEWajw== X-CSE-MsgGUID: YOPMO1odQbiJ6lneMBx2HA== X-IronPort-AV: E=McAfee;i="6700,10204,11371"; a="60437576" X-IronPort-AV: E=Sophos;i="6.14,242,1736841600"; d="scan'208";a="60437576" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Mar 2025 10:20:20 -0700 X-CSE-ConnectionGUID: 2tPf249mTYO4jMnqB0k1Gg== X-CSE-MsgGUID: 8ky2A82DQCmlItJRwbczBg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,242,1736841600"; d="scan'208";a="125337215" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa005.fm.intel.com with ESMTP; 12 Mar 2025 10:20:19 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 9F395214; Wed, 12 Mar 2025 19:20:17 +0200 (EET) From: Andy Shevchenko To: Longbin Li , Andy Shevchenko , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mark Brown Subject: [PATCH v1 2/2] spi: sg2044-nor: Convert to dev_err_probe() Date: Wed, 12 Mar 2025 19:19:17 +0200 Message-ID: <20250312172016.4070094-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250312172016.4070094-1-andriy.shevchenko@linux.intel.com> References: <20250312172016.4070094-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 One of the cases in sg2044_spifmc_probe() may be converted to use dev_err_probe(). Do it. While at it, use local device pointer in all such calls and drop unneeded __func__ parameter as dev_err_probe() is assumed to be called only during probe phase. Signed-off-by: Andy Shevchenko --- drivers/spi/spi-sg2044-nor.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/spi/spi-sg2044-nor.c b/drivers/spi/spi-sg2044-nor.c index e104cac57d41..572792a59195 100644 --- a/drivers/spi/spi-sg2044-nor.c +++ b/drivers/spi/spi-sg2044-nor.c @@ -425,6 +425,7 @@ static void sg2044_spifmc_init(struct sg2044_spifmc *spifmc) static int sg2044_spifmc_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct spi_controller *ctrl; struct sg2044_spifmc *spifmc; void __iomem *base; @@ -438,9 +439,7 @@ static int sg2044_spifmc_probe(struct platform_device *pdev) spifmc->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(spifmc->clk)) - return dev_err_probe(&pdev->dev, PTR_ERR(spifmc->clk), - "%s: Cannot get and enable AHB clock\n", - __func__); + return dev_err_probe(dev, PTR_ERR(spifmc->clk), "Cannot get and enable AHB clock\n"); spifmc->dev = &pdev->dev; spifmc->ctrl = ctrl; @@ -464,10 +463,8 @@ static int sg2044_spifmc_probe(struct platform_device *pdev) sg2044_spifmc_init_reg(spifmc); ret = devm_spi_register_controller(&pdev->dev, ctrl); - if (ret) { - dev_err(&pdev->dev, "spi_register_controller failed\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "spi_register_controller failed\n"); return 0; }