* [PATCH platform 1/4] platform: mellanox: Fix order in exit flow
2023-08-13 8:37 [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Vadim Pasternak
@ 2023-08-13 8:37 ` Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 2/4] platform: mellanox: mlx-platform: Fix signals polarity and latch mask Vadim Pasternak
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Vadim Pasternak @ 2023-08-13 8:37 UTC (permalink / raw)
To: hdegoede; +Cc: platform-driver-x86, Vadim Pasternak
Fix exit flow order: call mlxplat_post_exit() after
mlxplat_i2c_main_exit() in order to unregister main i2c driver before
to "mlxplat" driver.
Fixes: 0170f616f496 ("platform: mellanox: Split initialization procedure")
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
---
drivers/platform/x86/mlx-platform.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/platform/x86/mlx-platform.c b/drivers/platform/x86/mlx-platform.c
index 67367f010139..5fb3348023a7 100644
--- a/drivers/platform/x86/mlx-platform.c
+++ b/drivers/platform/x86/mlx-platform.c
@@ -6238,8 +6238,6 @@ static void mlxplat_i2c_mux_topolgy_exit(struct mlxplat_priv *priv)
if (priv->pdev_mux[i])
platform_device_unregister(priv->pdev_mux[i]);
}
-
- mlxplat_post_exit();
}
static int mlxplat_i2c_main_complition_notify(void *handle, int id)
@@ -6369,6 +6367,7 @@ static void __exit mlxplat_exit(void)
pm_power_off = NULL;
mlxplat_pre_exit(priv);
mlxplat_i2c_main_exit(priv);
+ mlxplat_post_exit();
}
module_exit(mlxplat_exit);
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH platform 2/4] platform: mellanox: mlx-platform: Fix signals polarity and latch mask
2023-08-13 8:37 [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 1/4] platform: mellanox: Fix order in exit flow Vadim Pasternak
@ 2023-08-13 8:37 ` Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 3/4] platform: mellanox: mlx-platform: Modify graceful shutdown callback and power down mask Vadim Pasternak
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Vadim Pasternak @ 2023-08-13 8:37 UTC (permalink / raw)
To: hdegoede; +Cc: platform-driver-x86, Vadim Pasternak
Change polarity of chassis health and power signals and fix latch reset
mask for L1 switch.
Fixes: dd635e33b5c9 ("platform: mellanox: Introduce support of new Nvidia L1 switch")
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
---
drivers/platform/x86/mlx-platform.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/platform/x86/mlx-platform.c b/drivers/platform/x86/mlx-platform.c
index 5fb3348023a7..69256af04f05 100644
--- a/drivers/platform/x86/mlx-platform.c
+++ b/drivers/platform/x86/mlx-platform.c
@@ -237,7 +237,7 @@
#define MLXPLAT_CPLD_GWP_MASK GENMASK(0, 0)
#define MLXPLAT_CPLD_EROT_MASK GENMASK(1, 0)
#define MLXPLAT_CPLD_PWR_BUTTON_MASK BIT(0)
-#define MLXPLAT_CPLD_LATCH_RST_MASK BIT(5)
+#define MLXPLAT_CPLD_LATCH_RST_MASK BIT(6)
#define MLXPLAT_CPLD_THERMAL1_PDB_MASK BIT(3)
#define MLXPLAT_CPLD_THERMAL2_PDB_MASK BIT(4)
#define MLXPLAT_CPLD_INTRUSION_MASK BIT(6)
@@ -2475,7 +2475,7 @@ static struct mlxreg_core_item mlxplat_mlxcpld_l1_switch_events_items[] = {
.reg = MLXPLAT_CPLD_LPC_REG_PWRB_OFFSET,
.mask = MLXPLAT_CPLD_PWR_BUTTON_MASK,
.count = ARRAY_SIZE(mlxplat_mlxcpld_l1_switch_pwr_events_items_data),
- .inversed = 0,
+ .inversed = 1,
.health = false,
},
{
@@ -2484,7 +2484,7 @@ static struct mlxreg_core_item mlxplat_mlxcpld_l1_switch_events_items[] = {
.reg = MLXPLAT_CPLD_LPC_REG_BRD_OFFSET,
.mask = MLXPLAT_CPLD_L1_CHA_HEALTH_MASK,
.count = ARRAY_SIZE(mlxplat_mlxcpld_l1_switch_health_events_items_data),
- .inversed = 0,
+ .inversed = 1,
.health = false,
.ind = 8,
},
@@ -3677,7 +3677,7 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
{
.label = "latch_reset",
.reg = MLXPLAT_CPLD_LPC_REG_GP1_OFFSET,
- .mask = GENMASK(7, 0) & ~BIT(5),
+ .mask = GENMASK(7, 0) & ~BIT(6),
.mode = 0200,
},
{
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH platform 3/4] platform: mellanox: mlx-platform: Modify graceful shutdown callback and power down mask
2023-08-13 8:37 [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 1/4] platform: mellanox: Fix order in exit flow Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 2/4] platform: mellanox: mlx-platform: Fix signals polarity and latch mask Vadim Pasternak
@ 2023-08-13 8:37 ` Vadim Pasternak
2023-08-13 8:37 ` [PATCH platform 4/4] platform: mellanox: Change register offset addresses Vadim Pasternak
2023-08-13 12:56 ` [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Hans de Goede
4 siblings, 0 replies; 6+ messages in thread
From: Vadim Pasternak @ 2023-08-13 8:37 UTC (permalink / raw)
To: hdegoede; +Cc: platform-driver-x86, Vadim Pasternak
Use kernel_power_off() instead of kernel_halt() to pass through
machine_power_off() -> pm_power_off(), otherwise axillary power does
not go off.
Change "power down" bitmask.
Fixes: dd635e33b5c9 ("platform: mellanox: Introduce support of new Nvidia L1 switch")
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
---
drivers/platform/x86/mlx-platform.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/platform/x86/mlx-platform.c b/drivers/platform/x86/mlx-platform.c
index 69256af04f05..240bc3174caf 100644
--- a/drivers/platform/x86/mlx-platform.c
+++ b/drivers/platform/x86/mlx-platform.c
@@ -222,7 +222,7 @@
MLXPLAT_CPLD_AGGR_MASK_LC_SDWN)
#define MLXPLAT_CPLD_LOW_AGGR_MASK_LOW 0xc1
#define MLXPLAT_CPLD_LOW_AGGR_MASK_ASIC2 BIT(2)
-#define MLXPLAT_CPLD_LOW_AGGR_MASK_PWR_BUT BIT(4)
+#define MLXPLAT_CPLD_LOW_AGGR_MASK_PWR_BUT GENMASK(5, 4)
#define MLXPLAT_CPLD_LOW_AGGR_MASK_I2C BIT(6)
#define MLXPLAT_CPLD_PSU_MASK GENMASK(1, 0)
#define MLXPLAT_CPLD_PWR_MASK GENMASK(1, 0)
@@ -2356,7 +2356,7 @@ mlxplat_mlxcpld_l1_switch_pwr_events_handler(void *handle, enum mlxreg_hotplug_k
u8 action)
{
dev_info(&mlxplat_dev->dev, "System shutdown due to short press of power button");
- kernel_halt();
+ kernel_power_off();
return 0;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH platform 4/4] platform: mellanox: Change register offset addresses
2023-08-13 8:37 [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Vadim Pasternak
` (2 preceding siblings ...)
2023-08-13 8:37 ` [PATCH platform 3/4] platform: mellanox: mlx-platform: Modify graceful shutdown callback and power down mask Vadim Pasternak
@ 2023-08-13 8:37 ` Vadim Pasternak
2023-08-13 12:56 ` [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Hans de Goede
4 siblings, 0 replies; 6+ messages in thread
From: Vadim Pasternak @ 2023-08-13 8:37 UTC (permalink / raw)
To: hdegoede; +Cc: platform-driver-x86, Vadim Pasternak
Move debug register offsets to different location due to hardware changes.
Fixes: dd635e33b5c9 ("platform: mellanox: Introduce support of new Nvidia L1 switch")
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
---
drivers/platform/x86/mlx-platform.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/platform/x86/mlx-platform.c b/drivers/platform/x86/mlx-platform.c
index 240bc3174caf..7d33977d9c60 100644
--- a/drivers/platform/x86/mlx-platform.c
+++ b/drivers/platform/x86/mlx-platform.c
@@ -62,10 +62,6 @@
#define MLXPLAT_CPLD_LPC_REG_PWM_CONTROL_OFFSET 0x37
#define MLXPLAT_CPLD_LPC_REG_AGGR_OFFSET 0x3a
#define MLXPLAT_CPLD_LPC_REG_AGGR_MASK_OFFSET 0x3b
-#define MLXPLAT_CPLD_LPC_REG_DBG1_OFFSET 0x3c
-#define MLXPLAT_CPLD_LPC_REG_DBG2_OFFSET 0x3d
-#define MLXPLAT_CPLD_LPC_REG_DBG3_OFFSET 0x3e
-#define MLXPLAT_CPLD_LPC_REG_DBG4_OFFSET 0x3f
#define MLXPLAT_CPLD_LPC_REG_AGGRLO_OFFSET 0x40
#define MLXPLAT_CPLD_LPC_REG_AGGRLO_MASK_OFFSET 0x41
#define MLXPLAT_CPLD_LPC_REG_AGGRCO_OFFSET 0x42
@@ -126,6 +122,10 @@
#define MLXPLAT_CPLD_LPC_REG_LC_SD_EVENT_OFFSET 0xaa
#define MLXPLAT_CPLD_LPC_REG_LC_SD_MASK_OFFSET 0xab
#define MLXPLAT_CPLD_LPC_REG_LC_PWR_ON 0xb2
+#define MLXPLAT_CPLD_LPC_REG_DBG1_OFFSET 0xb6
+#define MLXPLAT_CPLD_LPC_REG_DBG2_OFFSET 0xb7
+#define MLXPLAT_CPLD_LPC_REG_DBG3_OFFSET 0xb8
+#define MLXPLAT_CPLD_LPC_REG_DBG4_OFFSET 0xb9
#define MLXPLAT_CPLD_LPC_REG_GP4_RO_OFFSET 0xc2
#define MLXPLAT_CPLD_LPC_REG_SPI_CHNL_SELECT 0xc3
#define MLXPLAT_CPLD_LPC_REG_WD_CLEAR_OFFSET 0xc7
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues
2023-08-13 8:37 [PATCH platform 0/4] platform/x86: mlx-platform: Provide fixes for several issues Vadim Pasternak
` (3 preceding siblings ...)
2023-08-13 8:37 ` [PATCH platform 4/4] platform: mellanox: Change register offset addresses Vadim Pasternak
@ 2023-08-13 12:56 ` Hans de Goede
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2023-08-13 12:56 UTC (permalink / raw)
To: Vadim Pasternak; +Cc: platform-driver-x86
Hi,
On 8/13/23 10:37, Vadim Pasternak wrote:
> The patch set includes fixes for several issues:
> Patch #1: fixes exit flow order.
> Patch #2: fixes signals definitions.
> Patch #3: fixes platform shutdown callback.
> Patch #3: fixes register offsets
>
> Vadim Pasternak (4):
> platform: mellanox: Fix order in exit flow
> platform: mellanox: mlx-platform: Fix signals polarity and latch mask
> platform: mellanox: mlx-platform: Modify graceful shutdown callback
> and power down mask
> platform: mellanox: Change register offset addresses
Thank you for your series, I've applied this series
to the pdx86/fixes branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes
I will include this series in my next fixes pull-req to Linus
for the current kernel development cycle.
Regards,
Hans
^ permalink raw reply [flat|nested] 6+ messages in thread