serial: pic32: simplify clk handling
authorJiri Slaby <jslaby@suse.cz>
Tue, 3 May 2022 06:31:15 +0000 (08:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 May 2022 20:39:17 +0000 (22:39 +0200)
struct pic32_sport::ref_clk is only set, but not read. That means we can
remove it. And when we do so, pic32_enable_clock() and
pic32_disable_clock() are simple wrappers around clk_prepare_enable()
and clk_disable_unprepare() respectively. So we can remove the former
two from the code and replace it by the latter two.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220503063122.20957-5-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/pic32_uart.c

index 1e8ff6004e8ee23179f94376c9ead3fc1a2ac010..42269e96b3f83663f0affe8f9823d25fd3bbe7c6 100644 (file)
@@ -68,7 +68,6 @@ struct pic32_sport {
        bool hw_flow_ctrl;
        int cts_gpio;
 
-       int ref_clk;
        struct clk *clk;
 
        struct device *dev;
@@ -138,23 +137,6 @@ static inline void pic32_wait_deplete_txbuf(struct pic32_sport *sport)
                udelay(1);
 }
 
-static inline int pic32_enable_clock(struct pic32_sport *sport)
-{
-       int ret = clk_prepare_enable(sport->clk);
-
-       if (ret)
-               return ret;
-
-       sport->ref_clk++;
-       return 0;
-}
-
-static inline void pic32_disable_clock(struct pic32_sport *sport)
-{
-       sport->ref_clk--;
-       clk_disable_unprepare(sport->clk);
-}
-
 /* serial core request to check if uart tx buffer is empty */
 static unsigned int pic32_uart_tx_empty(struct uart_port *port)
 {
@@ -491,7 +473,7 @@ static int pic32_uart_startup(struct uart_port *port)
 
        local_irq_save(flags);
 
-       ret = pic32_enable_clock(sport);
+       ret = clk_prepare_enable(sport->clk);
        if (ret) {
                local_irq_restore(flags);
                goto out_done;
@@ -611,7 +593,7 @@ static void pic32_uart_shutdown(struct uart_port *port)
        spin_lock_irqsave(&port->lock, flags);
        pic32_uart_dsbl_and_mask(port);
        spin_unlock_irqrestore(&port->lock, flags);
-       pic32_disable_clock(sport);
+       clk_disable_unprepare(sport->clk);
 
        /* free all 3 interrupts for this UART */
        free_irq(sport->irq_fault, port);
@@ -835,7 +817,7 @@ static int pic32_console_setup(struct console *co, char *options)
                return -ENODEV;
        port = pic32_get_port(sport);
 
-       ret = pic32_enable_clock(sport);
+       ret = clk_prepare_enable(sport->clk);
        if (ret)
                return ret;
 
@@ -965,7 +947,7 @@ static int pic32_uart_probe(struct platform_device *pdev)
                /* The peripheral clock has been enabled by console_setup,
                 * so disable it till the port is used.
                 */
-               pic32_disable_clock(sport);
+               clk_disable_unprepare(sport->clk);
        }
 #endif
 
@@ -986,7 +968,7 @@ static int pic32_uart_remove(struct platform_device *pdev)
        struct pic32_sport *sport = to_pic32_sport(port);
 
        uart_remove_one_port(&pic32_uart_driver, port);
-       pic32_disable_clock(sport);
+       clk_disable_unprepare(sport->clk);
        platform_set_drvdata(pdev, NULL);
        pic32_sports[sport->idx] = NULL;