All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sh: avoid using IRQ0 on SH3/4
@ 2022-02-11 20:15 Sergey Shtylyov
  2022-02-11 20:28 ` Sergey Shtylyov
  2022-03-02 10:10 ` John Paul Adrian Glaubitz
  0 siblings, 2 replies; 10+ messages in thread
From: Sergey Shtylyov @ 2022-02-11 20:15 UTC (permalink / raw)
  To: Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
that code to start the IRQ #s from 16 instead.

[1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
The patch is against Linus Torvalds' 'linux.git' repo.

 arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
 include/linux/sh_intc.h        |    6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

Index: linux/arch/sh/kernel/cpu/sh3/entry.S
===================================================================
--- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
+++ linux/arch/sh/kernel/cpu/sh3/entry.S
@@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
 	mov	r4, r0		! save vector->jmp table offset for later
 
 	shlr2	r4		! vector to IRQ# conversion
-	add	#-0x10, r4
 
-	cmp/pz	r4		! is it a valid IRQ?
+	mov	#0x10, r5
+	cmp/ge	r5, r4		! is it a valid IRQ?
 	bt	10f
 
 	/*
Index: linux/include/linux/sh_intc.h
===================================================================
--- linux.orig/include/linux/sh_intc.h
+++ linux/include/linux/sh_intc.h
@@ -13,9 +13,9 @@
 /*
  * Convert back and forth between INTEVT and IRQ values.
  */
-#ifdef CONFIG_CPU_HAS_INTEVT
-#define evt2irq(evt)		(((evt) >> 5) - 16)
-#define irq2evt(irq)		(((irq) + 16) << 5)
+#ifdef CONFIG_CPU_HAS_INTEVT	/* Avoid IRQ0 (invalid for platform devices) */
+#define evt2irq(evt)		((evt) >> 5)
+#define irq2evt(irq)		((irq) << 5)
 #else
 #define evt2irq(evt)		(evt)
 #define irq2evt(irq)		(irq)

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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:15 [PATCH] sh: avoid using IRQ0 on SH3/4 Sergey Shtylyov
@ 2022-02-11 20:28 ` Sergey Shtylyov
  2022-02-11 20:30   ` John Paul Adrian Glaubitz
  2022-03-02 10:10 ` John Paul Adrian Glaubitz
  1 sibling, 1 reply; 10+ messages in thread
From: Sergey Shtylyov @ 2022-02-11 20:28 UTC (permalink / raw)
  To: Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

On 2/11/22 11:15 PM, Sergey Shtylyov wrote:

> Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
> and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
> that code to start the IRQ #s from 16 instead.
> 
> [1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/
> 
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> 
> ---
> The patch is against Linus Torvalds' 'linux.git' repo.
> 
>  arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
>  include/linux/sh_intc.h        |    6 +++---
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> Index: linux/arch/sh/kernel/cpu/sh3/entry.S
> ===================================================================
> --- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
> +++ linux/arch/sh/kernel/cpu/sh3/entry.S
> @@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
>  	mov	r4, r0		! save vector->jmp table offset for later
>  
>  	shlr2	r4		! vector to IRQ# conversion
> -	add	#-0x10, r4
>  
> -	cmp/pz	r4		! is it a valid IRQ?
> +	mov	#0x10, r5
> +	cmp/ge	r5, r4		! is it a valid IRQ?

   Maybe I should've used cmp/hs... my 1st try at SH assembly! :-)

[...]

MBR, Sergey

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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:28 ` Sergey Shtylyov
@ 2022-02-11 20:30   ` John Paul Adrian Glaubitz
  2022-02-11 20:46     ` Sergey Shtylyov
  0 siblings, 1 reply; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2022-02-11 20:30 UTC (permalink / raw)
  To: Sergey Shtylyov, Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

Hi Sergey!

On 2/11/22 21:28, Sergey Shtylyov wrote:
> On 2/11/22 11:15 PM, Sergey Shtylyov wrote:
> 
>> Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
>> and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
>> that code to start the IRQ #s from 16 instead.
>>
>> [1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/
>>
>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
>>
>> ---
>> The patch is against Linus Torvalds' 'linux.git' repo.
>>
>>  arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
>>  include/linux/sh_intc.h        |    6 +++---
>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> Index: linux/arch/sh/kernel/cpu/sh3/entry.S
>> ===================================================================
>> --- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
>> +++ linux/arch/sh/kernel/cpu/sh3/entry.S
>> @@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
>>  	mov	r4, r0		! save vector->jmp table offset for later
>>  
>>  	shlr2	r4		! vector to IRQ# conversion
>> -	add	#-0x10, r4
>>  
>> -	cmp/pz	r4		! is it a valid IRQ?
>> +	mov	#0x10, r5
>> +	cmp/ge	r5, r4		! is it a valid IRQ?
> 
>    Maybe I should've used cmp/hs... my 1st try at SH assembly! :-)

I can test your revised patch next week on my SH7785LCR.

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:30   ` John Paul Adrian Glaubitz
@ 2022-02-11 20:46     ` Sergey Shtylyov
  2022-02-11 21:14       ` John Paul Adrian Glaubitz
  2022-02-25 19:28       ` Sergey Shtylyov
  0 siblings, 2 replies; 10+ messages in thread
From: Sergey Shtylyov @ 2022-02-11 20:46 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz, Rich Felker, linux-sh, linux-kernel
  Cc: Yoshinori Sato

On 2/11/22 11:30 PM, John Paul Adrian Glaubitz wrote:

[...]
>>> Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
>>> and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
>>> that code to start the IRQ #s from 16 instead.
>>>
>>> [1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/
>>>
>>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
>>>
>>> ---
>>> The patch is against Linus Torvalds' 'linux.git' repo.
>>>
>>>  arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
>>>  include/linux/sh_intc.h        |    6 +++---
>>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>>
>>> Index: linux/arch/sh/kernel/cpu/sh3/entry.S
>>> ===================================================================
>>> --- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
>>> +++ linux/arch/sh/kernel/cpu/sh3/entry.S
>>> @@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
>>>  	mov	r4, r0		! save vector->jmp table offset for later
>>>  
>>>  	shlr2	r4		! vector to IRQ# conversion
>>> -	add	#-0x10, r4
>>>  
>>> -	cmp/pz	r4		! is it a valid IRQ?
>>> +	mov	#0x10, r5
>>> +	cmp/ge	r5, r4		! is it a valid IRQ?
>>
>>    Maybe I should've used cmp/hs... my 1st try at SH assembly! :-)

   Yeah, cmp/hs seems m ore correct as we don't subtract any more...

> I can test your revised patch next week on my SH7785LCR.

   Please do, although testing on the AP-SH4A* bords would be a bit more
interesting, as they actually use IRQ0 for the SMSC911x chip...
   Maybe you have SH7786 base board, by chance? 

> Thanks,
> Adrian

MBR, Sergey

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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:46     ` Sergey Shtylyov
@ 2022-02-11 21:14       ` John Paul Adrian Glaubitz
  2022-02-25 19:28       ` Sergey Shtylyov
  1 sibling, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2022-02-11 21:14 UTC (permalink / raw)
  To: Sergey Shtylyov, Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

On 2/11/22 21:46, Sergey Shtylyov wrote:
>> I can test your revised patch next week on my SH7785LCR.
> 
>    Please do, although testing on the AP-SH4A* bords would be a bit more
> interesting, as they actually use IRQ0 for the SMSC911x chip...
>    Maybe you have SH7786 base board, by chance? 

Unfortunately not. I think Oleg Endo might have one but my memory might be wrong here.

I think there was also someone on the J-Core list mentioning he had an Alpha Project
board [1], but I don't remember which one.

Adrian

> [1] https://www.apnet.co.jp/product/superh/

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:46     ` Sergey Shtylyov
  2022-02-11 21:14       ` John Paul Adrian Glaubitz
@ 2022-02-25 19:28       ` Sergey Shtylyov
  2022-02-26  8:07         ` John Paul Adrian Glaubitz
  1 sibling, 1 reply; 10+ messages in thread
From: Sergey Shtylyov @ 2022-02-25 19:28 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz, Rich Felker, linux-sh, linux-kernel
  Cc: Yoshinori Sato

On 2/11/22 11:46 PM, Sergey Shtylyov wrote:

[...]
>>>> Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
>>>> and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
>>>> that code to start the IRQ #s from 16 instead.
>>>>
>>>> [1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/
>>>>
>>>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
>>>>
>>>> ---
>>>> The patch is against Linus Torvalds' 'linux.git' repo.
>>>>
>>>>  arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
>>>>  include/linux/sh_intc.h        |    6 +++---
>>>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> Index: linux/arch/sh/kernel/cpu/sh3/entry.S
>>>> ===================================================================
>>>> --- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
>>>> +++ linux/arch/sh/kernel/cpu/sh3/entry.S
>>>> @@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
>>>>  	mov	r4, r0		! save vector->jmp table offset for later
>>>>  
>>>>  	shlr2	r4		! vector to IRQ# conversion
>>>> -	add	#-0x10, r4
>>>>  
>>>> -	cmp/pz	r4		! is it a valid IRQ?
>>>> +	mov	#0x10, r5
>>>> +	cmp/ge	r5, r4		! is it a valid IRQ?
>>>
>>>    Maybe I should've used cmp/hs... my 1st try at SH assembly! :-)
> 
>    Yeah, cmp/hs seems m ore correct as we don't subtract any more...
> 
>> I can test your revised patch next week on my SH7785LCR.
> 
>    Please do, although testing on the AP-SH4A* bords would be a bit more
> interesting, as they actually use IRQ0 for the SMSC911x chip...

   So, were you finally able to test it?

[...]

MBR, Sergey

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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-25 19:28       ` Sergey Shtylyov
@ 2022-02-26  8:07         ` John Paul Adrian Glaubitz
  2022-03-02  9:31           ` Sergey Shtylyov
  0 siblings, 1 reply; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2022-02-26  8:07 UTC (permalink / raw)
  To: Sergey Shtylyov, Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

Hi Sergey!

On 2/25/22 20:28, Sergey Shtylyov wrote:
>>> I can test your revised patch next week on my SH7785LCR.
>>
>>    Please do, although testing on the AP-SH4A* bords would be a bit more
>> interesting, as they actually use IRQ0 for the SMSC911x chip...
> 
>    So, were you finally able to test it?

Not yet, sorry. Machine is currently offline due to a power outage and I cannot
turn it back on remotely, I'm not home until tomorrow. I will be able to test
it tomorrow, however.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-26  8:07         ` John Paul Adrian Glaubitz
@ 2022-03-02  9:31           ` Sergey Shtylyov
  2022-03-02  9:43             ` John Paul Adrian Glaubitz
  0 siblings, 1 reply; 10+ messages in thread
From: Sergey Shtylyov @ 2022-03-02  9:31 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz, Rich Felker, linux-sh, linux-kernel
  Cc: Yoshinori Sato

Hello!

On 2/26/22 11:07 AM, John Paul Adrian Glaubitz wrote:

[...]
>>>> I can test your revised patch next week on my SH7785LCR.
>>>
>>>    Please do, although testing on the AP-SH4A* bords would be a bit more
>>> interesting, as they actually use IRQ0 for the SMSC911x chip...
>>
>>    So, were you finally able to test it?
> 
> Not yet, sorry. Machine is currently offline due to a power outage and I cannot
> turn it back on remotely, I'm not home until tomorrow. I will be able to test
> it tomorrow, however.

   And? :-)

> Adrian

MBR, Sergey

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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-03-02  9:31           ` Sergey Shtylyov
@ 2022-03-02  9:43             ` John Paul Adrian Glaubitz
  0 siblings, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2022-03-02  9:43 UTC (permalink / raw)
  To: Sergey Shtylyov, Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

Hi Sergey!

On 3/2/22 10:31, Sergey Shtylyov wrote:
>>>>> I can test your revised patch next week on my SH7785LCR.
>>>>
>>>>    Please do, although testing on the AP-SH4A* bords would be a bit more
>>>> interesting, as they actually use IRQ0 for the SMSC911x chip...
>>>
>>>    So, were you finally able to test it?
>>
>> Not yet, sorry. Machine is currently offline due to a power outage and I cannot
>> turn it back on remotely, I'm not home until tomorrow. I will be able to test
>> it tomorrow, however.
> 
>    And? :-)

Sorry, got distracted by other stuff. Will test it right now and let you know
later today.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


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

* Re: [PATCH] sh: avoid using IRQ0 on SH3/4
  2022-02-11 20:15 [PATCH] sh: avoid using IRQ0 on SH3/4 Sergey Shtylyov
  2022-02-11 20:28 ` Sergey Shtylyov
@ 2022-03-02 10:10 ` John Paul Adrian Glaubitz
  1 sibling, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2022-03-02 10:10 UTC (permalink / raw)
  To: Sergey Shtylyov, Rich Felker, linux-sh, linux-kernel; +Cc: Yoshinori Sato

Hello!

On 2/11/22 21:15, Sergey Shtylyov wrote:
> Using IRQ0 by the platform devices is going to be disallowed soon (see [1])
> and the code supporting SH3/4 SoCs maps the IRQ #s starting at 0 -- modify
> that code to start the IRQ #s from 16 instead.
> 
> [1] https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/
> 
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> 
> ---
> The patch is against Linus Torvalds' 'linux.git' repo.
> 
>  arch/sh/kernel/cpu/sh3/entry.S |    4 ++--
>  include/linux/sh_intc.h        |    6 +++---
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> Index: linux/arch/sh/kernel/cpu/sh3/entry.S
> ===================================================================
> --- linux.orig/arch/sh/kernel/cpu/sh3/entry.S
> +++ linux/arch/sh/kernel/cpu/sh3/entry.S
> @@ -470,9 +470,9 @@ ENTRY(handle_interrupt)
>  	mov	r4, r0		! save vector->jmp table offset for later
>  
>  	shlr2	r4		! vector to IRQ# conversion
> -	add	#-0x10, r4
>  
> -	cmp/pz	r4		! is it a valid IRQ?
> +	mov	#0x10, r5
> +	cmp/ge	r5, r4		! is it a valid IRQ?
>  	bt	10f
>  
>  	/*
> Index: linux/include/linux/sh_intc.h
> ===================================================================
> --- linux.orig/include/linux/sh_intc.h
> +++ linux/include/linux/sh_intc.h
> @@ -13,9 +13,9 @@
>  /*
>   * Convert back and forth between INTEVT and IRQ values.
>   */
> -#ifdef CONFIG_CPU_HAS_INTEVT
> -#define evt2irq(evt)		(((evt) >> 5) - 16)
> -#define irq2evt(irq)		(((irq) + 16) << 5)
> +#ifdef CONFIG_CPU_HAS_INTEVT	/* Avoid IRQ0 (invalid for platform devices) */
> +#define evt2irq(evt)		((evt) >> 5)
> +#define irq2evt(irq)		((irq) << 5)
>  #else
>  #define evt2irq(evt)		(evt)
>  #define irq2evt(irq)		(irq)

Successfully boot-tested without any issues on my SH-7785LCR on top of fb184c4af9b9.

Tested-By: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


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

end of thread, other threads:[~2022-03-02 10:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11 20:15 [PATCH] sh: avoid using IRQ0 on SH3/4 Sergey Shtylyov
2022-02-11 20:28 ` Sergey Shtylyov
2022-02-11 20:30   ` John Paul Adrian Glaubitz
2022-02-11 20:46     ` Sergey Shtylyov
2022-02-11 21:14       ` John Paul Adrian Glaubitz
2022-02-25 19:28       ` Sergey Shtylyov
2022-02-26  8:07         ` John Paul Adrian Glaubitz
2022-03-02  9:31           ` Sergey Shtylyov
2022-03-02  9:43             ` John Paul Adrian Glaubitz
2022-03-02 10:10 ` John Paul Adrian Glaubitz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.