···38413841ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS38423842M: Corentin Chary <corentin.chary@gmail.com>38433843M: Luke D. Jones <luke@ljones.dev>38443844+M: Denis Benato <benato.denis96@gmail.com>38443845L: platform-driver-x86@vger.kernel.org38453846S: Maintained38463847W: https://asus-linux.org/···1286312862K: \bSGX_12864128631286512864INTEL SKYLAKE INT3472 ACPI DEVICE DRIVER1286612866-M: Daniel Scally <djrscally@gmail.com>1286512865+M: Daniel Scally <dan.scally@ideasonboard.com>1286612866+M: Sakari Ailus <sakari.ailus@linux.intel.com>1286712867S: Maintained1286812868F: drivers/platform/x86/intel/int3472/1286912869F: include/linux/platform_data/x86/int3472.h
+10-6
drivers/platform/arm64/lenovo-thinkpad-t14s.c
···124124 if (ret < 0)125125 return ret;126126127127+ fsleep(10000);127128 return 0;128129}129130···162161163162out:164163 i2c_unlock_bus(client->adapter, I2C_LOCK_SEGMENT);164164+ fsleep(10000);165165 return ret;166166}167167···196194 ret = __i2c_transfer(client->adapter, &response, 1);197195 if (ret < 0)198196 goto out;197197+198198+ fsleep(10000);199199200200 ret = 0;201201···574570 return dev_err_probe(dev, PTR_ERR(ec->regmap),575571 "Failed to init regmap\n");576572577577- ret = devm_request_threaded_irq(dev, client->irq, NULL,578578- t14s_ec_irq_handler,579579- IRQF_ONESHOT, dev_name(dev), ec);580580- if (ret < 0)581581- return dev_err_probe(dev, ret, "Failed to get IRQ\n");582582-583573 ret = t14s_leds_probe(ec);584574 if (ret < 0)585575 return ret;···589591 ret = t14s_input_probe(ec);590592 if (ret < 0)591593 return ret;594594+595595+ ret = devm_request_threaded_irq(dev, client->irq, NULL,596596+ t14s_ec_irq_handler,597597+ IRQF_ONESHOT, dev_name(dev), ec);598598+ if (ret < 0)599599+ return dev_err_probe(dev, ret, "Failed to get IRQ\n");592600593601 /*594602 * Disable wakeup support by default, because the driver currently does
+1
drivers/platform/mellanox/mlxbf-pmc.c
···20152015 if (pmc->block[blk_num].type == MLXBF_PMC_TYPE_CRSPACE) {20162016 /* Program crspace counters to count clock cycles using "count_clock" sysfs */20172017 attr = &pmc->block[blk_num].attr_count_clock;20182018+ sysfs_attr_init(&attr->dev_attr.attr);20182019 attr->dev_attr.attr.mode = 0644;20192020 attr->dev_attr.show = mlxbf_pmc_count_clock_show;20202021 attr->dev_attr.store = mlxbf_pmc_count_clock_store;
+2-1
drivers/platform/x86/Kconfig
···440440 depends on INPUT441441 help442442 This driver provides supports for the wireless buttons found on some AMD,443443- HP, & Xioami laptops.443443+ HP, & Xiaomi laptops.444444 On such systems the driver should load automatically (via ACPI alias).445445446446 To compile this driver as a module, choose M here: the module will···553553config MSI_WMI_PLATFORM554554 tristate "MSI WMI Platform features"555555 depends on ACPI_WMI556556+ depends on DMI556557 depends on HWMON557558 help558559 Say Y here if you want to have support for WMI-based platform features
···4040 * @agent_type_mask: Bit mask of all hardware agents for this domain4141 * @uncore_attr_group: Attribute group storage4242 * @max_freq_khz_kobj_attr: Storage for kobject attribute max_freq_khz4343- * @mix_freq_khz_kobj_attr: Storage for kobject attribute min_freq_khz4343+ * @min_freq_khz_kobj_attr: Storage for kobject attribute min_freq_khz4444 * @initial_max_freq_khz_kobj_attr: Storage for kobject attribute initial_max_freq_khz4545 * @initial_min_freq_khz_kobj_attr: Storage for kobject attribute initial_min_freq_khz4646 * @current_freq_khz_kobj_attr: Storage for kobject attribute current_freq_khz···4848 * @fabric_cluster_id_kobj_attr: Storage for kobject attribute fabric_cluster_id4949 * @package_id_kobj_attr: Storage for kobject attribute package_id5050 * @elc_low_threshold_percent_kobj_attr:5151- Storage for kobject attribute elc_low_threshold_percent5151+ * Storage for kobject attribute elc_low_threshold_percent5252 * @elc_high_threshold_percent_kobj_attr:5353- Storage for kobject attribute elc_high_threshold_percent5353+ * Storage for kobject attribute elc_high_threshold_percent5454 * @elc_high_threshold_enable_kobj_attr:5555- Storage for kobject attribute elc_high_threshold_enable5555+ * Storage for kobject attribute elc_high_threshold_enable5656 * @elc_floor_freq_khz_kobj_attr: Storage for kobject attribute elc_floor_freq_khz5757 * @agent_types_kobj_attr: Storage for kobject attribute agent_type5858+ * @die_id_kobj_attr: Attribute storage for die_id information5859 * @uncore_attrs: Attribute storage for group creation5960 *6061 * This structure is used to encapsulate all data related to uncore sysfs
···631631#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */632632#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */633633634634+/*635635+ * Keycodes for hotkeys toggling the electronic privacy screen found on some636636+ * laptops on/off. Note when the embedded-controller turns on/off the eprivacy637637+ * screen itself then the state should be reported through drm connecter props:638638+ * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties639639+ * Except when implementing the drm connecter properties API is not possible640640+ * because e.g. the firmware does not allow querying the presence and/or status641641+ * of the eprivacy screen at boot.642642+ */643643+#define KEY_EPRIVACY_SCREEN_ON 0x252644644+#define KEY_EPRIVACY_SCREEN_OFF 0x253645645+634646#define KEY_KBDINPUTASSIST_PREV 0x260635647#define KEY_KBDINPUTASSIST_NEXT 0x261636648#define KEY_KBDINPUTASSIST_PREVGROUP 0x262
+27-23
include/uapi/linux/isst_if.h
···5252/**5353 * struct isst_if_cpu_maps - structure for CPU map IOCTL5454 * @cmd_count: Number of CPU mapping command in cpu_map[]5555- * @cpu_map[]: Holds one or more CPU map data structure5555+ * @cpu_map: Holds one or more CPU map data structure5656 *5757 * This structure used with ioctl ISST_IF_GET_PHY_ID to send5858 * one or more CPU mapping commands. Here IOCTL return value indicates···82828383/**8484 * struct isst_if_io_regs - structure for IO register commands8585- * @cmd_count: Number of io reg commands in io_reg[]8686- * @io_reg[]: Holds one or more io_reg command structure8585+ * @req_count: Number of io reg commands in io_reg[]8686+ * @io_reg: Holds one or more io_reg command structure8787 *8888 * This structure used with ioctl ISST_IF_IO_CMD to send8989 * one or more read/write commands to PUNIT. Here IOCTL return value···120120/**121121 * struct isst_if_mbox_cmds - structure for mailbox commands122122 * @cmd_count: Number of mailbox commands in mbox_cmd[]123123- * @mbox_cmd[]: Holds one or more mbox commands123123+ * @mbox_cmd: Holds one or more mbox commands124124 *125125 * This structure used with ioctl ISST_IF_MBOX_COMMAND to send126126 * one or more mailbox commands to PUNIT. Here IOCTL return value···152152/**153153 * struct isst_if_msr_cmds - structure for msr commands154154 * @cmd_count: Number of mailbox commands in msr_cmd[]155155- * @msr_cmd[]: Holds one or more msr commands155155+ * @msr_cmd: Holds one or more msr commands156156 *157157 * This structure used with ioctl ISST_IF_MSR_COMMAND to send158158 * one or more MSR commands. IOCTL return value indicates number of···167167 * struct isst_core_power - Structure to get/set core_power feature168168 * @get_set: 0: Get, 1: Set169169 * @socket_id: Socket/package id170170- * @power_domain: Power Domain id170170+ * @power_domain_id: Power Domain id171171 * @enable: Feature enable status172172+ * @supported: Power domain supports SST_CP interface172173 * @priority_type: Priority type for the feature (ordered/proportional)173174 *174175 * Structure to get/set core_power feature state using IOCTL···188187 * struct isst_clos_param - Structure to get/set clos praram189188 * @get_set: 0: Get, 1: Set190189 * @socket_id: Socket/package id191191- * @power_domain: Power Domain id192192- * clos: Clos ID for the parameters193193- * min_freq_mhz: Minimum frequency in MHz194194- * max_freq_mhz: Maximum frequency in MHz195195- * prop_prio: Proportional priority from 0-15190190+ * @power_domain_id: Power Domain id191191+ * @clos: Clos ID for the parameters192192+ * @min_freq_mhz: Minimum frequency in MHz193193+ * @max_freq_mhz: Maximum frequency in MHz194194+ * @prop_prio: Proportional priority from 0-15196195 *197196 * Structure to get/set per clos property using IOCTL198197 * ISST_IF_CLOS_PARAM.···210209/**211210 * struct isst_if_clos_assoc - Structure to assign clos to a CPU212211 * @socket_id: Socket/package id213213- * @power_domain: Power Domain id212212+ * @power_domain_id: Power Domain id214213 * @logical_cpu: CPU number215214 * @clos: Clos ID to assign to the logical CPU216215 *···229228 * @get_set: Request is for get or set230229 * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not231230 * Linux CPU number231231+ * @assoc_info: CLOS data for this CPU232232 *233233 * Structure used to get/set associate CPUs to clos using IOCTL234234 * ISST_IF_CLOS_ASSOC.···259257/**260258 * struct isst_perf_level_info - Structure to get information on SST-PP levels261259 * @socket_id: Socket/package id262262- * @power_domain: Power Domain id260260+ * @power_domain_id: Power Domain id263261 * @logical_cpu: CPU number264262 * @clos: Clos ID to assign to the logical CPU265263 * @max_level: Maximum performance level supported by the platform···269267 * @feature_state: SST-BF and SST-TF (enabled/disabled) status at current level270268 * @locked: SST-PP performance level change is locked/unlocked271269 * @enabled: SST-PP feature is enabled or not272272- * @sst-tf_support: SST-TF support status at this level273273- * @sst-bf_support: SST-BF support status at this level270270+ * @sst_tf_support: SST-TF support status at this level271271+ * @sst_bf_support: SST-BF support status at this level274272 *275273 * Structure to get SST-PP details using IOCTL ISST_IF_PERF_LEVELS.276274 */···291289/**292290 * struct isst_perf_level_control - Structure to set SST-PP level293291 * @socket_id: Socket/package id294294- * @power_domain: Power Domain id292292+ * @power_domain_id: Power Domain id295293 * @level: level to set296294 *297295 * Structure used change SST-PP level using IOCTL ISST_IF_PERF_SET_LEVEL.···305303/**306304 * struct isst_perf_feature_control - Structure to activate SST-BF/SST-TF307305 * @socket_id: Socket/package id308308- * @power_domain: Power Domain id306306+ * @power_domain_id: Power Domain id309307 * @feature: bit 0 = SST-BF state, bit 1 = SST-TF state310308 *311309 * Structure used to enable SST-BF/SST-TF using IOCTL ISST_IF_PERF_SET_FEATURE.···322320/**323321 * struct isst_perf_level_data_info - Structure to get SST-PP level details324322 * @socket_id: Socket/package id325325- * @power_domain: Power Domain id323323+ * @power_domain_id: Power Domain id326324 * @level: SST-PP level for which caller wants to get information327325 * @tdp_ratio: TDP Ratio328326 * @base_freq_mhz: Base frequency in MHz···343341 * @pm_fabric_freq_mhz: Fabric (Uncore) minimum frequency344342 * @max_buckets: Maximum trl buckets345343 * @max_trl_levels: Maximum trl levels346346- * @bucket_core_counts[TRL_MAX_BUCKETS]: Number of cores per bucket347347- * @trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS]: maximum frequency344344+ * @bucket_core_counts: Number of cores per bucket345345+ * @trl_freq_mhz: maximum frequency348346 * for a bucket and trl level349347 *350348 * Structure used to get information on frequencies and TDP for a SST-PP···404402/**405403 * struct isst_perf_level_cpu_mask - Structure to get SST-PP level CPU mask406404 * @socket_id: Socket/package id407407- * @power_domain: Power Domain id405405+ * @power_domain_id: Power Domain id408406 * @level: SST-PP level for which caller wants to get information409407 * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not410408 * Linux CPU number. If 0 CPU buffer is copied to user space···432430/**433431 * struct isst_base_freq_info - Structure to get SST-BF frequencies434432 * @socket_id: Socket/package id435435- * @power_domain: Power Domain id433433+ * @power_domain_id: Power Domain id436434 * @level: SST-PP level for which caller wants to get information437435 * @high_base_freq_mhz: High priority CPU base frequency438436 * @low_base_freq_mhz: Low priority CPU base frequency···455453/**456454 * struct isst_turbo_freq_info - Structure to get SST-TF frequencies457455 * @socket_id: Socket/package id458458- * @power_domain: Power Domain id456456+ * @power_domain_id: Power Domain id459457 * @level: SST-PP level for which caller wants to get information460458 * @max_clip_freqs: Maximum number of low priority core clipping frequencies459459+ * @max_buckets: Maximum trl buckets460460+ * @max_trl_levels: Maximum trl levels461461 * @lp_clip_freq_mhz: Clip frequencies per trl level462462 * @bucket_core_counts: Maximum number of cores for a bucket463463 * @trl_freq_mhz: Frequencies per trl level for each bucket