2022-04-13 07:02:39

by Li-hao Kuo

[permalink] [raw]
Subject: [PATCH] spi: remove spin_lock_irq in the irq procress

- remove spin_lock_irq and spin_unlock_irq in the irq funciton

Signed-off-by: Li-hao Kuo <[email protected]>
---
drivers/spi/spi-sunplus-sp7021.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c
index f989f7b..120623c 100644
--- a/drivers/spi/spi-sunplus-sp7021.c
+++ b/drivers/spi/spi-sunplus-sp7021.c
@@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
if (tx_len == 0 && total_len == 0)
return IRQ_NONE;

- spin_lock_irq(&pspim->lock);
-
rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status);
if (fd_status & SP7021_RX_FULL_FLAG)
rx_cnt = pspim->data_unit;
@@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)

if (isrdone)
complete(&pspim->isr_done);
- spin_unlock_irq(&pspim->lock);
+
return IRQ_HANDLED;
}

--
2.7.4


2022-04-13 21:06:32

by Tom Rix

[permalink] [raw]
Subject: Re: [PATCH] spi: remove spin_lock_irq in the irq procress


On 4/12/22 6:38 PM, Li-hao Kuo wrote:
> - remove spin_lock_irq and spin_unlock_irq in the irq funciton

function

I was expecting a statement on why is the lock is not needed.

Could you add one ?

Tom

>
> Signed-off-by: Li-hao Kuo <[email protected]>
> ---
> drivers/spi/spi-sunplus-sp7021.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c
> index f989f7b..120623c 100644
> --- a/drivers/spi/spi-sunplus-sp7021.c
> +++ b/drivers/spi/spi-sunplus-sp7021.c
> @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
> if (tx_len == 0 && total_len == 0)
> return IRQ_NONE;
>
> - spin_lock_irq(&pspim->lock);
> -
> rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status);
> if (fd_status & SP7021_RX_FULL_FLAG)
> rx_cnt = pspim->data_unit;
> @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
>
> if (isrdone)
> complete(&pspim->isr_done);
> - spin_unlock_irq(&pspim->lock);
> +
> return IRQ_HANDLED;
> }
>

2022-04-14 14:11:35

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] spi: remove spin_lock_irq in the irq procress

On Wed, Apr 13, 2022 at 09:38:00AM +0800, Li-hao Kuo wrote:
> - remove spin_lock_irq and spin_unlock_irq in the irq funciton

It looks like this is the only use of the lock so the variable can be
removed as well?


Attachments:
(No filename) (218.00 B)
signature.asc (499.00 B)
Download all attachments

2022-04-15 21:54:39

by Li-hao Kuo

[permalink] [raw]
Subject: Re: [PATCH] spi: remove spin_lock_irq in the irq procress

Hi Mr.Mark :

I will remove the variable "psim->lock" in the next patch

Li-hao Kuo

Mark Brown <[email protected]> 於 2022年4月13日 週三 下午7:32寫道:
>
> On Wed, Apr 13, 2022 at 09:38:00AM +0800, Li-hao Kuo wrote:
> > - remove spin_lock_irq and spin_unlock_irq in the irq funciton
>
> It looks like this is the only use of the lock so the variable can be
> removed as well?

2022-04-16 00:14:15

by Li-hao Kuo

[permalink] [raw]
Subject: Re: [PATCH] spi: remove spin_lock_irq in the irq procress

Hi Tom :

This SPI driver only handles one transfer at a time.
That's why locks are not needed.


Li-hao Kuo

Tom Rix <[email protected]> 於 2022年4月13日 週三 下午7:45寫道:
>
>
> On 4/12/22 6:38 PM, Li-hao Kuo wrote:
> > - remove spin_lock_irq and spin_unlock_irq in the irq funciton
>
> function
>
> I was expecting a statement on why is the lock is not needed.
>
> Could you add one ?
>
> Tom
>
> >
> > Signed-off-by: Li-hao Kuo <[email protected]>
> > ---
> > drivers/spi/spi-sunplus-sp7021.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c
> > index f989f7b..120623c 100644
> > --- a/drivers/spi/spi-sunplus-sp7021.c
> > +++ b/drivers/spi/spi-sunplus-sp7021.c
> > @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
> > if (tx_len == 0 && total_len == 0)
> > return IRQ_NONE;
> >
> > - spin_lock_irq(&pspim->lock);
> > -
> > rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status);
> > if (fd_status & SP7021_RX_FULL_FLAG)
> > rx_cnt = pspim->data_unit;
> > @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
> >
> > if (isrdone)
> > complete(&pspim->isr_done);
> > - spin_unlock_irq(&pspim->lock);
> > +
> > return IRQ_HANDLED;
> > }
> >
>

2022-04-17 18:48:18

by Tom Rix

[permalink] [raw]
Subject: Re: [PATCH] spi: remove spin_lock_irq in the irq procress


On 4/14/22 6:16 AM, 郭力豪 wrote:
> Hi Tom :
>
> This SPI driver only handles one transfer at a time.
> That's why locks are not needed.

Please add this statement to the commit log.

In a commit log, not only do I look for what was changed but also why
the change was made.

Tom

>
>
> Li-hao Kuo
>
> Tom Rix <[email protected]> 於 2022年4月13日 週三 下午7:45寫道:
>>
>> On 4/12/22 6:38 PM, Li-hao Kuo wrote:
>>> - remove spin_lock_irq and spin_unlock_irq in the irq funciton
>> function
>>
>> I was expecting a statement on why is the lock is not needed.
>>
>> Could you add one ?
>>
>> Tom
>>
>>> Signed-off-by: Li-hao Kuo <[email protected]>
>>> ---
>>> drivers/spi/spi-sunplus-sp7021.c | 4 +---
>>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c
>>> index f989f7b..120623c 100644
>>> --- a/drivers/spi/spi-sunplus-sp7021.c
>>> +++ b/drivers/spi/spi-sunplus-sp7021.c
>>> @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
>>> if (tx_len == 0 && total_len == 0)
>>> return IRQ_NONE;
>>>
>>> - spin_lock_irq(&pspim->lock);
>>> -
>>> rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status);
>>> if (fd_status & SP7021_RX_FULL_FLAG)
>>> rx_cnt = pspim->data_unit;
>>> @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev)
>>>
>>> if (isrdone)
>>> complete(&pspim->isr_done);
>>> - spin_unlock_irq(&pspim->lock);
>>> +
>>> return IRQ_HANDLED;
>>> }
>>>