Message ID | 20220917064020.1639709-2-chenhuacai@loongson.cn (mailing list archive) |
---|---|
State | Accepted |
Commit | 08bf8122f6a29f6eba8277034667ad14b78872e3 |
Headers | show |
Series | [1/2] Input: i8042: Rename i8042-x86ia64io.h to i8042-acpipnpio.h | expand |
On Sat, Sep 17, 2022 at 14:40, Huacai Chen <chenhuacai@loongson.cn> wrote: > LoongArch uses ACPI and nearly the same as X86/IA64 for 8042. So modify > i8042-acpipnpio.h slightly and enable it for LoongArch in i8042.h. Then > i8042 driver can work well under the ACPI firmware with PNP typed key- > board and mouse configured in DSDT. > > Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> I would have split the pr_info() move in its own patch since it seems like a "valid fix" on its own, but i'm probably too pedantic about this. So, please take my: Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> > --- > drivers/input/serio/i8042-acpipnpio.h | 8 ++++++-- > drivers/input/serio/i8042.h | 2 +- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/input/serio/i8042-acpipnpio.h b/drivers/input/serio/i8042-acpipnpio.h > index d14b9fb59d6c..c22151f180bb 100644 > --- a/drivers/input/serio/i8042-acpipnpio.h > +++ b/drivers/input/serio/i8042-acpipnpio.h > @@ -2,6 +2,7 @@ > #ifndef _I8042_ACPIPNPIO_H > #define _I8042_ACPIPNPIO_H > > +#include <linux/acpi.h> > > #ifdef CONFIG_X86 > #include <asm/x86_init.h> > @@ -1449,16 +1450,19 @@ static int __init i8042_pnp_init(void) > > if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) { > i8042_pnp_exit(); > + pr_info("PNP: No PS/2 controller found.\n"); > #if defined(__ia64__) > return -ENODEV; > +#elif defined(__loongarch__) > + if (acpi_disabled == 0) > + return -ENODEV; > #else > - pr_info("PNP: No PS/2 controller found.\n"); > if (x86_platform.legacy.i8042 != > X86_LEGACY_I8042_EXPECTED_PRESENT) > return -ENODEV; > +#endif > pr_info("Probing ports directly.\n"); > return 0; > -#endif > } > > if (i8042_pnp_kbd_devices) > diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h > index bf2592fa9a78..adb5173372d3 100644 > --- a/drivers/input/serio/i8042.h > +++ b/drivers/input/serio/i8042.h > @@ -19,7 +19,7 @@ > #include "i8042-snirm.h" > #elif defined(CONFIG_SPARC) > #include "i8042-sparcio.h" > -#elif defined(CONFIG_X86) || defined(CONFIG_IA64) > +#elif defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_LOONGARCH) > #include "i8042-acpipnpio.h" > #else > #include "i8042-io.h" > -- > 2.31.1
Hi, Mattijs, On Thu, Sep 22, 2022 at 4:32 PM Mattijs Korpershoek <mkorpershoek@baylibre.com> wrote: > > On Sat, Sep 17, 2022 at 14:40, Huacai Chen <chenhuacai@loongson.cn> wrote: > > > LoongArch uses ACPI and nearly the same as X86/IA64 for 8042. So modify > > i8042-acpipnpio.h slightly and enable it for LoongArch in i8042.h. Then > > i8042 driver can work well under the ACPI firmware with PNP typed key- > > board and mouse configured in DSDT. > > > > Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> > > I would have split the pr_info() move in its own patch since it seems > like a "valid fix" on its own, but i'm probably too pedantic about this. > > So, please take my: > > Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> I think the pr_info is needed for all architectures, and the moving is very simple so I haven't split it. But anyway, if Dmitry also thinks this patch should be split, I will send a new version. :) Huacai > > > --- > > drivers/input/serio/i8042-acpipnpio.h | 8 ++++++-- > > drivers/input/serio/i8042.h | 2 +- > > 2 files changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/input/serio/i8042-acpipnpio.h b/drivers/input/serio/i8042-acpipnpio.h > > index d14b9fb59d6c..c22151f180bb 100644 > > --- a/drivers/input/serio/i8042-acpipnpio.h > > +++ b/drivers/input/serio/i8042-acpipnpio.h > > @@ -2,6 +2,7 @@ > > #ifndef _I8042_ACPIPNPIO_H > > #define _I8042_ACPIPNPIO_H > > > > +#include <linux/acpi.h> > > > > #ifdef CONFIG_X86 > > #include <asm/x86_init.h> > > @@ -1449,16 +1450,19 @@ static int __init i8042_pnp_init(void) > > > > if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) { > > i8042_pnp_exit(); > > + pr_info("PNP: No PS/2 controller found.\n"); > > #if defined(__ia64__) > > return -ENODEV; > > +#elif defined(__loongarch__) > > + if (acpi_disabled == 0) > > + return -ENODEV; > > #else > > - pr_info("PNP: No PS/2 controller found.\n"); > > if (x86_platform.legacy.i8042 != > > X86_LEGACY_I8042_EXPECTED_PRESENT) > > return -ENODEV; > > +#endif > > pr_info("Probing ports directly.\n"); > > return 0; > > -#endif > > } > > > > if (i8042_pnp_kbd_devices) > > diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h > > index bf2592fa9a78..adb5173372d3 100644 > > --- a/drivers/input/serio/i8042.h > > +++ b/drivers/input/serio/i8042.h > > @@ -19,7 +19,7 @@ > > #include "i8042-snirm.h" > > #elif defined(CONFIG_SPARC) > > #include "i8042-sparcio.h" > > -#elif defined(CONFIG_X86) || defined(CONFIG_IA64) > > +#elif defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_LOONGARCH) > > #include "i8042-acpipnpio.h" > > #else > > #include "i8042-io.h" > > -- > > 2.31.1 >
On Fri, Sep 30, 2022 at 10:41:59AM +0800, Huacai Chen wrote: > Hi, Mattijs, > > On Thu, Sep 22, 2022 at 4:32 PM Mattijs Korpershoek > <mkorpershoek@baylibre.com> wrote: > > > > On Sat, Sep 17, 2022 at 14:40, Huacai Chen <chenhuacai@loongson.cn> wrote: > > > > > LoongArch uses ACPI and nearly the same as X86/IA64 for 8042. So modify > > > i8042-acpipnpio.h slightly and enable it for LoongArch in i8042.h. Then > > > i8042 driver can work well under the ACPI firmware with PNP typed key- > > > board and mouse configured in DSDT. > > > > > > Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> > > > > I would have split the pr_info() move in its own patch since it seems > > like a "valid fix" on its own, but i'm probably too pedantic about this. > > > > So, please take my: > > > > Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> > I think the pr_info is needed for all architectures, and the moving is > very simple so I haven't split it. But anyway, if Dmitry also thinks > this patch should be split, I will send a new version. :) The reason for ia64 not emitting this message is because we "trust" ia64 firmware and it is quite normal for it not to have i8042 implementation, whereas there are a lot of legacy devices on x86 and not having PS/2 keyboard is still not very common. I moved the pr_info() back into x86/loongarch branch and applied. Thanks.
diff --git a/drivers/input/serio/i8042-acpipnpio.h b/drivers/input/serio/i8042-acpipnpio.h index d14b9fb59d6c..c22151f180bb 100644 --- a/drivers/input/serio/i8042-acpipnpio.h +++ b/drivers/input/serio/i8042-acpipnpio.h @@ -2,6 +2,7 @@ #ifndef _I8042_ACPIPNPIO_H #define _I8042_ACPIPNPIO_H +#include <linux/acpi.h> #ifdef CONFIG_X86 #include <asm/x86_init.h> @@ -1449,16 +1450,19 @@ static int __init i8042_pnp_init(void) if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) { i8042_pnp_exit(); + pr_info("PNP: No PS/2 controller found.\n"); #if defined(__ia64__) return -ENODEV; +#elif defined(__loongarch__) + if (acpi_disabled == 0) + return -ENODEV; #else - pr_info("PNP: No PS/2 controller found.\n"); if (x86_platform.legacy.i8042 != X86_LEGACY_I8042_EXPECTED_PRESENT) return -ENODEV; +#endif pr_info("Probing ports directly.\n"); return 0; -#endif } if (i8042_pnp_kbd_devices) diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index bf2592fa9a78..adb5173372d3 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h @@ -19,7 +19,7 @@ #include "i8042-snirm.h" #elif defined(CONFIG_SPARC) #include "i8042-sparcio.h" -#elif defined(CONFIG_X86) || defined(CONFIG_IA64) +#elif defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_LOONGARCH) #include "i8042-acpipnpio.h" #else #include "i8042-io.h"
LoongArch uses ACPI and nearly the same as X86/IA64 for 8042. So modify i8042-acpipnpio.h slightly and enable it for LoongArch in i8042.h. Then i8042 driver can work well under the ACPI firmware with PNP typed key- board and mouse configured in DSDT. Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> --- drivers/input/serio/i8042-acpipnpio.h | 8 ++++++-- drivers/input/serio/i8042.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-)