lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 7 Aug 2014 09:47:25 -0700
From:	Dmitry Torokhov <>
To:	Javier Martinez Canillas <>
Cc:	Tomasz Figa <>,
	Nick Dyer <>,
	Stephen Warren <>,
	Yufeng Shen <>,
	Benson Leung <>,
	Doug Anderson <>,
	Olof Johansson <>,,,,
Subject: Re: [PATCH 1/2] Input: atmel_mxt_ts - Get IRQ edge/level flags on DT

On Thu, Aug 07, 2014 at 09:49:49AM +0200, Javier Martinez Canillas wrote:
> Hello Dmitry,
> On 08/07/2014 08:09 AM, Dmitry Torokhov wrote:
> >> 
> >> > irq_of_parse_and_map() already sets up IRQ trigger type based on DT
> >> > data, by calling irq_create_of_mapping() which in turn calls
> >> > irq_set_irq_type().
> >> >
> >> 
> >> Right but somehow when the IRQ is actually requested the type is overwritten by
> >> the value passed to request_threaded_irq() and interrupts are not being
> >> generated by the device without this patch.
> >> 
> >> Do you think that this is a bug in the "interrupt-parent" irqchip driver or the
> >> IRQ core? I'm not that familiar with the IRQ subsystem.
> > 
> > No, this is clearly driver fault - it smashed previously done setup with new
> > flags.
> >
> Thanks a lot for the clarification. That was my understanding as well but wanted
> to be sure.

Actually, I take this back. In mainline everything as it should: if
pdata does not specify particular trigger the flags requested end up
being IRQF_ONESHOT, which should preserve trigger bits previously set up
by the board or OF code. In Chrome kernel we have:

	/* Default to falling edge if no platform data provided */
	irqflags = data->pdata ? data->pdata->irqflags : IRQF_TRIGGER_FALLING;
	error = request_threaded_irq(client->irq, NULL, mxt_interrupt,
				     irqflags | IRQF_ONESHOT,
				     client->name, data);

which I believe should go away. If it is needed on ACPI systems we need
to figure out how to do things we can do with OF there.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

Powered by blists - more mailing lists