spi: spi-geni-qcom: Don't initialize completion for normal message
Subsystems (2)
PATCH 1/2 spi: spi-geni-qcom: Don't initialize completion for normal message
We only use this completion when we're doing something that isn't a message transfer. For example, changing CS or aborting/canceling a command. All of those situations properly reinitialize the completion before sending the GENI the special command to change CS or cancel, etc. Given that, let's remove the initialization here.
--- drivers/spi/spi-geni-qcom.c | 1 - 1 file changed, 1 deletion(-)
drivers/spi/spi-geni-qcom.c +0 -1
@@ -233,7 +233,6 @@ static int spi_geni_prepare_message(struct spi_master *spi,struct geni_se *se = &mas->se;geni_se_select_mode (se,GENI_SE_FIFO ); -reinit_completion (&mas->xfer_done); ret =setup_fifo_params (spi_msg->spi, spi);if (ret)dev_err (mas->dev,"Couldn't select mode %d\n" , ret);
Signature · 1 line
Sent by a computer through tubes
PATCH 2/2 spi: spi-geni-qcom: Get rid of forward declaration
We don't need this forward declaration. Move the function to where it needed so we can drop it and shave some lines of code.
--- drivers/spi/spi-geni-qcom.c | 55 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 29 deletions(-)
drivers/spi/spi-geni-qcom.c +26 -29
@@ -89,9 +89,6 @@ struct spi_geni_master {int irq; }; -static void handle_fifo_timeout (struct spi_master *spi, -struct spi_message *msg); - static int get_spi_clk_cfg(unsigned int speed_hz, struct spi_geni_master *mas, unsigned int *clk_idx,
@@ -122,6 +119,32 @@ static int get_spi_clk_cfg(unsigned int speed_hz,return ret; } +static void handle_fifo_timeout (struct spi_master *spi, +struct spi_message *msg) +{ +struct spi_geni_master *mas =spi_master_get_devdata (spi); +unsigned long time_left, flags; +struct geni_se *se = &mas->se; + +spin_lock_irqsave (&mas->lock, flags); +reinit_completion (&mas->xfer_done); + mas->cur_mcmd =CMD_CANCEL ; +geni_se_cancel_m_cmd (se); +writel (0 , se->base +SE_GENI_TX_WATERMARK_REG ); +spin_unlock_irqrestore (&mas->lock, flags); + time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); +if (time_left) +return ; + +spin_lock_irqsave (&mas->lock, flags); +reinit_completion (&mas->xfer_done); +geni_se_abort_m_cmd (se); +spin_unlock_irqrestore (&mas->lock, flags); + time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); +if (!time_left) +dev_err (mas->dev,"Failed to cancel/abort m_cmd\n" ); +} +static void spi_geni_set_cs (struct spi_device *slv,bool set_flag) {struct spi_geni_master *mas =spi_master_get_devdata (slv->master);
@@ -356,32 +379,6 @@ static void setup_fifo_xfer(struct spi_transfer *xfer,writel (mas->tx_wm, se->base +SE_GENI_TX_WATERMARK_REG ); } -static void handle_fifo_timeout (struct spi_master *spi, -struct spi_message *msg) -{ -struct spi_geni_master *mas =spi_master_get_devdata (spi); -unsigned long time_left, flags; -struct geni_se *se = &mas->se; - -spin_lock_irqsave (&mas->lock, flags); -reinit_completion (&mas->xfer_done); - mas->cur_mcmd =CMD_CANCEL ; -geni_se_cancel_m_cmd (se); -writel (0 , se->base +SE_GENI_TX_WATERMARK_REG ); -spin_unlock_irqrestore (&mas->lock, flags); - time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); -if (time_left) -return ; - -spin_lock_irqsave (&mas->lock, flags); -reinit_completion (&mas->xfer_done); -geni_se_abort_m_cmd (se); -spin_unlock_irqrestore (&mas->lock, flags); - time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); -if (!time_left) -dev_err (mas->dev,"Failed to cancel/abort m_cmd\n" ); -} -static int spi_geni_transfer_one (struct spi_master *spi,struct spi_device *slv,struct spi_transfer *xfer)
Signature · 1 line
Sent by a computer through tubes
Mark Brown
maintainerApplied "spi: spi-geni-qcom: Get rid of forward declaration" to the spi tree
The patch
spi: spi-geni-qcom: Get rid of forward declaration
has been applied to the spi tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
de43affed77b1bd9f246235dbd94eb23b07ab657Mon Sep 17 00:00:00 2001
From: Stephen Boyd <[email protected]>
Date: Thu, 10 Jan 2019 13:02:53 -0800
Subject: [PATCH] spi: spi-geni-qcom: Get rid of forward declaration
We don't need this forward declaration. Move the function to where it needed so we can drop it and shave some lines of code.
--- drivers/spi/spi-geni-qcom.c | 55 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 29 deletions(-)
drivers/spi/spi-geni-qcom.c +26 -29
@@ -89,9 +89,6 @@ struct spi_geni_master {int irq; }; -static void handle_fifo_timeout (struct spi_master *spi, -struct spi_message *msg); - static int get_spi_clk_cfg(unsigned int speed_hz, struct spi_geni_master *mas, unsigned int *clk_idx,
@@ -122,6 +119,32 @@ static int get_spi_clk_cfg(unsigned int speed_hz,return ret; } +static void handle_fifo_timeout (struct spi_master *spi, +struct spi_message *msg) +{ +struct spi_geni_master *mas =spi_master_get_devdata (spi); +unsigned long time_left, flags; +struct geni_se *se = &mas->se; + +spin_lock_irqsave (&mas->lock, flags); +reinit_completion (&mas->xfer_done); + mas->cur_mcmd =CMD_CANCEL ; +geni_se_cancel_m_cmd (se); +writel (0 , se->base +SE_GENI_TX_WATERMARK_REG ); +spin_unlock_irqrestore (&mas->lock, flags); + time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); +if (time_left) +return ; + +spin_lock_irqsave (&mas->lock, flags); +reinit_completion (&mas->xfer_done); +geni_se_abort_m_cmd (se); +spin_unlock_irqrestore (&mas->lock, flags); + time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); +if (!time_left) +dev_err (mas->dev,"Failed to cancel/abort m_cmd\n" ); +} +static void spi_geni_set_cs (struct spi_device *slv,bool set_flag) {struct spi_geni_master *mas =spi_master_get_devdata (slv->master);
@@ -356,32 +379,6 @@ static void setup_fifo_xfer(struct spi_transfer *xfer,writel (mas->tx_wm, se->base +SE_GENI_TX_WATERMARK_REG ); } -static void handle_fifo_timeout (struct spi_master *spi, -struct spi_message *msg) -{ -struct spi_geni_master *mas =spi_master_get_devdata (spi); -unsigned long time_left, flags; -struct geni_se *se = &mas->se; - -spin_lock_irqsave (&mas->lock, flags); -reinit_completion (&mas->xfer_done); - mas->cur_mcmd =CMD_CANCEL ; -geni_se_cancel_m_cmd (se); -writel (0 , se->base +SE_GENI_TX_WATERMARK_REG ); -spin_unlock_irqrestore (&mas->lock, flags); - time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); -if (time_left) -return ; - -spin_lock_irqsave (&mas->lock, flags); -reinit_completion (&mas->xfer_done); -geni_se_abort_m_cmd (se); -spin_unlock_irqrestore (&mas->lock, flags); - time_left =wait_for_completion_timeout (&mas->xfer_done,HZ ); -if (!time_left) -dev_err (mas->dev,"Failed to cancel/abort m_cmd\n" ); -} -static int spi_geni_transfer_one (struct spi_master *spi,struct spi_device *slv,struct spi_transfer *xfer)
Signature · 1 line
2.20.1
Mark Brown
maintainerApplied "spi: spi-geni-qcom: Don't initialize completion for normal message" to the spi tree
In reply to Stephen BoydThe patch
spi: spi-geni-qcom: Don't initialize completion for normal message
has been applied to the spi tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
0357a3daada3236da59be5d692f02ae07e2a145eMon Sep 17 00:00:00 2001
From: Stephen Boyd <[email protected]>
Date: Thu, 10 Jan 2019 13:02:52 -0800
Subject: [PATCH] spi: spi-geni-qcom: Don't initialize completion for normal
message
We only use this completion when we're doing something that isn't a message transfer. For example, changing CS or aborting/canceling a command. All of those situations properly reinitialize the completion before sending the GENI the special command to change CS or cancel, etc. Given that, let's remove the initialization here.
--- drivers/spi/spi-geni-qcom.c | 1 - 1 file changed, 1 deletion(-)
drivers/spi/spi-geni-qcom.c +0 -1
@@ -233,7 +233,6 @@ static int spi_geni_prepare_message(struct spi_master *spi,struct geni_se *se = &mas->se;geni_se_select_mode (se,GENI_SE_FIFO ); -reinit_completion (&mas->xfer_done); ret =setup_fifo_params (spi_msg->spi, spi);if (ret)dev_err (mas->dev,"Couldn't select mode %d\n" , ret);
Signature · 1 line
2.20.1