Accepting request 806806 from home:pluskalm:branches:Base:System
- Update to version 0.94: * Support for AMD IPMI enclosure management * Support for NPEM * Documentation updates * Fix activity indicator state for SMP * Fix for GCC 9 compilation * Update ipbi pattern for drives with previous pattern unknown - Drop no longer needed patches: * Don-t-build-with-Werror.patch * amd_sgpio-Correct-use-of-packed-structs.patch * ledmon-paths-in-systemd-service-file-are-generated.patch * smp-fix-the-activity-indicator-states.patch - Install compat symlink OBS-URL: https://build.opensuse.org/request/show/806806 OBS-URL: https://build.opensuse.org/package/show/Base:System/ledmon?expand=0&rev=39
This commit is contained in:
parent
059dab2104
commit
56a60c01a5
@ -1,34 +0,0 @@
|
|||||||
From e4ee8feed7a2b460bbb202704072c1927015265f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adrian Bunk <bunk@debian.org>
|
|
||||||
Date: Thu, 31 Oct 2019 12:28:48 +0200
|
|
||||||
Subject: [PATCH] Don't build with -Werror
|
|
||||||
|
|
||||||
New compiler versions might output new warnings by default
|
|
||||||
(see #47 for an example), which makes -Werror problematic
|
|
||||||
for distributions.
|
|
||||||
|
|
||||||
The more specific -Werror= settings are usually not a problem.
|
|
||||||
|
|
||||||
The warnings are still shown, but they will no longer break
|
|
||||||
the build.
|
|
||||||
|
|
||||||
Signed-off-by: Adrian Bunk <bunk@debian.org>
|
|
||||||
---
|
|
||||||
configure.ac | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 7bc20f8..7e01bd5 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -22,7 +22,6 @@ AX_AM_CFLAGS_ADD([-Werror=format-truncation=1])
|
|
||||||
AX_AM_CFLAGS_ADD([-Werror=shift-negative-value])
|
|
||||||
AX_AM_CFLAGS_ADD([-Werror=alloca])
|
|
||||||
AX_AM_CFLAGS_ADD([-Werror=missing-field-initializers])
|
|
||||||
-AX_AM_CFLAGS_ADD([-Werror])
|
|
||||||
AX_AM_CFLAGS_ADD([-Werror=format-signedness])
|
|
||||||
|
|
||||||
AC_SUBST([AM_CFLAGS])
|
|
||||||
--
|
|
||||||
2.24.0
|
|
||||||
|
|
@ -1,322 +0,0 @@
|
|||||||
From d4687596f64190afd772bfd5404e56b411424eab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nathan Fontenot <nafonten@amd.com>
|
|
||||||
Date: Mon, 2 Dec 2019 10:59:04 -0600
|
|
||||||
Subject: [PATCH] amd_sgpio: Correct use of packed structs
|
|
||||||
|
|
||||||
With gcc-9 the -Waddress-of-packed-member flag is enabled by default to
|
|
||||||
prevent access to unaligned members of a struct on systems that do not
|
|
||||||
support unaligned accesses.
|
|
||||||
|
|
||||||
To correct this the amd_sgpio code is updated to no longer use pointers
|
|
||||||
to packed structures.
|
|
||||||
|
|
||||||
Signed-off-by: Nathan Fontenot <nathan.fonteno@amd.com>
|
|
||||||
---
|
|
||||||
src/amd_sgpio.c | 220 +++++++++++++++++++++++-------------------------
|
|
||||||
1 file changed, 105 insertions(+), 115 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/amd_sgpio.c b/src/amd_sgpio.c
|
|
||||||
index 8150e4c..efe1c26 100644
|
|
||||||
--- a/src/amd_sgpio.c
|
|
||||||
+++ b/src/amd_sgpio.c
|
|
||||||
@@ -330,112 +330,114 @@ static int _send_sgpio_register(const char *em_buffer_path, void *reg,
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _init_sgpio_hdr(sgpio_hdr_t *hdr, int data_size, int msg_size)
|
|
||||||
+static sgpio_hdr_t _init_sgpio_hdr(int data_size, int msg_size)
|
|
||||||
{
|
|
||||||
- memset(hdr, 0, sizeof(*hdr));
|
|
||||||
+ sgpio_hdr_t hdr = 0;
|
|
||||||
|
|
||||||
- set_sgpio_hdr_msg_type(hdr, SGPIO_HDR_MSG_TYPE_SGPIO);
|
|
||||||
- set_sgpio_hdr_data_size(hdr, data_size);
|
|
||||||
- set_sgpio_hdr_msg_size(hdr, msg_size);
|
|
||||||
+ set_sgpio_hdr_msg_type(&hdr, SGPIO_HDR_MSG_TYPE_SGPIO);
|
|
||||||
+ set_sgpio_hdr_data_size(&hdr, data_size);
|
|
||||||
+ set_sgpio_hdr_msg_size(&hdr, msg_size);
|
|
||||||
+
|
|
||||||
+ return hdr;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_sgpio_hdr(sgpio_hdr_t *hdr)
|
|
||||||
+static void _dump_sgpio_hdr(const char *type, sgpio_hdr_t hdr)
|
|
||||||
{
|
|
||||||
- log_debug("SGPIO Header\n");
|
|
||||||
- log_debug(REG_FMT_2, "message type", get_sgpio_hdr_msg_type(hdr),
|
|
||||||
- "data size", get_sgpio_hdr_data_size(hdr));
|
|
||||||
- log_debug(REG_FMT_1, "message size", get_sgpio_hdr_msg_size(hdr));
|
|
||||||
+ log_debug("%s SGPIO Header: %08x\n", type, hdr);
|
|
||||||
+ log_debug(REG_FMT_2, "message type", get_sgpio_hdr_msg_type(&hdr),
|
|
||||||
+ "data size", get_sgpio_hdr_data_size(&hdr));
|
|
||||||
+ log_debug(REG_FMT_1, "message size", get_sgpio_hdr_msg_size(&hdr));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _init_sgpio_req(sgpio_req_t *req, int frame_type, int function,
|
|
||||||
- int reg_type, int reg_index, int reg_count)
|
|
||||||
+static sgpio_req_t _init_sgpio_req(int frame_type, int function,
|
|
||||||
+ int reg_type, int reg_index,
|
|
||||||
+ int reg_count)
|
|
||||||
{
|
|
||||||
- memset(req, 0, sizeof(*req));
|
|
||||||
+ sgpio_req_t req = 0;
|
|
||||||
+
|
|
||||||
+ set_sgpio_req_frame_type(&req, frame_type);
|
|
||||||
+ set_sgpio_req_function(&req, function);
|
|
||||||
+ set_sgpio_req_reg_type(&req, reg_type);
|
|
||||||
+ set_sgpio_req_reg_index(&req, reg_index);
|
|
||||||
+ set_sgpio_req_reg_count(&req, reg_count);
|
|
||||||
|
|
||||||
- set_sgpio_req_frame_type(req, frame_type);
|
|
||||||
- set_sgpio_req_function(req, function);
|
|
||||||
- set_sgpio_req_reg_type(req, reg_type);
|
|
||||||
- set_sgpio_req_reg_index(req, reg_index);
|
|
||||||
- set_sgpio_req_reg_count(req, reg_count);
|
|
||||||
+ return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_sgpio_req(sgpio_req_t *req)
|
|
||||||
+static void _dump_sgpio_req(const char *type, sgpio_req_t req)
|
|
||||||
{
|
|
||||||
- log_debug("SGPIO Request Register:\n");
|
|
||||||
- log_debug(REG_FMT_2, "frame type", get_sgpio_req_frame_type(req),
|
|
||||||
- "function", get_sgpio_req_function(req));
|
|
||||||
- log_debug(REG_FMT_2, "register type", get_sgpio_req_reg_type(req),
|
|
||||||
- "register index", get_sgpio_req_reg_index(req));
|
|
||||||
- log_debug(REG_FMT_1, "register count", get_sgpio_req_reg_count(req));
|
|
||||||
+ uint32_t *r = (uint32_t *)&req;
|
|
||||||
+
|
|
||||||
+ log_debug("%s SGPIO Request Register: %08x %08x\n", type, r[0], r[1]);
|
|
||||||
+ log_debug(REG_FMT_2, "frame type", get_sgpio_req_frame_type(&req),
|
|
||||||
+ "function", get_sgpio_req_function(&req));
|
|
||||||
+ log_debug(REG_FMT_2, "register type", get_sgpio_req_reg_type(&req),
|
|
||||||
+ "register index", get_sgpio_req_reg_index(&req));
|
|
||||||
+ log_debug(REG_FMT_1, "register count", get_sgpio_req_reg_count(&req));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _init_sgpio_cfg(sgpio_cfg_t *cfg, int gpio_enable, int blink_a,
|
|
||||||
- int blink_b, int force_off, int max_on,
|
|
||||||
- int stretch_off, int stretch_on)
|
|
||||||
+static sgpio_cfg_t _init_sgpio_cfg(int gpio_enable, int blink_a,
|
|
||||||
+ int blink_b, int force_off, int max_on,
|
|
||||||
+ int stretch_off, int stretch_on)
|
|
||||||
{
|
|
||||||
- memset(cfg, 0, sizeof(*cfg));
|
|
||||||
+ sgpio_cfg_t cfg = 0;
|
|
||||||
|
|
||||||
if (gpio_enable)
|
|
||||||
- set_sgpio_cfg_gpio_enable(cfg, 1);
|
|
||||||
-
|
|
||||||
- set_sgpio_cfg_blink_gen_a(cfg, blink_a);
|
|
||||||
- set_sgpio_cfg_blink_gen_b(cfg, blink_b);
|
|
||||||
- set_sgpio_cfg_max_on(cfg, max_on);
|
|
||||||
- set_sgpio_cfg_force_off(cfg, force_off);
|
|
||||||
- set_sgpio_cfg_stretch_on(cfg, stretch_on);
|
|
||||||
- set_sgpio_cfg_stretch_off(cfg, stretch_off);
|
|
||||||
+ set_sgpio_cfg_gpio_enable(&cfg, 1);
|
|
||||||
+
|
|
||||||
+ set_sgpio_cfg_blink_gen_a(&cfg, blink_a);
|
|
||||||
+ set_sgpio_cfg_blink_gen_b(&cfg, blink_b);
|
|
||||||
+ set_sgpio_cfg_max_on(&cfg, max_on);
|
|
||||||
+ set_sgpio_cfg_force_off(&cfg, force_off);
|
|
||||||
+ set_sgpio_cfg_stretch_on(&cfg, stretch_on);
|
|
||||||
+ set_sgpio_cfg_stretch_off(&cfg, stretch_off);
|
|
||||||
+
|
|
||||||
+ return cfg;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_sgpio_cfg(sgpio_cfg_t *cfg)
|
|
||||||
+static void _dump_sgpio_cfg(const char *type, sgpio_cfg_t cfg)
|
|
||||||
{
|
|
||||||
- log_debug("SGPIO Configuration Register:\n");
|
|
||||||
- log_debug(REG_FMT_2, "version", get_sgpio_cfg_version(cfg),
|
|
||||||
- "gp register count", get_sgpio_cfg_gp_reg_count(cfg));
|
|
||||||
+ uint32_t *r = (uint32_t *)&cfg;
|
|
||||||
+
|
|
||||||
+ log_debug("%s SGPIO Configuration Register: %08x %08x\n", type,
|
|
||||||
+ r[0], r[1]);
|
|
||||||
+ log_debug(REG_FMT_2, "version", get_sgpio_cfg_version(&cfg),
|
|
||||||
+ "gp register count", get_sgpio_cfg_gp_reg_count(&cfg));
|
|
||||||
log_debug(REG_FMT_2, "cfg register count",
|
|
||||||
- get_sgpio_cfg_cfg_reg_count(cfg), "gpio enabled",
|
|
||||||
- get_sgpio_cfg_gpio_enable(cfg));
|
|
||||||
- log_debug(REG_FMT_2, "drive count", get_sgpio_cfg_drive_count(cfg),
|
|
||||||
- "blink gen rate A", get_sgpio_cfg_blink_gen_a(cfg));
|
|
||||||
+ get_sgpio_cfg_cfg_reg_count(&cfg), "gpio enabled",
|
|
||||||
+ get_sgpio_cfg_gpio_enable(&cfg));
|
|
||||||
+ log_debug(REG_FMT_2, "drive count", get_sgpio_cfg_drive_count(&cfg),
|
|
||||||
+ "blink gen rate A", get_sgpio_cfg_blink_gen_a(&cfg));
|
|
||||||
|
|
||||||
log_debug(REG_FMT_2, "blink gen rate B",
|
|
||||||
- get_sgpio_cfg_blink_gen_b(cfg), "force activity off",
|
|
||||||
- get_sgpio_cfg_force_off(cfg));
|
|
||||||
- log_debug(REG_FMT_2, "max activity on", get_sgpio_cfg_max_on(cfg),
|
|
||||||
- "stretch activity off", get_sgpio_cfg_stretch_off(cfg));
|
|
||||||
+ get_sgpio_cfg_blink_gen_b(&cfg), "force activity off",
|
|
||||||
+ get_sgpio_cfg_force_off(&cfg));
|
|
||||||
+ log_debug(REG_FMT_2, "max activity on", get_sgpio_cfg_max_on(&cfg),
|
|
||||||
+ "stretch activity off", get_sgpio_cfg_stretch_off(&cfg));
|
|
||||||
log_debug(REG_FMT_1, "stretch activity on",
|
|
||||||
- get_sgpio_cfg_stretch_on(cfg));
|
|
||||||
+ get_sgpio_cfg_stretch_on(&cfg));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _init_sgpio_amd(sgpio_amd_t *amd, int initiator, int polarity,
|
|
||||||
- int bypass, int normal)
|
|
||||||
+static sgpio_amd_t _init_sgpio_amd(int initiator, int polarity,
|
|
||||||
+ int bypass, int normal)
|
|
||||||
{
|
|
||||||
- memset(amd, 0, sizeof(*amd));
|
|
||||||
+ sgpio_amd_t amd = 0;
|
|
||||||
|
|
||||||
- set_sgpio_amd_initiator(amd, initiator);
|
|
||||||
- set_sgpio_amd_polarity_flip(amd, polarity);
|
|
||||||
- set_sgpio_amd_bypass_enable(amd, bypass);
|
|
||||||
- set_sgpio_amd_return_to_normal(amd, normal);
|
|
||||||
-}
|
|
||||||
+ set_sgpio_amd_initiator(&amd, initiator);
|
|
||||||
+ set_sgpio_amd_polarity_flip(&amd, polarity);
|
|
||||||
+ set_sgpio_amd_bypass_enable(&amd, bypass);
|
|
||||||
+ set_sgpio_amd_return_to_normal(&amd, normal);
|
|
||||||
|
|
||||||
-static void _dump_sgpio_amd(sgpio_amd_t *amd)
|
|
||||||
-{
|
|
||||||
- log_debug("SGPIO AMD Register\n");
|
|
||||||
- log_debug(REG_FMT_2, "initiator", get_sgpio_amd_initiator(amd),
|
|
||||||
- "polarity", get_sgpio_amd_polarity_flip(amd));
|
|
||||||
- log_debug(REG_FMT_2, "bypass enable", get_sgpio_amd_bypass_enable(amd),
|
|
||||||
- "return to normal", get_sgpio_amd_return_to_normal(amd));
|
|
||||||
+ return amd;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_cfg_register(struct config_register *cfg_reg)
|
|
||||||
+static void _dump_sgpio_amd(const char *type, sgpio_amd_t amd)
|
|
||||||
{
|
|
||||||
- uint32_t *reg = (uint32_t *)cfg_reg;
|
|
||||||
-
|
|
||||||
- log_info("CFG Register: %08x %08x %08x %08x %08x",
|
|
||||||
- reg[0], reg[1], reg[2], reg[3], reg[4]);
|
|
||||||
-
|
|
||||||
- _dump_sgpio_hdr(&cfg_reg->hdr);
|
|
||||||
- _dump_sgpio_req(&cfg_reg->req);
|
|
||||||
- _dump_sgpio_cfg(&cfg_reg->cfg);
|
|
||||||
+ log_debug("%s SGPIO AMD Register: %08x\n", type, amd);
|
|
||||||
+ log_debug(REG_FMT_2, "initiator", get_sgpio_amd_initiator(&amd),
|
|
||||||
+ "polarity", get_sgpio_amd_polarity_flip(&amd));
|
|
||||||
+ log_debug(REG_FMT_2, "bypass enable", get_sgpio_amd_bypass_enable(&amd),
|
|
||||||
+ "return to normal", get_sgpio_amd_return_to_normal(&amd));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int _write_cfg_register(const char *em_buffer_path,
|
|
||||||
@@ -443,53 +445,49 @@ static int _write_cfg_register(const char *em_buffer_path,
|
|
||||||
{
|
|
||||||
struct config_register cfg_reg;
|
|
||||||
|
|
||||||
- _init_sgpio_hdr(&cfg_reg.hdr, 0, sizeof(cfg_reg));
|
|
||||||
- _init_sgpio_req(&cfg_reg.req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_CFG, 0, 2);
|
|
||||||
+ cfg_reg.hdr = _init_sgpio_hdr(0, sizeof(cfg_reg));
|
|
||||||
+ cfg_reg.req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_CFG,
|
|
||||||
+ 0, 2);
|
|
||||||
|
|
||||||
if (cache->blink_gen_a)
|
|
||||||
cache->blink_gen_b = ibpi_pattern[ibpi];
|
|
||||||
else
|
|
||||||
cache->blink_gen_a = ibpi_pattern[ibpi];
|
|
||||||
|
|
||||||
- _init_sgpio_cfg(&cfg_reg.cfg, 1, cache->blink_gen_a, cache->blink_gen_b,
|
|
||||||
- 2, 1, 0, 0);
|
|
||||||
+ cfg_reg.cfg = _init_sgpio_cfg(1, cache->blink_gen_a,
|
|
||||||
+ cache->blink_gen_b, 2, 1, 0, 0);
|
|
||||||
+
|
|
||||||
+ _dump_sgpio_hdr("CFG", cfg_reg.hdr);
|
|
||||||
+ _dump_sgpio_req("CFG", cfg_reg.req);
|
|
||||||
+ _dump_sgpio_cfg("CFG", cfg_reg.cfg);
|
|
||||||
|
|
||||||
- _dump_cfg_register(&cfg_reg);
|
|
||||||
return _send_sgpio_register(em_buffer_path, &cfg_reg, sizeof(cfg_reg));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_sgpio_tx(sgpio_tx_t *tx)
|
|
||||||
+static void _dump_sgpio_tx(const char *type, sgpio_tx_t tx)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
- log_debug("SGPIO TX Register:\n");
|
|
||||||
+ log_debug("%s SGPIO TX Register: %08x\n", type, tx);
|
|
||||||
for (i = 0; i < 4; i++) {
|
|
||||||
log_debug("\tdrive %d: error %x, locate %x, activity %x\n", i,
|
|
||||||
- get_error_led(&tx->drive[i]),
|
|
||||||
- get_locate_led(&tx->drive[i]),
|
|
||||||
- get_activity_led(&tx->drive[i]));
|
|
||||||
+ get_error_led(&tx.drive[i]),
|
|
||||||
+ get_locate_led(&tx.drive[i]),
|
|
||||||
+ get_activity_led(&tx.drive[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_tx_register(struct transmit_register *tx_reg)
|
|
||||||
-{
|
|
||||||
- uint32_t *reg = (uint32_t *)tx_reg;
|
|
||||||
-
|
|
||||||
- log_info("TX Register: %08x %08x %08x %08x", reg[0], reg[1],
|
|
||||||
- reg[2], reg[3]);
|
|
||||||
-
|
|
||||||
- _dump_sgpio_hdr(&tx_reg->hdr);
|
|
||||||
- _dump_sgpio_req(&tx_reg->req);
|
|
||||||
- _dump_sgpio_tx(&tx_reg->tx);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static int _write_tx_register(const char *em_buffer_path,
|
|
||||||
struct transmit_register *tx_reg)
|
|
||||||
{
|
|
||||||
- _init_sgpio_hdr(&tx_reg->hdr, 0, sizeof(*tx_reg));
|
|
||||||
- _init_sgpio_req(&tx_reg->req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_TX, 0, 1);
|
|
||||||
+ tx_reg->hdr = _init_sgpio_hdr(0, sizeof(*tx_reg));
|
|
||||||
+ tx_reg->req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_TX,
|
|
||||||
+ 0, 1);
|
|
||||||
+
|
|
||||||
+ _dump_sgpio_hdr("TX", tx_reg->hdr);
|
|
||||||
+ _dump_sgpio_req("TX", tx_reg->req);
|
|
||||||
+ _dump_sgpio_tx("TX", tx_reg->tx);
|
|
||||||
|
|
||||||
- _dump_tx_register(tx_reg);
|
|
||||||
return _send_sgpio_register(em_buffer_path, tx_reg, sizeof(*tx_reg));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -538,28 +536,20 @@ static int _init_tx_drive_leds(struct transmit_register *tx_reg,
|
|
||||||
return init_done;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void _dump_amd_register(struct amd_register *amd_reg)
|
|
||||||
-{
|
|
||||||
- uint32_t *reg = (uint32_t *)amd_reg;
|
|
||||||
-
|
|
||||||
- log_info("AMD Register: %08x %08x %08x %08x", reg[0], reg[1],
|
|
||||||
- reg[2], reg[3]);
|
|
||||||
-
|
|
||||||
- _dump_sgpio_hdr(&amd_reg->hdr);
|
|
||||||
- _dump_sgpio_req(&amd_reg->req);
|
|
||||||
- _dump_sgpio_amd(&amd_reg->amd);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static int _write_amd_register(const char *em_buffer_path,
|
|
||||||
struct amd_drive *drive)
|
|
||||||
{
|
|
||||||
struct amd_register amd_reg;
|
|
||||||
|
|
||||||
- _init_sgpio_hdr(&amd_reg.hdr, 0, sizeof(amd_reg));
|
|
||||||
- _init_sgpio_req(&amd_reg.req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_AMD, 0, 1);
|
|
||||||
- _init_sgpio_amd(&amd_reg.amd, drive->initiator, 0, 1, 1);
|
|
||||||
+ amd_reg.hdr = _init_sgpio_hdr(0, sizeof(amd_reg));
|
|
||||||
+ amd_reg.req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_AMD,
|
|
||||||
+ 0, 1);
|
|
||||||
+ amd_reg.amd = _init_sgpio_amd(drive->initiator, 0, 1, 1);
|
|
||||||
+
|
|
||||||
+ _dump_sgpio_hdr("AMD", amd_reg.hdr);
|
|
||||||
+ _dump_sgpio_req("AMD", amd_reg.req);
|
|
||||||
+ _dump_sgpio_amd("AMD", amd_reg.amd);
|
|
||||||
|
|
||||||
- _dump_amd_register(&amd_reg);
|
|
||||||
return _send_sgpio_register(em_buffer_path, &amd_reg, sizeof(amd_reg));
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:26570aee3f98a4eb47e0d9f92bd9d2d2efa3385b0e9be23e60daba54471d276c
|
|
||||||
size 76411
|
|
3
ledmon-0.94.tar.gz
Normal file
3
ledmon-0.94.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:2d7085cfc04d071fbf4a30654d0a23803d37cb73d966b0bd65fa467147df00a9
|
||||||
|
size 81676
|
@ -1,62 +0,0 @@
|
|||||||
From 13040e80dec77d7c9e9e3636f2068fce9e056dc2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Krzysztof Smolinski <krzysztof.smolinski@intel.com>
|
|
||||||
Date: Sun, 10 Nov 2019 18:58:01 +0100
|
|
||||||
Subject: [PATCH] ledmon: paths in systemd service file are generated
|
|
||||||
|
|
||||||
Ledmon service file contained hardcoded path to ledmon executable.
|
|
||||||
This patch places correct installation path of ledmon in systemd
|
|
||||||
service file.
|
|
||||||
|
|
||||||
Signed-off-by: Krzysztof Smolinski <krzysztof.smolinski@intel.com>
|
|
||||||
---
|
|
||||||
Makefile.am | 2 +-
|
|
||||||
systemd/Makefile.am | 6 ++++++
|
|
||||||
systemd/{ledmon.service => ledmon.service.in} | 2 +-
|
|
||||||
3 files changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
rename systemd/{ledmon.service => ledmon.service.in} (76%)
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index 0bfc188..63bf8a3 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -21,5 +21,5 @@ if SYSTEMD_CONDITION
|
|
||||||
endif
|
|
||||||
|
|
||||||
SUBDIRS = doc src $(OPTIONAL_SUBDIR)
|
|
||||||
-EXTRA_DIST = config/config.h systemd/ledmon.service
|
|
||||||
+EXTRA_DIST = config/config.h systemd/ledmon.service.in
|
|
||||||
dist_doc_DATA = README
|
|
||||||
diff --git a/systemd/Makefile.am b/systemd/Makefile.am
|
|
||||||
index 4303628..962b122 100644
|
|
||||||
--- a/systemd/Makefile.am
|
|
||||||
+++ b/systemd/Makefile.am
|
|
||||||
@@ -18,6 +18,12 @@
|
|
||||||
|
|
||||||
# Installation directory of ledmon systemd service unit.
|
|
||||||
systemddir = @SYSTEMD_PATH@
|
|
||||||
+SED = sed
|
|
||||||
+
|
|
||||||
+CLEANFILES = ledmon.service ledmon.service.tmp
|
|
||||||
|
|
||||||
systemd_DATA = ledmon.service
|
|
||||||
|
|
||||||
+ledmon.service : ledmon.service.in
|
|
||||||
+ $(SED) -e 's|@sbindir[@]|$(sbindir)|g' < $< > $@.tmp
|
|
||||||
+ mv $@.tmp $@
|
|
||||||
diff --git a/systemd/ledmon.service b/systemd/ledmon.service.in
|
|
||||||
similarity index 76%
|
|
||||||
rename from systemd/ledmon.service
|
|
||||||
rename to systemd/ledmon.service.in
|
|
||||||
index d2fa08c..059fd95 100644
|
|
||||||
--- a/systemd/ledmon.service
|
|
||||||
+++ b/systemd/ledmon.service.in
|
|
||||||
@@ -7,5 +7,5 @@ WantedBy=multi-user.target
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=root
|
|
||||||
-ExecStart=/usr/sbin/ledmon --foreground
|
|
||||||
+ExecStart=@sbindir@/ledmon --foreground
|
|
||||||
Restart=on-failure
|
|
||||||
--
|
|
||||||
2.24.0
|
|
||||||
|
|
@ -1,3 +1,20 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 18 07:59:53 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
|
||||||
|
|
||||||
|
- Update to version 0.94:
|
||||||
|
* Support for AMD IPMI enclosure management
|
||||||
|
* Support for NPEM
|
||||||
|
* Documentation updates
|
||||||
|
* Fix activity indicator state for SMP
|
||||||
|
* Fix for GCC 9 compilation
|
||||||
|
* Update ipbi pattern for drives with previous pattern unknown
|
||||||
|
- Drop no longer needed patches:
|
||||||
|
* Don-t-build-with-Werror.patch
|
||||||
|
* amd_sgpio-Correct-use-of-packed-structs.patch
|
||||||
|
* ledmon-paths-in-systemd-service-file-are-generated.patch
|
||||||
|
* smp-fix-the-activity-indicator-states.patch
|
||||||
|
- Install compat symlink
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 27 02:09:00 UTC 2019 - heming.zhao@suse.com
|
Fri Dec 27 02:09:00 UTC 2019 - heming.zhao@suse.com
|
||||||
|
|
||||||
|
15
ledmon.spec
15
ledmon.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package ledmon
|
# spec file for package ledmon
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2020 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -17,23 +17,19 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: ledmon
|
Name: ledmon
|
||||||
Version: 0.93
|
Version: 0.94
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Enclosure LED Utilities
|
Summary: Enclosure LED Utilities
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
Group: Hardware/Other
|
Group: Hardware/Other
|
||||||
URL: https://github.com/intel/ledmon/
|
URL: https://github.com/intel/ledmon/
|
||||||
Source0: https://github.com/intel/ledmon/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
Source0: https://github.com/intel/ledmon/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
# PATCH-FEATURE-UPSTREAM ledmon-amd_sgpio.patch
|
|
||||||
Patch0: Don-t-build-with-Werror.patch
|
|
||||||
Patch1: ledmon-paths-in-systemd-service-file-are-generated.patch
|
|
||||||
Patch2: smp-fix-the-activity-indicator-states.patch
|
|
||||||
Patch3: amd_sgpio-Correct-use-of-packed-structs.patch
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: libsgutils-devel
|
BuildRequires: libsgutils-devel
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
|
BuildRequires: pkgconfig(libpci)
|
||||||
BuildRequires: pkgconfig(libudev)
|
BuildRequires: pkgconfig(libudev)
|
||||||
BuildRequires: pkgconfig(systemd)
|
BuildRequires: pkgconfig(systemd)
|
||||||
Provides: sgpio:/sbin/ledmon
|
Provides: sgpio:/sbin/ledmon
|
||||||
@ -46,7 +42,7 @@ ControlUtilities. They help to enable LED management for software RAID
|
|||||||
solutions.
|
solutions.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%define _lto_cflags %{nil}
|
%define _lto_cflags %{nil}
|
||||||
@ -57,6 +53,8 @@ autoreconf -fiv
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
|
ln -sv %{_sbindir}/service \
|
||||||
|
%{buildroot}%{_sbindir}/rc%{name}
|
||||||
rm %{buildroot}%{_datarootdir}/doc/ledmon/README
|
rm %{buildroot}%{_datarootdir}/doc/ledmon/README
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -76,6 +74,7 @@ rm %{buildroot}%{_datarootdir}/doc/ledmon/README
|
|||||||
%doc README
|
%doc README
|
||||||
%{_sbindir}/ledmon
|
%{_sbindir}/ledmon
|
||||||
%{_sbindir}/ledctl
|
%{_sbindir}/ledctl
|
||||||
|
%{_sbindir}/rcledmon
|
||||||
%{_unitdir}/ledmon.service
|
%{_unitdir}/ledmon.service
|
||||||
%{_mandir}/man5/ledmon.conf.5.5%{?ext_man}
|
%{_mandir}/man5/ledmon.conf.5.5%{?ext_man}
|
||||||
%{_mandir}/man8/ledctl.8.8%{?ext_man}
|
%{_mandir}/man8/ledctl.8.8%{?ext_man}
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
From dc6d2c546b938b106f4f8ba708989193d9a6c90d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
|
|
||||||
Date: Fri, 29 Nov 2019 11:56:41 +0100
|
|
||||||
Subject: [PATCH] smp: fix the activity indicator states
|
|
||||||
|
|
||||||
The values for SOF and EOF were interchanged, which caused an incorrect
|
|
||||||
default value to be used (100b instead of 101b).
|
|
||||||
|
|
||||||
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
|
|
||||||
---
|
|
||||||
src/smp.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/smp.c b/src/smp.c
|
|
||||||
index b893d76..2c089f8 100644
|
|
||||||
--- a/src/smp.c
|
|
||||||
+++ b/src/smp.c
|
|
||||||
@@ -61,8 +61,8 @@
|
|
||||||
#define LED_ON 1
|
|
||||||
#define LED_4HZ 2
|
|
||||||
#define LED_I4HZ 3
|
|
||||||
-#define LED_SOF 4
|
|
||||||
-#define LED_EOF 5
|
|
||||||
+#define LED_EOF 4
|
|
||||||
+#define LED_SOF 5
|
|
||||||
#define LED_2HZ 6
|
|
||||||
#define LED_I2HZ 7
|
|
||||||
|
|
||||||
--
|
|
||||||
2.24.0
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user