Commit ed472919 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'platform-drivers-x86-v5.15-3' of...

Merge tag 'platform-drivers-x86-v5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver fixes from Hans de Goede:
 "A second (small) set of pdx86 bug-fixes and new hardware ids for 5.15"

* tag 'platform-drivers-x86-v5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  platform/x86: int1092: Fix non sequential device mode handling
  platform/x86: intel_skl_int3472: Correct null check
  platform/x86: gigabyte-wmi: add support for B550 AORUS ELITE AX V2
  platform/x86: amd-pmc: Add alternative acpi id for PMC controller
  platform/x86: intel_scu_ipc: Update timeout value in comment
  platform/x86: intel_scu_ipc: Increase virtual timeout to 10s
  platform/x86: intel_scu_ipc: Fix busy loop expiry time
  platform/x86: dell: Make DELL_WMI_PRIVACY depend on DELL_WMI
  platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes
  platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
parents fa587876 7df22784
...@@ -9307,7 +9307,7 @@ S: Maintained ...@@ -9307,7 +9307,7 @@ S: Maintained
F: drivers/platform/x86/intel/atomisp2/led.c F: drivers/platform/x86/intel/atomisp2/led.c
INTEL BIOS SAR INT1092 DRIVER INTEL BIOS SAR INT1092 DRIVER
M: Shravan S <s.shravan@intel.com> M: Shravan Sudhakar <s.shravan@intel.com>
M: Intel Corporation <linuxwwan@intel.com> M: Intel Corporation <linuxwwan@intel.com>
L: platform-driver-x86@vger.kernel.org L: platform-driver-x86@vger.kernel.org
S: Maintained S: Maintained
......
...@@ -98,7 +98,7 @@ mlxreg_io_get_reg(void *regmap, struct mlxreg_core_data *data, u32 in_val, ...@@ -98,7 +98,7 @@ mlxreg_io_get_reg(void *regmap, struct mlxreg_core_data *data, u32 in_val,
if (ret) if (ret)
goto access_error; goto access_error;
*regval |= rol32(val, regsize * i); *regval |= rol32(val, regsize * i * 8);
} }
} }
...@@ -141,7 +141,7 @@ mlxreg_io_attr_store(struct device *dev, struct device_attribute *attr, ...@@ -141,7 +141,7 @@ mlxreg_io_attr_store(struct device *dev, struct device_attribute *attr,
return -EINVAL; return -EINVAL;
/* Convert buffer to input value. */ /* Convert buffer to input value. */
ret = kstrtou32(buf, len, &input_val); ret = kstrtou32(buf, 0, &input_val);
if (ret) if (ret)
return ret; return ret;
......
...@@ -476,6 +476,7 @@ static const struct acpi_device_id amd_pmc_acpi_ids[] = { ...@@ -476,6 +476,7 @@ static const struct acpi_device_id amd_pmc_acpi_ids[] = {
{"AMDI0006", 0}, {"AMDI0006", 0},
{"AMDI0007", 0}, {"AMDI0007", 0},
{"AMD0004", 0}, {"AMD0004", 0},
{"AMD0005", 0},
{ } { }
}; };
MODULE_DEVICE_TABLE(acpi, amd_pmc_acpi_ids); MODULE_DEVICE_TABLE(acpi, amd_pmc_acpi_ids);
......
...@@ -167,6 +167,7 @@ config DELL_WMI ...@@ -167,6 +167,7 @@ config DELL_WMI
config DELL_WMI_PRIVACY config DELL_WMI_PRIVACY
bool "Dell WMI Hardware Privacy Support" bool "Dell WMI Hardware Privacy Support"
depends on LEDS_TRIGGER_AUDIO = y || DELL_WMI = LEDS_TRIGGER_AUDIO depends on LEDS_TRIGGER_AUDIO = y || DELL_WMI = LEDS_TRIGGER_AUDIO
depends on DELL_WMI
help help
This option adds integration with the "Dell Hardware Privacy" This option adds integration with the "Dell Hardware Privacy"
feature of Dell laptops to the dell-wmi driver. feature of Dell laptops to the dell-wmi driver.
......
...@@ -141,6 +141,7 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev) ...@@ -141,6 +141,7 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = { static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"), DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"),
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE AX V2"),
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"), DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"),
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"), DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"),
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"), DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"),
......
...@@ -42,12 +42,20 @@ static void update_sar_data(struct wwan_sar_context *context) ...@@ -42,12 +42,20 @@ static void update_sar_data(struct wwan_sar_context *context)
if (config->device_mode_info && if (config->device_mode_info &&
context->sar_data.device_mode < config->total_dev_mode) { context->sar_data.device_mode < config->total_dev_mode) {
struct wwan_device_mode_info *dev_mode = int itr = 0;
&config->device_mode_info[context->sar_data.device_mode];
for (itr = 0; itr < config->total_dev_mode; itr++) {
context->sar_data.antennatable_index = dev_mode->antennatable_index; if (context->sar_data.device_mode ==
context->sar_data.bandtable_index = dev_mode->bandtable_index; config->device_mode_info[itr].device_mode) {
context->sar_data.sartable_index = dev_mode->sartable_index; struct wwan_device_mode_info *dev_mode =
&config->device_mode_info[itr];
context->sar_data.antennatable_index = dev_mode->antennatable_index;
context->sar_data.bandtable_index = dev_mode->bandtable_index;
context->sar_data.sartable_index = dev_mode->sartable_index;
break;
}
}
} }
} }
...@@ -305,7 +313,6 @@ static struct platform_driver sar_driver = { ...@@ -305,7 +313,6 @@ static struct platform_driver sar_driver = {
.remove = sar_remove, .remove = sar_remove,
.driver = { .driver = {
.name = DRVNAME, .name = DRVNAME,
.owner = THIS_MODULE,
.acpi_match_table = ACPI_PTR(sar_device_ids) .acpi_match_table = ACPI_PTR(sar_device_ids)
} }
}; };
...@@ -313,4 +320,4 @@ module_platform_driver(sar_driver); ...@@ -313,4 +320,4 @@ module_platform_driver(sar_driver);
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("Platform device driver for INTEL MODEM BIOS SAR"); MODULE_DESCRIPTION("Platform device driver for INTEL MODEM BIOS SAR");
MODULE_AUTHOR("Shravan S <s.shravan@intel.com>"); MODULE_AUTHOR("Shravan Sudhakar <s.shravan@intel.com>");
...@@ -401,7 +401,7 @@ int skl_int3472_discrete_remove(struct platform_device *pdev) ...@@ -401,7 +401,7 @@ int skl_int3472_discrete_remove(struct platform_device *pdev)
gpiod_remove_lookup_table(&int3472->gpios); gpiod_remove_lookup_table(&int3472->gpios);
if (int3472->clock.ena_gpio) if (int3472->clock.cl)
skl_int3472_unregister_clock(int3472); skl_int3472_unregister_clock(int3472);
gpiod_put(int3472->clock.ena_gpio); gpiod_put(int3472->clock.ena_gpio);
......
...@@ -75,7 +75,7 @@ struct intel_scu_ipc_dev { ...@@ -75,7 +75,7 @@ struct intel_scu_ipc_dev {
#define IPC_READ_BUFFER 0x90 #define IPC_READ_BUFFER 0x90
/* Timeout in jiffies */ /* Timeout in jiffies */
#define IPC_TIMEOUT (5 * HZ) #define IPC_TIMEOUT (10 * HZ)
static struct intel_scu_ipc_dev *ipcdev; /* Only one for now */ static struct intel_scu_ipc_dev *ipcdev; /* Only one for now */
static DEFINE_MUTEX(ipclock); /* lock used to prevent multiple call to SCU */ static DEFINE_MUTEX(ipclock); /* lock used to prevent multiple call to SCU */
...@@ -232,7 +232,7 @@ static inline u32 ipc_data_readl(struct intel_scu_ipc_dev *scu, u32 offset) ...@@ -232,7 +232,7 @@ static inline u32 ipc_data_readl(struct intel_scu_ipc_dev *scu, u32 offset)
/* Wait till scu status is busy */ /* Wait till scu status is busy */
static inline int busy_loop(struct intel_scu_ipc_dev *scu) static inline int busy_loop(struct intel_scu_ipc_dev *scu)
{ {
unsigned long end = jiffies + msecs_to_jiffies(IPC_TIMEOUT); unsigned long end = jiffies + IPC_TIMEOUT;
do { do {
u32 status; u32 status;
...@@ -247,7 +247,7 @@ static inline int busy_loop(struct intel_scu_ipc_dev *scu) ...@@ -247,7 +247,7 @@ static inline int busy_loop(struct intel_scu_ipc_dev *scu)
return -ETIMEDOUT; return -ETIMEDOUT;
} }
/* Wait till ipc ioc interrupt is received or timeout in 3 HZ */ /* Wait till ipc ioc interrupt is received or timeout in 10 HZ */
static inline int ipc_wait_for_interrupt(struct intel_scu_ipc_dev *scu) static inline int ipc_wait_for_interrupt(struct intel_scu_ipc_dev *scu)
{ {
int status; int status;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment