[PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3875d

16 messages, 3 authors, 2015-12-24 · open the first message on its own page

[PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Raghav Dogra <hidden>
Date: 2015-10-30 06:41:05

Modify platform driver suspend/resume to syscore
suspend/resume. This is because p1022ds needs to use
localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-
 arch/powerpc/sysdev/fsl_lbc.c | 51 +++++++++++++++++++++++++++++++++----------
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)		+= pmi.o
 obj-$(CONFIG_U3_DART)		+= dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)	+= mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)		+= fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)		+= fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)		+= fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)		+= fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)		+= fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)		+= fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)	+= fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)	+= simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c
index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
 
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t state)
+static int fsl_lbc_syscore_suspend(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;
 
 	ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
 	if (!ctrl->saved_regs)
 		return -ENOMEM;
 
 	_memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs));
+
+out:
 	return 0;
 }
 
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;
 
 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs,
@@ -379,7 +398,9 @@ static int fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs = NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
 #endif /* CONFIG_SUSPEND */
 
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] = {
 	{},
 };
 
+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops = {
+	.suspend = fsl_lbc_syscore_suspend,
+	.resume = fsl_lbc_syscore_resume,
+};
+#endif
+
 static struct platform_driver fsl_lbc_ctrl_driver = {
 	.driver = {
 		.name = "fsl-lbc",
 		.of_match_table = fsl_lbc_match,
 	},
 	.probe = fsl_lbc_ctrl_probe,
-#ifdef CONFIG_SUSPEND
-	.suspend     = fsl_lbc_suspend,
-	.resume      = fsl_lbc_resume,
-#endif
 };
 
 static int __init fsl_lbc_init(void)
 {
+#ifdef CONFIG_SUSPEND
+	register_syscore_ops(&lbc_syscore_pm_ops);
+#endif
 	return platform_driver_register(&fsl_lbc_ctrl_driver);
 }
-module_init(fsl_lbc_init);
+arch_initcall(fsl_lbc_init);
-- 
1.9.1

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-10-30 20:03:25

On Fri, 2015-10-30 at 11:54 +0530, Raghav Dogra wrote:
Modify platform driver suspend/resume to syscore
suspend/resume. This is because p1022ds needs to use
localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-
 arch/powerpc/sysdev/fsl_lbc.c | 51 +++++++++++++++++++++++++++++++++-------
---
 2 files changed, 40 insertions(+), 13 deletions(-)
Same comments as on the IFC patch.

-Scott

RE: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Dogra Raghav <hidden>
Date: 2015-11-02 06:12:47


-----Original Message-----
From: Raghav Dogra [mailto:raghav@freescale.com]=20
Sent: Friday, October 30, 2015 11:55 AM
To: linuxppc-dev@lists.ozlabs.org
Cc: Wood Scott-B07421 <redacted>; Kushwaha Prabhakar-B32579 =
[off-list ref]; Dogra Raghav-B46184 [off-list ref]
Subject: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

Modify platform driver suspend/resume to syscore suspend/resume. This is be=
cause p1022ds needs to use localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-
 arch/powerpc/sysdev/fsl_lbc.c | 51 +++++++++++++++++++++++++++++++++------=
----
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile in=
dex f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)		+=3D pmi.o
 obj-$(CONFIG_U3_DART)		+=3D dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)	+=3D mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)		+=3D fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)		+=3D fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)		+=3D fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)		+=3D fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)		+=3D fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)		+=3D fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)	+=3D fsl_85xx_l2ctlr.o fsl_85xx_cache_sr=
am.o
 obj-$(CONFIG_SIMPLE_GPIO)	+=3D simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c =
index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
=20
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
=20
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t stat=
e)
+static int fsl_lbc_syscore_suspend(void)
 {
-	struct fsl_lbc_ctrl *ctrl =3D dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc =3D ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl =3D fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc =3D ctrl->regs;
+	if (!lbc)
+		goto out;
=20
 	ctrl->saved_regs =3D kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
 	if (!ctrl->saved_regs)
 		return -ENOMEM;
[Dogra Raghav-B46184] This is the existing upstream code. Are you suggestin=
g to modify the upstream code to take care of individual registers?
=20
 	_memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs));
+
+out:
 	return 0;
 }
=20
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl =3D dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc =3D ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl =3D fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc =3D ctrl->regs;
+	if (!lbc)
+		goto out;
=20
 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs,
@@ -379,7 +398,9 @@ static int fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs =3D NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
 #endif /* CONFIG_SUSPEND */
=20
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] =3D =
{
 	{},
 };
=20
+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops =3D {
+	.suspend =3D fsl_lbc_syscore_suspend,
+	.resume =3D fsl_lbc_syscore_resume,
+};
+#endif
+
 static struct platform_driver fsl_lbc_ctrl_driver =3D {
 	.driver =3D {
 		.name =3D "fsl-lbc",
 		.of_match_table =3D fsl_lbc_match,
 	},
 	.probe =3D fsl_lbc_ctrl_probe,
-#ifdef CONFIG_SUSPEND
-	.suspend     =3D fsl_lbc_suspend,
-	.resume      =3D fsl_lbc_resume,
-#endif
 };
=20
 static int __init fsl_lbc_init(void)
 {
+#ifdef CONFIG_SUSPEND
+	register_syscore_ops(&lbc_syscore_pm_ops);
+#endif
 	return platform_driver_register(&fsl_lbc_ctrl_driver);
 }
-module_init(fsl_lbc_init);
+arch_initcall(fsl_lbc_init);
--
1.9.1

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-11-02 23:01:12

On Mon, 2015-11-02 at 00:12 -0600, Dogra Raghav-B46184 wrote:
quoted hunk
-----Original Message-----
From: Raghav Dogra [mailto:raghav@freescale.com] 
Sent: Friday, October 30, 2015 11:55 AM
To: linuxppc-dev@lists.ozlabs.org
Cc: Wood Scott-B07421 <redacted>; Kushwaha Prabhakar-B32579 <
prabhakar@freescale.com>; Dogra Raghav-B46184 [off-list ref]
Subject: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

Modify platform driver suspend/resume to syscore suspend/resume. This is 
because p1022ds needs to use localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-
 arch/powerpc/sysdev/fsl_lbc.c | 51 +++++++++++++++++++++++++++++++++-------
---
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile 
index f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)               += pmi.o
 obj-$(CONFIG_U3_DART)                += dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)     += mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)                += fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)                += fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)                += fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)                += fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)    += fsl_85xx_l2ctlr.o 
fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)    += simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c 
index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
 
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t 
state)
+static int fsl_lbc_syscore_suspend(void)
 {
-     struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-     struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+     struct fsl_lbc_ctrl *ctrl;
+     struct fsl_lbc_regs __iomem *lbc;
+
+     ctrl = fsl_lbc_ctrl_dev;
+     if (!ctrl)
+             goto out;
+
+     lbc = ctrl->regs;
+     if (!lbc)
+             goto out;
 
      ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
      if (!ctrl->saved_regs)
              return -ENOMEM;
[Dogra Raghav-B46184] This is the existing upstream code. Are you 
suggesting to modify the upstream code to take care of individual registers?
What specifically do you mean by "the upstream code"?  What other tree are we 
talking about here?

-Scott

RE: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Dogra Raghav <hidden>
Date: 2015-11-03 05:31:51

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXb29kIFNjb3R0LUIwNzQyMSAN
ClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDAzLCAyMDE1IDQ6MzEgQU0NClRvOiBEb2dyYSBSYWdo
YXYtQjQ2MTg0IDxyYWdoYXZAZnJlZXNjYWxlLmNvbT4NCkNjOiBLdXNod2FoYSBQcmFiaGFrYXIt
QjMyNTc5IDxwcmFiaGFrYXJAZnJlZXNjYWxlLmNvbT47IGxpbnV4cHBjLWRldkBsaXN0cy5vemxh
YnMub3JnDQpTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gbXBjODV4eC9sYmM6IG1vZGlmeSBzdXNw
ZW5kL3Jlc3VtZSBlbnRyeSBzZXF1ZW5jZQ0KDQpPbiBNb24sIDIwMTUtMTEtMDIgYXQgMDA6MTIg
LTA2MDAsIERvZ3JhIFJhZ2hhdi1CNDYxODQgd3JvdGU6DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+IEZyb206IFJhZ2hhdiBEb2dyYSBbbWFpbHRvOnJhZ2hhdkBmcmVlc2NhbGUuY29t
XQ0KPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMzAsIDIwMTUgMTE6NTUgQU0NCj4gVG86IGxpbnV4
cHBjLWRldkBsaXN0cy5vemxhYnMub3JnDQo+IENjOiBXb29kIFNjb3R0LUIwNzQyMSA8c2NvdHR3
b29kQGZyZWVzY2FsZS5jb20+OyBLdXNod2FoYSANCj4gUHJhYmhha2FyLUIzMjU3OSA8IHByYWJo
YWthckBmcmVlc2NhbGUuY29tPjsgRG9ncmEgUmFnaGF2LUI0NjE4NCANCj4gPHJhZ2hhdkBmcmVl
c2NhbGUuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggMS8yXSBtcGM4NXh4L2xiYzogbW9kaWZ5IHN1
c3BlbmQvcmVzdW1lIGVudHJ5IHNlcXVlbmNlDQo+IA0KPiBNb2RpZnkgcGxhdGZvcm0gZHJpdmVy
IHN1c3BlbmQvcmVzdW1lIHRvIHN5c2NvcmUgc3VzcGVuZC9yZXN1bWUuIFRoaXMgDQo+IGlzIGJl
Y2F1c2UgcDEwMjJkcyBuZWVkcyB0byB1c2UgbG9jYWxidXMgd2hlbiBlbnRlcmluZyB0aGUgUENJ
RSByZXN1bWUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBSYWdoYXYgRG9ncmEgPHJhZ2hhdkBmcmVl
c2NhbGUuY29tPg0KPiAtLS0NCj4gIGFyY2gvcG93ZXJwYy9zeXNkZXYvTWFrZWZpbGUgIHwgIDIg
Ky0gIGFyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX2xiYy5jIA0KPiB8IDUxICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gLS0tDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDQw
IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gv
cG93ZXJwYy9zeXNkZXYvTWFrZWZpbGUgDQo+IGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9NYWtlZmls
ZSBpbmRleCBmN2NiMmExLi40YzE5ZTYxNCAxMDA2NDQNCj4gLS0tIGEvYXJjaC9wb3dlcnBjL3N5
c2Rldi9NYWtlZmlsZQ0KPiArKysgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L01ha2VmaWxlDQo+IEBA
IC0xOCw5ICsxOCw5IEBAIG9iai0kKENPTkZJR19QUENfUE1JKSAgICAgICAgICAgICAgICs9IHBt
aS5vDQo+ICBvYmotJChDT05GSUdfVTNfREFSVCkgICAgICAgICAgICAgICAgKz0gZGFydF9pb21t
dS5vDQo+ICBvYmotJChDT05GSUdfTU1JT19OVlJBTSkgICAgICs9IG1taW9fbnZyYW0ubw0KPiAg
b2JqLSQoQ09ORklHX0ZTTF9TT0MpICAgICAgICAgICAgICAgICs9IGZzbF9zb2MubyBmc2xfbXBp
Y19lcnIubw0KPiArb2JqLSQoQ09ORklHX0ZTTF9MQkMpICAgICAgICAgICAgICAgICs9IGZzbF9s
YmMubw0KPiAgb2JqLSQoQ09ORklHX0ZTTF9QQ0kpICAgICAgICAgICAgICAgICs9IGZzbF9wY2ku
byAkKGZzbC1tc2ktb2JqLXkpDQo+ICBvYmotJChDT05GSUdfRlNMX1BNQykgICAgICAgICAgICAg
ICAgKz0gZnNsX3BtYy5vDQo+IC1vYmotJChDT05GSUdfRlNMX0xCQykgICAgICAgICAgICAgICAg
Kz0gZnNsX2xiYy5vDQo+ICBvYmotJChDT05GSUdfRlNMX0dUTSkgICAgICAgICAgICAgICAgKz0g
ZnNsX2d0bS5vDQo+ICBvYmotJChDT05GSUdfRlNMXzg1WFhfQ0FDSEVfU1JBTSkgICAgKz0gZnNs
Xzg1eHhfbDJjdGxyLm8gDQo+IGZzbF84NXh4X2NhY2hlX3NyYW0ubw0KPiAgb2JqLSQoQ09ORklH
X1NJTVBMRV9HUElPKSAgICArPSBzaW1wbGVfZ3Bpby5vDQo+IGRpZmYgLS1naXQgYS9hcmNoL3Bv
d2VycGMvc3lzZGV2L2ZzbF9sYmMuYyANCj4gYi9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9sYmMu
YyBpbmRleCBkNjMxMDIyLi4zMzJkNzAwIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3Bvd2VycGMvc3lz
ZGV2L2ZzbF9sYmMuYw0KPiArKysgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9sYmMuYw0KPiBA
QCAtMjcsNiArMjcsNyBAQA0KPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0K
PiAgI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L21vZF9k
ZXZpY2V0YWJsZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2NvcmVfb3BzLmg+DQo+ICAjaW5j
bHVkZSA8YXNtL3Byb20uaD4NCj4gICNpbmNsdWRlIDxhc20vZnNsX2xiYy5oPg0KPiAgDQo+IEBA
IC0zNTQsMjQgKzM1NSw0MiBAQCBlcnI6DQo+ICAjaWZkZWYgQ09ORklHX1NVU1BFTkQNCj4gIA0K
PiAgLyogc2F2ZSBsYmMgcmVnaXN0ZXJzICovDQo+IC1zdGF0aWMgaW50IGZzbF9sYmNfc3VzcGVu
ZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3QNCj4gc3RhdGUpDQo+
ICtzdGF0aWMgaW50IGZzbF9sYmNfc3lzY29yZV9zdXNwZW5kKHZvaWQpDQo+ICB7DQo+IC0gICAg
IHN0cnVjdCBmc2xfbGJjX2N0cmwgKmN0cmwgPSBkZXZfZ2V0X2RydmRhdGEoJnBkZXYtPmRldik7
DQo+IC0gICAgIHN0cnVjdCBmc2xfbGJjX3JlZ3MgX19pb21lbSAqbGJjID0gY3RybC0+cmVnczsN
Cj4gKyAgICAgc3RydWN0IGZzbF9sYmNfY3RybCAqY3RybDsNCj4gKyAgICAgc3RydWN0IGZzbF9s
YmNfcmVncyBfX2lvbWVtICpsYmM7DQo+ICsNCj4gKyAgICAgY3RybCA9IGZzbF9sYmNfY3RybF9k
ZXY7DQo+ICsgICAgIGlmICghY3RybCkNCj4gKyAgICAgICAgICAgICBnb3RvIG91dDsNCj4gKw0K
PiArICAgICBsYmMgPSBjdHJsLT5yZWdzOw0KPiArICAgICBpZiAoIWxiYykNCj4gKyAgICAgICAg
ICAgICBnb3RvIG91dDsNCj4gIA0KPiAgICAgICBjdHJsLT5zYXZlZF9yZWdzID0ga21hbGxvYyhz
aXplb2Yoc3RydWN0IGZzbF9sYmNfcmVncyksIEdGUF9LRVJORUwpOw0KPiAgICAgICBpZiAoIWN0
cmwtPnNhdmVkX3JlZ3MpDQo+ICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+IFtEb2dy
YSBSYWdoYXYtQjQ2MTg0XSBUaGlzIGlzIHRoZSBleGlzdGluZyB1cHN0cmVhbSBjb2RlLiBBcmUg
eW91IA0KPiBzdWdnZXN0aW5nIHRvIG1vZGlmeSB0aGUgdXBzdHJlYW0gY29kZSB0byB0YWtlIGNh
cmUgb2YgaW5kaXZpZHVhbCByZWdpc3RlcnM/DQoNCldoYXQgc3BlY2lmaWNhbGx5IGRvIHlvdSBt
ZWFuIGJ5ICJ0aGUgdXBzdHJlYW0gY29kZSI/ICBXaGF0IG90aGVyIHRyZWUgYXJlIHdlIHRhbGtp
bmcgYWJvdXQgaGVyZT8NCg0KLVNjb3R0DQoNCkkgbWVhbnQgdGhhdCB0aGVzZSB0d28gbGluZXMg
b2YgY29kZSBhcmUgbm90IGJlaW5nIGFkZGVkIG9yIG1vZGlmaWVkIGJ5IHRoaXMgcGF0Y2guIFRo
ZXkgYWxyZWFkeSBleGlzdCBpbiB0aGUgdXBzdHJlYW0gdHJlZS4gQXJlIHlvdSBzdWdnZXN0aW5n
IEkgbW9kaWZ5IHRoZW0gYXMgd2VsbD8NCi1SYWdoYXYNCg==

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-11-03 05:40:18

On Mon, 2015-11-02 at 23:31 -0600, Dogra Raghav-B46184 wrote:
-----Original Message-----
From: Wood Scott-B07421 
Sent: Tuesday, November 03, 2015 4:31 AM
To: Dogra Raghav-B46184 <redacted>
Cc: Kushwaha Prabhakar-B32579 <redacted>; 
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

On Mon, 2015-11-02 at 00:12 -0600, Dogra Raghav-B46184 wrote:
quoted
-----Original Message-----
From: Raghav Dogra [mailto:raghav@freescale.com]
Sent: Friday, October 30, 2015 11:55 AM
To: linuxppc-dev@lists.ozlabs.org
Cc: Wood Scott-B07421 <redacted>; Kushwaha 
Prabhakar-B32579 < prabhakar@freescale.com>; Dogra Raghav-B46184 
[off-list ref]
Subject: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

Modify platform driver suspend/resume to syscore suspend/resume. This 
is because p1022ds needs to use localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-  arch/powerpc/sysdev/fsl_lbc.c 
quoted
51 +++++++++++++++++++++++++++++++++-------
---
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile 
b/arch/powerpc/sysdev/Makefile index f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)               += pmi.o
 obj-$(CONFIG_U3_DART)                += dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)     += mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)                += fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)                += fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)                += fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)                += fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)    += fsl_85xx_l2ctlr.o 
fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)    += simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c 
b/arch/powerpc/sysdev/fsl_lbc.c index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
 
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t
state)
+static int fsl_lbc_syscore_suspend(void)
 {
-     struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-     struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+     struct fsl_lbc_ctrl *ctrl;
+     struct fsl_lbc_regs __iomem *lbc;
+
+     ctrl = fsl_lbc_ctrl_dev;
+     if (!ctrl)
+             goto out;
+
+     lbc = ctrl->regs;
+     if (!lbc)
+             goto out;
 
      ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
      if (!ctrl->saved_regs)
              return -ENOMEM;
[Dogra Raghav-B46184] This is the existing upstream code. Are you 
suggesting to modify the upstream code to take care of individual 
registers?
What specifically do you mean by "the upstream code"?  What other tree are 
we talking about here?

-Scott

I meant that these two lines of code are not being added or modified by 
this patch. They already exist in the upstream tree. Are you suggesting I 
modify them as well?
-Raghav
I have no idea which "two lines of code" you're talking about or how any 
comment I made applies to the above diff hunk.

OK, I looked at the original patch and I guess you're talking about the 
_memcpy_fromio() that was *below* your comment?  Please configure your mailer 
to quote properly, and put your replies below what you're quoting.

Yes, I think that that usage of _memcpy_fromio() is bad and should be changed.

-Scott

RE: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Dogra Raghav <hidden>
Date: 2015-11-03 06:23:56

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXb29kIFNjb3R0LUIwNzQyMSAN
ClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDAzLCAyMDE1IDExOjEwIEFNDQpUbzogRG9ncmEgUmFn
aGF2LUI0NjE4NCA8cmFnaGF2QGZyZWVzY2FsZS5jb20+DQpDYzogS3VzaHdhaGEgUHJhYmhha2Fy
LUIzMjU3OSA8cHJhYmhha2FyQGZyZWVzY2FsZS5jb20+OyBsaW51eHBwYy1kZXZAbGlzdHMub3ps
YWJzLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdIG1wYzg1eHgvbGJjOiBtb2RpZnkgc3Vz
cGVuZC9yZXN1bWUgZW50cnkgc2VxdWVuY2UNCg0KT24gTW9uLCAyMDE1LTExLTAyIGF0IDIzOjMx
IC0wNjAwLCBEb2dyYSBSYWdoYXYtQjQ2MTg0IHdyb3RlOg0KPiANCj4gLS0tLS1PcmlnaW5hbCBN
ZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0MjENCj4gU2VudDogVHVlc2RheSwg
Tm92ZW1iZXIgMDMsIDIwMTUgNDozMSBBTQ0KPiBUbzogRG9ncmEgUmFnaGF2LUI0NjE4NCA8cmFn
aGF2QGZyZWVzY2FsZS5jb20+DQo+IENjOiBLdXNod2FoYSBQcmFiaGFrYXItQjMyNTc5IDxwcmFi
aGFrYXJAZnJlZXNjYWxlLmNvbT47IA0KPiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZw0K
PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gbXBjODV4eC9sYmM6IG1vZGlmeSBzdXNwZW5kL3Jl
c3VtZSBlbnRyeSANCj4gc2VxdWVuY2UNCj4gDQo+IE9uIE1vbiwgMjAxNS0xMS0wMiBhdCAwMDox
MiAtMDYwMCwgRG9ncmEgUmFnaGF2LUI0NjE4NCB3cm90ZToNCj4gPiAtLS0tLU9yaWdpbmFsIE1l
c3NhZ2UtLS0tLQ0KPiA+IEZyb206IFJhZ2hhdiBEb2dyYSBbbWFpbHRvOnJhZ2hhdkBmcmVlc2Nh
bGUuY29tXQ0KPiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAzMCwgMjAxNSAxMTo1NSBBTQ0KPiA+
IFRvOiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZw0KPiA+IENjOiBXb29kIFNjb3R0LUIw
NzQyMSA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+OyBLdXNod2FoYQ0KPiA+IFByYWJoYWthci1C
MzI1NzkgPCBwcmFiaGFrYXJAZnJlZXNjYWxlLmNvbT47IERvZ3JhIFJhZ2hhdi1CNDYxODQgDQo+
ID4gPHJhZ2hhdkBmcmVlc2NhbGUuY29tPg0KPiA+IFN1YmplY3Q6IFtQQVRDSCAxLzJdIG1wYzg1
eHgvbGJjOiBtb2RpZnkgc3VzcGVuZC9yZXN1bWUgZW50cnkgDQo+ID4gc2VxdWVuY2UNCj4gPiAN
Cj4gPiBNb2RpZnkgcGxhdGZvcm0gZHJpdmVyIHN1c3BlbmQvcmVzdW1lIHRvIHN5c2NvcmUgc3Vz
cGVuZC9yZXN1bWUuIA0KPiA+IFRoaXMgaXMgYmVjYXVzZSBwMTAyMmRzIG5lZWRzIHRvIHVzZSBs
b2NhbGJ1cyB3aGVuIGVudGVyaW5nIHRoZSBQQ0lFIHJlc3VtZS4NCj4gPiANCj4gPiBTaWduZWQt
b2ZmLWJ5OiBSYWdoYXYgRG9ncmEgPHJhZ2hhdkBmcmVlc2NhbGUuY29tPg0KPiA+IC0tLQ0KPiA+
ICBhcmNoL3Bvd2VycGMvc3lzZGV2L01ha2VmaWxlICB8ICAyICstICANCj4gPiBhcmNoL3Bvd2Vy
cGMvc3lzZGV2L2ZzbF9sYmMuYw0KPiA+ID4gNTEgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0tLQ0KPiA+IC0tLQ0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlv
bnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy
cGMvc3lzZGV2L01ha2VmaWxlIA0KPiA+IGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9NYWtlZmlsZSBp
bmRleCBmN2NiMmExLi40YzE5ZTYxNCAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL3Bvd2VycGMvc3lz
ZGV2L01ha2VmaWxlDQo+ID4gKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9NYWtlZmlsZQ0KPiA+
IEBAIC0xOCw5ICsxOCw5IEBAIG9iai0kKENPTkZJR19QUENfUE1JKSAgICAgICAgICAgICAgICs9
IHBtaS5vDQo+ID4gIG9iai0kKENPTkZJR19VM19EQVJUKSAgICAgICAgICAgICAgICArPSBkYXJ0
X2lvbW11Lm8NCj4gPiAgb2JqLSQoQ09ORklHX01NSU9fTlZSQU0pICAgICArPSBtbWlvX252cmFt
Lm8NCj4gPiAgb2JqLSQoQ09ORklHX0ZTTF9TT0MpICAgICAgICAgICAgICAgICs9IGZzbF9zb2Mu
byBmc2xfbXBpY19lcnIubw0KPiA+ICtvYmotJChDT05GSUdfRlNMX0xCQykgICAgICAgICAgICAg
ICAgKz0gZnNsX2xiYy5vDQo+ID4gIG9iai0kKENPTkZJR19GU0xfUENJKSAgICAgICAgICAgICAg
ICArPSBmc2xfcGNpLm8gJChmc2wtbXNpLW9iai15KQ0KPiA+ICBvYmotJChDT05GSUdfRlNMX1BN
QykgICAgICAgICAgICAgICAgKz0gZnNsX3BtYy5vDQo+ID4gLW9iai0kKENPTkZJR19GU0xfTEJD
KSAgICAgICAgICAgICAgICArPSBmc2xfbGJjLm8NCj4gPiAgb2JqLSQoQ09ORklHX0ZTTF9HVE0p
ICAgICAgICAgICAgICAgICs9IGZzbF9ndG0ubw0KPiA+ICBvYmotJChDT05GSUdfRlNMXzg1WFhf
Q0FDSEVfU1JBTSkgICAgKz0gZnNsXzg1eHhfbDJjdGxyLm8gDQo+ID4gZnNsXzg1eHhfY2FjaGVf
c3JhbS5vDQo+ID4gIG9iai0kKENPTkZJR19TSU1QTEVfR1BJTykgICAgKz0gc2ltcGxlX2dwaW8u
bw0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9sYmMuYyANCj4gPiBi
L2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX2xiYy5jIGluZGV4IGQ2MzEwMjIuLjMzMmQ3MDAgMTAw
NjQ0DQo+ID4gLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfbGJjLmMNCj4gPiArKysgYi9h
cmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9sYmMuYw0KPiA+IEBAIC0yNyw2ICsyNyw3IEBADQo+ID4g
ICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4
L2ludGVycnVwdC5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+DQo+
ID4gKyNpbmNsdWRlIDxsaW51eC9zeXNjb3JlX29wcy5oPg0KPiA+ICAjaW5jbHVkZSA8YXNtL3By
b20uaD4NCj4gPiAgI2luY2x1ZGUgPGFzbS9mc2xfbGJjLmg+DQo+ID4gIA0KPiA+IEBAIC0zNTQs
MjQgKzM1NSw0MiBAQCBlcnI6DQo+ID4gICNpZmRlZiBDT05GSUdfU1VTUEVORA0KPiA+ICANCj4g
PiAgLyogc2F2ZSBsYmMgcmVnaXN0ZXJzICovDQo+ID4gLXN0YXRpYyBpbnQgZnNsX2xiY19zdXNw
ZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIA0KPiA+IHBtX21lc3NhZ2VfdA0KPiA+
IHN0YXRlKQ0KPiA+ICtzdGF0aWMgaW50IGZzbF9sYmNfc3lzY29yZV9zdXNwZW5kKHZvaWQpDQo+
ID4gIHsNCj4gPiAtICAgICBzdHJ1Y3QgZnNsX2xiY19jdHJsICpjdHJsID0gZGV2X2dldF9kcnZk
YXRhKCZwZGV2LT5kZXYpOw0KPiA+IC0gICAgIHN0cnVjdCBmc2xfbGJjX3JlZ3MgX19pb21lbSAq
bGJjID0gY3RybC0+cmVnczsNCj4gPiArICAgICBzdHJ1Y3QgZnNsX2xiY19jdHJsICpjdHJsOw0K
PiA+ICsgICAgIHN0cnVjdCBmc2xfbGJjX3JlZ3MgX19pb21lbSAqbGJjOw0KPiA+ICsNCj4gPiAr
ICAgICBjdHJsID0gZnNsX2xiY19jdHJsX2RldjsNCj4gPiArICAgICBpZiAoIWN0cmwpDQo+ID4g
KyAgICAgICAgICAgICBnb3RvIG91dDsNCj4gPiArDQo+ID4gKyAgICAgbGJjID0gY3RybC0+cmVn
czsNCj4gPiArICAgICBpZiAoIWxiYykNCj4gPiArICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiA+
ICANCj4gPiAgICAgICBjdHJsLT5zYXZlZF9yZWdzID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGZz
bF9sYmNfcmVncyksIEdGUF9LRVJORUwpOw0KPiA+ICAgICAgIGlmICghY3RybC0+c2F2ZWRfcmVn
cykNCj4gPiAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+IFtEb2dyYSBSYWdoYXYt
QjQ2MTg0XSBUaGlzIGlzIHRoZSBleGlzdGluZyB1cHN0cmVhbSBjb2RlLiBBcmUgeW91IA0KPiA+
IHN1Z2dlc3RpbmcgdG8gbW9kaWZ5IHRoZSB1cHN0cmVhbSBjb2RlIHRvIHRha2UgY2FyZSBvZiBp
bmRpdmlkdWFsIA0KPiA+IHJlZ2lzdGVycz8NCj4gDQo+IFdoYXQgc3BlY2lmaWNhbGx5IGRvIHlv
dSBtZWFuIGJ5ICJ0aGUgdXBzdHJlYW0gY29kZSI/ICBXaGF0IG90aGVyIHRyZWUgDQo+IGFyZSB3
ZSB0YWxraW5nIGFib3V0IGhlcmU/DQo+IA0KPiAtU2NvdHQNCj4gDQo+IEkgbWVhbnQgdGhhdCB0
aGVzZSB0d28gbGluZXMgb2YgY29kZSBhcmUgbm90IGJlaW5nIGFkZGVkIG9yIG1vZGlmaWVkIA0K
PiBieSB0aGlzIHBhdGNoLiBUaGV5IGFscmVhZHkgZXhpc3QgaW4gdGhlIHVwc3RyZWFtIHRyZWUu
IEFyZSB5b3UgDQo+IHN1Z2dlc3RpbmcgSSBtb2RpZnkgdGhlbSBhcyB3ZWxsPw0KPiAtUmFnaGF2
DQoNCkkgaGF2ZSBubyBpZGVhIHdoaWNoICJ0d28gbGluZXMgb2YgY29kZSIgeW91J3JlIHRhbGtp
bmcgYWJvdXQgb3IgaG93IGFueSBjb21tZW50IEkgbWFkZSBhcHBsaWVzIHRvIHRoZSBhYm92ZSBk
aWZmIGh1bmsuDQoNCk9LLCBJIGxvb2tlZCBhdCB0aGUgb3JpZ2luYWwgcGF0Y2ggYW5kIEkgZ3Vl
c3MgeW91J3JlIHRhbGtpbmcgYWJvdXQgdGhlDQpfbWVtY3B5X2Zyb21pbygpIHRoYXQgd2FzICpi
ZWxvdyogeW91ciBjb21tZW50PyAgUGxlYXNlIGNvbmZpZ3VyZSB5b3VyIG1haWxlciB0byBxdW90
ZSBwcm9wZXJseSwgYW5kIHB1dCB5b3VyIHJlcGxpZXMgYmVsb3cgd2hhdCB5b3UncmUgcXVvdGlu
Zy4NCg0KWWVzLCBJIHRoaW5rIHRoYXQgdGhhdCB1c2FnZSBvZiBfbWVtY3B5X2Zyb21pbygpIGlz
IGJhZCBhbmQgc2hvdWxkIGJlIGNoYW5nZWQuDQoNCi1TY290dA0KDQpPaywgSSB3aWxsIHRha2Ug
Y2FyZSB0aGF0IHRoZSByZXBsaWVzIGFyZSBiZWxvdyB3aGF0IEkgYW0gcXVvdGluZyBpbiBmdXR1
cmUuIA0KQ2FuIHRoaXMgcGF0Y2ggYmUgYXBwbGllZCBhcyBpdCBpcyB0aGVuPyBUaGUgY2hhbmdl
cyB5b3UgYXJlIHN1Z2dlc3RpbmcgY2FuIGNvbWUgaW4gYSBuZXcgcGF0Y2guDQoNCi1SYWdoYXYN
Cg0K

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-11-03 06:14:13

On Tue, 2015-11-03 at 00:09 -0600, Dogra Raghav-B46184 wrote:
-----Original Message-----
From: Wood Scott-B07421 
Sent: Tuesday, November 03, 2015 11:10 AM
To: Dogra Raghav-B46184 <redacted>
Cc: Kushwaha Prabhakar-B32579 <redacted>; 
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

On Mon, 2015-11-02 at 23:31 -0600, Dogra Raghav-B46184 wrote:
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Tuesday, November 03, 2015 4:31 AM
To: Dogra Raghav-B46184 <redacted>
Cc: Kushwaha Prabhakar-B32579 <redacted>; 
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry 
sequence

On Mon, 2015-11-02 at 00:12 -0600, Dogra Raghav-B46184 wrote:
quoted
-----Original Message-----
From: Raghav Dogra [mailto:raghav@freescale.com]
Sent: Friday, October 30, 2015 11:55 AM
To: linuxppc-dev@lists.ozlabs.org
Cc: Wood Scott-B07421 <redacted>; Kushwaha
Prabhakar-B32579 < prabhakar@freescale.com>; Dogra Raghav-B46184 
[off-list ref]
Subject: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry 
sequence

Modify platform driver suspend/resume to syscore suspend/resume. 
This is because p1022ds needs to use localbus when entering the PCIE 
resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-  
arch/powerpc/sysdev/fsl_lbc.c
quoted
51 +++++++++++++++++++++++++++++++++-------
---
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile 
b/arch/powerpc/sysdev/Makefile index f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)               += pmi.o
 obj-$(CONFIG_U3_DART)                += dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)     += mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)                += fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)                += fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)                += fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)                += fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)                += fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)    += fsl_85xx_l2ctlr.o 
fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)    += simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c 
b/arch/powerpc/sysdev/fsl_lbc.c index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
 
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, 
pm_message_t
state)
+static int fsl_lbc_syscore_suspend(void)
 {
-     struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-     struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+     struct fsl_lbc_ctrl *ctrl;
+     struct fsl_lbc_regs __iomem *lbc;
+
+     ctrl = fsl_lbc_ctrl_dev;
+     if (!ctrl)
+             goto out;
+
+     lbc = ctrl->regs;
+     if (!lbc)
+             goto out;
 
      ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), 
GFP_KERNEL);
      if (!ctrl->saved_regs)
              return -ENOMEM;
[Dogra Raghav-B46184] This is the existing upstream code. Are you 
suggesting to modify the upstream code to take care of individual 
registers?
What specifically do you mean by "the upstream code"?  What other tree 
are we talking about here?

-Scott

I meant that these two lines of code are not being added or modified 
by this patch. They already exist in the upstream tree. Are you 
suggesting I modify them as well?
-Raghav
I have no idea which "two lines of code" you're talking about or how any 
comment I made applies to the above diff hunk.

OK, I looked at the original patch and I guess you're talking about the
_memcpy_fromio() that was *below* your comment?  Please configure your 
mailer to quote properly, and put your replies below what you're quoting.

Yes, I think that that usage of _memcpy_fromio() is bad and should be 
changed.

-Scott

Ok, I will take care that the replies are below what I am quoting in 
future. 
Also please make your mailer use proper quote markers.
Can this patch be applied as it is then? The changes you are suggesting can 
come in a new patch.
OK.

-Scott

RE: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Dogra Raghav <hidden>
Date: 2015-11-03 06:49:58

DQpIaSBTY290dCwNCg0KSSBqdXN0IGNoZWNrZWQgb24gcGF0Y2h3b3JrIGFuZCBub3RpY2VkIHRo
YXQgdGhlIG9yaWdpbmFsIHBhdGNoIGhhcyBiZWVuIG1vZGlmaWVkIGFzIHNvbWVob3cgbXkgb3Jp
Z2luYWwgY29tbWVudCBoYXMgYmVjb21lIHBhcnQgb2YgdGhlIHBhdGNoOg0KKwlpZiAoIWxiYykN
CisJCWdvdG8gb3V0Ow0KIA0KIAljdHJsLT5zYXZlZF9yZWdzID0ga21hbGxvYyhzaXplb2Yoc3Ry
dWN0IGZzbF9sYmNfcmVncyksIEdGUF9LRVJORUwpOw0KIAlpZiAoIWN0cmwtPnNhdmVkX3JlZ3Mp
DQogCQlyZXR1cm4gLUVOT01FTTsNCltEb2dyYSBSYWdoYXYtQjQ2MTg0XSBUaGlzIGlzIHRoZSBl
eGlzdGluZyB1cHN0cmVhbSBjb2RlLiBBcmUgeW91IHN1Z2dlc3RpbmcgdG8gbW9kaWZ5IHRoZSB1
cHN0cmVhbSBjb2RlIHRvIHRha2UgY2FyZSBvZiBpbmRpdmlkdWFsIHJlZ2lzdGVycz8NCiANCiAJ
X21lbWNweV9mcm9taW8oY3RybC0+c2F2ZWRfcmVncywgbGJjLCBzaXplb2Yoc3RydWN0IGZzbF9s
YmNfcmVncykpOw0KKw0KVGhlIHBhdGNod29yayBpcyBhbHNvIHNob3dpbmcgdHdvIGxpbmtzIGZv
ciB0aGUgcGF0Y2guIFBsZWFzZSBhcHBseSB0aGUgb3JpZ2luYWwgcGF0Y2ggcHJlc2VudCBhdDoN
Cmh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvNTM4NjA1Lw0KDQpJIHdpbGwgbG9v
ayBpbnRvIGhvdyB0aGlzIGhhcHBlbmVkIHRvIGF2b2lkIHN1Y2ggaW5jaWRlbnRzIGluIGZ1dHVy
ZS4NCg0KUmVnYXJkcywNClJhZ2hhdg0K

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-11-03 07:36:54

On Tue, 2015-11-03 at 00:33 -0600, Dogra Raghav-B46184 wrote:
Hi Scott,

I just checked on patchwork and noticed that the original patch has been 
modified as somehow my original comment has become part of the patch:
+     if (!lbc)
+             goto out;
 
      ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
      if (!ctrl->saved_regs)
              return -ENOMEM;
[Dogra Raghav-B46184] This is the existing upstream code. Are you 
suggesting to modify the upstream code to take care of individual registers?
 
      _memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs));
+
The patchwork is also showing two links for the patch. Please apply the 
original patch present at:
https://patchwork.ozlabs.org/patch/538605/

I will look into how this happened to avoid such incidents in future.
Your reply looked like a new patch, so Patchwork treated it as such.  If you 
fix your mailer to use proper quote markers (the > at the beginning of each 
line) then this won't happen.

-Scott

RE: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Dogra Raghav <hidden>
Date: 2015-11-03 09:12:39

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMDMsIDIwMTUgMTowNyBQTQ0KPiBUbzogRG9n
cmEgUmFnaGF2LUI0NjE4NCA8cmFnaGF2QGZyZWVzY2FsZS5jb20+DQo+IENjOiBLdXNod2FoYSBQ
cmFiaGFrYXItQjMyNTc5IDxwcmFiaGFrYXJAZnJlZXNjYWxlLmNvbT47IGxpbnV4cHBjLQ0KPiBk
ZXZAbGlzdHMub3psYWJzLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gbXBjODV4eC9s
YmM6IG1vZGlmeSBzdXNwZW5kL3Jlc3VtZSBlbnRyeQ0KPiBzZXF1ZW5jZQ0KPiANCj4gT24gVHVl
LCAyMDE1LTExLTAzIGF0IDAwOjMzIC0wNjAwLCBEb2dyYSBSYWdoYXYtQjQ2MTg0IHdyb3RlOg0K
PiA+IEhpIFNjb3R0LA0KPiA+DQo+ID4gSSBqdXN0IGNoZWNrZWQgb24gcGF0Y2h3b3JrIGFuZCBu
b3RpY2VkIHRoYXQgdGhlIG9yaWdpbmFsIHBhdGNoIGhhcw0KPiA+IGJlZW4gbW9kaWZpZWQgYXMg
c29tZWhvdyBteSBvcmlnaW5hbCBjb21tZW50IGhhcyBiZWNvbWUgcGFydCBvZiB0aGUNCj4gcGF0
Y2g6DQo+ID4gKyAgICAgaWYgKCFsYmMpDQo+ID4gKyAgICAgICAgICAgICBnb3RvIG91dDsNCj4g
Pg0KPiA+ICAgICAgIGN0cmwtPnNhdmVkX3JlZ3MgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgZnNs
X2xiY19yZWdzKSwgR0ZQX0tFUk5FTCk7DQo+ID4gICAgICAgaWYgKCFjdHJsLT5zYXZlZF9yZWdz
KQ0KPiA+ICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gW0RvZ3JhIFJhZ2hhdi1C
NDYxODRdIFRoaXMgaXMgdGhlIGV4aXN0aW5nIHVwc3RyZWFtIGNvZGUuIEFyZSB5b3UNCj4gPiBz
dWdnZXN0aW5nIHRvIG1vZGlmeSB0aGUgdXBzdHJlYW0gY29kZSB0byB0YWtlIGNhcmUgb2YgaW5k
aXZpZHVhbA0KPiByZWdpc3RlcnM/DQo+ID4NCj4gPiAgICAgICBfbWVtY3B5X2Zyb21pbyhjdHJs
LT5zYXZlZF9yZWdzLCBsYmMsIHNpemVvZihzdHJ1Y3QNCj4gPiBmc2xfbGJjX3JlZ3MpKTsNCj4g
PiArDQo+ID4gVGhlIHBhdGNod29yayBpcyBhbHNvIHNob3dpbmcgdHdvIGxpbmtzIGZvciB0aGUg
cGF0Y2guIFBsZWFzZSBhcHBseQ0KPiA+IHRoZSBvcmlnaW5hbCBwYXRjaCBwcmVzZW50IGF0Og0K
PiA+IGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvNTM4NjA1Lw0KPiA+DQo+ID4g
SSB3aWxsIGxvb2sgaW50byBob3cgdGhpcyBoYXBwZW5lZCB0byBhdm9pZCBzdWNoIGluY2lkZW50
cyBpbiBmdXR1cmUuDQo+IA0KPiBZb3VyIHJlcGx5IGxvb2tlZCBsaWtlIGEgbmV3IHBhdGNoLCBz
byBQYXRjaHdvcmsgdHJlYXRlZCBpdCBhcyBzdWNoLiAgSWYgeW91IGZpeA0KPiB5b3VyIG1haWxl
ciB0byB1c2UgcHJvcGVyIHF1b3RlIG1hcmtlcnMgKHRoZSA+IGF0IHRoZSBiZWdpbm5pbmcgb2Yg
ZWFjaA0KPiBsaW5lKSB0aGVuIHRoaXMgd29uJ3QgaGFwcGVuLg0KPiANCj4gLVNjb3R0DQoNCk9r
LCBzb3J0ZWQuDQoNCi1SYWdoYXYNCg==

Re: [PATCH 1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-12-23 21:11:14

On Fri, 2015-10-30 at 11:54 +0530, Raghav Dogra wrote:
quoted hunk
Modify platform driver suspend/resume to syscore
suspend/resume. This is because p1022ds needs to use
localbus when entering the PCIE resume.

Signed-off-by: Raghav Dogra <redacted>
---
 arch/powerpc/sysdev/Makefile  |  2 +-
 arch/powerpc/sysdev/fsl_lbc.c | 51 +++++++++++++++++++++++++++++++++-------
---
 2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index f7cb2a1..4c19e614 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -18,9 +18,9 @@ obj-$(CONFIG_PPC_PMI)		+= pmi.o
 obj-$(CONFIG_U3_DART)		+= dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)	+= mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)		+= fsl_soc.o fsl_mpic_err.o
+obj-$(CONFIG_FSL_LBC)		+= fsl_lbc.o
 obj-$(CONFIG_FSL_PCI)		+= fsl_pci.o $(fsl-msi-obj-y)
 obj-$(CONFIG_FSL_PMC)		+= fsl_pmc.o
-obj-$(CONFIG_FSL_LBC)		+= fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)		+= fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)	+= fsl_85xx_l2ctlr.o
fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)	+= simple_gpio.o
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c
index d631022..332d700 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -27,6 +27,7 @@
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/mod_devicetable.h>
+#include <linux/syscore_ops.h>
 #include <asm/prom.h>
 #include <asm/fsl_lbc.h>
 
@@ -354,24 +355,42 @@ err:
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t
state)
+static int fsl_lbc_syscore_suspend(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;
 
 	ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs),
GFP_KERNEL);
 	if (!ctrl->saved_regs)
 		return -ENOMEM;
 
 	_memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs));
+
+out:
 	return 0;
 }
 
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;
 
 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs,
@@ -379,7 +398,9 @@ static int fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs = NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
 #endif /* CONFIG_SUSPEND */
 
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] = {
 	{},
 };
 
+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops = {
+	.suspend = fsl_lbc_syscore_suspend,
+	.resume = fsl_lbc_syscore_resume,
+};
+#endif
+
 static struct platform_driver fsl_lbc_ctrl_driver = {
 	.driver = {
 		.name = "fsl-lbc",
 		.of_match_table = fsl_lbc_match,
 	},
 	.probe = fsl_lbc_ctrl_probe,
-#ifdef CONFIG_SUSPEND
-	.suspend     = fsl_lbc_suspend,
-	.resume      = fsl_lbc_resume,
-#endif
 };
 
 static int __init fsl_lbc_init(void)
 {
+#ifdef CONFIG_SUSPEND
+	register_syscore_ops(&lbc_syscore_pm_ops);
+#endif
 	return platform_driver_register(&fsl_lbc_ctrl_driver);
 }
-module_init(fsl_lbc_init);
+arch_initcall(fsl_lbc_init);
This was changed to subsys_initcall as of v4.2...  What tree did you use to
generate this patch?  I'll fix the conflict this time, but please always base
patches against the latest code -- and test them in that context.

-Scott

Re: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-12-24 04:19:42

On Fri, Oct 30, 2015 at 11:54:59AM +0530, Raghav Dogra wrote:
quoted hunk
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;
 
 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs,
@@ -379,7 +398,9 @@ static int fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs = NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
arch/powerpc/sysdev/fsl_lbc.c:401:2: error: 
'return' with no value, in function returning non-void [-Werror=return-type]

quoted hunk
 #endif /* CONFIG_SUSPEND */
 
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] = {
 	{},
 };
 
+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops = {
+	.suspend = fsl_lbc_syscore_suspend,
+	.resume = fsl_lbc_syscore_resume,
+};
+#endif
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
initialization from incompatible pointer type [-Werror]
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
(near initialization for 'lbc_syscore_pm_ops.resume') [-Werror]

-Scott

RE: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Kushwaha Prabhakar <hidden>
Date: 2015-12-24 05:11:56

-----Original Message-----
From: Wood Scott-B07421
Sent: Thursday, December 24, 2015 9:49 AM
To: Dogra Raghav-B46184 <redacted>
Cc: linuxppc-dev@lists.ozlabs.org; Kushwaha Prabhakar-B32579
[off-list ref]
Subject: Re: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence
=20
On Fri, Oct 30, 2015 at 11:54:59AM +0530, Raghav Dogra wrote:
quoted
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl =3D dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc =3D ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl =3D fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc =3D ctrl->regs;
+	if (!lbc)
+		goto out;

 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs, @@ -379,7 +398,9 @@
static int
quoted
fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs =3D NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
=20
arch/powerpc/sysdev/fsl_lbc.c:401:2: error:
'return' with no value, in function returning non-void [-Werror=3Dreturn-=
type]
=20
=20
quoted
 #endif /* CONFIG_SUSPEND */
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] =
=3D
{
quoted
 	{},
 };

+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops =3D {
+	.suspend =3D fsl_lbc_syscore_suspend,
+	.resume =3D fsl_lbc_syscore_resume,
+};
+#endif
=20
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
initialization from incompatible pointer type [-Werror]
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
(near initialization for 'lbc_syscore_pm_ops.resume') [-Werror]
=20
Can you please help us with the tool-chain used for compiling.

--prabhakar

Re: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Scott Wood <hidden>
Date: 2015-12-24 04:49:27

On Wed, 2015-12-23 at 22:38 -0600, Kushwaha Prabhakar-B32579 wrote:
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Thursday, December 24, 2015 9:49 AM
To: Dogra Raghav-B46184 <redacted>
Cc: linuxppc-dev@lists.ozlabs.org; Kushwaha Prabhakar-B32579
[off-list ref]
Subject: Re: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence

On Fri, Oct 30, 2015 at 11:54:59AM +0530, Raghav Dogra wrote:
quoted
 /* restore lbc registers */
-static int fsl_lbc_resume(struct platform_device *pdev)
+static int fsl_lbc_syscore_resume(void)
 {
-	struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
-	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+	struct fsl_lbc_ctrl *ctrl;
+	struct fsl_lbc_regs __iomem *lbc;
+
+	ctrl = fsl_lbc_ctrl_dev;
+	if (!ctrl)
+		goto out;
+
+	lbc = ctrl->regs;
+	if (!lbc)
+		goto out;

 	if (ctrl->saved_regs) {
 		_memcpy_toio(lbc, ctrl->saved_regs, @@ -379,7 +398,9 @@
static int
quoted
fsl_lbc_resume(struct platform_device *pdev)
 		kfree(ctrl->saved_regs);
 		ctrl->saved_regs = NULL;
 	}
-	return 0;
+
+out:
+	return;
 }
arch/powerpc/sysdev/fsl_lbc.c:401:2: error:
'return' with no value, in function returning non-void [-Werror=return
-type]

quoted
 #endif /* CONFIG_SUSPEND */
@@ -391,20 +412,26 @@ static const struct of_device_id fsl_lbc_match[] =
{
quoted
 	{},
 };

+#ifdef CONFIG_SUSPEND
+static struct syscore_ops lbc_syscore_pm_ops = {
+	.suspend = fsl_lbc_syscore_suspend,
+	.resume = fsl_lbc_syscore_resume,
+};
+#endif
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
initialization from incompatible pointer type [-Werror]
arch/powerpc/sysdev/fsl_lbc.c:416:2: error:
(near initialization for 'lbc_syscore_pm_ops.resume') [-Werror]
Can you please help us with the tool-chain used for compiling.
It doesn't matter.  The patch is clearly wrong based on inspection.

-Scott

RE: [1/2] mpc85xx/lbc: modify suspend/resume entry sequence

From: Kushwaha Prabhakar <hidden>
Date: 2015-12-24 05:36:45

DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdvb2QgU2NvdHQtQjA3NDIx
DQo+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyNCwgMjAxNSAxMDoxOSBBTQ0KPiBUbzogS3Vz
aHdhaGEgUHJhYmhha2FyLUIzMjU3OSA8cHJhYmhha2FyQGZyZWVzY2FsZS5jb20+OyBEb2dyYQ0K
PiBSYWdoYXYtQjQ2MTg0IDxyYWdoYXZAZnJlZXNjYWxlLmNvbT4NCj4gQ2M6IGxpbnV4cHBjLWRl
dkBsaXN0cy5vemxhYnMub3JnDQo+IFN1YmplY3Q6IFJlOiBbMS8yXSBtcGM4NXh4L2xiYzogbW9k
aWZ5IHN1c3BlbmQvcmVzdW1lIGVudHJ5IHNlcXVlbmNlDQo+IA0KPiBPbiBXZWQsIDIwMTUtMTIt
MjMgYXQgMjI6MzggLTA2MDAsIEt1c2h3YWhhIFByYWJoYWthci1CMzI1Nzkgd3JvdGU6DQo+ID4g
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyNCwgMjAxNSA5OjQ5IEFNDQo+ID4g
PiBUbzogRG9ncmEgUmFnaGF2LUI0NjE4NCA8cmFnaGF2QGZyZWVzY2FsZS5jb20+DQo+ID4gPiBD
YzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IEt1c2h3YWhhIFByYWJoYWthci1CMzI1
NzkNCj4gPiA+IDxwcmFiaGFrYXJAZnJlZXNjYWxlLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBb
MS8yXSBtcGM4NXh4L2xiYzogbW9kaWZ5IHN1c3BlbmQvcmVzdW1lIGVudHJ5IHNlcXVlbmNlDQo+
ID4gPg0KPiA+ID4gT24gRnJpLCBPY3QgMzAsIDIwMTUgYXQgMTE6NTQ6NTlBTSArMDUzMCwgUmFn
aGF2IERvZ3JhIHdyb3RlOg0KPiA+ID4gPiAgLyogcmVzdG9yZSBsYmMgcmVnaXN0ZXJzICovDQo+
ID4gPiA+IC1zdGF0aWMgaW50IGZzbF9sYmNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug
KnBkZXYpDQo+ID4gPiA+ICtzdGF0aWMgaW50IGZzbF9sYmNfc3lzY29yZV9yZXN1bWUodm9pZCkN
Cj4gPiA+ID4gIHsNCj4gPiA+ID4gLQlzdHJ1Y3QgZnNsX2xiY19jdHJsICpjdHJsID0gZGV2X2dl
dF9kcnZkYXRhKCZwZGV2LT5kZXYpOw0KPiA+ID4gPiAtCXN0cnVjdCBmc2xfbGJjX3JlZ3MgX19p
b21lbSAqbGJjID0gY3RybC0+cmVnczsNCj4gPiA+ID4gKwlzdHJ1Y3QgZnNsX2xiY19jdHJsICpj
dHJsOw0KPiA+ID4gPiArCXN0cnVjdCBmc2xfbGJjX3JlZ3MgX19pb21lbSAqbGJjOw0KPiA+ID4g
PiArDQo+ID4gPiA+ICsJY3RybCA9IGZzbF9sYmNfY3RybF9kZXY7DQo+ID4gPiA+ICsJaWYgKCFj
dHJsKQ0KPiA+ID4gPiArCQlnb3RvIG91dDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWxiYyA9IGN0
cmwtPnJlZ3M7DQo+ID4gPiA+ICsJaWYgKCFsYmMpDQo+ID4gPiA+ICsJCWdvdG8gb3V0Ow0KPiA+
ID4gPg0KPiA+ID4gPiAgCWlmIChjdHJsLT5zYXZlZF9yZWdzKSB7DQo+ID4gPiA+ICAJCV9tZW1j
cHlfdG9pbyhsYmMsIGN0cmwtPnNhdmVkX3JlZ3MsIEBAIC0zNzksNyArMzk4LDkgQEANCj4gPiA+
IHN0YXRpYyBpbnQNCj4gPiA+ID4gZnNsX2xiY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2Rldmlj
ZSAqcGRldikNCj4gPiA+ID4gIAkJa2ZyZWUoY3RybC0+c2F2ZWRfcmVncyk7DQo+ID4gPiA+ICAJ
CWN0cmwtPnNhdmVkX3JlZ3MgPSBOVUxMOw0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gLQlyZXR1cm4g
MDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArb3V0Og0KPiA+ID4gPiArCXJldHVybjsNCj4gPiA+ID4g
IH0NCj4gPiA+DQo+ID4gPiBhcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9sYmMuYzo0MDE6MjogZXJy
b3I6DQo+ID4gPiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcg
bm9uLXZvaWQNCj4gPiA+IFstV2Vycm9yPXJldHVybiAtdHlwZV0NCj4gPiA+DQo+ID4gPg0KPiA+
ID4gPiAgI2VuZGlmIC8qIENPTkZJR19TVVNQRU5EICovDQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0z
OTEsMjAgKzQxMiwyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZA0KPiA+ID4g
PiBmc2xfbGJjX21hdGNoW10gPQ0KPiA+ID4gew0KPiA+ID4gPiAgCXt9LA0KPiA+ID4gPiAgfTsN
Cj4gPiA+ID4NCj4gPiA+ID4gKyNpZmRlZiBDT05GSUdfU1VTUEVORA0KPiA+ID4gPiArc3RhdGlj
IHN0cnVjdCBzeXNjb3JlX29wcyBsYmNfc3lzY29yZV9wbV9vcHMgPSB7DQo+ID4gPiA+ICsJLnN1
c3BlbmQgPSBmc2xfbGJjX3N5c2NvcmVfc3VzcGVuZCwNCj4gPiA+ID4gKwkucmVzdW1lID0gZnNs
X2xiY19zeXNjb3JlX3Jlc3VtZSwgfTsgI2VuZGlmDQo+ID4gPg0KPiA+ID4gYXJjaC9wb3dlcnBj
L3N5c2Rldi9mc2xfbGJjLmM6NDE2OjI6IGVycm9yOg0KPiA+ID4gaW5pdGlhbGl6YXRpb24gZnJv
bSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yXQ0KPiA+ID4gYXJjaC9wb3dlcnBj
L3N5c2Rldi9mc2xfbGJjLmM6NDE2OjI6IGVycm9yOg0KPiA+ID4gKG5lYXIgaW5pdGlhbGl6YXRp
b24gZm9yICdsYmNfc3lzY29yZV9wbV9vcHMucmVzdW1lJykgWy1XZXJyb3JdDQo+ID4gPg0KPiA+
DQo+ID4gQ2FuIHlvdSBwbGVhc2UgaGVscCB1cyB3aXRoIHRoZSB0b29sLWNoYWluIHVzZWQgZm9y
IGNvbXBpbGluZy4NCj4gDQo+IEl0IGRvZXNuJ3QgbWF0dGVyLiAgVGhlIHBhdGNoIGlzIGNsZWFy
bHkgd3JvbmcgYmFzZWQgb24gaW5zcGVjdGlvbi4NCj4gDQoNCkNhbiB5b3UgcGxlYXNlIGhlbHAg
bWUgd2l0aCB0aGUgdGhpbmdzIHdoaWNoIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCk9yIA0KQ29tcGxl
dGUgcGF0Y2ggaXMgd3JvbmcuDQoNCi0tcHJhYmhha2FyDQoNCg==
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help