lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0242/1017] clocksource/drivers/exynos_mct: Refactor resources allocation
    Date
    From: Marek Szyprowski <m.szyprowski@samsung.com>

    [ Upstream commit 7cd925a8823d16de5614d3f0aabea9948747accd ]

    Move interrupts allocation from exynos4_timer_resources() into separate
    function together with the interrupt number parsing code from
    mct_init_dt(), so the code for managing interrupts is kept together.
    While touching exynos4_timer_resources() function, move of_iomap() to it.
    No functional changes.

    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Tested-by: Chanwoo Choi <cw00.choi@samsung.com>
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
    Link: https://lore.kernel.org/r/20211101193531.15078-2-semen.protsenko@linaro.org
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/clocksource/exynos_mct.c | 50 +++++++++++++++++++-------------
    1 file changed, 30 insertions(+), 20 deletions(-)

    diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
    index 5e3e96d3d1b9..857cf12ebe57 100644
    --- a/drivers/clocksource/exynos_mct.c
    +++ b/drivers/clocksource/exynos_mct.c
    @@ -504,11 +504,14 @@ static int exynos4_mct_dying_cpu(unsigned int cpu)
    return 0;
    }

    -static int __init exynos4_timer_resources(struct device_node *np, void __iomem *base)
    +static int __init exynos4_timer_resources(struct device_node *np)
    {
    - int err, cpu;
    struct clk *mct_clk, *tick_clk;

    + reg_base = of_iomap(np, 0);
    + if (!reg_base)
    + panic("%s: unable to ioremap mct address space\n", __func__);
    +
    tick_clk = of_clk_get_by_name(np, "fin_pll");
    if (IS_ERR(tick_clk))
    panic("%s: unable to determine tick clock rate\n", __func__);
    @@ -519,9 +522,27 @@ static int __init exynos4_timer_resources(struct device_node *np, void __iomem *
    panic("%s: unable to retrieve mct clock instance\n", __func__);
    clk_prepare_enable(mct_clk);

    - reg_base = base;
    - if (!reg_base)
    - panic("%s: unable to ioremap mct address space\n", __func__);
    + return 0;
    +}
    +
    +static int __init exynos4_timer_interrupts(struct device_node *np,
    + unsigned int int_type)
    +{
    + int nr_irqs, i, err, cpu;
    +
    + mct_int_type = int_type;
    +
    + /* This driver uses only one global timer interrupt */
    + mct_irqs[MCT_G0_IRQ] = irq_of_parse_and_map(np, MCT_G0_IRQ);
    +
    + /*
    + * Find out the number of local irqs specified. The local
    + * timer irqs are specified after the four global timer
    + * irqs are specified.
    + */
    + nr_irqs = of_irq_count(np);
    + for (i = MCT_L0_IRQ; i < nr_irqs; i++)
    + mct_irqs[i] = irq_of_parse_and_map(np, i);

    if (mct_int_type == MCT_INT_PPI) {

    @@ -581,24 +602,13 @@ static int __init exynos4_timer_resources(struct device_node *np, void __iomem *

    static int __init mct_init_dt(struct device_node *np, unsigned int int_type)
    {
    - u32 nr_irqs, i;
    int ret;

    - mct_int_type = int_type;
    -
    - /* This driver uses only one global timer interrupt */
    - mct_irqs[MCT_G0_IRQ] = irq_of_parse_and_map(np, MCT_G0_IRQ);
    -
    - /*
    - * Find out the number of local irqs specified. The local
    - * timer irqs are specified after the four global timer
    - * irqs are specified.
    - */
    - nr_irqs = of_irq_count(np);
    - for (i = MCT_L0_IRQ; i < nr_irqs; i++)
    - mct_irqs[i] = irq_of_parse_and_map(np, i);
    + ret = exynos4_timer_resources(np);
    + if (ret)
    + return ret;

    - ret = exynos4_timer_resources(np, of_iomap(np, 0));
    + ret = exynos4_timer_interrupts(np, int_type);
    if (ret)
    return ret;

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-05 15:03    [W:3.962 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site