27f15d40e1
- Why I did it 1. Update Mellanox HW-MGMT package to newer version V.7.0030.1011 2. Replace the SONiC PMON Thermal control algorithm with the one inside the HW-MGMT package on all Nvidia platforms 3. Support Spectrum-4 systems - How I did it 1. Update the HW-MGMT package version number and submodule pointer 2. Remove the thermal control algorithm implementation from Mellanox platform API 3. Revise the patch to HW-MGMT package which will disable HW-MGMT from running on SIMX 4. Update the downstream kernel patch list Signed-off-by: Kebo Liu <kebol@nvidia.com>
78 lines
3.3 KiB
Diff
78 lines
3.3 KiB
Diff
From 6782d682cb0510d0fee33f456ed3492834bad97d Mon Sep 17 00:00:00 2001
|
|
From: Vadim Pasternak <vadimp@nvidia.com>
|
|
Date: Wed, 7 Jul 2021 10:29:27 +0000
|
|
Subject: leds: mlxreg: Allow multi-instantiation of same name LED for modular
|
|
systems
|
|
|
|
It could be more than one instance of LED with the same name in the
|
|
modular systems. For example, "status" or "uid" LED can be located
|
|
on chassis and on each line card of modular system.
|
|
In order to avoid conflicts with duplicated names, append platform
|
|
device Id, which is unique, to LED name after driver name.
|
|
Thus, for example, "status" LED on chassis is to be called, like it is
|
|
called now on non-modular systems, on which platform device Id is not
|
|
specified: "mlxreg:status:green". While for the line cards LEDs it will
|
|
be called like: "pcicard48:status:green", "ibcard66:status:green",
|
|
etc. Where line card prefix is specified according to the type of bus
|
|
connecting line card to the chassis.
|
|
|
|
LED driver works on top of register space of the programmable devices
|
|
(CPLD or FPGA), providing the logic for LED control. The programmable
|
|
devices on the line cards are connected through I2C bus and LED driver
|
|
will work over I2C. On main board programmable device is connected
|
|
through LPC, and LED driver works over LPC.
|
|
|
|
The motivation it to provide support for new modular systems which
|
|
could be equipped with the different types of replaceable line cards
|
|
and management board.
|
|
|
|
Line cards are connected to the chassis through I2C interface for the
|
|
chassis management operations and through PCIe for the networking
|
|
operations.
|
|
|
|
The first type of line card supports 16x100GbE QSFP28 Ethernet ports.
|
|
Those line cards equipped with the programmable devices aimed for
|
|
system control of Nvidia Ethernet switch ASIC control, Nvidia FPGA,
|
|
Nvidia gearboxes (PHYs).
|
|
The next coming card generations are supposed to support:
|
|
- Line cards with 8x200Gbe QSFP28 Ethernet ports.
|
|
- Line cards with 4x400Gbe QSFP-DD Ethernet ports.
|
|
- Smart cards equipped with Nvidia ARM CPU for offloading and for fast
|
|
access to the storage (EBoF).
|
|
- Fabric cards for inter-connection.
|
|
|
|
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
|
|
---
|
|
drivers/leds/leds-mlxreg.c | 15 +++++++++++++--
|
|
1 file changed, 13 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/leds/leds-mlxreg.c b/drivers/leds/leds-mlxreg.c
|
|
index 0f2608a34..099ff4be2 100644
|
|
--- a/drivers/leds/leds-mlxreg.c
|
|
+++ b/drivers/leds/leds-mlxreg.c
|
|
@@ -245,8 +245,19 @@ static int mlxreg_led_config(struct mlxreg_led_priv_data *priv)
|
|
led_data->base_color = MLXREG_LED_GREEN_SOLID;
|
|
led_data->base_color_hw = MLXREG_LED_GREEN_SOLID_HW;
|
|
}
|
|
- snprintf(led_data->led_cdev_name, sizeof(led_data->led_cdev_name),
|
|
- "mlxreg:%s", data->label);
|
|
+
|
|
+ /*
|
|
+ * Id greater than zero is used for LEDs located on replaceable unit,
|
|
+ * like line card or fabric card. In this case Id is set to I2C bus
|
|
+ * number. Otherwise LEDs located on the main board. The field "identity"
|
|
+ * specifies the type of bus connecting line card to the chassis.
|
|
+ */
|
|
+ if (priv->pdev->id > 0)
|
|
+ sprintf(led_data->led_cdev_name, "%scard%d:%s", led_pdata->identity,
|
|
+ priv->pdev->id, data->label);
|
|
+ else
|
|
+ sprintf(led_data->led_cdev_name, "%s:%s", "mlxreg",
|
|
+ data->label);
|
|
led_cdev->name = led_data->led_cdev_name;
|
|
led_cdev->brightness = brightness;
|
|
led_cdev->max_brightness = LED_ON;
|
|
--
|
|
2.14.1
|
|
|