All of lore.kernel.org
 help / color / mirror / Atom feed
From: Henry Chen <henryc.chen@mediatek.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>,
	John Crispin <blogic@openwrt.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Flora Fu <flora.fu@mediatek.com>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>,
	Henry Chen <henryc.chen@mediatek.com>
Subject: [PATCH v2 1/3] mfd: mt6397: irq domain should initialize before mfd_add_devices()
Date: Fri, 8 Apr 2016 14:58:47 +0800	[thread overview]
Message-ID: <1460098729-25549-1-git-send-email-henryc.chen@mediatek.com> (raw)

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().

Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Henry Chen <henryc.chen@mediatek.com>
---
This series 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

Changes in V2: Add two patch for error handle checking.
---
 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) {
+			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);
-- 
1.8.1.1.dirty

WARNING: multiple messages have this Message-ID (diff)
From: Henry Chen <henryc.chen@mediatek.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>,
	John Crispin <blogic@openwrt.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Flora Fu <flora.fu@mediatek.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Henry Chen <henryc.chen@mediatek.com>
Subject: [PATCH v2 1/3] mfd: mt6397: irq domain should initialize before mfd_add_devices()
Date: Fri, 8 Apr 2016 14:58:47 +0800	[thread overview]
Message-ID: <1460098729-25549-1-git-send-email-henryc.chen@mediatek.com> (raw)

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().

Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Henry Chen <henryc.chen@mediatek.com>
---
This series 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

Changes in V2: Add two patch for error handle checking.
---
 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) {
+			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);
-- 
1.8.1.1.dirty

WARNING: multiple messages have this Message-ID (diff)
From: henryc.chen@mediatek.com (Henry Chen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/3] mfd: mt6397: irq domain should initialize before mfd_add_devices()
Date: Fri, 8 Apr 2016 14:58:47 +0800	[thread overview]
Message-ID: <1460098729-25549-1-git-send-email-henryc.chen@mediatek.com> (raw)

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().

Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Henry Chen <henryc.chen@mediatek.com>
---
This series 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

Changes in V2: Add two patch for error handle checking.
---
 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) {
+			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);
-- 
1.8.1.1.dirty

             reply	other threads:[~2016-04-08  6:59 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-08  6:58 Henry Chen [this message]
2016-04-08  6:58 ` [PATCH v2 1/3] mfd: mt6397: irq domain should initialize before mfd_add_devices() Henry Chen
2016-04-08  6:58 ` Henry Chen
2016-04-08  6:58 ` [PATCH v2 2/3] mfd: mt6397: Checking for null before irq_domain_remove Henry Chen
2016-04-08  6:58   ` Henry Chen
2016-04-08  6:58   ` Henry Chen
2016-04-11  8:53   ` Lee Jones
2016-04-11  8:53     ` Lee Jones
2016-04-08  6:58 ` [PATCH v2 3/3] mfd: mt6397: check the EPROBE_DEFER from platform_get_irq Henry Chen
2016-04-08  6:58   ` Henry Chen
2016-04-08  6:58   ` Henry Chen
2016-04-11  8:50   ` Lee Jones
2016-04-11  8:50     ` Lee Jones
2016-04-13  5:48     ` Henry Chen
2016-04-13  5:48       ` Henry Chen
2016-04-13  5:48       ` Henry Chen
2016-04-11  8:56 ` [PATCH v2 1/3] mfd: mt6397: irq domain should initialize before mfd_add_devices() Lee Jones
2016-04-11  8:56   ` Lee Jones

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=1460098729-25549-1-git-send-email-henryc.chen@mediatek.com \
    --to=henryc.chen@mediatek.com \
    --cc=blogic@openwrt.org \
    --cc=flora.fu@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.