From patchwork Wed Apr 17 16:55:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 789632 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 6DA5B17107D; Wed, 17 Apr 2024 16:57:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373038; cv=none; b=IjPWv+KjTzChhFXY81m/h0AFjj3woGZK/Jy3WotWpnCt2AoOxnUVHEtG++uUqesQw5EgkFIYWFqXW9hG9MU2CtbNPzwcvNpniZdEh+MtDoNsAyp5YmS/VQWxLKZq6RRdYF8b2vr3yQI+PilAVkTRF1dwxunxzeDOgEDRbLQG1hQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373038; c=relaxed/simple; bh=EY0oW8gWzFx+UyQ5mI7eQESReZJaeFrBusZVAd3sm0g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CwBFbaqSPTTqe2Jp+RBrMQXIBTsK4cXMcBmzGiSCPeINYOuI4jpIb5l2OEOdNws4fVdhdnMGeK3C7EjUt6YTbAkj/fNLVh4BWEupqC9jyReuHYchKxsRT+5Ik4sWvYARqECGBLiA30tAZ45BupBfmZ6eEHCgClgYkbLyaxlpCZA= 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=XvWzwf5I; arc=none smtp.client-ip=192.198.163.17 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="XvWzwf5I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713373038; x=1744909038; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EY0oW8gWzFx+UyQ5mI7eQESReZJaeFrBusZVAd3sm0g=; b=XvWzwf5I9K4/KN9xVy0nLaCVDKtQM+5grCyoMPoCTToi39Oc9vCztft/ DrYMEWm1Nrw1XT4Ivnb4GHHVwPkqA/AQES+V9LYAAhQdiwQBSF87WFFn4 ygazXgy9YkWGL2OTZWUa8+1K6qBU9gCpn1MH2FQ1kEk6RJmElpNCFYxeP nKb3F4IzU+3Tmw45XS0q1rHA20NixlCHS8euPH1AaUouXg4dnvTKH2UsJ nRQoNJHi9AdCch6s7Y+jMPYX8zXz8wux2gr2oFUKw30k2qf27guZUwwtU QOOQ1DyO0QCrHF3I6mbvEXYT+vg9eGJRwQzKuc6JcZdCq09oV60OYgok8 w==; X-CSE-ConnectionGUID: FF9hUofhQRaaHP6HHtmR2w== X-CSE-MsgGUID: ZafO1nk8TJaLmTz/3lj1bQ== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="8737012" X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="8737012" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 09:57:15 -0700 X-CSE-ConnectionGUID: U7LXLfYBRfqoKFFlXjA0RA== X-CSE-MsgGUID: KuzNvTAhTWiD4ahfD3nqEw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="22571635" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa010.jf.intel.com with ESMTP; 17 Apr 2024 09:57:13 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 95DCA68; Wed, 17 Apr 2024 19:57:11 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Aubin Constans , Ulf Hansson , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea Subject: [PATCH v1 1/5] mmc: atmel-mci: Get rid of platform data leftovers Date: Wed, 17 Apr 2024 19:55:13 +0300 Message-ID: <20240417165708.2965612-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.43.0.rc1.1336.g36b5255a03ac In-Reply-To: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> References: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-mmc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The commit d2c6d518c21d ("mmc: atmel-mci: move atmel MCI header file") made sure that there is no in-kernel user of the platform data. But at the same time it hadn't removed the code around that data structure. Finish the job here and remove a dead code. Fixes: d2c6d518c21d ("mmc: atmel-mci: move atmel MCI header file") Signed-off-by: Andy Shevchenko --- drivers/mmc/host/atmel-mci.c | 43 +++++------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index dba826db739a..87c2855f64c2 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -226,13 +226,9 @@ struct mci_slot_pdata { /** * struct mci_platform_data - board-specific MMC/SDcard configuration - * @dma_slave: DMA slave interface to use in data transfers. - * @dma_filter: Filtering function to filter the DMA channel * @slot: Per-slot configuration data. */ struct mci_platform_data { - void *dma_slave; - dma_filter_fn dma_filter; struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS]; }; @@ -626,7 +622,6 @@ static void atmci_init_debugfs(struct atmel_mci_slot *slot) &host->completed_events); } -#if defined(CONFIG_OF) static const struct of_device_id atmci_dt_ids[] = { { .compatible = "atmel,hsmci" }, { /* sentinel */ } @@ -700,13 +695,6 @@ atmci_of_init(struct platform_device *pdev) return pdata; } -#else /* CONFIG_OF */ -static inline struct mci_platform_data* -atmci_of_init(struct platform_device *dev) -{ - return ERR_PTR(-EINVAL); -} -#endif static inline unsigned int atmci_get_version(struct atmel_mci *host) { @@ -2388,23 +2376,6 @@ static void atmci_cleanup_slot(struct atmel_mci_slot *slot, static int atmci_configure_dma(struct atmel_mci *host) { host->dma.chan = dma_request_chan(&host->pdev->dev, "rxtx"); - - if (PTR_ERR(host->dma.chan) == -ENODEV) { - struct mci_platform_data *pdata = host->pdev->dev.platform_data; - dma_cap_mask_t mask; - - if (!pdata || !pdata->dma_filter) - return -ENODEV; - - dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - - host->dma.chan = dma_request_channel(mask, pdata->dma_filter, - pdata->dma_slave); - if (!host->dma.chan) - host->dma.chan = ERR_PTR(-ENODEV); - } - if (IS_ERR(host->dma.chan)) return PTR_ERR(host->dma.chan); @@ -2492,13 +2463,11 @@ static int atmci_probe(struct platform_device *pdev) regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!regs) return -ENXIO; - pdata = pdev->dev.platform_data; - if (!pdata) { - pdata = atmci_of_init(pdev); - if (IS_ERR(pdata)) { - dev_err(&pdev->dev, "platform data not available\n"); - return PTR_ERR(pdata); - } + + pdata = atmci_of_init(pdev); + if (IS_ERR(pdata)) { + dev_err(&pdev->dev, "platform data not available\n"); + return PTR_ERR(pdata); } irq = platform_get_irq(pdev, 0); @@ -2701,7 +2670,7 @@ static struct platform_driver atmci_driver = { .driver = { .name = "atmel_mci", .probe_type = PROBE_PREFER_ASYNCHRONOUS, - .of_match_table = of_match_ptr(atmci_dt_ids), + .of_match_table = atmci_dt_ids, .pm = &atmci_dev_pm_ops, }, }; From patchwork Wed Apr 17 16:55:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 790055 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) (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 4315C17106F; Wed, 17 Apr 2024 16:57:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373040; cv=none; b=u8BXzc3jDir06Z+OXctods93TXm5YXz9Gym1rfozFFUb1dqSNyM1bir2B1uyaTVEChuUzTF1uj+h2ttjES4TijeSTCYPt6U9MUU9H1aGtvsCS2esk+16PBkK7JEk+oFkKOozne/Tn6eQzZM7Xoc/peOb/w7pe/EYyfYBx7cWXCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373040; c=relaxed/simple; bh=GZsozUShGk4fFvMqDmcx0WgJ+1CjFN4FctwcHdIe7AI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lK1COH+X+2QsyP53p9pCWGzHPvN6Jto3pchfqY5qSWKojUJNtpEK3qqlb6ozs+6+xuiSVmmBLqokdIIc6KIQblu5dcAq7wyYep8iXMMoU8Vf+sgozsQWXD9tN7tjx1Q3gDvLMSsYugHkrwuxgqxuo2SZoTOHDpj9jIzSz+PNk+M= 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=YdBglDZX; arc=none smtp.client-ip=198.175.65.13 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="YdBglDZX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713373037; x=1744909037; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GZsozUShGk4fFvMqDmcx0WgJ+1CjFN4FctwcHdIe7AI=; b=YdBglDZX/cVamcdwZDQUPREidMMXr/te6s6MQMuteAwKx1viF87ZneSk f/dnEWeySsbu2z9HIiqNYXC+mPJfSbzoMj/Xd6xrAhwkyUi00ul4uWXpy 0ZR78SGXoLre9jb9o9mye3yd4vOcUeeuctMZNaGjObIxTM1GhuzI822YH bwYKzwyzmPC3kNyJtV/Xm0X2uNUcrGX3lNHAufxZpClQfTqhAf40BgNUL 5kOA/4dgEKhnJjC0CVIFIne+c9rKk0IZfIpp+haeNHlCFV9KJ7G/05V0a vtsjucSrGuWTYNgWxwplSM/UVJqCR0aGItoHt/PNviPcAmI+2ewm2aXot w==; X-CSE-ConnectionGUID: tY1UqCZ2SBCM+cnmcWytZA== X-CSE-MsgGUID: p46CdqGXRpmfKrDnQoXXug== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="20026888" X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="20026888" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 09:57:15 -0700 X-CSE-ConnectionGUID: +cFC2as1Ty6RVPBwOukZvw== X-CSE-MsgGUID: d/Kr7EtnT/eb48gjLLZ6aQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="22766942" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 17 Apr 2024 09:57:12 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id A072421A; Wed, 17 Apr 2024 19:57:11 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Aubin Constans , Ulf Hansson , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea Subject: [PATCH v1 2/5] mmc: atmel-mci: Use temporary variable for struct device Date: Wed, 17 Apr 2024 19:55:14 +0300 Message-ID: <20240417165708.2965612-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.43.0.rc1.1336.g36b5255a03ac In-Reply-To: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> References: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-mmc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Use temporary variable for struct device to make code neater. Signed-off-by: Andy Shevchenko --- drivers/mmc/host/atmel-mci.c | 214 ++++++++++++++++++----------------- 1 file changed, 108 insertions(+), 106 deletions(-) diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 87c2855f64c2..c4dfd4c7785f 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -526,6 +526,7 @@ static void atmci_show_status_reg(struct seq_file *s, static int atmci_regs_show(struct seq_file *s, void *v) { struct atmel_mci *host = s->private; + struct device *dev = &host->pdev->dev; u32 *buf; int ret = 0; @@ -534,7 +535,7 @@ static int atmci_regs_show(struct seq_file *s, void *v) if (!buf) return -ENOMEM; - pm_runtime_get_sync(&host->pdev->dev); + pm_runtime_get_sync(dev); /* * Grab a more or less consistent snapshot. Note that we're @@ -545,8 +546,8 @@ static int atmci_regs_show(struct seq_file *s, void *v) memcpy_fromio(buf, host->regs, ATMCI_REGS_SIZE); spin_unlock_bh(&host->lock); - pm_runtime_mark_last_busy(&host->pdev->dev); - pm_runtime_put_autosuspend(&host->pdev->dev); + pm_runtime_mark_last_busy(dev); + pm_runtime_put_autosuspend(dev); seq_printf(s, "MR:\t0x%08x%s%s ", buf[ATMCI_MR / 4], @@ -629,33 +630,31 @@ static const struct of_device_id atmci_dt_ids[] = { MODULE_DEVICE_TABLE(of, atmci_dt_ids); -static struct mci_platform_data* -atmci_of_init(struct platform_device *pdev) +static struct mci_platform_data *atmci_of_init(struct device *dev) { - struct device_node *np = pdev->dev.of_node; + struct device_node *np = dev->of_node; struct device_node *cnp; struct mci_platform_data *pdata; u32 slot_id; int err; if (!np) { - dev_err(&pdev->dev, "device node not found\n"); + dev_err(dev, "device node not found\n"); return ERR_PTR(-EINVAL); } - pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) return ERR_PTR(-ENOMEM); for_each_child_of_node(np, cnp) { if (of_property_read_u32(cnp, "reg", &slot_id)) { - dev_warn(&pdev->dev, "reg property is missing for %pOF\n", - cnp); + dev_warn(dev, "reg property is missing for %pOF\n", cnp); continue; } if (slot_id >= ATMCI_MAX_NR_SLOTS) { - dev_warn(&pdev->dev, "can't have more than %d slots\n", + dev_warn(dev, "can't have more than %d slots\n", ATMCI_MAX_NR_SLOTS); of_node_put(cnp); break; @@ -666,7 +665,7 @@ atmci_of_init(struct platform_device *pdev) pdata->slot[slot_id].bus_width = 1; pdata->slot[slot_id].detect_pin = - devm_fwnode_gpiod_get(&pdev->dev, of_fwnode_handle(cnp), + devm_fwnode_gpiod_get(dev, of_fwnode_handle(cnp), "cd", GPIOD_IN, "cd-gpios"); err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].detect_pin); if (err) { @@ -681,7 +680,7 @@ atmci_of_init(struct platform_device *pdev) of_property_read_bool(cnp, "non-removable"); pdata->slot[slot_id].wp_pin = - devm_fwnode_gpiod_get(&pdev->dev, of_fwnode_handle(cnp), + devm_fwnode_gpiod_get(dev, of_fwnode_handle(cnp), "wp", GPIOD_IN, "wp-gpios"); err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].wp_pin); if (err) { @@ -726,11 +725,10 @@ static inline unsigned int atmci_convert_chksize(struct atmel_mci *host, static void atmci_timeout_timer(struct timer_list *t) { - struct atmel_mci *host; + struct atmel_mci *host = from_timer(host, t, timer); + struct device *dev = &host->pdev->dev; - host = from_timer(host, t, timer); - - dev_dbg(&host->pdev->dev, "software timeout\n"); + dev_dbg(dev, "software timeout\n"); if (host->mrq->cmd->data) { host->mrq->cmd->data->error = -ETIMEDOUT; @@ -848,15 +846,14 @@ static u32 atmci_prepare_command(struct mmc_host *mmc, static void atmci_send_command(struct atmel_mci *host, struct mmc_command *cmd, u32 cmd_flags) { + struct device *dev = &host->pdev->dev; unsigned int timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : ATMCI_CMD_TIMEOUT_MS; WARN_ON(host->cmd); host->cmd = cmd; - dev_vdbg(&host->pdev->dev, - "start command: ARGR=0x%08x CMDR=0x%08x\n", - cmd->arg, cmd_flags); + dev_vdbg(dev, "start command: ARGR=0x%08x CMDR=0x%08x\n", cmd->arg, cmd_flags); atmci_writel(host, ATMCI_ARGR, cmd->arg); atmci_writel(host, ATMCI_CMDR, cmd_flags); @@ -866,7 +863,9 @@ static void atmci_send_command(struct atmel_mci *host, static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data) { - dev_dbg(&host->pdev->dev, "send stop command\n"); + struct device *dev = &host->pdev->dev; + + dev_dbg(dev, "send stop command\n"); atmci_send_command(host, data->stop, host->stop_cmdr); atmci_writel(host, ATMCI_IER, ATMCI_CMDRDY); } @@ -938,12 +937,11 @@ static void atmci_pdc_set_both_buf(struct atmel_mci *host, int dir) */ static void atmci_pdc_cleanup(struct atmel_mci *host) { + struct device *dev = &host->pdev->dev; struct mmc_data *data = host->data; if (data) - dma_unmap_sg(&host->pdev->dev, - data->sg, data->sg_len, - mmc_get_dma_dir(data)); + dma_unmap_sg(dev, data->sg, data->sg_len, mmc_get_dma_dir(data)); } /* @@ -953,6 +951,7 @@ static void atmci_pdc_cleanup(struct atmel_mci *host) */ static void atmci_pdc_complete(struct atmel_mci *host) { + struct device *dev = &host->pdev->dev; int transfer_size = host->data->blocks * host->data->blksz; int i; @@ -969,7 +968,7 @@ static void atmci_pdc_complete(struct atmel_mci *host) atmci_pdc_cleanup(host); - dev_dbg(&host->pdev->dev, "(%s) set pending xfer complete\n", __func__); + dev_dbg(dev, "(%s) set pending xfer complete\n", __func__); atmci_set_pending(host, EVENT_XFER_COMPLETE); tasklet_schedule(&host->tasklet); } @@ -990,9 +989,10 @@ static void atmci_dma_cleanup(struct atmel_mci *host) static void atmci_dma_complete(void *arg) { struct atmel_mci *host = arg; + struct device *dev = &host->pdev->dev; struct mmc_data *data = host->data; - dev_vdbg(&host->pdev->dev, "DMA complete\n"); + dev_vdbg(dev, "DMA complete\n"); if (host->caps.has_dma_conf_reg) /* Disable DMA hardware handshaking on MCI */ @@ -1005,8 +1005,7 @@ static void atmci_dma_complete(void *arg) * to send the stop command or waiting for NBUSY in this case. */ if (data) { - dev_dbg(&host->pdev->dev, - "(%s) set pending xfer complete\n", __func__); + dev_dbg(dev, "(%s) set pending xfer complete\n", __func__); atmci_set_pending(host, EVENT_XFER_COMPLETE); tasklet_schedule(&host->tasklet); @@ -1080,6 +1079,7 @@ static u32 atmci_prepare_data(struct atmel_mci *host, struct mmc_data *data) static u32 atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data) { + struct device *dev = &host->pdev->dev; u32 iflags, tmp; int i; @@ -1105,8 +1105,7 @@ atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data) /* Configure PDC */ host->data_size = data->blocks * data->blksz; - dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, - mmc_get_dma_dir(data)); + dma_map_sg(dev, data->sg, data->sg_len, mmc_get_dma_dir(data)); if ((!host->caps.has_rwproof) && (host->data->flags & MMC_DATA_WRITE)) { @@ -1232,8 +1231,9 @@ atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data) static void atmci_stop_transfer(struct atmel_mci *host) { - dev_dbg(&host->pdev->dev, - "(%s) set pending xfer complete\n", __func__); + struct device *dev = &host->pdev->dev; + + dev_dbg(dev, "(%s) set pending xfer complete\n", __func__); atmci_set_pending(host, EVENT_XFER_COMPLETE); atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); } @@ -1249,14 +1249,14 @@ static void atmci_stop_transfer_pdc(struct atmel_mci *host) static void atmci_stop_transfer_dma(struct atmel_mci *host) { struct dma_chan *chan = host->data_chan; + struct device *dev = &host->pdev->dev; if (chan) { dmaengine_terminate_all(chan); atmci_dma_cleanup(host); } else { /* Data transfer was stopped by the interrupt handler */ - dev_dbg(&host->pdev->dev, - "(%s) set pending xfer complete\n", __func__); + dev_dbg(dev, "(%s) set pending xfer complete\n", __func__); atmci_set_pending(host, EVENT_XFER_COMPLETE); atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); } @@ -1269,6 +1269,7 @@ static void atmci_stop_transfer_dma(struct atmel_mci *host) static void atmci_start_request(struct atmel_mci *host, struct atmel_mci_slot *slot) { + struct device *dev = &host->pdev->dev; struct mmc_request *mrq; struct mmc_command *cmd; struct mmc_data *data; @@ -1284,7 +1285,7 @@ static void atmci_start_request(struct atmel_mci *host, host->cmd_status = 0; host->data_status = 0; - dev_dbg(&host->pdev->dev, "start request: cmd %u\n", mrq->cmd->opcode); + dev_dbg(dev, "start request: cmd %u\n", mrq->cmd->opcode); if (host->need_reset || host->caps.need_reset_after_xfer) { iflags = atmci_readl(host, ATMCI_IMR); @@ -1363,6 +1364,8 @@ static void atmci_start_request(struct atmel_mci *host, static void atmci_queue_request(struct atmel_mci *host, struct atmel_mci_slot *slot, struct mmc_request *mrq) { + struct device *dev = &host->pdev->dev; + dev_vdbg(&slot->mmc->class_dev, "queue request: state=%d\n", host->state); @@ -1372,7 +1375,7 @@ static void atmci_queue_request(struct atmel_mci *host, host->state = STATE_SENDING_CMD; atmci_start_request(host, slot); } else { - dev_dbg(&host->pdev->dev, "queue request\n"); + dev_dbg(dev, "queue request\n"); list_add_tail(&slot->queue_node, &host->queue); } spin_unlock_bh(&host->lock); @@ -1382,10 +1385,11 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq) { struct atmel_mci_slot *slot = mmc_priv(mmc); struct atmel_mci *host = slot->host; + struct device *dev = &host->pdev->dev; struct mmc_data *data; WARN_ON(slot->mrq); - dev_dbg(&host->pdev->dev, "MRQ: cmd %u\n", mrq->cmd->opcode); + dev_dbg(dev, "MRQ: cmd %u\n", mrq->cmd->opcode); /* * We may "know" the card is gone even though there's still an @@ -1595,6 +1599,7 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) { struct atmel_mci_slot *slot = NULL; struct mmc_host *prev_mmc = host->cur_slot->mmc; + struct device *dev = &host->pdev->dev; WARN_ON(host->cmd || host->data); @@ -1617,12 +1622,11 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) slot = list_entry(host->queue.next, struct atmel_mci_slot, queue_node); list_del(&slot->queue_node); - dev_vdbg(&host->pdev->dev, "list not empty: %s is next\n", - mmc_hostname(slot->mmc)); + dev_vdbg(dev, "list not empty: %s is next\n", mmc_hostname(slot->mmc)); host->state = STATE_SENDING_CMD; atmci_start_request(host, slot); } else { - dev_vdbg(&host->pdev->dev, "list empty\n"); + dev_vdbg(dev, "list empty\n"); host->state = STATE_IDLE; } @@ -1756,6 +1760,7 @@ static void atmci_detect_change(struct timer_list *t) static void atmci_tasklet_func(struct tasklet_struct *t) { struct atmel_mci *host = from_tasklet(host, t, tasklet); + struct device *dev = &host->pdev->dev; struct mmc_request *mrq = host->mrq; struct mmc_data *data = host->data; enum atmel_mci_state state = host->state; @@ -1766,14 +1771,13 @@ static void atmci_tasklet_func(struct tasklet_struct *t) state = host->state; - dev_vdbg(&host->pdev->dev, - "tasklet: state %u pending/completed/mask %lx/%lx/%x\n", + dev_vdbg(dev, "tasklet: state %u pending/completed/mask %lx/%lx/%x\n", state, host->pending_events, host->completed_events, atmci_readl(host, ATMCI_IMR)); do { prev_state = state; - dev_dbg(&host->pdev->dev, "FSM: state=%d\n", state); + dev_dbg(dev, "FSM: state=%d\n", state); switch (state) { case STATE_IDLE: @@ -1786,18 +1790,17 @@ static void atmci_tasklet_func(struct tasklet_struct *t) * END_REQUEST by default, WAITING_NOTBUSY if it's a * command needing it or DATA_XFER if there is data. */ - dev_dbg(&host->pdev->dev, "FSM: cmd ready?\n"); + dev_dbg(dev, "FSM: cmd ready?\n"); if (!atmci_test_and_clear_pending(host, EVENT_CMD_RDY)) break; - dev_dbg(&host->pdev->dev, "set completed cmd ready\n"); + dev_dbg(dev, "set completed cmd ready\n"); host->cmd = NULL; atmci_set_completed(host, EVENT_CMD_RDY); atmci_command_complete(host, mrq->cmd); if (mrq->data) { - dev_dbg(&host->pdev->dev, - "command with data transfer"); + dev_dbg(dev, "command with data transfer\n"); /* * If there is a command error don't start * data transfer. @@ -1812,8 +1815,7 @@ static void atmci_tasklet_func(struct tasklet_struct *t) } else state = STATE_DATA_XFER; } else if ((!mrq->data) && (mrq->cmd->flags & MMC_RSP_BUSY)) { - dev_dbg(&host->pdev->dev, - "command response need waiting notbusy"); + dev_dbg(dev, "command response need waiting notbusy\n"); atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); state = STATE_WAITING_NOTBUSY; } else @@ -1824,7 +1826,7 @@ static void atmci_tasklet_func(struct tasklet_struct *t) case STATE_DATA_XFER: if (atmci_test_and_clear_pending(host, EVENT_DATA_ERROR)) { - dev_dbg(&host->pdev->dev, "set completed data error\n"); + dev_dbg(dev, "set completed data error\n"); atmci_set_completed(host, EVENT_DATA_ERROR); state = STATE_END_REQUEST; break; @@ -1837,14 +1839,12 @@ static void atmci_tasklet_func(struct tasklet_struct *t) * to the next step which is WAITING_NOTBUSY in write * case and directly SENDING_STOP in read case. */ - dev_dbg(&host->pdev->dev, "FSM: xfer complete?\n"); + dev_dbg(dev, "FSM: xfer complete?\n"); if (!atmci_test_and_clear_pending(host, EVENT_XFER_COMPLETE)) break; - dev_dbg(&host->pdev->dev, - "(%s) set completed xfer complete\n", - __func__); + dev_dbg(dev, "(%s) set completed xfer complete\n", __func__); atmci_set_completed(host, EVENT_XFER_COMPLETE); if (host->caps.need_notbusy_for_read_ops || @@ -1869,12 +1869,12 @@ static void atmci_tasklet_func(struct tasklet_struct *t) * included) or a write operation. In the latest case, * we need to send a stop command. */ - dev_dbg(&host->pdev->dev, "FSM: not busy?\n"); + dev_dbg(dev, "FSM: not busy?\n"); if (!atmci_test_and_clear_pending(host, EVENT_NOTBUSY)) break; - dev_dbg(&host->pdev->dev, "set completed not busy\n"); + dev_dbg(dev, "set completed not busy\n"); atmci_set_completed(host, EVENT_NOTBUSY); if (host->data) { @@ -1904,12 +1904,12 @@ static void atmci_tasklet_func(struct tasklet_struct *t) * in order to go to the end request state instead of * sending stop again. */ - dev_dbg(&host->pdev->dev, "FSM: cmd ready?\n"); + dev_dbg(dev, "FSM: cmd ready?\n"); if (!atmci_test_and_clear_pending(host, EVENT_CMD_RDY)) break; - dev_dbg(&host->pdev->dev, "FSM: cmd ready\n"); + dev_dbg(dev, "FSM: cmd ready\n"); host->cmd = NULL; data->bytes_xfered = data->blocks * data->blksz; data->error = 0; @@ -2108,6 +2108,7 @@ static void atmci_sdio_interrupt(struct atmel_mci *host, u32 status) static irqreturn_t atmci_interrupt(int irq, void *dev_id) { struct atmel_mci *host = dev_id; + struct device *dev = &host->pdev->dev; u32 status, mask, pending; unsigned int pass_count = 0; @@ -2119,21 +2120,21 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) break; if (pending & ATMCI_DATA_ERROR_FLAGS) { - dev_dbg(&host->pdev->dev, "IRQ: data error\n"); + dev_dbg(dev, "IRQ: data error\n"); atmci_writel(host, ATMCI_IDR, ATMCI_DATA_ERROR_FLAGS | ATMCI_RXRDY | ATMCI_TXRDY | ATMCI_ENDRX | ATMCI_ENDTX | ATMCI_RXBUFF | ATMCI_TXBUFE); host->data_status = status; - dev_dbg(&host->pdev->dev, "set pending data error\n"); + dev_dbg(dev, "set pending data error\n"); smp_wmb(); atmci_set_pending(host, EVENT_DATA_ERROR); tasklet_schedule(&host->tasklet); } if (pending & ATMCI_TXBUFE) { - dev_dbg(&host->pdev->dev, "IRQ: tx buffer empty\n"); + dev_dbg(dev, "IRQ: tx buffer empty\n"); atmci_writel(host, ATMCI_IDR, ATMCI_TXBUFE); atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX); /* @@ -2149,7 +2150,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) atmci_pdc_complete(host); } } else if (pending & ATMCI_ENDTX) { - dev_dbg(&host->pdev->dev, "IRQ: end of tx buffer\n"); + dev_dbg(dev, "IRQ: end of tx buffer\n"); atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX); if (host->data_size) { @@ -2160,7 +2161,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) } if (pending & ATMCI_RXBUFF) { - dev_dbg(&host->pdev->dev, "IRQ: rx buffer full\n"); + dev_dbg(dev, "IRQ: rx buffer full\n"); atmci_writel(host, ATMCI_IDR, ATMCI_RXBUFF); atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX); /* @@ -2176,7 +2177,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) atmci_pdc_complete(host); } } else if (pending & ATMCI_ENDRX) { - dev_dbg(&host->pdev->dev, "IRQ: end of rx buffer\n"); + dev_dbg(dev, "IRQ: end of rx buffer\n"); atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX); if (host->data_size) { @@ -2193,19 +2194,19 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) * The appropriate workaround is to use the BLKE signal. */ if (pending & ATMCI_BLKE) { - dev_dbg(&host->pdev->dev, "IRQ: blke\n"); + dev_dbg(dev, "IRQ: blke\n"); atmci_writel(host, ATMCI_IDR, ATMCI_BLKE); smp_wmb(); - dev_dbg(&host->pdev->dev, "set pending notbusy\n"); + dev_dbg(dev, "set pending notbusy\n"); atmci_set_pending(host, EVENT_NOTBUSY); tasklet_schedule(&host->tasklet); } if (pending & ATMCI_NOTBUSY) { - dev_dbg(&host->pdev->dev, "IRQ: not_busy\n"); + dev_dbg(dev, "IRQ: not_busy\n"); atmci_writel(host, ATMCI_IDR, ATMCI_NOTBUSY); smp_wmb(); - dev_dbg(&host->pdev->dev, "set pending notbusy\n"); + dev_dbg(dev, "set pending notbusy\n"); atmci_set_pending(host, EVENT_NOTBUSY); tasklet_schedule(&host->tasklet); } @@ -2216,11 +2217,11 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id) atmci_write_data_pio(host); if (pending & ATMCI_CMDRDY) { - dev_dbg(&host->pdev->dev, "IRQ: cmd ready\n"); + dev_dbg(dev, "IRQ: cmd ready\n"); atmci_writel(host, ATMCI_IDR, ATMCI_CMDRDY); host->cmd_status = status; smp_wmb(); - dev_dbg(&host->pdev->dev, "set pending cmd rdy\n"); + dev_dbg(dev, "set pending cmd rdy\n"); atmci_set_pending(host, EVENT_CMD_RDY); tasklet_schedule(&host->tasklet); } @@ -2252,11 +2253,12 @@ static int atmci_init_slot(struct atmel_mci *host, struct mci_slot_pdata *slot_data, unsigned int id, u32 sdc_reg, u32 sdio_irq) { + struct device *dev = &host->pdev->dev; struct mmc_host *mmc; struct atmel_mci_slot *slot; int ret; - mmc = mmc_alloc_host(sizeof(struct atmel_mci_slot), &host->pdev->dev); + mmc = mmc_alloc_host(sizeof(struct atmel_mci_slot), dev); if (!mmc) return -ENOMEM; @@ -2375,12 +2377,13 @@ static void atmci_cleanup_slot(struct atmel_mci_slot *slot, static int atmci_configure_dma(struct atmel_mci *host) { - host->dma.chan = dma_request_chan(&host->pdev->dev, "rxtx"); + struct device *dev = &host->pdev->dev; + + host->dma.chan = dma_request_chan(dev, "rxtx"); if (IS_ERR(host->dma.chan)) return PTR_ERR(host->dma.chan); - dev_info(&host->pdev->dev, "using %s for DMA transfers\n", - dma_chan_name(host->dma.chan)); + dev_info(dev, "using %s for DMA transfers\n", dma_chan_name(host->dma.chan)); host->dma_conf.src_addr = host->mapbase + ATMCI_RDR; host->dma_conf.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; @@ -2400,11 +2403,11 @@ static int atmci_configure_dma(struct atmel_mci *host) */ static void atmci_get_cap(struct atmel_mci *host) { + struct device *dev = &host->pdev->dev; unsigned int version; version = atmci_get_version(host); - dev_info(&host->pdev->dev, - "version: 0x%x\n", version); + dev_info(dev, "version: 0x%x\n", version); host->caps.has_dma_conf_reg = false; host->caps.has_pdc = true; @@ -2445,14 +2448,14 @@ static void atmci_get_cap(struct atmel_mci *host) break; default: host->caps.has_pdc = false; - dev_warn(&host->pdev->dev, - "Unmanaged mci version, set minimum capabilities\n"); + dev_warn(dev, "Unmanaged mci version, set minimum capabilities\n"); break; } } static int atmci_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct mci_platform_data *pdata; struct atmel_mci *host; struct resource *regs; @@ -2464,9 +2467,9 @@ static int atmci_probe(struct platform_device *pdev) if (!regs) return -ENXIO; - pdata = atmci_of_init(pdev); + pdata = atmci_of_init(dev); if (IS_ERR(pdata)) { - dev_err(&pdev->dev, "platform data not available\n"); + dev_err(dev, "platform data not available\n"); return PTR_ERR(pdata); } @@ -2474,7 +2477,7 @@ static int atmci_probe(struct platform_device *pdev) if (irq < 0) return irq; - host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); + host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); if (!host) return -ENOMEM; @@ -2482,11 +2485,11 @@ static int atmci_probe(struct platform_device *pdev) spin_lock_init(&host->lock); INIT_LIST_HEAD(&host->queue); - host->mck = devm_clk_get(&pdev->dev, "mci_clk"); + host->mck = devm_clk_get(dev, "mci_clk"); if (IS_ERR(host->mck)) return PTR_ERR(host->mck); - host->regs = devm_ioremap(&pdev->dev, regs->start, resource_size(regs)); + host->regs = devm_ioremap(dev, regs->start, resource_size(regs)); if (!host->regs) return -ENOMEM; @@ -2501,7 +2504,7 @@ static int atmci_probe(struct platform_device *pdev) tasklet_setup(&host->tasklet, atmci_tasklet_func); - ret = request_irq(irq, atmci_interrupt, 0, dev_name(&pdev->dev), host); + ret = request_irq(irq, atmci_interrupt, 0, dev_name(dev), host); if (ret) { clk_disable_unprepare(host->mck); return ret; @@ -2517,12 +2520,12 @@ static int atmci_probe(struct platform_device *pdev) host->submit_data = &atmci_submit_data_dma; host->stop_transfer = &atmci_stop_transfer_dma; } else if (host->caps.has_pdc) { - dev_info(&pdev->dev, "using PDC\n"); + dev_info(dev, "using PDC\n"); host->prepare_data = &atmci_prepare_data_pdc; host->submit_data = &atmci_submit_data_pdc; host->stop_transfer = &atmci_stop_transfer_pdc; } else { - dev_info(&pdev->dev, "using PIO\n"); + dev_info(dev, "using PIO\n"); host->prepare_data = &atmci_prepare_data; host->submit_data = &atmci_submit_data; host->stop_transfer = &atmci_stop_transfer; @@ -2532,11 +2535,11 @@ static int atmci_probe(struct platform_device *pdev) timer_setup(&host->timer, atmci_timeout_timer, 0); - pm_runtime_get_noresume(&pdev->dev); - pm_runtime_set_active(&pdev->dev); - pm_runtime_set_autosuspend_delay(&pdev->dev, AUTOSUSPEND_DELAY); - pm_runtime_use_autosuspend(&pdev->dev); - pm_runtime_enable(&pdev->dev); + pm_runtime_get_noresume(dev); + pm_runtime_set_active(dev); + pm_runtime_set_autosuspend_delay(dev, AUTOSUSPEND_DELAY); + pm_runtime_use_autosuspend(dev); + pm_runtime_enable(dev); /* We need at least one slot to succeed */ nr_slots = 0; @@ -2561,27 +2564,26 @@ static int atmci_probe(struct platform_device *pdev) } if (!nr_slots) { - dev_err(&pdev->dev, "init failed: no slot defined\n"); + dev_err(dev, "init failed: no slot defined\n"); goto err_init_slot; } if (!host->caps.has_rwproof) { - host->buffer = dma_alloc_coherent(&pdev->dev, host->buf_size, + host->buffer = dma_alloc_coherent(dev, host->buf_size, &host->buf_phys_addr, GFP_KERNEL); if (!host->buffer) { ret = -ENOMEM; - dev_err(&pdev->dev, "buffer allocation failed\n"); + dev_err(dev, "buffer allocation failed\n"); goto err_dma_alloc; } } - dev_info(&pdev->dev, - "Atmel MCI controller at 0x%08lx irq %d, %u slots\n", - host->mapbase, irq, nr_slots); + dev_info(dev, "Atmel MCI controller at 0x%08lx irq %d, %u slots\n", + host->mapbase, irq, nr_slots); - pm_runtime_mark_last_busy(&host->pdev->dev); - pm_runtime_put_autosuspend(&pdev->dev); + pm_runtime_mark_last_busy(dev); + pm_runtime_put_autosuspend(dev); return 0; @@ -2593,8 +2595,8 @@ static int atmci_probe(struct platform_device *pdev) err_init_slot: clk_disable_unprepare(host->mck); - pm_runtime_disable(&pdev->dev); - pm_runtime_put_noidle(&pdev->dev); + pm_runtime_disable(dev); + pm_runtime_put_noidle(dev); del_timer_sync(&host->timer); if (!IS_ERR(host->dma.chan)) @@ -2607,13 +2609,13 @@ static int atmci_probe(struct platform_device *pdev) static void atmci_remove(struct platform_device *pdev) { struct atmel_mci *host = platform_get_drvdata(pdev); + struct device *dev = &pdev->dev; unsigned int i; - pm_runtime_get_sync(&pdev->dev); + pm_runtime_get_sync(dev); if (host->buffer) - dma_free_coherent(&pdev->dev, host->buf_size, - host->buffer, host->buf_phys_addr); + dma_free_coherent(dev, host->buf_size, host->buffer, host->buf_phys_addr); for (i = 0; i < ATMCI_MAX_NR_SLOTS; i++) { if (host->slot[i]) @@ -2632,8 +2634,8 @@ static void atmci_remove(struct platform_device *pdev) clk_disable_unprepare(host->mck); - pm_runtime_disable(&pdev->dev); - pm_runtime_put_noidle(&pdev->dev); + pm_runtime_disable(dev); + pm_runtime_put_noidle(dev); } #ifdef CONFIG_PM From patchwork Wed Apr 17 16:55:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 789633 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) (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 A631016FF4E; Wed, 17 Apr 2024 16:57:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373037; cv=none; b=rcF1xcvJOmLoZq7pNvidiqqsCAiYhRZAWa4qYqrnv1CyyJQ+LbthzuKfOO4PSnB0ZjlBqSCMvcji6qbz7+8vuLkKDg8GVFDjE214beYm6SoeTeS8LTKRnefQtaTkAMyqshRA1N7wQUBmQrSTsNh8eZXLb3IokqcpxHisSSphQ4s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373037; c=relaxed/simple; bh=LgEyY0Dj0n+E/eaUiquIJNb89lvSKKm6xtvAVSaZUK8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CISmBBgSRUJujB/VkoYWTV/zbzs+5CsksbqyM5xMp5n/GyAZjKy0kXEk6XNXbH1qJfUZYJgeKOSclT/bj4SynlgkoNurTtmt2DpwFZwLje2v2I4of4xXGdGsh1Mb6Zt99RUw99iyJxItYJ6MIfbfcv4MTJ0JWnb8RPmiC+9Aj08= 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=LaiGxc55; arc=none smtp.client-ip=198.175.65.13 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="LaiGxc55" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713373035; x=1744909035; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LgEyY0Dj0n+E/eaUiquIJNb89lvSKKm6xtvAVSaZUK8=; b=LaiGxc55bQD2yP4++8CG0809exrgIxTvclvv5WrJ6HhOxZ7Ft5OwT/gr h0DGmyuHhqDvm6r8jvQ2lrU6mMIcQy22qFzSIydsu1QoruJGf/+EXvAQ4 VJrUcM3dSiQ0ssKWcoDT+WDQb0EjstkRJJlZttuZhbUlk5ZfVktp3pBus ANTugvd+4sOzeD9ewmn4tYIJpRO8P8Jt4xAxt0bXQFskVYueDBcsnQm9s imlqvrCbbtWKhl3i0/rXd5TgdnT+W4wxGPqSQ0fyxQ7+eE+mczGcbCpwh Wk/+Mm49fl96/EfO+XHehpm+cTxSo0YBUrquAx+pzi8/P7oEQWJOyFjNZ g==; X-CSE-ConnectionGUID: i5G4lYLERAOVYa1N5xXakw== X-CSE-MsgGUID: mVy314HmTsCr7yM5sugQNQ== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="20026881" X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="20026881" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 09:57:15 -0700 X-CSE-ConnectionGUID: 4FR48OaCTi+ghTGOOPRKog== X-CSE-MsgGUID: tOtKEfcRQfKK5M+maqD5Tw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="22766943" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 17 Apr 2024 09:57:12 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id ACB48491; Wed, 17 Apr 2024 19:57:11 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Aubin Constans , Ulf Hansson , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea Subject: [PATCH v1 3/5] mmc: atmel-mci: Replace platform device pointer by generic one Date: Wed, 17 Apr 2024 19:55:15 +0300 Message-ID: <20240417165708.2965612-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.43.0.rc1.1336.g36b5255a03ac In-Reply-To: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> References: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-mmc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 There no need to keep a pointer to a platform device as it's not used outside of ->probe() and ->remove() callbacks. Replace platform device pointer by generic one in host structure. Signed-off-by: Andy Shevchenko --- drivers/mmc/host/atmel-mci.c | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index c4dfd4c7785f..3aed57c392fa 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -296,7 +296,7 @@ struct atmel_mci_dma { * rate and timeout calculations. * @mapbase: Physical address of the MMIO registers. * @mck: The peripheral bus clock hooked up to the MMC controller. - * @pdev: Platform device associated with the MMC controller. + * @dev: Device associated with the MMC controller. * @slot: Slots sharing this MMC controller. * @caps: MCI capabilities depending on MCI version. * @prepare_data: function to setup MCI before data transfer which @@ -373,7 +373,7 @@ struct atmel_mci { unsigned long bus_hz; unsigned long mapbase; struct clk *mck; - struct platform_device *pdev; + struct device *dev; struct atmel_mci_slot *slot[ATMCI_MAX_NR_SLOTS]; @@ -526,7 +526,7 @@ static void atmci_show_status_reg(struct seq_file *s, static int atmci_regs_show(struct seq_file *s, void *v) { struct atmel_mci *host = s->private; - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; u32 *buf; int ret = 0; @@ -726,7 +726,7 @@ static inline unsigned int atmci_convert_chksize(struct atmel_mci *host, static void atmci_timeout_timer(struct timer_list *t) { struct atmel_mci *host = from_timer(host, t, timer); - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; dev_dbg(dev, "software timeout\n"); @@ -846,7 +846,7 @@ static u32 atmci_prepare_command(struct mmc_host *mmc, static void atmci_send_command(struct atmel_mci *host, struct mmc_command *cmd, u32 cmd_flags) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; unsigned int timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : ATMCI_CMD_TIMEOUT_MS; @@ -863,7 +863,7 @@ static void atmci_send_command(struct atmel_mci *host, static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; dev_dbg(dev, "send stop command\n"); atmci_send_command(host, data->stop, host->stop_cmdr); @@ -937,8 +937,8 @@ static void atmci_pdc_set_both_buf(struct atmel_mci *host, int dir) */ static void atmci_pdc_cleanup(struct atmel_mci *host) { - struct device *dev = &host->pdev->dev; struct mmc_data *data = host->data; + struct device *dev = host->dev; if (data) dma_unmap_sg(dev, data->sg, data->sg_len, mmc_get_dma_dir(data)); @@ -951,7 +951,7 @@ static void atmci_pdc_cleanup(struct atmel_mci *host) */ static void atmci_pdc_complete(struct atmel_mci *host) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; int transfer_size = host->data->blocks * host->data->blksz; int i; @@ -989,8 +989,8 @@ static void atmci_dma_cleanup(struct atmel_mci *host) static void atmci_dma_complete(void *arg) { struct atmel_mci *host = arg; - struct device *dev = &host->pdev->dev; struct mmc_data *data = host->data; + struct device *dev = host->dev; dev_vdbg(dev, "DMA complete\n"); @@ -1079,7 +1079,7 @@ static u32 atmci_prepare_data(struct atmel_mci *host, struct mmc_data *data) static u32 atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; u32 iflags, tmp; int i; @@ -1231,7 +1231,7 @@ atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data) static void atmci_stop_transfer(struct atmel_mci *host) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; dev_dbg(dev, "(%s) set pending xfer complete\n", __func__); atmci_set_pending(host, EVENT_XFER_COMPLETE); @@ -1249,7 +1249,7 @@ static void atmci_stop_transfer_pdc(struct atmel_mci *host) static void atmci_stop_transfer_dma(struct atmel_mci *host) { struct dma_chan *chan = host->data_chan; - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; if (chan) { dmaengine_terminate_all(chan); @@ -1269,7 +1269,7 @@ static void atmci_stop_transfer_dma(struct atmel_mci *host) static void atmci_start_request(struct atmel_mci *host, struct atmel_mci_slot *slot) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; struct mmc_request *mrq; struct mmc_command *cmd; struct mmc_data *data; @@ -1364,7 +1364,7 @@ static void atmci_start_request(struct atmel_mci *host, static void atmci_queue_request(struct atmel_mci *host, struct atmel_mci_slot *slot, struct mmc_request *mrq) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; dev_vdbg(&slot->mmc->class_dev, "queue request: state=%d\n", host->state); @@ -1385,7 +1385,7 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq) { struct atmel_mci_slot *slot = mmc_priv(mmc); struct atmel_mci *host = slot->host; - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; struct mmc_data *data; WARN_ON(slot->mrq); @@ -1599,7 +1599,7 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) { struct atmel_mci_slot *slot = NULL; struct mmc_host *prev_mmc = host->cur_slot->mmc; - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; WARN_ON(host->cmd || host->data); @@ -1760,9 +1760,9 @@ static void atmci_detect_change(struct timer_list *t) static void atmci_tasklet_func(struct tasklet_struct *t) { struct atmel_mci *host = from_tasklet(host, t, tasklet); - struct device *dev = &host->pdev->dev; struct mmc_request *mrq = host->mrq; struct mmc_data *data = host->data; + struct device *dev = host->dev; enum atmel_mci_state state = host->state; enum atmel_mci_state prev_state; u32 status; @@ -2108,7 +2108,7 @@ static void atmci_sdio_interrupt(struct atmel_mci *host, u32 status) static irqreturn_t atmci_interrupt(int irq, void *dev_id) { struct atmel_mci *host = dev_id; - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; u32 status, mask, pending; unsigned int pass_count = 0; @@ -2253,7 +2253,7 @@ static int atmci_init_slot(struct atmel_mci *host, struct mci_slot_pdata *slot_data, unsigned int id, u32 sdc_reg, u32 sdio_irq) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; struct mmc_host *mmc; struct atmel_mci_slot *slot; int ret; @@ -2377,7 +2377,7 @@ static void atmci_cleanup_slot(struct atmel_mci_slot *slot, static int atmci_configure_dma(struct atmel_mci *host) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; host->dma.chan = dma_request_chan(dev, "rxtx"); if (IS_ERR(host->dma.chan)) @@ -2403,7 +2403,7 @@ static int atmci_configure_dma(struct atmel_mci *host) */ static void atmci_get_cap(struct atmel_mci *host) { - struct device *dev = &host->pdev->dev; + struct device *dev = host->dev; unsigned int version; version = atmci_get_version(host); @@ -2481,7 +2481,7 @@ static int atmci_probe(struct platform_device *pdev) if (!host) return -ENOMEM; - host->pdev = pdev; + host->dev = dev; spin_lock_init(&host->lock); INIT_LIST_HEAD(&host->queue); From patchwork Wed Apr 17 16:55:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 790056 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 E0DFD171090; Wed, 17 Apr 2024 16:57:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373039; cv=none; b=k/onGsZ8kxK3tPOQ+n22OwGo8m0MBSRbSFIJUpVitCIjdM9oaBVLIB7qxvWFRSS06oAYQdPMrUX5g+e85dWNeFSZYtlzY0WTr5/779Jn3qjKELJ7BVMzPGGoU5x7tmD38TqV+gnjnyz3uKhYOecsUMdGoYijAES1sfGkcabaqAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373039; c=relaxed/simple; bh=pK7D94zlVsLtPfGLt8vrs3Ch7+HDx4astTv2fWve5w8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rs9MTZa9XgXFfg8GkLrxqw/IMsyJ+ZbHo8KNwu60uaop0s95tw060qtW9fXPKSzGdrJB19CxZATQLP1q/mTYn09gejyrB7SMwD695NUEU4vUNoTM34R/m6IGHJRLw21O2h9oJq1y4kwsfHy+Ui7oHv4CYF6PHCgHTtHrt8Pq93w= 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=MTxUR4ie; arc=none smtp.client-ip=192.198.163.17 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="MTxUR4ie" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713373038; x=1744909038; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pK7D94zlVsLtPfGLt8vrs3Ch7+HDx4astTv2fWve5w8=; b=MTxUR4ieqys0PURky3p0D9VsfEj7tkLpaG8+/x1riIqVw33e53lx4oNB dzX2/fUDeSMRwxzNQ2x89ALpVwuMfILVCQ4oTYBylLpNe1tDqSMgOdtBJ r0Uge/wZ01jeulbb+sMWg2/1sU6wSWJvSyBhzCoRqkwuQdLYnWBHemZPa UjJbk43i54hp6TYqX7HUXqSAjIJ5U+fEin7mEK4g3OgZsTU/fK0vIRZgF ts5zRNSFKN4OPDZqUqhsuz5vmttex6t43lp/X1PQZcnz+YrN78jEbtiYW NT4n37OWsJ6o+e8j7Y3uXyLquCjG17ZewzALNvSzRJ+4qch24MrO1T7NH Q==; X-CSE-ConnectionGUID: I9PmHNzuR/WJQmgR89yrmw== X-CSE-MsgGUID: Ck4lVCD3R3uz7QryKHau7A== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="8737018" X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="8737018" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 09:57:15 -0700 X-CSE-ConnectionGUID: OSdbcZcdSumVhBGEq8jZLA== X-CSE-MsgGUID: qPYy91wCTsWZZdH0C22tGQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="22571638" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa010.jf.intel.com with ESMTP; 17 Apr 2024 09:57:13 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id B650C60B; Wed, 17 Apr 2024 19:57:11 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Aubin Constans , Ulf Hansson , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea Subject: [PATCH v1 4/5] mmc: atmel-mci: Incapsulate used to be a platform data into host structure Date: Wed, 17 Apr 2024 19:55:16 +0300 Message-ID: <20240417165708.2965612-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.43.0.rc1.1336.g36b5255a03ac In-Reply-To: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> References: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-mmc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 After platform data is gone, we always allocate memory for the slot information. Incapsulate the array of the latter into the host structure, so we allocate memory only once. This makes code simpler. Signed-off-by: Andy Shevchenko --- drivers/mmc/host/atmel-mci.c | 66 ++++++++++++++---------------------- 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 3aed57c392fa..3ae17b8584a2 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -224,14 +224,6 @@ struct mci_slot_pdata { bool non_removable; }; -/** - * struct mci_platform_data - board-specific MMC/SDcard configuration - * @slot: Per-slot configuration data. - */ -struct mci_platform_data { - struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS]; -}; - struct atmel_mci_caps { bool has_dma_conf_reg; bool has_pdc; @@ -375,6 +367,7 @@ struct atmel_mci { struct clk *mck; struct device *dev; + struct mci_slot_pdata pdata[ATMCI_MAX_NR_SLOTS]; struct atmel_mci_slot *slot[ATMCI_MAX_NR_SLOTS]; struct atmel_mci_caps caps; @@ -630,22 +623,16 @@ static const struct of_device_id atmci_dt_ids[] = { MODULE_DEVICE_TABLE(of, atmci_dt_ids); -static struct mci_platform_data *atmci_of_init(struct device *dev) +static int atmci_of_init(struct atmel_mci *host) { + struct device *dev = host->dev; struct device_node *np = dev->of_node; struct device_node *cnp; - struct mci_platform_data *pdata; u32 slot_id; int err; - if (!np) { - dev_err(dev, "device node not found\n"); - return ERR_PTR(-EINVAL); - } - - pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); - if (!pdata) - return ERR_PTR(-ENOMEM); + if (!np) + return dev_err_probe(dev, -EINVAL, "device node not found\n"); for_each_child_of_node(np, cnp) { if (of_property_read_u32(cnp, "reg", &slot_id)) { @@ -661,38 +648,38 @@ static struct mci_platform_data *atmci_of_init(struct device *dev) } if (of_property_read_u32(cnp, "bus-width", - &pdata->slot[slot_id].bus_width)) - pdata->slot[slot_id].bus_width = 1; + &host->pdata[slot_id].bus_width)) + host->pdata[slot_id].bus_width = 1; - pdata->slot[slot_id].detect_pin = + host->pdata[slot_id].detect_pin = devm_fwnode_gpiod_get(dev, of_fwnode_handle(cnp), "cd", GPIOD_IN, "cd-gpios"); - err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].detect_pin); + err = PTR_ERR_OR_ZERO(host->pdata[slot_id].detect_pin); if (err) { if (err != -ENOENT) { of_node_put(cnp); - return ERR_PTR(err); + return err; } - pdata->slot[slot_id].detect_pin = NULL; + host->pdata[slot_id].detect_pin = NULL; } - pdata->slot[slot_id].non_removable = + host->pdata[slot_id].non_removable = of_property_read_bool(cnp, "non-removable"); - pdata->slot[slot_id].wp_pin = + host->pdata[slot_id].wp_pin = devm_fwnode_gpiod_get(dev, of_fwnode_handle(cnp), "wp", GPIOD_IN, "wp-gpios"); - err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].wp_pin); + err = PTR_ERR_OR_ZERO(host->pdata[slot_id].wp_pin); if (err) { if (err != -ENOENT) { of_node_put(cnp); - return ERR_PTR(err); + return err; } - pdata->slot[slot_id].wp_pin = NULL; + host->pdata[slot_id].wp_pin = NULL; } } - return pdata; + return 0; } static inline unsigned int atmci_get_version(struct atmel_mci *host) @@ -2456,7 +2443,6 @@ static void atmci_get_cap(struct atmel_mci *host) static int atmci_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct mci_platform_data *pdata; struct atmel_mci *host; struct resource *regs; unsigned int nr_slots; @@ -2467,12 +2453,6 @@ static int atmci_probe(struct platform_device *pdev) if (!regs) return -ENXIO; - pdata = atmci_of_init(dev); - if (IS_ERR(pdata)) { - dev_err(dev, "platform data not available\n"); - return PTR_ERR(pdata); - } - irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; @@ -2485,6 +2465,10 @@ static int atmci_probe(struct platform_device *pdev) spin_lock_init(&host->lock); INIT_LIST_HEAD(&host->queue); + ret = atmci_of_init(host); + if (ret) + return dev_err_probe(dev, ret, "Slot information not available\n"); + host->mck = devm_clk_get(dev, "mci_clk"); if (IS_ERR(host->mck)) return PTR_ERR(host->mck); @@ -2544,16 +2528,16 @@ static int atmci_probe(struct platform_device *pdev) /* We need at least one slot to succeed */ nr_slots = 0; ret = -ENODEV; - if (pdata->slot[0].bus_width) { - ret = atmci_init_slot(host, &pdata->slot[0], + if (host->pdata[0].bus_width) { + ret = atmci_init_slot(host, &host->pdata[0], 0, ATMCI_SDCSEL_SLOT_A, ATMCI_SDIOIRQA); if (!ret) { nr_slots++; host->buf_size = host->slot[0]->mmc->max_req_size; } } - if (pdata->slot[1].bus_width) { - ret = atmci_init_slot(host, &pdata->slot[1], + if (host->pdata[1].bus_width) { + ret = atmci_init_slot(host, &host->pdata[1], 1, ATMCI_SDCSEL_SLOT_B, ATMCI_SDIOIRQB); if (!ret) { nr_slots++; From patchwork Wed Apr 17 16:55:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 789631 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 F24A717164B; Wed, 17 Apr 2024 16:57:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373040; cv=none; b=MjSIAfHO1QHh7gXv+mEm2/K540JI0aqq76YxTtaBc/qrVfFy1xQq0756Z4vm/RbApgXTg2TWkzGiLxr0WYqeSQyLYpryAqjRs7Vd8ddkghla08wXkNluGwZZe8cDcvr3MYv9n+9XL5rcCBPgMKXFu6Vrezr4Vt68e9o4957lp8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713373040; c=relaxed/simple; bh=bgWGwCLui9Z4FRfsi9Q01Jk+7wL6L7PwnwPlqb0UfpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UzTmQlCp4URaLny7pjZeXuLWQKQ9pdB9xP3Ab0sk32wvE2C9JPrMWyCfa8uv6eO4I/gSRstDujviZFapd7S3Hc/wDhilRhpD/tBYrbHfVISu4o6yHN5qQveklMIyZ0jVtIM3o3QHlNgcHKRkkVCC1g6vl68kgQxV7WtfASuKxK8= 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=b1LPlN6Z; arc=none smtp.client-ip=192.198.163.17 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="b1LPlN6Z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713373039; x=1744909039; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bgWGwCLui9Z4FRfsi9Q01Jk+7wL6L7PwnwPlqb0UfpE=; b=b1LPlN6ZVsbK76Vl4ZYt43G6Tf0eedAu4q9ZwvHjb04mrfLD2SMUJFM5 Kb6uU6yATo15Yv9Hp/v0K8yx7CIDPJSVwHEwqoT9Kq6fSKyFt+ybC9id9 PZu4q14GBjOEqFWe4mgC6ZLWzQaaHYFtrb1UIbcwRqdKi0iZ9vcmGoMLq lCLo1GxaQ4Xc+cdlDCGB2mpqeXEv2FBcDt21H6fl9VEQ3ifsiltT4VD74 oJOg/N9rGbR2N3RYaFuXEY7VBgTD0/0CqiJaYWs/m6Z3gZyP2+zJ4nGhz 6GhBlwgLsARSpsmHFBwXvVJnEujvUkZ0dhEgEQHCYsExQaOPABwVrAxvI g==; X-CSE-ConnectionGUID: WFFryQz1RvuTE+L9ou+ylw== X-CSE-MsgGUID: y0+nqwCPRhuO1fWGUF17rA== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="8737029" X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="8737029" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 09:57:18 -0700 X-CSE-ConnectionGUID: rq6sC2tpRaSZZU4PxKytyQ== X-CSE-MsgGUID: 5SSBCHV2QnKQii/ZGQR1gw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,209,1708416000"; d="scan'208";a="22571643" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa010.jf.intel.com with ESMTP; 17 Apr 2024 09:57:16 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id BB892169; Wed, 17 Apr 2024 19:57:11 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Aubin Constans , Ulf Hansson , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea Subject: [PATCH v1 5/5] mmc: atmel-mci: Switch to use dev_err_probe() Date: Wed, 17 Apr 2024 19:55:17 +0300 Message-ID: <20240417165708.2965612-6-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.43.0.rc1.1336.g36b5255a03ac In-Reply-To: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> References: <20240417165708.2965612-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-mmc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Switch to use dev_err_probe() to simplify the error path and unify a message template. Signed-off-by: Andy Shevchenko --- drivers/mmc/host/atmel-mci.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 3ae17b8584a2..c4502482d967 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -2548,7 +2548,7 @@ static int atmci_probe(struct platform_device *pdev) } if (!nr_slots) { - dev_err(dev, "init failed: no slot defined\n"); + dev_err_probe(dev, ret, "init failed: no slot defined\n"); goto err_init_slot; } @@ -2557,8 +2557,7 @@ static int atmci_probe(struct platform_device *pdev) &host->buf_phys_addr, GFP_KERNEL); if (!host->buffer) { - ret = -ENOMEM; - dev_err(dev, "buffer allocation failed\n"); + ret = dev_err_probe(dev, -ENOMEM, "buffer allocation failed\n"); goto err_dma_alloc; } }