Lines Matching +full:force +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * lenovo-ymc.c - Lenovo Yoga Mode Control driver
13 #include <linux/input/sparse-keymap.h>
15 #include "ideapad-laptop.h"
17 #define LENOVO_YMC_EVENT_GUID "06129D99-6083-4164-81AD-F092F9D773A6"
18 #define LENOVO_YMC_QUERY_GUID "09B0EE6E-C3FD-4243-8DA1-7911FF80BB8C"
23 static bool force; variable
24 module_param(force, bool, 0444);
25 MODULE_PARM_DESC(force, "Force loading on boards without a convertible DMI chassis-type");
61 struct lenovo_ymc_private *priv = dev_get_drvdata(&wdev->dev); in lenovo_ymc_notify()
75 dev_warn(&wdev->dev, in lenovo_ymc_notify()
83 if (obj->type != ACPI_TYPE_INTEGER) { in lenovo_ymc_notify()
84 dev_warn(&wdev->dev, in lenovo_ymc_notify()
88 code = obj->integer.value; in lenovo_ymc_notify()
90 if (!sparse_keymap_report_event(priv->input_dev, code, 1, true)) in lenovo_ymc_notify()
91 dev_warn(&wdev->dev, "Unknown key %d pressed\n", code); in lenovo_ymc_notify()
105 if (force) in lenovo_ymc_probe()
106 dev_info(&wdev->dev, "Force loading Lenovo YMC support\n"); in lenovo_ymc_probe()
108 return -ENODEV; in lenovo_ymc_probe()
111 priv = devm_kzalloc(&wdev->dev, sizeof(*priv), GFP_KERNEL); in lenovo_ymc_probe()
113 return -ENOMEM; in lenovo_ymc_probe()
115 input_dev = devm_input_allocate_device(&wdev->dev); in lenovo_ymc_probe()
117 return -ENOMEM; in lenovo_ymc_probe()
119 input_dev->name = "Lenovo Yoga Tablet Mode Control switch"; in lenovo_ymc_probe()
120 input_dev->phys = LENOVO_YMC_EVENT_GUID "/input0"; in lenovo_ymc_probe()
121 input_dev->id.bustype = BUS_HOST; in lenovo_ymc_probe()
122 input_dev->dev.parent = &wdev->dev; in lenovo_ymc_probe()
125 dev_err(&wdev->dev, in lenovo_ymc_probe()
132 dev_err(&wdev->dev, in lenovo_ymc_probe()
137 priv->input_dev = input_dev; in lenovo_ymc_probe()
138 dev_set_drvdata(&wdev->dev, priv); in lenovo_ymc_probe()
153 .name = "lenovo-ymc",
163 MODULE_DESCRIPTION("Lenovo Yoga Mode Control driver");