[PATCH 1/1] irqchip: imx-gpcv2: Simplify the implemenation
Thomas Gleixner
tglx at linutronix.de
Wed Aug 26 09:00:24 PDT 2015
On Wed, 26 Aug 2015, Shenwei Wang wrote:
> u32 imx_gpcv2_get_wakeup_source(u32 **sources)
> {
> - if (!imx_gpcv2_instance)
> + struct gpcv2_irqchip_data *cd;
> + void __iomem *reg;
> + int i;
> +
> + cd = imx_gpcv2_instance;
> + if (!cd)
> return 0;
>
> + for (i = 0; i < IMR_NUM; i++) {
> + reg = cd->gpc_base + cd->cpu2wakeup + i * 4;
> + cd->wakeup_sources[i] = readl_relaxed(reg);
> + }
> +
> if (sources)
> - *sources = imx_gpcv2_instance->wakeup_sources;
> + *sources = cd->wakeup_sources;
>
> return IMR_NUM;
You do not need the intermediate storage at all.
u32 imx_gpcv2_get_wakeup_source(u32 *sources)
{
if (sources) {
for (i = 0; i < IMR_NUM; i++) {
reg = cd->gpc_base + cd->cpu2wakeup + i * 4;
sources[i] = readl_relaxed(reg);
}
}
....
Hmm?
More information about the linux-arm-kernel
mailing list