All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Crispin <blogic@openwrt.org>
To: Henry Chen <henryc.chen@mediatek.com>, Lee Jones <lee.jones@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>,
	linux-kernel@vger.kernel.org, Flora Fu <flora.fu@mediatek.com>,
	linux-mediatek@lists.infradead.org,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] mfd: mt6397: irq domain should initialize before mfd_add_devices()
Date: Wed, 30 Mar 2016 11:18:19 +0200	[thread overview]
Message-ID: <56FB99DB.6010901@openwrt.org> (raw)
In-Reply-To: <1459322708-21363-1-git-send-email-henryc.chen@mediatek.com>

Hi,

small nitpick inline

On 30/03/2016 09:25, Henry Chen wrote:
> Some sub driver like RTC module need irq domain from parent to create
> irq mapping when driver initialize. so move mt6397_irq_init() before
> mfd_add_devices().
> 
> Signed-off-by: Henry Chen <henryc.chen@mediatek.com>
> ---
> This patch fixed the below warning based on "Linux kernel v4.6-rc1"
> WARNING: CPU: 1 PID: 132 at kernel/mediatek/kernel/irq/irqdomain.c:471
> irq_create_mapping+0xc4/0xd0
> ---
>  drivers/mfd/mt6397-core.c | 37 ++++++++++++++++++++++---------------
>  1 file changed, 22 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> index 8e8d932..a879223 100644
> --- a/drivers/mfd/mt6397-core.c
> +++ b/drivers/mfd/mt6397-core.c
> @@ -270,22 +270,36 @@ static int mt6397_probe(struct platform_device *pdev)
>  		goto fail_irq;
>  	}
>  
> +	pmic->irq = platform_get_irq(pdev, 0);
> +
>  	switch (id & 0xff) {
>  	case MT6323_CID_CODE:
> -		pmic->int_con[0] = MT6323_INT_CON0;
> -		pmic->int_con[1] = MT6323_INT_CON1;
> -		pmic->int_status[0] = MT6323_INT_STATUS0;
> -		pmic->int_status[1] = MT6323_INT_STATUS1;
> +		if (pmic->irq > 0) {

should this not be

		if (pmic->irq >= 0) {

i think the code before your patch was wrong as linux irqs start with 0.

	John


> +			pmic->int_con[0] = MT6323_INT_CON0;
> +			pmic->int_con[1] = MT6323_INT_CON1;
> +			pmic->int_status[0] = MT6323_INT_STATUS0;
> +			pmic->int_status[1] = MT6323_INT_STATUS1;
> +			ret = mt6397_irq_init(pmic);
> +			if (ret)
> +				return ret;
> +		}
> +
>  		ret = mfd_add_devices(&pdev->dev, -1, mt6323_devs,
>  				ARRAY_SIZE(mt6323_devs), NULL, 0, NULL);
>  		break;
>  
>  	case MT6397_CID_CODE:
>  	case MT6391_CID_CODE:
> -		pmic->int_con[0] = MT6397_INT_CON0;
> -		pmic->int_con[1] = MT6397_INT_CON1;
> -		pmic->int_status[0] = MT6397_INT_STATUS0;
> -		pmic->int_status[1] = MT6397_INT_STATUS1;
> +		if (pmic->irq > 0) {
> +			pmic->int_con[0] = MT6397_INT_CON0;
> +			pmic->int_con[1] = MT6397_INT_CON1;
> +			pmic->int_status[0] = MT6397_INT_STATUS0;
> +			pmic->int_status[1] = MT6397_INT_STATUS1;
> +			ret = mt6397_irq_init(pmic);
> +			if (ret)
> +				return ret;
> +		}
> +
>  		ret = mfd_add_devices(&pdev->dev, -1, mt6397_devs,
>  				ARRAY_SIZE(mt6397_devs), NULL, 0, NULL);
>  		break;
> @@ -296,13 +310,6 @@ static int mt6397_probe(struct platform_device *pdev)
>  		break;
>  	}
>  
> -	pmic->irq = platform_get_irq(pdev, 0);
> -	if (pmic->irq > 0) {
> -		ret = mt6397_irq_init(pmic);
> -		if (ret)
> -			return ret;
> -	}
> -
>  fail_irq:
>  	if (ret) {
>  		irq_domain_remove(pmic->irq_domain);
> 

WARNING: multiple messages have this Message-ID (diff)
From: blogic@openwrt.org (John Crispin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] mfd: mt6397: irq domain should initialize before mfd_add_devices()
Date: Wed, 30 Mar 2016 11:18:19 +0200	[thread overview]
Message-ID: <56FB99DB.6010901@openwrt.org> (raw)
In-Reply-To: <1459322708-21363-1-git-send-email-henryc.chen@mediatek.com>

Hi,

small nitpick inline

On 30/03/2016 09:25, Henry Chen wrote:
> Some sub driver like RTC module need irq domain from parent to create
> irq mapping when driver initialize. so move mt6397_irq_init() before
> mfd_add_devices().
> 
> Signed-off-by: Henry Chen <henryc.chen@mediatek.com>
> ---
> This patch fixed the below warning based on "Linux kernel v4.6-rc1"
> WARNING: CPU: 1 PID: 132 at kernel/mediatek/kernel/irq/irqdomain.c:471
> irq_create_mapping+0xc4/0xd0
> ---
>  drivers/mfd/mt6397-core.c | 37 ++++++++++++++++++++++---------------
>  1 file changed, 22 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> index 8e8d932..a879223 100644
> --- a/drivers/mfd/mt6397-core.c
> +++ b/drivers/mfd/mt6397-core.c
> @@ -270,22 +270,36 @@ static int mt6397_probe(struct platform_device *pdev)
>  		goto fail_irq;
>  	}
>  
> +	pmic->irq = platform_get_irq(pdev, 0);
> +
>  	switch (id & 0xff) {
>  	case MT6323_CID_CODE:
> -		pmic->int_con[0] = MT6323_INT_CON0;
> -		pmic->int_con[1] = MT6323_INT_CON1;
> -		pmic->int_status[0] = MT6323_INT_STATUS0;
> -		pmic->int_status[1] = MT6323_INT_STATUS1;
> +		if (pmic->irq > 0) {

should this not be

		if (pmic->irq >= 0) {

i think the code before your patch was wrong as linux irqs start with 0.

	John


> +			pmic->int_con[0] = MT6323_INT_CON0;
> +			pmic->int_con[1] = MT6323_INT_CON1;
> +			pmic->int_status[0] = MT6323_INT_STATUS0;
> +			pmic->int_status[1] = MT6323_INT_STATUS1;
> +			ret = mt6397_irq_init(pmic);
> +			if (ret)
> +				return ret;
> +		}
> +
>  		ret = mfd_add_devices(&pdev->dev, -1, mt6323_devs,
>  				ARRAY_SIZE(mt6323_devs), NULL, 0, NULL);
>  		break;
>  
>  	case MT6397_CID_CODE:
>  	case MT6391_CID_CODE:
> -		pmic->int_con[0] = MT6397_INT_CON0;
> -		pmic->int_con[1] = MT6397_INT_CON1;
> -		pmic->int_status[0] = MT6397_INT_STATUS0;
> -		pmic->int_status[1] = MT6397_INT_STATUS1;
> +		if (pmic->irq > 0) {
> +			pmic->int_con[0] = MT6397_INT_CON0;
> +			pmic->int_con[1] = MT6397_INT_CON1;
> +			pmic->int_status[0] = MT6397_INT_STATUS0;
> +			pmic->int_status[1] = MT6397_INT_STATUS1;
> +			ret = mt6397_irq_init(pmic);
> +			if (ret)
> +				return ret;
> +		}
> +
>  		ret = mfd_add_devices(&pdev->dev, -1, mt6397_devs,
>  				ARRAY_SIZE(mt6397_devs), NULL, 0, NULL);
>  		break;
> @@ -296,13 +310,6 @@ static int mt6397_probe(struct platform_device *pdev)
>  		break;
>  	}
>  
> -	pmic->irq = platform_get_irq(pdev, 0);
> -	if (pmic->irq > 0) {
> -		ret = mt6397_irq_init(pmic);
> -		if (ret)
> -			return ret;
> -	}
> -
>  fail_irq:
>  	if (ret) {
>  		irq_domain_remove(pmic->irq_domain);
> 

  reply	other threads:[~2016-03-30  9:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-30  7:25 [PATCH] mfd: mt6397: irq domain should initialize before mfd_add_devices() Henry Chen
2016-03-30  7:25 ` Henry Chen
2016-03-30  7:25 ` Henry Chen
2016-03-30  9:18 ` John Crispin [this message]
2016-03-30  9:18   ` John Crispin
2016-03-31  1:40   ` Henry Chen
2016-03-31  1:40     ` Henry Chen
2016-03-31  1:40     ` Henry Chen
2016-03-31  2:32     ` Yingjoe Chen
2016-03-31  2:32       ` Yingjoe Chen
2016-03-31  2:32       ` Yingjoe Chen
2016-03-31  9:08       ` John Crispin
2016-03-31  9:08         ` John Crispin
2016-03-31 13:41         ` Yingjoe Chen
2016-03-31 13:41           ` Yingjoe Chen
2016-03-31 13:41           ` Yingjoe Chen
2016-03-31 14:07           ` John Crispin
2016-03-31 14:07             ` John Crispin
2016-04-06  2:47             ` Henry Chen
2016-04-06  2:47               ` Henry Chen
2016-04-06  2:47               ` Henry Chen
2016-04-07  7:52               ` Lee Jones
2016-04-07  7:52                 ` Lee Jones
2016-04-07  8:51 ` John Crispin
2016-04-07  8:51   ` John Crispin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56FB99DB.6010901@openwrt.org \
    --to=blogic@openwrt.org \
    --cc=flora.fu@mediatek.com \
    --cc=henryc.chen@mediatek.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=s.hauer@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.