Lines Matching +full:fn +full:- +full:keymap

1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*-*-linux-c-*-*/
10 * msi-laptop.c - MSI S270 laptop support. This laptop is sold under
15 * This driver exports a few files in /sys/devices/platform/msi-laptop-pf/:
17 * lcd_level - Screen brightness: contains a single integer in the
20 * auto_brightness - Enable automatic brightness control: contains
25 * wlan - WLAN subsystem enabled: contains either 0 or 1. (ro)
27 * bluetooth - Bluetooth subsystem enabled: contains either 0 or 1
33 * available to userspace under /sys/class/backlight/msi-laptop-bl/.
53 #include <linux/input/sparse-keymap.h>
69 /* For set SCM load flag to disable BIOS fn key */
74 /* Power LED is orange - Turbo mode */
76 /* Power LED is green - ECO mode */
118 /* Some MSI 3G netbook only have one fn key to control
121 * fn key, then control Wlan/Bluetooth/3G by SCM (software control by
123 * On Linux, msi-laptop driver will do the same thing to disable the
149 return -EINVAL; in set_lcd_level()
210 return -EINVAL; in set_device_state()
212 if (quirks->ec_read_only) in set_device_state()
213 return -EOPNOTSUPP; in set_device_state()
295 return set_lcd_level(b->props.brightness); in bl_update_status()
313 if (quirks->old_ec_model) { in show_wlan()
337 if (quirks->old_ec_model) { in show_bluetooth()
362 if (quirks->old_ec_model) in show_threeg()
363 return -ENODEV; in show_threeg()
399 return -EINVAL; in store_lcd_level()
428 return -EINVAL; in store_auto_brightness()
515 return -EINVAL; in store_auto_fan()
563 .name = "msi-laptop-pf",
588 pr_info("Identified laptop model '%s'\n", dmi->ident); in dmi_check_cb()
590 quirks = dmi->driver_data; in dmi_check_cb()
599 DMI_MATCH(DMI_SYS_VENDOR, "MICRO-STAR INT'L CO.,LTD"),
600 DMI_MATCH(DMI_PRODUCT_NAME, "MS-1013"),
603 "MICRO-STAR INT'L CO.,LTD")
611 DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
612 DMI_MATCH(DMI_PRODUCT_NAME, "MS-1058"),
614 DMI_MATCH(DMI_BOARD_NAME, "MS-1058")
622 DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
623 DMI_MATCH(DMI_PRODUCT_NAME, "MS-1412"),
625 DMI_MATCH(DMI_BOARD_NAME, "MS-1412")
637 "MICRO-STAR INT'L CO.,LTD")
646 "MICRO-STAR INTERNATIONAL CO., LTD"),
647 DMI_MATCH(DMI_PRODUCT_NAME, "MS-N034"),
649 "MICRO-STAR INTERNATIONAL CO., LTD")
658 "MICRO-STAR INTERNATIONAL CO., LTD"),
659 DMI_MATCH(DMI_PRODUCT_NAME, "MS-N051"),
661 "MICRO-STAR INTERNATIONAL CO., LTD")
670 "MICRO-STAR INTERNATIONAL CO., LTD"),
671 DMI_MATCH(DMI_PRODUCT_NAME, "MS-N014"),
680 "Micro-Star International"),
690 "Micro-Star International Co., Ltd."),
700 "MICRO-STAR INTERNATIONAL CO., LTD"),
770 if (quirks->ec_read_only) in msi_rfkill_set_state()
822 if (quirks->ec_delay) { in msi_laptop_i8042_filter()
831 if (quirks->ec_delay) { in msi_laptop_i8042_filter()
868 rfk_bluetooth = rfkill_alloc("msi-bluetooth", &sdev->dev, in rfkill_init()
872 retval = -ENOMEM; in rfkill_init()
879 rfk_wlan = rfkill_alloc("msi-wlan", &sdev->dev, RFKILL_TYPE_WLAN, in rfkill_init()
882 retval = -ENOMEM; in rfkill_init()
890 rfk_threeg = rfkill_alloc("msi-threeg", &sdev->dev, in rfkill_init()
893 retval = -ENOMEM; in rfkill_init()
902 if (quirks->ec_delay) { in rfkill_init()
930 if (!quirks->load_scm_model) in msi_laptop_resume()
933 /* set load SCM to disable hardware control by fn key */ in msi_laptop_resume()
953 return -ENOMEM; in msi_laptop_input_setup()
955 msi_laptop_input_dev->name = "MSI Laptop hotkeys"; in msi_laptop_input_setup()
956 msi_laptop_input_dev->phys = "msi-laptop/input0"; in msi_laptop_input_setup()
957 msi_laptop_input_dev->id.bustype = BUS_HOST; in msi_laptop_input_setup()
980 if (!quirks->ec_read_only) { in load_scm_model_init()
990 /* disable hardware control by fn key */ in load_scm_model_init()
1035 return -ENODEV; in msi_init()
1044 if (!quirks->old_ec_model) in msi_init()
1048 return -EINVAL; in msi_init()
1052 if (quirks->old_ec_model || in msi_init()
1057 props.max_brightness = MSI_LCD_LEVEL_MAX - 1; in msi_init()
1058 msibl_device = backlight_device_register("msi-laptop-bl", NULL, in msi_init()
1071 msipf_device = platform_device_alloc("msi-laptop-pf", -1); in msi_init()
1073 ret = -ENOMEM; in msi_init()
1081 if (quirks->load_scm_model && (load_scm_model_init(msipf_device) < 0)) { in msi_init()
1082 ret = -EINVAL; in msi_init()
1086 ret = sysfs_create_group(&msipf_device->dev.kobj, in msi_init()
1091 if (!quirks->old_ec_model) { in msi_init()
1093 ret = device_create_file(&msipf_device->dev, in msi_init()
1098 ret = sysfs_create_group(&msipf_device->dev.kobj, in msi_init()
1116 sysfs_remove_group(&msipf_device->dev.kobj, &msipf_attribute_group); in msi_init()
1118 if (quirks->load_scm_model) { in msi_init()
1138 if (quirks->load_scm_model) { in msi_cleanup()
1146 sysfs_remove_group(&msipf_device->dev.kobj, &msipf_attribute_group); in msi_cleanup()
1147 if (!quirks->old_ec_model && threeg_exists) in msi_cleanup()
1148 device_remove_file(&msipf_device->dev, &dev_attr_threeg); in msi_cleanup()
1153 if (quirks->old_ec_model) { in msi_cleanup()
1170 MODULE_ALIAS("dmi:*:svnMICRO-STARINT'LCO.,LTD:pnMS-1013:pvr0131*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
1171 MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1058:pvr0581:rvnMSI:rnMS-1058:*:ct10:*");
1172 MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1412:*:rvnMSI:rnMS-1412:*:cvnMICRO-STARINT'LCO.…
1173 MODULE_ALIAS("dmi:*:svnNOTEBOOK:pnSAM2000:pvr0131*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
1174 MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N034:*");
1175 MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N051:*");
1176 MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N014:*");
1177 MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnCR620:*");
1178 MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnU270series:*");
1179 MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnU90/U100:*");