Loading drivers/platform/msm/qcom-geni-se.c +0 −3 Original line number Diff line number Diff line Loading @@ -119,9 +119,6 @@ struct geni_se_device { bool vote_for_bw; }; /* Offset of QUPV3 Hardware Version Register */ #define QUPV3_HW_VER (0x4) #define HW_VER_MAJOR_MASK GENMASK(31, 28) #define HW_VER_MAJOR_SHFT 28 #define HW_VER_MINOR_MASK GENMASK(27, 16) Loading drivers/tty/serial/msm_geni_serial.c +10 −15 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ #define DMA_RX_BUF_SIZE (2048) #define UART_CONSOLE_RX_WM (2) #define QUP_VER (0x20050000) struct msm_geni_serial_ver_info { int hw_major_ver; Loading Loading @@ -203,6 +204,11 @@ static atomic_t uart_line_id = ATOMIC_INIT(0); static struct msm_geni_serial_port msm_geni_console_port; static struct msm_geni_serial_port msm_geni_serial_ports[GENI_UART_NR_PORTS]; static int hw_version_info(void __iomem *base_addr) { return geni_read_reg(base_addr, QUPV3_HW_VER); } static void msm_geni_serial_config_port(struct uart_port *uport, int cfg_flags) { if (cfg_flags & UART_CONFIG_TYPE) Loading Loading @@ -1821,7 +1827,6 @@ static void geni_serial_write_term_regs(struct uart_port *uport, u32 loopback, SE_UART_TX_STOP_BIT_LEN); geni_write_reg_nolog(s_clk_cfg, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(s_clk_cfg, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); } Loading Loading @@ -1865,10 +1870,6 @@ static void msm_geni_serial_set_termios(struct uart_port *uport, unsigned long clk_rate; unsigned long flags; geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); if (!uart_console(uport)) { int ret = msm_geni_serial_power_on(uport); Loading @@ -1893,6 +1894,8 @@ static void msm_geni_serial_set_termios(struct uart_port *uport, if (clk_div <= 0) goto exit_set_termios; if (hw_version_info(uport->membase) >= QUP_VER) clk_div *= 2; uport->uartclk = clk_rate; clk_set_rate(port->serial_rsc.se_clk, clk_rate); ser_clk_cfg |= SER_CLK_EN; Loading Loading @@ -2186,6 +2189,8 @@ msm_geni_serial_earlycon_setup(struct earlycon_device *dev, goto exit_geni_serial_earlyconsetup; } if (hw_version_info(uport->membase) >= QUP_VER) clk_div *= 2; s_clk_cfg |= SER_CLK_EN; s_clk_cfg |= (clk_div << CLK_DIV_SHFT); Loading @@ -2196,10 +2201,6 @@ msm_geni_serial_earlycon_setup(struct earlycon_device *dev, msm_geni_serial_poll_cancel_tx(uport); msm_geni_serial_abort_rx(uport); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); se_get_packing_config(8, 1, false, &cfg0, &cfg1); geni_se_init(uport->membase, (DEF_FIFO_DEPTH_WORDS >> 1), (DEF_FIFO_DEPTH_WORDS - 2)); Loading Loading @@ -2620,12 +2621,6 @@ static int msm_geni_serial_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); } se_geni_clks_on(&dev_port->serial_rsc); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); se_geni_clks_off(&dev_port->serial_rsc); dev_info(&pdev->dev, "Serial port%d added.FifoSize %d is_console%d\n", line, uport->fifosize, is_console); device_create_file(uport->dev, &dev_attr_loopback); Loading include/linux/qcom-geni-se.h +1 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ struct se_geni_rsc { #define SE_HW_PARAM_1 (0xE28) #define SE_DMA_GENERAL_CFG (0xE30) #define SE_DMA_DEBUG_REG0 (0xE40) #define QUPV3_HW_VER (0x4) /* GENI_OUTPUT_CTRL fields */ #define DEFAULT_IO_OUTPUT_CTRL_MSK (GENMASK(6, 0)) Loading Loading
drivers/platform/msm/qcom-geni-se.c +0 −3 Original line number Diff line number Diff line Loading @@ -119,9 +119,6 @@ struct geni_se_device { bool vote_for_bw; }; /* Offset of QUPV3 Hardware Version Register */ #define QUPV3_HW_VER (0x4) #define HW_VER_MAJOR_MASK GENMASK(31, 28) #define HW_VER_MAJOR_SHFT 28 #define HW_VER_MINOR_MASK GENMASK(27, 16) Loading
drivers/tty/serial/msm_geni_serial.c +10 −15 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ #define DMA_RX_BUF_SIZE (2048) #define UART_CONSOLE_RX_WM (2) #define QUP_VER (0x20050000) struct msm_geni_serial_ver_info { int hw_major_ver; Loading Loading @@ -203,6 +204,11 @@ static atomic_t uart_line_id = ATOMIC_INIT(0); static struct msm_geni_serial_port msm_geni_console_port; static struct msm_geni_serial_port msm_geni_serial_ports[GENI_UART_NR_PORTS]; static int hw_version_info(void __iomem *base_addr) { return geni_read_reg(base_addr, QUPV3_HW_VER); } static void msm_geni_serial_config_port(struct uart_port *uport, int cfg_flags) { if (cfg_flags & UART_CONFIG_TYPE) Loading Loading @@ -1821,7 +1827,6 @@ static void geni_serial_write_term_regs(struct uart_port *uport, u32 loopback, SE_UART_TX_STOP_BIT_LEN); geni_write_reg_nolog(s_clk_cfg, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(s_clk_cfg, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); } Loading Loading @@ -1865,10 +1870,6 @@ static void msm_geni_serial_set_termios(struct uart_port *uport, unsigned long clk_rate; unsigned long flags; geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); if (!uart_console(uport)) { int ret = msm_geni_serial_power_on(uport); Loading @@ -1893,6 +1894,8 @@ static void msm_geni_serial_set_termios(struct uart_port *uport, if (clk_div <= 0) goto exit_set_termios; if (hw_version_info(uport->membase) >= QUP_VER) clk_div *= 2; uport->uartclk = clk_rate; clk_set_rate(port->serial_rsc.se_clk, clk_rate); ser_clk_cfg |= SER_CLK_EN; Loading Loading @@ -2186,6 +2189,8 @@ msm_geni_serial_earlycon_setup(struct earlycon_device *dev, goto exit_geni_serial_earlyconsetup; } if (hw_version_info(uport->membase) >= QUP_VER) clk_div *= 2; s_clk_cfg |= SER_CLK_EN; s_clk_cfg |= (clk_div << CLK_DIV_SHFT); Loading @@ -2196,10 +2201,6 @@ msm_geni_serial_earlycon_setup(struct earlycon_device *dev, msm_geni_serial_poll_cancel_tx(uport); msm_geni_serial_abort_rx(uport); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); se_get_packing_config(8, 1, false, &cfg0, &cfg1); geni_se_init(uport->membase, (DEF_FIFO_DEPTH_WORDS >> 1), (DEF_FIFO_DEPTH_WORDS - 2)); Loading Loading @@ -2620,12 +2621,6 @@ static int msm_geni_serial_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); } se_geni_clks_on(&dev_port->serial_rsc); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_M_CLK_CFG); geni_write_reg_nolog(0x21, uport->membase, GENI_SER_S_CLK_CFG); geni_read_reg_nolog(uport->membase, GENI_SER_M_CLK_CFG); se_geni_clks_off(&dev_port->serial_rsc); dev_info(&pdev->dev, "Serial port%d added.FifoSize %d is_console%d\n", line, uport->fifosize, is_console); device_create_file(uport->dev, &dev_attr_loopback); Loading
include/linux/qcom-geni-se.h +1 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ struct se_geni_rsc { #define SE_HW_PARAM_1 (0xE28) #define SE_DMA_GENERAL_CFG (0xE30) #define SE_DMA_DEBUG_REG0 (0xE40) #define QUPV3_HW_VER (0x4) /* GENI_OUTPUT_CTRL fields */ #define DEFAULT_IO_OUTPUT_CTRL_MSK (GENMASK(6, 0)) Loading