lists.openwall.net   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  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Thu, 17 May 2012 18:00:53 -0600
From:	Grant Likely <grant.likely@...retlab.ca>
To:	Rhyland Klein <rklein@...dia.com>,
	Mark Brown <broonie@...nsource.wolfsonmicro.com>,
	Samuel Ortiz <sameo@...ux.intel.com>,
	Rob Herring <rob.herring@...xeda.com>,
	Liam Girdwood <lrg@...com>
Cc:	linux-kernel@...r.kernel.org, devicetree-discuss@...ts.ozlabs.org,
	Rhyland Klein <rklein@...dia.com>
Subject: Re: [PATCH 7/8 v2] mfd: tps65910-irq: Add devicetree init support

On Tue, 24 Apr 2012 16:36:09 -0700, Rhyland Klein <rklein@...dia.com> wrote:
> Add support for initializing when boot using devicetree. The main difference
> is that the irq_base will not be setup, so it needs to be manually handled.
> 
> Signed-off-by: Rhyland Klein <rklein@...dia.com>
> ---
>  v2: split off irq specific changes based on previous review comments
> 
>  drivers/mfd/tps65910-irq.c |   21 +++++++++++++++------
>  1 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/mfd/tps65910-irq.c b/drivers/mfd/tps65910-irq.c
> index 0f1ff7f..066a30f 100644
> --- a/drivers/mfd/tps65910-irq.c
> +++ b/drivers/mfd/tps65910-irq.c
> @@ -180,12 +180,6 @@ int tps65910_irq_init(struct tps65910 *tps65910, int irq,
>  		return -EINVAL;
>  	}
>  
> -	tps65910->irq_mask = 0xFFFFFF;
> -
> -	mutex_init(&tps65910->irq_lock);
> -	tps65910->chip_irq = irq;
> -	tps65910->irq_base = pdata->irq_base;
> -
>  	switch (tps65910_chip_id(tps65910)) {
>  	case TPS65910:
>  		tps65910->irq_num = TPS65910_NUM_IRQ;
> @@ -195,6 +189,21 @@ int tps65910_irq_init(struct tps65910 *tps65910, int irq,
>  		break;
>  	}
>  
> +	if (pdata->irq_base <= 0)
> +		pdata->irq_base = irq_alloc_descs(-1, 0, tps65910->irq_num, -1);

Actually, if irqs are being dynamically allocated, then a irq_domain
linear mapping should be used instead of the legacy one so that sparse
allocations can be used.  The api isn't particularly friendly for that
right now because it means conditionally calling either
irq_domain_add_legacy() vs. irq_domain_add_linear(), but I'll try to
tidy that up for the next merge window.

Regardless, please use the linear mapping when irq_base is not set.

g.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ