linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] serial: PL011: move interrupt clearing
@ 2012-03-21 19:15 Linus Walleij
  2012-03-22  1:04 ` viresh kumar
  2012-03-29 20:49 ` Grant Likely
  0 siblings, 2 replies; 10+ messages in thread
From: Linus Walleij @ 2012-03-21 19:15 UTC (permalink / raw)
  To: linux-arm-kernel

Commit 360f748b204275229f8398cb2f9f53955db1503b
"serial: PL011: clear pending interrupts"
attempts to clear interrupts by writing to a
yet-unassigned memory address. This fixes the issue.

The breaking patch is marked for stable so should be
carried along with the other patch.

Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: stable <stable@vger.kernel.org>
Reported-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/tty/serial/amba-pl011.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 7e01399..4ed35c5 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1930,10 +1930,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
 		goto unmap;
 	}
 
-	/* Ensure interrupts from this UART are masked and cleared */
-	writew(0, uap->port.membase + UART011_IMSC);
-	writew(0xffff, uap->port.membase + UART011_ICR);
-
 	uap->vendor = vendor;
 	uap->lcrh_rx = vendor->lcrh_rx;
 	uap->lcrh_tx = vendor->lcrh_tx;
@@ -1951,6 +1947,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
 	uap->port.line = i;
 	pl011_dma_probe(uap);
 
+	/* Ensure interrupts from this UART are masked and cleared */
+	writew(0, uap->port.membase + UART011_IMSC);
+	writew(0xffff, uap->port.membase + UART011_ICR);
+
 	snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev));
 
 	amba_ports[i] = uap;
-- 
1.7.7.6

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-21 19:15 [PATCH] serial: PL011: move interrupt clearing Linus Walleij
@ 2012-03-22  1:04 ` viresh kumar
  2012-03-22  8:00   ` Linus Walleij
  2012-03-29 20:49 ` Grant Likely
  1 sibling, 1 reply; 10+ messages in thread
From: viresh kumar @ 2012-03-22  1:04 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 22, 2012 at 12:45 AM, Linus Walleij
<linus.walleij@linaro.org> wrote:
> Commit 360f748b204275229f8398cb2f9f53955db1503b
> "serial: PL011: clear pending interrupts"
> attempts to clear interrupts by writing to a
> yet-unassigned memory address. This fixes the issue.
>
> The breaking patch is marked for stable so should be
> carried along with the other patch.
>
> Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: stable <stable@vger.kernel.org>
> Reported-by: Viresh Kumar <viresh.kumar@st.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ?drivers/tty/serial/amba-pl011.c | ? ?8 ++++----
> ?1 files changed, 4 insertions(+), 4 deletions(-)

You missed me in CC??

>
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 7e01399..4ed35c5 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1930,10 +1930,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
> ? ? ? ? ? ? ? ?goto unmap;
> ? ? ? ?}
>
> - ? ? ? /* Ensure interrupts from this UART are masked and cleared */
> - ? ? ? writew(0, uap->port.membase + UART011_IMSC);
> - ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
> -
> ? ? ? ?uap->vendor = vendor;
> ? ? ? ?uap->lcrh_rx = vendor->lcrh_rx;
> ? ? ? ?uap->lcrh_tx = vendor->lcrh_tx;
> @@ -1951,6 +1947,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
> ? ? ? ?uap->port.line = i;
> ? ? ? ?pl011_dma_probe(uap);
>
> + ? ? ? /* Ensure interrupts from this UART are masked and cleared */
> + ? ? ? writew(0, uap->port.membase + UART011_IMSC);
> + ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
> +
> ? ? ? ?snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev));
>
> ? ? ? ?amba_ports[i] = uap;

Reviewed-by: Viresh Kumar <viresh.kumar@st.com>

--
viresh

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-22  1:04 ` viresh kumar
@ 2012-03-22  8:00   ` Linus Walleij
  2012-03-23  3:39     ` viresh kumar
  0 siblings, 1 reply; 10+ messages in thread
From: Linus Walleij @ 2012-03-22  8:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 22, 2012 at 2:04 AM, viresh kumar <viresh.linux@gmail.com> wrote:

>> Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
>> Cc: Russell King <linux@arm.linux.org.uk>
>> Cc: stable <stable@vger.kernel.org>
>> Reported-by: Viresh Kumar <viresh.kumar@st.com>
>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>> ---
>> ?drivers/tty/serial/amba-pl011.c | ? ?8 ++++----
>> ?1 files changed, 4 insertions(+), 4 deletions(-)
>
> You missed me in CC??

I put you in Reported-by, then used --cc at the prompt because git send-email
still does not realize it must put Reported-by: tags on the CC list.

Yours,
Linus Walleij

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-22  8:00   ` Linus Walleij
@ 2012-03-23  3:39     ` viresh kumar
  2012-03-23  8:17       ` Linus Walleij
  0 siblings, 1 reply; 10+ messages in thread
From: viresh kumar @ 2012-03-23  3:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 22, 2012 at 1:30 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> On Thu, Mar 22, 2012 at 2:04 AM, viresh kumar <viresh.linux@gmail.com> wrote:
>> You missed me in CC??
>
> I put you in Reported-by, then used --cc at the prompt because git send-email
> still does not realize it must put Reported-by: tags on the CC list.

That's strange. When i check my mail on @st.com id, i see myself in cc
list, but on
gmail i see following cc list in your first mail.

linux-serial at vger.kernel.org, Greg Kroah-Hartman
<gregkh@linuxfoundation.org>, Russell King <linux@arm.linux.org.uk>,
Jong-Sung Kim <neidhard.kim@lge.com>, stable <stable@vger.kernel.org>,
Chanho Min <chanho0207@gmail.com>,
linux-arm-kernel at lists.infradead.org, Shreshtha Kumar Sahu
<shreshthakumar.sahu@stericsson.com>

Why don't i see myself in cc here?

I have seen similar issues earlier too, with our ST internal and
Mainline mailing lists.
Any ideas?

--
viresh

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-23  3:39     ` viresh kumar
@ 2012-03-23  8:17       ` Linus Walleij
  0 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2012-03-23  8:17 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Mar 23, 2012 at 4:39 AM, viresh kumar <viresh.linux@gmail.com> wrote:

> That's strange. When i check my mail on @st.com id, i see myself in cc
> list, but on
> gmail i see following cc list in your first mail.
(...)
>
> Why don't i see myself in cc here?

No clue :-(

On *my* gmail it looks like this:

Cc: linux-arm-kernel at lists.infradead.org,
	Chanho Min <chanho0207@gmail.com>,
	Jong-Sung Kim <neidhard.kim@lge.com>,
	Viresh Kumar <viresh.kumar@st.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>,
	Russell King <linux@arm.linux.org.uk>,
	stable <stable@vger.kernel.org>

Trust no gmail...

Linus Walleij

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-21 19:15 [PATCH] serial: PL011: move interrupt clearing Linus Walleij
  2012-03-22  1:04 ` viresh kumar
@ 2012-03-29 20:49 ` Grant Likely
  2012-03-29 21:22   ` Linus Walleij
  2012-03-29 21:33   ` Greg Kroah-Hartman
  1 sibling, 2 replies; 10+ messages in thread
From: Grant Likely @ 2012-03-29 20:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Mar 21, 2012 at 1:15 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> Commit 360f748b204275229f8398cb2f9f53955db1503b
> "serial: PL011: clear pending interrupts"
> attempts to clear interrupts by writing to a
> yet-unassigned memory address. This fixes the issue.
>
> The breaking patch is marked for stable so should be
> carried along with the other patch.
>
> Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: stable <stable@vger.kernel.org>
> Reported-by: Viresh Kumar <viresh.kumar@st.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

Ugh; the original patch is obviously broken.  How did it get applied
without testing?

Greg, can you get this out to Linus ASAP please?  I have one comment
below, but I don't think it should block merging this patch.

Tested-by: Grant Likely <grant.likely@secretlab.ca>

> ---
> ?drivers/tty/serial/amba-pl011.c | ? ?8 ++++----
> ?1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 7e01399..4ed35c5 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1930,10 +1930,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
> ? ? ? ? ? ? ? ?goto unmap;
> ? ? ? ?}
>
> - ? ? ? /* Ensure interrupts from this UART are masked and cleared */
> - ? ? ? writew(0, uap->port.membase + UART011_IMSC);
> - ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
> -
> ? ? ? ?uap->vendor = vendor;
> ? ? ? ?uap->lcrh_rx = vendor->lcrh_rx;
> ? ? ? ?uap->lcrh_tx = vendor->lcrh_tx;
> @@ -1951,6 +1947,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
> ? ? ? ?uap->port.line = i;
> ? ? ? ?pl011_dma_probe(uap);
>
> + ? ? ? /* Ensure interrupts from this UART are masked and cleared */
> + ? ? ? writew(0, uap->port.membase + UART011_IMSC);
> + ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
> +

Is it correct to move the interrupt clearing below the
pl011_dma_probe() call?  I've tested the fix with the interrupt
clearing both above and below the pl011_dma_probe() call and versatile
qemu boots in both cases.

g.

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-29 20:49 ` Grant Likely
@ 2012-03-29 21:22   ` Linus Walleij
  2012-03-29 21:33   ` Greg Kroah-Hartman
  1 sibling, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2012-03-29 21:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 29, 2012 at 10:49 PM, Grant Likely
<grant.likely@secretlab.ca> wrote:

>> Commit 360f748b204275229f8398cb2f9f53955db1503b
>> "serial: PL011: clear pending interrupts"
>> attempts to clear interrupts by writing to a
>> yet-unassigned memory address. This fixes the issue.
>
> Ugh; the original patch is obviously broken. ?How did it get applied
> without testing?

I've felt bad about that for a while, but to the best of my knowledge I did
test it. Either I did some manual slip with the boot images or there was
something else causing it to actually work as it looked... Chanho also
had it working IIRC.

> Greg, can you get this out to Linus ASAP please? ?I have one comment
> below, but I don't think it should block merging this patch.
>
> Tested-by: Grant Likely <grant.likely@secretlab.ca>

Thanks.

>> - ? ? ? /* Ensure interrupts from this UART are masked and cleared */
>> - ? ? ? writew(0, uap->port.membase + UART011_IMSC);
>> - ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
>> -
>> ? ? ? ?uap->vendor = vendor;
>> ? ? ? ?uap->lcrh_rx = vendor->lcrh_rx;
>> ? ? ? ?uap->lcrh_tx = vendor->lcrh_tx;
>> @@ -1951,6 +1947,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
>> ? ? ? ?uap->port.line = i;
>> ? ? ? ?pl011_dma_probe(uap);
>>
>> + ? ? ? /* Ensure interrupts from this UART are masked and cleared */
>> + ? ? ? writew(0, uap->port.membase + UART011_IMSC);
>> + ? ? ? writew(0xffff, uap->port.membase + UART011_ICR);
>> +
>
> Is it correct to move the interrupt clearing below the
> pl011_dma_probe() call? ?I've tested the fix with the interrupt
> clearing both above and below the pl011_dma_probe() call and versatile
> qemu boots in both cases.

pl011_dma_probe() basically just make logical setup so we do the
clear-out as the last step of setup.

Yours,
Linus Walleij

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-29 20:49 ` Grant Likely
  2012-03-29 21:22   ` Linus Walleij
@ 2012-03-29 21:33   ` Greg Kroah-Hartman
  2012-04-03 15:36     ` Paul Gortmaker
  1 sibling, 1 reply; 10+ messages in thread
From: Greg Kroah-Hartman @ 2012-03-29 21:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 29, 2012 at 02:49:37PM -0600, Grant Likely wrote:
> On Wed, Mar 21, 2012 at 1:15 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> > Commit 360f748b204275229f8398cb2f9f53955db1503b
> > "serial: PL011: clear pending interrupts"
> > attempts to clear interrupts by writing to a
> > yet-unassigned memory address. This fixes the issue.
> >
> > The breaking patch is marked for stable so should be
> > carried along with the other patch.
> >
> > Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
> > Cc: Russell King <linux@arm.linux.org.uk>
> > Cc: stable <stable@vger.kernel.org>
> > Reported-by: Viresh Kumar <viresh.kumar@st.com>
> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> 
> Ugh; the original patch is obviously broken.  How did it get applied
> without testing?
> 
> Greg, can you get this out to Linus ASAP please?  I have one comment
> below, but I don't think it should block merging this patch.
> 
> Tested-by: Grant Likely <grant.likely@secretlab.ca>

Thanks, I'll get it to him after 3.4-rc1 is out, in a few days, along
with other tty fixes being queued up.

greg k-h

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-03-29 21:33   ` Greg Kroah-Hartman
@ 2012-04-03 15:36     ` Paul Gortmaker
  2012-04-03 16:19       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Gortmaker @ 2012-04-03 15:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 29, 2012 at 5:33 PM, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> On Thu, Mar 29, 2012 at 02:49:37PM -0600, Grant Likely wrote:
>> On Wed, Mar 21, 2012 at 1:15 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
>> > Commit 360f748b204275229f8398cb2f9f53955db1503b
>> > "serial: PL011: clear pending interrupts"
>> > attempts to clear interrupts by writing to a
>> > yet-unassigned memory address. This fixes the issue.
>> >
>> > The breaking patch is marked for stable so should be
>> > carried along with the other patch.
>> >
>> > Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
>> > Cc: Russell King <linux@arm.linux.org.uk>
>> > Cc: stable <stable@vger.kernel.org>
>> > Reported-by: Viresh Kumar <viresh.kumar@st.com>
>> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>>
>> Ugh; the original patch is obviously broken. ?How did it get applied
>> without testing?
>>
>> Greg, can you get this out to Linus ASAP please? ?I have one comment
>> below, but I don't think it should block merging this patch.
>>
>> Tested-by: Grant Likely <grant.likely@secretlab.ca>
>
> Thanks, I'll get it to him after 3.4-rc1 is out, in a few days, along
> with other tty fixes being queued up.

Hi Greg,

Just wanted to check this didn't fall through the cracks, as I don't
see it in your tty-next or tty-linus branches.

The original bad commit causes Silent Boot Death on qemu ARM
versatile, which is kind of nasty.  It pretty much forces a bisection,
which I did, which then led me here.

Thanks,
Paul.
--

>
> greg k-h
> --
> To unsubscribe from this list: send the line "unsubscribe linux-serial" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html

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

* [PATCH] serial: PL011: move interrupt clearing
  2012-04-03 15:36     ` Paul Gortmaker
@ 2012-04-03 16:19       ` Greg Kroah-Hartman
  0 siblings, 0 replies; 10+ messages in thread
From: Greg Kroah-Hartman @ 2012-04-03 16:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Apr 03, 2012 at 11:36:23AM -0400, Paul Gortmaker wrote:
> On Thu, Mar 29, 2012 at 5:33 PM, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Thu, Mar 29, 2012 at 02:49:37PM -0600, Grant Likely wrote:
> >> On Wed, Mar 21, 2012 at 1:15 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> >> > Commit 360f748b204275229f8398cb2f9f53955db1503b
> >> > "serial: PL011: clear pending interrupts"
> >> > attempts to clear interrupts by writing to a
> >> > yet-unassigned memory address. This fixes the issue.
> >> >
> >> > The breaking patch is marked for stable so should be
> >> > carried along with the other patch.
> >> >
> >> > Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
> >> > Cc: Russell King <linux@arm.linux.org.uk>
> >> > Cc: stable <stable@vger.kernel.org>
> >> > Reported-by: Viresh Kumar <viresh.kumar@st.com>
> >> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> >>
> >> Ugh; the original patch is obviously broken. ?How did it get applied
> >> without testing?
> >>
> >> Greg, can you get this out to Linus ASAP please? ?I have one comment
> >> below, but I don't think it should block merging this patch.
> >>
> >> Tested-by: Grant Likely <grant.likely@secretlab.ca>
> >
> > Thanks, I'll get it to him after 3.4-rc1 is out, in a few days, along
> > with other tty fixes being queued up.
> 
> Hi Greg,
> 
> Just wanted to check this didn't fall through the cracks, as I don't
> see it in your tty-next or tty-linus branches.
> 
> The original bad commit causes Silent Boot Death on qemu ARM
> versatile, which is kind of nasty.  It pretty much forces a bisection,
> which I did, which then led me here.

It's still in my "to-apply" queue, don't worry, it's not lost.

greg k-h

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

end of thread, other threads:[~2012-04-03 16:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-21 19:15 [PATCH] serial: PL011: move interrupt clearing Linus Walleij
2012-03-22  1:04 ` viresh kumar
2012-03-22  8:00   ` Linus Walleij
2012-03-23  3:39     ` viresh kumar
2012-03-23  8:17       ` Linus Walleij
2012-03-29 20:49 ` Grant Likely
2012-03-29 21:22   ` Linus Walleij
2012-03-29 21:33   ` Greg Kroah-Hartman
2012-04-03 15:36     ` Paul Gortmaker
2012-04-03 16:19       ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).