Skip to contentSkip to conversation

input: ambakmi: Fix system PM by converting to modern callbacks

PATCH New Ulf Hansson 3 participants 13 messages Apr 14, 2015 – Jul 16, 2015

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)
---
 drivers/input/serio/ambakmi.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/input/serio/ambakmi.c +7 -3
index 8b748d9..058e1d8 100644
@@ -175,15 +175,19 @@ static int amba_kmi_remove(struct amba_device *dev)
 	return 0;
 }
 
-static int amba_kmi_resume(struct amba_device *dev)
+#ifdef CONFIG_PM_SLEEP
+static int amba_kmi_resume(struct device *dev)
 {
-	struct amba_kmi_port *kmi = amba_get_drvdata(dev);
+	struct amba_kmi_port *kmi = dev_get_drvdata(dev);
 
 	/* kick the serio layer to rescan this port */
 	serio_reconnect(kmi->io);
 
 	return 0;
 }
+#endif
+
+static SIMPLE_DEV_PM_OPS(amba_kmi_dev_pm_ops, NULL, amba_kmi_resume);
 
 static struct amba_id amba_kmi_idtable[] = {
 	{
@@ -199,11 +203,11 @@ static struct amba_driver ambakmi_driver = {
 	.drv		= {
 		.name	= "kmi-pl050",
 		.owner	= THIS_MODULE,
+		.pm	= &amba_kmi_dev_pm_ops,
 	},
 	.id_table	= amba_kmi_idtable,
 	.probe		= amba_kmi_probe,
 	.remove		= amba_kmi_remove,
-	.resume		= amba_kmi_resume,
 };
 
 module_amba_driver(ambakmi_driver);
Signature · 1 line
1.9.1
maintainer
#1 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

If this has not been noticed since end of 2013 maybe we should drop the driver?

Quoted 46 lines
---
 drivers/input/serio/ambakmi.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/input/serio/ambakmi.c +7 -3
index 8b748d9..058e1d8 100644
@@ -175,15 +175,19 @@ static int amba_kmi_remove(struct amba_device *dev)
 	return 0;
 }
 
-static int amba_kmi_resume(struct amba_device *dev)
+#ifdef CONFIG_PM_SLEEP
+static int amba_kmi_resume(struct device *dev)
 {
-	struct amba_kmi_port *kmi = amba_get_drvdata(dev);
+	struct amba_kmi_port *kmi = dev_get_drvdata(dev);
 
 	/* kick the serio layer to rescan this port */
 	serio_reconnect(kmi->io);
 
 	return 0;
 }
+#endif
+
+static SIMPLE_DEV_PM_OPS(amba_kmi_dev_pm_ops, NULL, amba_kmi_resume);
 
 static struct amba_id amba_kmi_idtable[] = {
 	{
@@ -199,11 +203,11 @@ static struct amba_driver ambakmi_driver = {
 	.drv		= {
 		.name	= "kmi-pl050",
 		.owner	= THIS_MODULE,
+		.pm	= &amba_kmi_dev_pm_ops,
 	},
 	.id_table	= amba_kmi_idtable,
 	.probe		= amba_kmi_probe,
 	.remove		= amba_kmi_remove,
-	.resume		= amba_kmi_resume,
 };
 
 module_amba_driver(ambakmi_driver);
Signature · 1 line
1.9.1
Signature · 1 line
Dmitry
#2 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 10 lines · Dmitry Torokhov
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

If this has not been noticed since end of 2013 maybe we should drop the driver?

That's rather silly. It isn't a build breakage, and it's not a functional breakage. In fact, this driver gets build and boot tested every evening on hardware I have here in my autobuild system.

The regression is only visible if it is used on a platform with power management support, and that's probably close to none - unless hibernate support is enabled. I'm just pushing up some patches which fix long term hibernation issues on ARM.

If we apply your "lets drop stuff" argument, maybe we should drop ARM hibernation support because its been broken for many years... obviously that's also a rediculous suggestion.

Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
maintainer
#3 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 9 lines · Russell King - ARM Linux
Quoted 8 lines · Dmitry Torokhov
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)
Quoted 6 lines
Quoted 2 lines

If this has not been noticed since end of 2013 maybe we should drop the driver?

That's rather silly. It isn't a build breakage, and it's not a functional breakage. In fact, this driver gets build and boot tested every evening on hardware I have here in my autobuild system.

OK.

Quoted 9 lines

The regression is only visible if it is used on a platform with power management support, and that's probably close to none - unless hibernate support is enabled. I'm just pushing up some patches which fix long term hibernation issues on ARM.

If we apply your "lets drop stuff" argument, maybe we should drop ARM hibernation support because its been broken for many years... obviously that's also a rediculous suggestion.

Why is it a ridiculous suggestion? If it has been broken for many years I do not see why it has to be kept? Is there someone who is actively working on making it functional?

Thanks.

Signature · 1 line
Dmitry
#4 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 25 lines · Dmitry Torokhov
Quoted 9 lines · Russell King - ARM Linux
Quoted 8 lines · Dmitry Torokhov
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)
Quoted 6 lines
Quoted 2 lines

If this has not been noticed since end of 2013 maybe we should drop the driver?

That's rather silly. It isn't a build breakage, and it's not a functional breakage. In fact, this driver gets build and boot tested every evening on hardware I have here in my autobuild system.

OK.

Quoted 6 lines

The regression is only visible if it is used on a platform with power management support, and that's probably close to none - unless hibernate support is enabled. I'm just pushing up some patches which fix long term hibernation issues on ARM.

Quoted 7 lines
Quoted 3 lines

If we apply your "lets drop stuff" argument, maybe we should drop ARM hibernation support because its been broken for many years... obviously that's also a rediculous suggestion.

Why is it a ridiculous suggestion? If it has been broken for many years I do not see why it has to be kept? Is there someone who is actively working on making it functional?

I *didn't* say it was broken everywhere - it's exactly the same situation as ambakmi. It doesn't work in a certain scenario, but that doesn't mean it doesn't work at all, and it doesn't mean that there are no users of it.

The lesson I'm trying to teach you is that a patch or a report which says something is broken does not _necessarily_ mean it's broken everywhere, and jumping on the "oh we can remove it then" bandwagon immediately without taking the time to understand the nature of the breakage is a totally rediculous attitude for a kernel maintainer to take. In fact, it's positively harmful.

Had I not noticed your message, you would have probably ended up removing a driver which is very much in use, is functional, and therefore is not as broken as Ulf claims.

The other lesson to come away from this is that just because someone claims something is broken does *not* make it broken. It means _they_ are seeing some problem which maybe no one else is seeing. Again, that's no basis to jump on the "lets remove the whole driver then" bandwagon.

And I doubt that Ulf even has the hardware to be able to test this change, which makes it even worse.

So please, stop this idiotic "someone reports something broken, lets remove the driver" attitude without first analysing whether the breakage actually prevents anyone from using the driver.

Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
#5 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

[...]

Quoted 4 lines

Had I not noticed your message, you would have probably ended up removing a driver which is very much in use, is functional, and therefore is not as broken as Ulf claims.

I claimed the system PM needed to be fixed, nothing else. :-)

Quoted 8 lines

The other lesson to come away from this is that just because someone claims something is broken does *not* make it broken. It means _they_ are seeing some problem which maybe no one else is seeing. Again, that's no basis to jump on the "lets remove the whole driver then" bandwagon.

And I doubt that Ulf even has the hardware to be able to test this change, which makes it even worse.

Correct, this patch is only compile time tested.

Actually I found it when I just realized that commit 26825cfd90f9 ("ARM: 7914/1: amba: Drop legacy PM support and use the pm_generic functions"), missed to remove the legacy system PM callbacks from the struct amba_driver, as it should have.

I intended to send a patch for the above when I found these legacy callbacks still being used. Somehow I missed this once when removing the legacy system PM support in the amba bus. Sorry about that.

Kind regards
Uffe

maintainer
#6 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

In reply to Russell King - ARM Linux
Quoted 30 lines · Russell King - ARM Linux
Quoted 29 lines · Dmitry Torokhov
Quoted 9 lines · Russell King - ARM Linux
Quoted 8 lines · Dmitry Torokhov
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)
Quoted 6 lines
Quoted 2 lines

If this has not been noticed since end of 2013 maybe we should drop the driver?

That's rather silly. It isn't a build breakage, and it's not a functional breakage. In fact, this driver gets build and boot tested every evening on hardware I have here in my autobuild system.

OK.

Quoted 9 lines

The regression is only visible if it is used on a platform with power management support, and that's probably close to none - unless hibernate support is enabled. I'm just pushing up some patches which fix long term hibernation issues on ARM.

If we apply your "lets drop stuff" argument, maybe we should drop ARM hibernation support because its been broken for many years... obviously that's also a rediculous suggestion.

Quoted 7 lines
Quoted 3 lines

Why is it a ridiculous suggestion? If it has been broken for many years I do not see why it has to be kept? Is there someone who is actively working on making it functional?

I *didn't* say it was broken everywhere - it's exactly the same situation as ambakmi. It doesn't work in a certain scenario, but that doesn't mean it doesn't work at all, and it doesn't mean that there are no users of it.

I can only go by what you told me and if you re-read what you wrote above you will see that you said that "ARM hibernation support ... been broken for many years". You did not say that if was broken only in certain cases.

Quoted 2 lines

The lesson I'm trying to teach you is that a patch or a report which says

I do not need to you to "teach me a lesson", thank you very much. Please keep your condescension to yourself.

Quoted 6 lines

something is broken does not _necessarily_ mean it's broken everywhere, and jumping on the "oh we can remove it then" bandwagon immediately without taking the time to understand the nature of the breakage is a totally rediculous attitude for a kernel maintainer to take. In fact, it's positively harmful.

Quoted 8 lines

Had I not noticed your message, you would have probably ended up removing a driver which is very much in use, is functional, and therefore is not as broken as Ulf claims.

The other lesson to come away from this is that just because someone claims something is broken does *not* make it broken. It means _they_ are seeing some problem which maybe no one else is seeing. Again, that's no basis to jump on the "lets remove the whole driver then" bandwagon.

You were on the mail as well as arm list, so I was not concerned about accidentally removing something that is in active use. Still, when I see a patch to a driver that claims to fix a regression in basic functionality (and I do consider PM basic functionality nowadays) that was introduced about year and a half ago the question if this driver is still relevant is warranted. I can't keep in mind everyone's pet sub-arches and whether all drivers are used or not.

Quoted 3 lines

And I doubt that Ulf even has the hardware to be able to test this change, which makes it even worse.

But you will be able to, right?

Quoted 4 lines

So please, stop this idiotic "someone reports something broken, lets remove the driver" attitude without first analysing whether the breakage actually prevents anyone from using the driver.

Did you see the patch going in removing the driver? No? So take it easy, the process worked as it should have been - the question was posted and the answer was given.

Thanks.

Signature · 1 line
Dmitry
#7 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

In reply to Ulf Hansson
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

Kind regards
Uffe

Quoted 46 lines
---
 drivers/input/serio/ambakmi.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/input/serio/ambakmi.c +7 -4
index 8b748d9..058e1d8 100644
@@ -175,15 +175,19 @@ static int amba_kmi_remove(struct amba_device *dev)
        return 0;
 }
 
-static int amba_kmi_resume(struct amba_device *dev)
+#ifdef CONFIG_PM_SLEEP
+static int amba_kmi_resume(struct device *dev)
 {
-       struct amba_kmi_port *kmi = amba_get_drvdata(dev);
+       struct amba_kmi_port *kmi = dev_get_drvdata(dev);
 
        /* kick the serio layer to rescan this port */
        serio_reconnect(kmi->io);
 
        return 0;
 }
+#endif
+
+static SIMPLE_DEV_PM_OPS(amba_kmi_dev_pm_ops, NULL, amba_kmi_resume);
 
 static struct amba_id amba_kmi_idtable[] = {
        {
@@ -199,11 +203,11 @@ static struct amba_driver ambakmi_driver = {
        .drv            = {
                .name   = "kmi-pl050",
                .owner  = THIS_MODULE,
+               .pm     = &amba_kmi_dev_pm_ops,
        },
        .id_table       = amba_kmi_idtable,
        .probe          = amba_kmi_probe,
        .remove         = amba_kmi_remove,
-       .resume         = amba_kmi_resume,
 };
 
 module_amba_driver(ambakmi_driver);
--

1.9.1

#8 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 9 lines · Ulf Hansson
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

Why does it have a Fixes: tag? Is it fixing a real bug, or is it just fixing a warning that the kernel prints?

Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
#9 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 6 lines · Russell King - ARM Linux
Quoted 5 lines · Ulf Hansson
Quoted 4 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

Why does it have a Fixes: tag? Is it fixing a real bug, or is it just fixing a warning that the kernel prints?

I would expect it to fix a real bug, but I am not able to test this on HW.

Since the commit 26825cfd90f9, the amba bus doesn't invoke the legacy system PM callbacks any more. Instead it uses pm_generic_resume() as its ->resume() callback which means amba_kmi_resume() won't be invoked during system PM resume.

Kind regards
Uffe

maintainer
#10 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

In reply to Ulf Hansson
Quoted 9 lines · Ulf Hansson
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

I was hoping that Russel could give it a spin since he has the relevant hardware.

Thanks.

Signature · 1 line
Dmitry
#11 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 6 lines · Dmitry Torokhov
Quoted 5 lines · Ulf Hansson
Quoted 4 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

I was hoping that Russel could give it a spin since he has the relevant hardware.

Hmm, as there are still no progress could we give it a try and queue it to get some test in linux-next? I think the patch is trivial and it would be nice to get it queued as a fix.

Kind regards
Uffe

maintainer
#12 lore raw

PATCH 1/1 input: ambakmi: Fix system PM by converting to modern callbacks

Quoted 12 lines · Ulf Hansson
Quoted 11 lines · Dmitry Torokhov
Quoted 9 lines · Ulf Hansson
Quoted 6 lines · Ulf Hansson

The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks.

Fixes 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...)

What happened with this one? Can we queue it for 4.2?

Quoted 7 lines
Quoted 3 lines

I was hoping that Russel could give it a spin since he has the relevant hardware.

Hmm, as there are still no progress could we give it a try and queue it to get some test in linux-next? I think the patch is trivial and it would be nice to get it queued as a fix.

Yep. I removed #ifdef CONFIG_PM_SLEEP guard in favor of __maybe_unused and applied.

Thanks.

Signature · 1 line
Dmitry