Patch "clk: qcom: reset: Allow specifying custom reset delay" has been added to the 5.15-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

    clk: qcom: reset: Allow specifying custom reset delay

to the 5.15-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:
     clk-qcom-reset-allow-specifying-custom-reset-delay.patch
and it can be found in the queue-5.15 subdirectory.

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



commit 024faebe16f3c67ca7fc893a5f690df87f5542df
Author: Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx>
Date:   Wed Jul 6 15:41:29 2022 +0200

    clk: qcom: reset: Allow specifying custom reset delay
    
    [ Upstream commit 2cb8a39b6781ea23accd1fa93b3ad000d0948aec ]
    
    The amount of time required between asserting and deasserting the reset
    signal can vary depending on the involved hardware component. Sometimes
    1 us might not be enough and a larger delay is necessary to conform to
    the specifications.
    
    Usually this is worked around in the consuming drivers, by replacing
    reset_control_reset() with a sequence of reset_control_assert(), waiting
    for a custom delay, followed by reset_control_deassert().
    
    However, in some cases the driver making use of the reset is generic and
    can be used with different reset controllers. In this case the reset
    time requirement is better handled directly by the reset controller
    driver.
    
    Make this possible by adding an "udelay" field to the qcom_reset_map
    that allows setting a different reset delay (in microseconds).
    
    Signed-off-by: Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx>
    Signed-off-by: Bjorn Andersson <andersson@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220706134132.3623415-4-stephan.gerhold@xxxxxxxxxxxxxxx
    Stable-dep-of: 349b5bed539b ("clk: qcom: ipq6018: fix networking resets")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c
index 819d194be8f7b..2a16adb572d2b 100644
--- a/drivers/clk/qcom/reset.c
+++ b/drivers/clk/qcom/reset.c
@@ -13,8 +13,10 @@
 
 static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id)
 {
+	struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev);
+
 	rcdev->ops->assert(rcdev, id);
-	udelay(1);
+	udelay(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */
 	rcdev->ops->deassert(rcdev, id);
 	return 0;
 }
diff --git a/drivers/clk/qcom/reset.h b/drivers/clk/qcom/reset.h
index 2a08b5e282c77..b8c113582072b 100644
--- a/drivers/clk/qcom/reset.h
+++ b/drivers/clk/qcom/reset.h
@@ -11,6 +11,7 @@
 struct qcom_reset_map {
 	unsigned int reg;
 	u8 bit;
+	u8 udelay;
 };
 
 struct regmap;



[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