diff mbox series

[v2,1/7] soc: qcom: geni-se: Add GP_LENGTH/IRQ_EN_SET/IRQ_EN_CLEAR registers

Message ID 20240530154553.v2.1.Ife7ced506aef1be3158712aa3ff34a006b973559@changeid
State Superseded
Headers show
Series serial: qcom-geni: Overhaul TX handling to fix crashes/hangs | expand

Commit Message

Doug Anderson May 30, 2024, 10:45 p.m. UTC
For UART devices the M_GP_LENGTH is the TX word count. For other
devices this is the transaction word count.

For UART devices the S_GP_LENGTH is the RX word count.

The IRQ_EN set/clear registers allow you to set or clear bits in the
IRQ_EN register without needing a read-modify-write.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---
Since these new definitions are used in the future UART patches the
hope is that they could be acked by Qualcomm folks and then go through
the same tree as the UART patches that need them.

Changes in v2:
- New

 include/linux/soc/qcom/geni-se.h | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Bjorn Andersson June 2, 2024, 4:23 a.m. UTC | #1
On Thu, May 30, 2024 at 03:45:53PM GMT, Douglas Anderson wrote:
> For UART devices the M_GP_LENGTH is the TX word count. For other
> devices this is the transaction word count.
> 
> For UART devices the S_GP_LENGTH is the RX word count.
> 
> The IRQ_EN set/clear registers allow you to set or clear bits in the
> IRQ_EN register without needing a read-modify-write.
> 

Acked-by: Bjorn Andersson <andersson@kernel.org>

Regards,
Bjorn

> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> ---
> Since these new definitions are used in the future UART patches the
> hope is that they could be acked by Qualcomm folks and then go through
> the same tree as the UART patches that need them.
> 
> Changes in v2:
> - New
> 
>  include/linux/soc/qcom/geni-se.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/include/linux/soc/qcom/geni-se.h b/include/linux/soc/qcom/geni-se.h
> index 0f038a1a0330..8d07c442029b 100644
> --- a/include/linux/soc/qcom/geni-se.h
> +++ b/include/linux/soc/qcom/geni-se.h
> @@ -88,11 +88,15 @@ struct geni_se {
>  #define SE_GENI_M_IRQ_STATUS		0x610
>  #define SE_GENI_M_IRQ_EN		0x614
>  #define SE_GENI_M_IRQ_CLEAR		0x618
> +#define SE_GENI_M_IRQ_EN_SET		0x61c
> +#define SE_GENI_M_IRQ_EN_CLEAR		0x620
>  #define SE_GENI_S_CMD0			0x630
>  #define SE_GENI_S_CMD_CTRL_REG		0x634
>  #define SE_GENI_S_IRQ_STATUS		0x640
>  #define SE_GENI_S_IRQ_EN		0x644
>  #define SE_GENI_S_IRQ_CLEAR		0x648
> +#define SE_GENI_S_IRQ_EN_SET		0x64c
> +#define SE_GENI_S_IRQ_EN_CLEAR		0x650
>  #define SE_GENI_TX_FIFOn		0x700
>  #define SE_GENI_RX_FIFOn		0x780
>  #define SE_GENI_TX_FIFO_STATUS		0x800
> @@ -101,6 +105,8 @@ struct geni_se {
>  #define SE_GENI_RX_WATERMARK_REG	0x810
>  #define SE_GENI_RX_RFR_WATERMARK_REG	0x814
>  #define SE_GENI_IOS			0x908
> +#define SE_GENI_M_GP_LENGTH		0x910
> +#define SE_GENI_S_GP_LENGTH		0x914
>  #define SE_DMA_TX_IRQ_STAT		0xc40
>  #define SE_DMA_TX_IRQ_CLR		0xc44
>  #define SE_DMA_TX_FSM_RST		0xc58
> -- 
> 2.45.1.288.g0e0cd299f1-goog
>
diff mbox series

Patch

diff --git a/include/linux/soc/qcom/geni-se.h b/include/linux/soc/qcom/geni-se.h
index 0f038a1a0330..8d07c442029b 100644
--- a/include/linux/soc/qcom/geni-se.h
+++ b/include/linux/soc/qcom/geni-se.h
@@ -88,11 +88,15 @@  struct geni_se {
 #define SE_GENI_M_IRQ_STATUS		0x610
 #define SE_GENI_M_IRQ_EN		0x614
 #define SE_GENI_M_IRQ_CLEAR		0x618
+#define SE_GENI_M_IRQ_EN_SET		0x61c
+#define SE_GENI_M_IRQ_EN_CLEAR		0x620
 #define SE_GENI_S_CMD0			0x630
 #define SE_GENI_S_CMD_CTRL_REG		0x634
 #define SE_GENI_S_IRQ_STATUS		0x640
 #define SE_GENI_S_IRQ_EN		0x644
 #define SE_GENI_S_IRQ_CLEAR		0x648
+#define SE_GENI_S_IRQ_EN_SET		0x64c
+#define SE_GENI_S_IRQ_EN_CLEAR		0x650
 #define SE_GENI_TX_FIFOn		0x700
 #define SE_GENI_RX_FIFOn		0x780
 #define SE_GENI_TX_FIFO_STATUS		0x800
@@ -101,6 +105,8 @@  struct geni_se {
 #define SE_GENI_RX_WATERMARK_REG	0x810
 #define SE_GENI_RX_RFR_WATERMARK_REG	0x814
 #define SE_GENI_IOS			0x908
+#define SE_GENI_M_GP_LENGTH		0x910
+#define SE_GENI_S_GP_LENGTH		0x914
 #define SE_DMA_TX_IRQ_STAT		0xc40
 #define SE_DMA_TX_IRQ_CLR		0xc44
 #define SE_DMA_TX_FSM_RST		0xc58