2013-03-07 06:59:53

by Ashish Jangam

[permalink] [raw]
Subject: virtual irq isssue - regmap_irq

Hi,

In regmap_irq if irq_base is unknown then regmap creates virq starting from 0
and it seems that in kernel 3.8 virq 0 usage is not permitted, since during irq
registration kernel throws a message "error: irq_desc already associated".

I'm not sure if this requires fix in regmap_irq or kernel, can you please
comment on this?

Thanks,
Ashish


2013-03-07 07:14:27

by Mark Brown

[permalink] [raw]
Subject: Re: virtual irq isssue - regmap_irq

On Thu, Mar 07, 2013 at 12:27:52PM +0530, Ashish Jangam wrote:

> In regmap_irq if irq_base is unknown then regmap creates virq starting from 0
> and it seems that in kernel 3.8 virq 0 usage is not permitted, since during irq
> registration kernel throws a message "error: irq_desc already associated".

> I'm not sure if this requires fix in regmap_irq or kernel, can you please
> comment on this?

This is a bug in your platform which will affect anything using a linear
domain. The platform isn't setting up its interrupts correctly so that
the core knows that those interrupts are reserved, ideally the platform
would just use domains for everything but at least irq_alloc_decs()
needs to know what is going on.


Attachments:
(No filename) (717.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-03-07 11:54:38

by Ashish Jangam

[permalink] [raw]
Subject: Re: virtual irq isssue - regmap_irq

On Thu, 2013-03-07 at 15:13 +0800, Mark Brown wrote:
> On Thu, Mar 07, 2013 at 12:27:52PM +0530, Ashish Jangam wrote:
>
> > In regmap_irq if irq_base is unknown then regmap creates virq starting from 0
> > and it seems that in kernel 3.8 virq 0 usage is not permitted, since during irq
> > registration kernel throws a message "error: irq_desc already associated".
>
> > I'm not sure if this requires fix in regmap_irq or kernel, can you please
> > comment on this?
>
> This is a bug in your platform which will affect anything using a linear
> domain. The platform isn't setting up its interrupts correctly so that
> the core knows that those interrupts are reserved, ideally the platform
> would just use domains for everything but at least irq_alloc_decs()
> needs to know what is going on.
Thanks I got this, however in this case should regmap handle such
condition where domain is unknown?
By the way, I was testing on smdkv6410 where Dialog device is not a
component of the board.

2013-03-07 14:22:47

by Mark Brown

[permalink] [raw]
Subject: Re: virtual irq isssue - regmap_irq

On Thu, Mar 07, 2013 at 05:22:35PM +0530, Ashish Jangam wrote:
> On Thu, 2013-03-07 at 15:13 +0800, Mark Brown wrote:

> > This is a bug in your platform which will affect anything using a linear
> > domain. The platform isn't setting up its interrupts correctly so that
> > the core knows that those interrupts are reserved, ideally the platform
> > would just use domains for everything but at least irq_alloc_decs()
> > needs to know what is going on.

> Thanks I got this, however in this case should regmap handle such
> condition where domain is unknown?

There is no "condition" or unknown domain for regmap to handle. regmap
asked its irqdomain for an interrupt number and was given one, it's got
no way of validating what it gets back and we don't want to end up
having workaround code all over the kernel for broken platforms.

> By the way, I was testing on smdkv6410 where Dialog device is not a
> component of the board.

The board is broken anyway; fix the board.


Attachments:
(No filename) (980.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments