Linux-SPI Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/2] Minor updates for hisi-sfc-v3xx
@ 2021-04-08 11:31 Yicong Yang
  2021-04-08 11:31 ` [PATCH 1/2] spi: hisi-sfc-v3xx: fix potential irq race condition Yicong Yang
  2021-04-08 11:31 ` [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection Yicong Yang
  0 siblings, 2 replies; 7+ messages in thread
From: Yicong Yang @ 2021-04-08 11:31 UTC (permalink / raw)
  To: broonie, linux-spi; +Cc: john.garry, prime.zeng, yangyicong, linuxarm

This series fix a potential interrupt race condition and
cleanup the ACPI protection for the driver.

Yicong Yang (2):
  spi: hisi-sfc-v3xx: fix potential irq race condition
  spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif
    protection

 drivers/spi/spi-hisi-sfc-v3xx.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

-- 
2.8.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] spi: hisi-sfc-v3xx: fix potential irq race condition
  2021-04-08 11:31 [PATCH 0/2] Minor updates for hisi-sfc-v3xx Yicong Yang
@ 2021-04-08 11:31 ` Yicong Yang
  2021-04-08 11:31 ` [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection Yicong Yang
  1 sibling, 0 replies; 7+ messages in thread
From: Yicong Yang @ 2021-04-08 11:31 UTC (permalink / raw)
  To: broonie, linux-spi; +Cc: john.garry, prime.zeng, yangyicong, linuxarm

We mask the irq when the command completion is timeout. This won't
stop the already running irq handler. Use sychronize_irq() after
we mask the irq, to make sure there is no running handler.

Acked-by: John Garry <john.garry@huawei.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
 drivers/spi/spi-hisi-sfc-v3xx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/spi/spi-hisi-sfc-v3xx.c b/drivers/spi/spi-hisi-sfc-v3xx.c
index 385eb7b..0d9e103 100644
--- a/drivers/spi/spi-hisi-sfc-v3xx.c
+++ b/drivers/spi/spi-hisi-sfc-v3xx.c
@@ -342,6 +342,7 @@ static int hisi_sfc_v3xx_generic_exec_op(struct hisi_sfc_v3xx_host *host,
 			ret = 0;
 
 		hisi_sfc_v3xx_disable_int(host);
+		synchronize_irq(host->irq);
 		host->completion = NULL;
 	} else {
 		ret = hisi_sfc_v3xx_wait_cmd_idle(host);
-- 
2.8.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection
  2021-04-08 11:31 [PATCH 0/2] Minor updates for hisi-sfc-v3xx Yicong Yang
  2021-04-08 11:31 ` [PATCH 1/2] spi: hisi-sfc-v3xx: fix potential irq race condition Yicong Yang
@ 2021-04-08 11:31 ` Yicong Yang
  2021-04-08 13:51   ` Mark Brown
  1 sibling, 1 reply; 7+ messages in thread
From: Yicong Yang @ 2021-04-08 11:31 UTC (permalink / raw)
  To: broonie, linux-spi; +Cc: john.garry, prime.zeng, yangyicong, linuxarm

The ACPI_PTR() and related IS_ENABLED(CONFIG_ACPI) protection is
redundant, so drop them.

Acked-by: John Garry <john.garry@huawei.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
 drivers/spi/spi-hisi-sfc-v3xx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-hisi-sfc-v3xx.c b/drivers/spi/spi-hisi-sfc-v3xx.c
index 0d9e103..d3a23b1 100644
--- a/drivers/spi/spi-hisi-sfc-v3xx.c
+++ b/drivers/spi/spi-hisi-sfc-v3xx.c
@@ -5,13 +5,13 @@
 // Copyright (c) 2019 HiSilicon Technologies Co., Ltd.
 // Author: John Garry <john.garry@huawei.com>
 
-#include <linux/acpi.h>
 #include <linux/bitops.h>
 #include <linux/completion.h>
 #include <linux/dmi.h>
 #include <linux/interrupt.h>
 #include <linux/iopoll.h>
 #include <linux/module.h>
+#include <linux/mod_devicetable.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/spi/spi.h>
@@ -508,18 +508,16 @@ static int hisi_sfc_v3xx_probe(struct platform_device *pdev)
 	return ret;
 }
 
-#if IS_ENABLED(CONFIG_ACPI)
 static const struct acpi_device_id hisi_sfc_v3xx_acpi_ids[] = {
 	{"HISI0341", 0},
 	{}
 };
 MODULE_DEVICE_TABLE(acpi, hisi_sfc_v3xx_acpi_ids);
-#endif
 
 static struct platform_driver hisi_sfc_v3xx_spi_driver = {
 	.driver = {
 		.name	= "hisi-sfc-v3xx",
-		.acpi_match_table = ACPI_PTR(hisi_sfc_v3xx_acpi_ids),
+		.acpi_match_table = hisi_sfc_v3xx_acpi_ids,
 	},
 	.probe	= hisi_sfc_v3xx_probe,
 };
-- 
2.8.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection
  2021-04-08 11:31 ` [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection Yicong Yang
@ 2021-04-08 13:51   ` Mark Brown
  2021-04-09  7:17     ` Yicong Yang
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Brown @ 2021-04-08 13:51 UTC (permalink / raw)
  To: Yicong Yang; +Cc: linux-spi, john.garry, prime.zeng, linuxarm


[-- Attachment #1: Type: text/plain, Size: 235 bytes --]

On Thu, Apr 08, 2021 at 07:31:45PM +0800, Yicong Yang wrote:
> The ACPI_PTR() and related IS_ENABLED(CONFIG_ACPI) protection is
> redundant, so drop them.

The driver supports building without ACPI so are you sure these are
redundant?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection
  2021-04-08 13:51   ` Mark Brown
@ 2021-04-09  7:17     ` Yicong Yang
  2021-04-09 14:25       ` John Garry
  0 siblings, 1 reply; 7+ messages in thread
From: Yicong Yang @ 2021-04-09  7:17 UTC (permalink / raw)
  To: Mark Brown; +Cc: linux-spi, john.garry, prime.zeng, linuxarm

On 2021/4/8 21:51, Mark Brown wrote:
> On Thu, Apr 08, 2021 at 07:31:45PM +0800, Yicong Yang wrote:
>> The ACPI_PTR() and related IS_ENABLED(CONFIG_ACPI) protection is
>> redundant, so drop them.
> 
> The driver supports building without ACPI so are you sure these are
> redundant?
> 

yes. we're not using any acpi function in this driver. What ifdef macro
and ACPI_PTR() protects is struct acpi_device_id, which is defined in
mod_devicetable.h rather than acpi.h. It can be built when ACPI=n.

some similiar cleanups can be found:
6c328c347ac3 ("platform/x86: i2c-multi-instantiate: Drop redundant ACPI_PTR()")
846afc1dbcbf ("iio: accel: bma220: Drop ACPI_PTR() and accompanying ifdeffery")
[...]

Thanks,
Yicong


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection
  2021-04-09  7:17     ` Yicong Yang
@ 2021-04-09 14:25       ` John Garry
  2021-04-09 15:11         ` Mark Brown
  0 siblings, 1 reply; 7+ messages in thread
From: John Garry @ 2021-04-09 14:25 UTC (permalink / raw)
  To: Yicong Yang, Mark Brown; +Cc: linux-spi, prime.zeng, linuxarm

On 09/04/2021 08:17, Yicong Yang wrote:
> On 2021/4/8 21:51, Mark Brown wrote:
>> On Thu, Apr 08, 2021 at 07:31:45PM +0800, Yicong Yang wrote:
>>> The ACPI_PTR() and related IS_ENABLED(CONFIG_ACPI) protection is
>>> redundant, so drop them.
>>
>> The driver supports building without ACPI so are you sure these are
>> redundant?
>>
> 
> yes. we're not using any acpi function in this driver. What ifdef macro
> and ACPI_PTR() protects is struct acpi_device_id, which is defined in
> mod_devicetable.h rather than acpi.h. It can be built when ACPI=n.
> 

I asked the exact same thing, so another version with an updated commit 
message with this info could be useful. Mark's call, though.

Thanks,
John

> some similiar cleanups can be found:
> 6c328c347ac3 ("platform/x86: i2c-multi-instantiate: Drop redundant ACPI_PTR()")
> 846afc1dbcbf ("iio: accel: bma220: Drop ACPI_PTR() and accompanying ifdeffery")
> [...]
> 
> Thanks,
> Yicong
> 
> .
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection
  2021-04-09 14:25       ` John Garry
@ 2021-04-09 15:11         ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2021-04-09 15:11 UTC (permalink / raw)
  To: John Garry; +Cc: Yicong Yang, linux-spi, prime.zeng, linuxarm


[-- Attachment #1: Type: text/plain, Size: 476 bytes --]

On Fri, Apr 09, 2021 at 03:25:49PM +0100, John Garry wrote:
> On 09/04/2021 08:17, Yicong Yang wrote:

> > yes. we're not using any acpi function in this driver. What ifdef macro
> > and ACPI_PTR() protects is struct acpi_device_id, which is defined in
> > mod_devicetable.h rather than acpi.h. It can be built when ACPI=n.

> I asked the exact same thing, so another version with an updated commit
> message with this info could be useful. Mark's call, though.

Yes, please.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-08 11:31 [PATCH 0/2] Minor updates for hisi-sfc-v3xx Yicong Yang
2021-04-08 11:31 ` [PATCH 1/2] spi: hisi-sfc-v3xx: fix potential irq race condition Yicong Yang
2021-04-08 11:31 ` [PATCH 2/2] spi: hisi-sfv-v3xx: drop unnecessary ACPI_PTR and related ifendif protection Yicong Yang
2021-04-08 13:51   ` Mark Brown
2021-04-09  7:17     ` Yicong Yang
2021-04-09 14:25       ` John Garry
2021-04-09 15:11         ` Mark Brown

Linux-SPI Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-spi/0 linux-spi/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-spi linux-spi/ https://lore.kernel.org/linux-spi \
		linux-spi@vger.kernel.org
	public-inbox-index linux-spi

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-spi


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git