Patch "dmaengine: mxs: use platform_driver_register" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    dmaengine: mxs: use platform_driver_register

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     dmaengine-mxs-use-platform_driver_register.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4a0f6b816ed3c2c75d8e78027b0fc26f93ebae8a
Author: Dario Binacchi <dario.binacchi@xxxxxxxxxxxxxxxxxxxx>
Date:   Wed Sep 21 19:05:56 2022 +0200

    dmaengine: mxs: use platform_driver_register
    
    [ Upstream commit 26696d4657167112a1079f86cba1739765c1360e ]
    
    Driver registration fails on SOC imx8mn as its supplier, the clock
    control module, is probed later than subsys initcall level. This driver
    uses platform_driver_probe which is not compatible with deferred probing
    and won't be probed again later if probe function fails due to clock not
    being available at that time.
    
    This patch replaces the use of platform_driver_probe with
    platform_driver_register which will allow probing the driver later again
    when the clock control module will be available.
    
    The __init annotation has been dropped because it is not compatible with
    deferred probing. The code is not executed once and its memory cannot be
    freed.
    
    Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
    Co-developed-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Dario Binacchi <dario.binacchi@xxxxxxxxxxxxxxxxxxxx>
    Acked-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
    Cc: stable@xxxxxxxxxxxxxxx
    
    Link: https://lore.kernel.org/r/20220921170556.1055962-1-dario.binacchi@xxxxxxxxxxxxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 994fc4d2aca4..dc147cc2436e 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -670,7 +670,7 @@ static enum dma_status mxs_dma_tx_status(struct dma_chan *chan,
 	return mxs_chan->status;
 }
 
-static int __init mxs_dma_init(struct mxs_dma_engine *mxs_dma)
+static int mxs_dma_init(struct mxs_dma_engine *mxs_dma)
 {
 	int ret;
 
@@ -741,7 +741,7 @@ static struct dma_chan *mxs_dma_xlate(struct of_phandle_args *dma_spec,
 				     ofdma->of_node);
 }
 
-static int __init mxs_dma_probe(struct platform_device *pdev)
+static int mxs_dma_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
 	const struct mxs_dma_type *dma_type;
@@ -839,10 +839,7 @@ static struct platform_driver mxs_dma_driver = {
 		.name	= "mxs-dma",
 		.of_match_table = mxs_dma_dt_ids,
 	},
+	.probe = mxs_dma_probe,
 };
 
-static int __init mxs_dma_module_init(void)
-{
-	return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
-}
-subsys_initcall(mxs_dma_module_init);
+builtin_platform_driver(mxs_dma_driver);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux