[PATCH 07/10] ARM: clps711x: Add CLPS711X irqchip driver

Alexander Shiyan shc_work at mail.ru
Mon Aug 5 16:42:23 EDT 2013


On Mon, 5 Aug 2013 21:26:07 +0200
Arnd Bergmann <arnd at arndb.de> wrote:

> On Monday 05 August 2013, Alexander Shiyan wrote:

> > > Handling them in the irqchip driver probably seemed like a logical solution
> > > when the code was initially written, but if you move that access into the
> > > device drivers, you can probably remove the irqchip driver entirely and just
> > > use the generic irqchip implementation.
> > 
> > ioremap for a whole set of CPU registers is called from map_io, so ioremap
> > returns already mapped address, that is, it's just converting physical to
> > virtual addresses.
> 
> I see, that does make things better at least.
> 
> It would be nice to change the DT binding in some way so the register
> ranges are non-overlapping, but I'm not going to insist if the other
> reviewers are ok with the small inconsistency here.
> 
> Do you have any reason for not using the syscon driver for these
> registers?

I plan to use syscon for some registers to ensure the correct sequence
of read-modify-write. For all other registers, the access to which is not
needed from the different subsystems, it does not make sense and seriously
degrade performance due to locks.

As alternative, I can completely remove clps711x_ioremap_one() and simply
duplicate ioremap() for the entire range set of registers
(without request_mem_region). The functionality of driver will remain the same.
Will it be better?

-- 
Alexander Shiyan <shc_work at mail.ru>



More information about the linux-arm-kernel mailing list