On Thu, Oct 30, 2014 at 3:48 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Thursday 30 October 2014 11:43:00 Thomas Gleixner wrote: >> On Thu, 30 Oct 2014, Arnd Bergmann wrote: >> >> > On Wednesday 29 October 2014 19:17:55 Kevin Cernekee wrote: >> > > Defining these macros way down in arch/sh/.../irq.c doesn't cause >> > > kernel/irq/generic-chip.c to use them. As far as I can tell this code >> > > has no effect. >> > > >> > > Signed-off-by: Kevin Cernekee <cernekee@xxxxxxxxx> >> > >> > Actually it overrides the 32-bit accessors with 16-bit accessors, >> > which does seem intentional and certainly has an effect. >> >> Not really. Neither arch/sh/boards/mach-se/7343/irq.c nor >> arch/sh/boards/mach-se/7722/irq.c actually use >> irq_reg_readl/writel. They simply define it. > > Ah, that makes things easier. I looked at the commits that introduced > them, and even then they were unused. Probably an artifact from an > earlier version of the patch which did not get merged. I suspect that the intention was to put them into the machine's <irq.h> so that generic-chip.c would pick them up. The sh irq.c files do call ioread16/iowrite16 themselves, and like bcm7120-l2, they utilize irq_gc_mask_{set,clr}_bit from generic-chip.c. This may be something for the maintainers (Paul?) to double-check, but if the submission worked as-is, maybe overriding the I/O accessors wasn't actually needed. Or maybe there are subtle and unfortunate side effects on adjacent registers.