platform-drivers-x86 for v6.3-2
A small set of assorted bug and build/warning fixes for 6.3. The following is an automated git shortlog grouped by driver: ISST: - Fix kernel documentation warnings - Increase range of valid mail box commands dell-ddv: - Fix temperature scaling - Fix cache invalidation on resume int3472: - Add GPIOs to Surface Go 3 Board data platform: - mellanox: mlx-platform: Initialize shift variable to 0 - x86: MLX_PLATFORM: select REGMAP instead of depending on it - mellanox: select REGMAP instead of depending on it platform/x86/amd: - pmc: remove CONFIG_SUSPEND checks platform/x86/intel/tpmi: - Fix double free reported by Smatch -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmQIoP0UHGhkZWdvZWRl QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9y5Zwf/Zz46BKL5T8lp3fPnQj4UYn83daaL tIn99ElMINzdCLVYK/9DWKfSqK4PHfgUIfIyhNpOoLMot34fKdC7KNAJGvSrReQO rfYiA7ErArTHt9FzFG0F3hPkJ1KbyQwS/X+IAUw1gYyewrE4GTq0KSaSs0SGAtuq UfzcpHquSSuA/A49Vr3yj7LBwGXbWz9JBuJv7Q6VpmsR4+7VgtdTJTKKycHgKLXT eOdX5nRJ8vkC1lCUJ8CqESZ18edNVa5GqmlojRMP5Bv2kq0yGHG4SWoITAt/mcQC K8XqbpPuw/Ijsv6iMJ/gOnbh5SYyesHkTBbu+b7VPlZ6zJwVxPFuG7alTg== =w1A/ -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform driver fixes from Hans de Goede: "A small set of assorted bug and build/warning fixes" * tag 'platform-drivers-x86-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform: mellanox: mlx-platform: Initialize shift variable to 0 platform/x86: int3472: Add GPIOs to Surface Go 3 Board data platform/x86: ISST: Fix kernel documentation warnings platform: x86: MLX_PLATFORM: select REGMAP instead of depending on it platform: mellanox: select REGMAP instead of depending on it platform/x86/intel/tpmi: Fix double free reported by Smatch platform/x86: ISST: Increase range of valid mail box commands platform/x86: dell-ddv: Fix temperature scaling platform/x86: dell-ddv: Fix cache invalidation on resume platform/x86/amd: pmc: remove CONFIG_SUSPEND checks
This commit is contained in:
commit
55ee6646b6
|
@ -16,17 +16,17 @@ if MELLANOX_PLATFORM
|
|||
|
||||
config MLXREG_HOTPLUG
|
||||
tristate "Mellanox platform hotplug driver support"
|
||||
depends on REGMAP
|
||||
depends on HWMON
|
||||
depends on I2C
|
||||
select REGMAP
|
||||
help
|
||||
This driver handles hot-plug events for the power suppliers, power
|
||||
cables and fans on the wide range Mellanox IB and Ethernet systems.
|
||||
|
||||
config MLXREG_IO
|
||||
tristate "Mellanox platform register access driver support"
|
||||
depends on REGMAP
|
||||
depends on HWMON
|
||||
select REGMAP
|
||||
help
|
||||
This driver allows access to Mellanox programmable device register
|
||||
space through sysfs interface. The sets of registers for sysfs access
|
||||
|
@ -36,9 +36,9 @@ config MLXREG_IO
|
|||
|
||||
config MLXREG_LC
|
||||
tristate "Mellanox line card platform driver support"
|
||||
depends on REGMAP
|
||||
depends on HWMON
|
||||
depends on I2C
|
||||
select REGMAP
|
||||
help
|
||||
This driver provides support for the Mellanox MSN4800-XX line cards,
|
||||
which are the part of MSN4800 Ethernet modular switch systems
|
||||
|
@ -80,10 +80,9 @@ config MLXBF_PMC
|
|||
|
||||
config NVSW_SN2201
|
||||
tristate "Nvidia SN2201 platform driver support"
|
||||
depends on REGMAP
|
||||
depends on HWMON
|
||||
depends on I2C
|
||||
depends on REGMAP_I2C
|
||||
select REGMAP_I2C
|
||||
help
|
||||
This driver provides support for the Nvidia SN2201 platform.
|
||||
The SN2201 is a highly integrated for one rack unit system with
|
||||
|
|
|
@ -955,7 +955,8 @@ config SERIAL_MULTI_INSTANTIATE
|
|||
|
||||
config MLX_PLATFORM
|
||||
tristate "Mellanox Technologies platform support"
|
||||
depends on I2C && REGMAP
|
||||
depends on I2C
|
||||
select REGMAP
|
||||
help
|
||||
This option enables system support for the Mellanox Technologies
|
||||
platform. The Mellanox systems provide data center networking
|
||||
|
|
|
@ -171,9 +171,7 @@ MODULE_PARM_DESC(disable_workarounds, "Disable workarounds for platform bugs");
|
|||
static struct amd_pmc_dev pmc;
|
||||
static int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool ret);
|
||||
static int amd_pmc_read_stb(struct amd_pmc_dev *dev, u32 *buf);
|
||||
#ifdef CONFIG_SUSPEND
|
||||
static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data);
|
||||
#endif
|
||||
|
||||
static inline u32 amd_pmc_reg_read(struct amd_pmc_dev *dev, int reg_offset)
|
||||
{
|
||||
|
@ -386,7 +384,6 @@ static int get_metrics_table(struct amd_pmc_dev *pdev, struct smu_metrics *table
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
static void amd_pmc_validate_deepest(struct amd_pmc_dev *pdev)
|
||||
{
|
||||
struct smu_metrics table;
|
||||
|
@ -400,7 +397,6 @@ static void amd_pmc_validate_deepest(struct amd_pmc_dev *pdev)
|
|||
dev_dbg(pdev->dev, "Last suspend in deepest state for %lluus\n",
|
||||
table.timein_s0i3_lastcapture);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int amd_pmc_get_smu_version(struct amd_pmc_dev *dev)
|
||||
{
|
||||
|
@ -673,7 +669,6 @@ out_unlock:
|
|||
return rc;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev)
|
||||
{
|
||||
switch (dev->cpu_id) {
|
||||
|
@ -861,9 +856,7 @@ static int __maybe_unused amd_pmc_suspend_handler(struct device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(amd_pmc_pm, amd_pmc_suspend_handler, NULL);
|
||||
|
||||
#endif
|
||||
static DEFINE_SIMPLE_DEV_PM_OPS(amd_pmc_pm, amd_pmc_suspend_handler, NULL);
|
||||
|
||||
static const struct pci_device_id pmc_pci_ids[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_PS) },
|
||||
|
@ -905,7 +898,6 @@ static int amd_pmc_s2d_init(struct amd_pmc_dev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data)
|
||||
{
|
||||
int err;
|
||||
|
@ -926,7 +918,6 @@ static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data)
|
|||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int amd_pmc_read_stb(struct amd_pmc_dev *dev, u32 *buf)
|
||||
{
|
||||
|
@ -1017,11 +1008,11 @@ static int amd_pmc_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
platform_set_drvdata(pdev, dev);
|
||||
#ifdef CONFIG_SUSPEND
|
||||
err = acpi_register_lps0_dev(&amd_pmc_s2idle_dev_ops);
|
||||
if (err)
|
||||
dev_warn(dev->dev, "failed to register LPS0 sleep handler, expect increased power consumption\n");
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_SUSPEND)) {
|
||||
err = acpi_register_lps0_dev(&amd_pmc_s2idle_dev_ops);
|
||||
if (err)
|
||||
dev_warn(dev->dev, "failed to register LPS0 sleep handler, expect increased power consumption\n");
|
||||
}
|
||||
|
||||
amd_pmc_dbgfs_register(dev);
|
||||
return 0;
|
||||
|
@ -1035,9 +1026,8 @@ static int amd_pmc_remove(struct platform_device *pdev)
|
|||
{
|
||||
struct amd_pmc_dev *dev = platform_get_drvdata(pdev);
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
acpi_unregister_lps0_dev(&amd_pmc_s2idle_dev_ops);
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_SUSPEND))
|
||||
acpi_unregister_lps0_dev(&amd_pmc_s2idle_dev_ops);
|
||||
amd_pmc_dbgfs_unregister(dev);
|
||||
pci_dev_put(dev->rdev);
|
||||
mutex_destroy(&dev->lock);
|
||||
|
@ -1061,9 +1051,7 @@ static struct platform_driver amd_pmc_driver = {
|
|||
.name = "amd_pmc",
|
||||
.acpi_match_table = amd_pmc_acpi_ids,
|
||||
.dev_groups = pmc_groups,
|
||||
#ifdef CONFIG_SUSPEND
|
||||
.pm = &amd_pmc_pm,
|
||||
#endif
|
||||
.pm = pm_sleep_ptr(&amd_pmc_pm),
|
||||
},
|
||||
.probe = amd_pmc_probe,
|
||||
.remove = amd_pmc_remove,
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/kstrtox.h>
|
||||
#include <linux/math.h>
|
||||
#include <linux/math64.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
|
@ -96,6 +95,7 @@ struct combined_chip_info {
|
|||
};
|
||||
|
||||
struct dell_wmi_ddv_sensors {
|
||||
bool active;
|
||||
struct mutex lock; /* protect caching */
|
||||
unsigned long timestamp;
|
||||
union acpi_object *obj;
|
||||
|
@ -520,6 +520,9 @@ static struct hwmon_channel_info *dell_wmi_ddv_channel_create(struct device *dev
|
|||
|
||||
static void dell_wmi_ddv_hwmon_cache_invalidate(struct dell_wmi_ddv_sensors *sensors)
|
||||
{
|
||||
if (!sensors->active)
|
||||
return;
|
||||
|
||||
mutex_lock(&sensors->lock);
|
||||
kfree(sensors->obj);
|
||||
sensors->obj = NULL;
|
||||
|
@ -530,6 +533,7 @@ static void dell_wmi_ddv_hwmon_cache_destroy(void *data)
|
|||
{
|
||||
struct dell_wmi_ddv_sensors *sensors = data;
|
||||
|
||||
sensors->active = false;
|
||||
mutex_destroy(&sensors->lock);
|
||||
kfree(sensors->obj);
|
||||
}
|
||||
|
@ -549,6 +553,7 @@ static struct hwmon_channel_info *dell_wmi_ddv_channel_init(struct wmi_device *w
|
|||
return ERR_PTR(ret);
|
||||
|
||||
mutex_init(&sensors->lock);
|
||||
sensors->active = true;
|
||||
|
||||
ret = devm_add_action_or_reset(&wdev->dev, dell_wmi_ddv_hwmon_cache_destroy, sensors);
|
||||
if (ret < 0)
|
||||
|
@ -659,7 +664,8 @@ static ssize_t temp_show(struct device *dev, struct device_attribute *attr, char
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return sysfs_emit(buf, "%d\n", DIV_ROUND_CLOSEST(value, 10));
|
||||
/* Use 2731 instead of 2731.5 to avoid unnecessary rounding */
|
||||
return sysfs_emit(buf, "%d\n", value - 2731);
|
||||
}
|
||||
|
||||
static ssize_t eppid_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
|
@ -852,7 +858,7 @@ static int dell_wmi_ddv_resume(struct device *dev)
|
|||
{
|
||||
struct dell_wmi_ddv_data *data = dev_get_drvdata(dev);
|
||||
|
||||
/* Force re-reading of all sensors */
|
||||
/* Force re-reading of all active sensors */
|
||||
dell_wmi_ddv_hwmon_cache_invalidate(&data->fans);
|
||||
dell_wmi_ddv_hwmon_cache_invalidate(&data->temps);
|
||||
|
||||
|
|
|
@ -159,9 +159,10 @@ static const struct int3472_tps68470_board_data surface_go_tps68470_board_data =
|
|||
static const struct int3472_tps68470_board_data surface_go3_tps68470_board_data = {
|
||||
.dev_name = "i2c-INT3472:01",
|
||||
.tps68470_regulator_pdata = &surface_go_tps68470_pdata,
|
||||
.n_gpiod_lookups = 1,
|
||||
.n_gpiod_lookups = 2,
|
||||
.tps68470_gpio_lookup_tables = {
|
||||
&surface_go_int347a_gpios
|
||||
&surface_go_int347a_gpios,
|
||||
&surface_go_int347e_gpios,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ struct isst_cmd_set_req_type {
|
|||
|
||||
static const struct isst_valid_cmd_ranges isst_valid_cmds[] = {
|
||||
{0xD0, 0x00, 0x03},
|
||||
{0x7F, 0x00, 0x0B},
|
||||
{0x7F, 0x00, 0x0C},
|
||||
{0x7F, 0x10, 0x12},
|
||||
{0x7F, 0x20, 0x23},
|
||||
{0x94, 0x03, 0x03},
|
||||
|
@ -112,6 +112,7 @@ static void isst_delete_hash(void)
|
|||
* isst_store_cmd() - Store command to a hash table
|
||||
* @cmd: Mailbox command.
|
||||
* @sub_cmd: Mailbox sub-command or MSR id.
|
||||
* @cpu: Target CPU for the command
|
||||
* @mbox_cmd_type: Mailbox or MSR command.
|
||||
* @param: Mailbox parameter.
|
||||
* @data: Mailbox request data or MSR data.
|
||||
|
@ -363,7 +364,7 @@ static struct pci_dev *_isst_if_get_pci_dev(int cpu, int bus_no, int dev, int fn
|
|||
/**
|
||||
* isst_if_get_pci_dev() - Get the PCI device instance for a CPU
|
||||
* @cpu: Logical CPU number.
|
||||
* @bus_number: The bus number assigned by the hardware.
|
||||
* @bus_no: The bus number assigned by the hardware.
|
||||
* @dev: The device number assigned by the hardware.
|
||||
* @fn: The function number assigned by the hardware.
|
||||
*
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
* @offset: Offset to the first valid member in command structure.
|
||||
* This will be the offset of the start of the command
|
||||
* after command count field
|
||||
* @owner: Registered module owner
|
||||
* @cmd_callback: Callback function to handle IOCTL. The callback has the
|
||||
* command pointer with data for command. There is a pointer
|
||||
* called write_only, which when set, will not copy the
|
||||
|
|
|
@ -209,14 +209,14 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,
|
|||
if (!name)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
feature_vsec_dev = kzalloc(sizeof(*feature_vsec_dev), GFP_KERNEL);
|
||||
if (!feature_vsec_dev)
|
||||
res = kcalloc(pfs->pfs_header.num_entries, sizeof(*res), GFP_KERNEL);
|
||||
if (!res)
|
||||
return -ENOMEM;
|
||||
|
||||
res = kcalloc(pfs->pfs_header.num_entries, sizeof(*res), GFP_KERNEL);
|
||||
if (!res) {
|
||||
feature_vsec_dev = kzalloc(sizeof(*feature_vsec_dev), GFP_KERNEL);
|
||||
if (!feature_vsec_dev) {
|
||||
ret = -ENOMEM;
|
||||
goto free_vsec;
|
||||
goto free_res;
|
||||
}
|
||||
|
||||
snprintf(feature_id_name, sizeof(feature_id_name), "tpmi-%s", name);
|
||||
|
@ -239,6 +239,8 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,
|
|||
/*
|
||||
* intel_vsec_add_aux() is resource managed, no explicit
|
||||
* delete is required on error or on module unload.
|
||||
* feature_vsec_dev memory is also freed as part of device
|
||||
* delete.
|
||||
*/
|
||||
ret = intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev->auxdev.dev,
|
||||
feature_vsec_dev, feature_id_name);
|
||||
|
@ -249,8 +251,6 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,
|
|||
|
||||
free_res:
|
||||
kfree(res);
|
||||
free_vsec:
|
||||
kfree(feature_vsec_dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -5980,7 +5980,7 @@ MODULE_DEVICE_TABLE(dmi, mlxplat_dmi_table);
|
|||
static int mlxplat_mlxcpld_verify_bus_topology(int *nr)
|
||||
{
|
||||
struct i2c_adapter *search_adap;
|
||||
int shift, i;
|
||||
int i, shift = 0;
|
||||
|
||||
/* Scan adapters from expected id to verify it is free. */
|
||||
*nr = MLXPLAT_CPLD_PHYS_ADAPTER_DEF_NR;
|
||||
|
|
Loading…
Reference in New Issue