Re: [PATCH 08/11] macintosh/via-pmu: Replace via-pmu68k driver with via-pmu driver

From: Finn Thain
Date: Wed Jun 06 2018 - 02:57:19 EST


On Mon, 4 Jun 2018, Geert Uytterhoeven wrote:

>
> > Don't call pmu_shutdown() or pmu_restart() on early PowerBooks: the
> > PMU device found in these PowerBooks isn't supported.
>
> Shouldn't that be a separate patch?
>
> > --- a/arch/m68k/mac/misc.c
> > +++ b/arch/m68k/mac/misc.c
>
> > @@ -477,9 +445,8 @@ void mac_poweroff(void)
> > macintosh_config->adb_type == MAC_ADB_CUDA) {
> > cuda_shutdown();
> > #endif
> > -#ifdef CONFIG_ADB_PMU68K
> > - } else if (macintosh_config->adb_type == MAC_ADB_PB1
> > - || macintosh_config->adb_type == MAC_ADB_PB2) {
> > +#ifdef CONFIG_ADB_PMU
> > + } else if (macintosh_config->adb_type == MAC_ADB_PB2) {
> > pmu_shutdown();
> > #endif
> > }
> > @@ -519,9 +486,8 @@ void mac_reset(void)
> > macintosh_config->adb_type == MAC_ADB_CUDA) {
> > cuda_restart();
> > #endif
> > -#ifdef CONFIG_ADB_PMU68K
> > - } else if (macintosh_config->adb_type == MAC_ADB_PB1
> > - || macintosh_config->adb_type == MAC_ADB_PB2) {
> > +#ifdef CONFIG_ADB_PMU
> > + } else if (macintosh_config->adb_type == MAC_ADB_PB2) {
> > pmu_restart();
> > #endif
> > } else if (CPU_IS_030) {
>

The stability problem here is bigger than just pmu_restart() and
pmu_shutdown(), so those hunks are insufficient. You need to prevent the
via-pmu68k driver from loading in the first place and to drop all the
PMU_68K_V1 cases.

But splitting this patch in that way creates potential merge conflicts,
which is a hassle. E.g. this hunk:

- ....
- switch (macintosh_config->adb_type) {
- case MAC_ADB_PB1:
- pmu_kind = PMU_68K_V1;
- break;
- case MAC_ADB_PB2:
- pmu_kind = PMU_68K_V2;
- break;
- default:
- pmu_kind = PMU_UNKNOWN;
- return -ENODEV;
- }
- ...

would get split over two patches.

The way I see it, having no PMU driver for PMU_68K_V1 machines is a bug.
And loading any of the existing PMU drivers on that hardware is also a
bug. These bugs are equivalent in that either one means you can't use the
keyboard, trackpad etc. So there's no value in cherry-picking the other
bug.

If you are using v4.17 on a PMU_68K_V1 machine, you probably already have
CONFIG_ADB_PMU68K=n. With that config, here's nothing to be gained from
bisecting these changes.

Does that make sense? Did I overlook other possible reason(s) to split up
this patch?

--