You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.7 KiB
60 lines
1.7 KiB
2 years ago
|
From 86853162d53b47cd0f6bcb926810aa0fd68b8898 Mon Sep 17 00:00:00 2001
|
||
|
From: Ido Schimmel <idosch@nvidia.com>
|
||
|
Date: Tue, 23 Nov 2021 19:40:57 +0200
|
||
|
Subject: [PATCH 29/35] cmis: Initialize Page 02h in memory map
|
||
|
|
||
|
Page 02h stores module and lane thresholds that are going to be parsed
|
||
|
and displayed in subsequent patches.
|
||
|
|
||
|
Request it via the 'MODULE_EEPROM_GET' netlink message and initialize it
|
||
|
in the memory map.
|
||
|
|
||
|
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
|
||
|
---
|
||
|
cmis.c | 13 ++++++++++---
|
||
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/cmis.c b/cmis.c
|
||
|
index 4798fd4c7d68..55b9d1b959cd 100644
|
||
|
--- a/cmis.c
|
||
|
+++ b/cmis.c
|
||
|
@@ -17,9 +17,10 @@
|
||
|
|
||
|
struct cmis_memory_map {
|
||
|
const __u8 *lower_memory;
|
||
|
- const __u8 *upper_memory[1][2]; /* Bank, Page */
|
||
|
+ const __u8 *upper_memory[1][3]; /* Bank, Page */
|
||
|
#define page_00h upper_memory[0x0][0x0]
|
||
|
#define page_01h upper_memory[0x0][0x1]
|
||
|
+#define page_02h upper_memory[0x0][0x2]
|
||
|
};
|
||
|
|
||
|
#define CMIS_PAGE_SIZE 0x80
|
||
|
@@ -423,8 +424,8 @@ cmis_memory_map_init_pages(struct cmd_context *ctx,
|
||
|
return ret;
|
||
|
map->page_00h = request.data - CMIS_PAGE_SIZE;
|
||
|
|
||
|
- /* Page 01h is only present when the module memory model is paged and
|
||
|
- * not flat.
|
||
|
+ /* Pages 01h and 02h are only present when the module memory model is
|
||
|
+ * paged and not flat.
|
||
|
*/
|
||
|
if (map->lower_memory[CMIS_MEMORY_MODEL_OFFSET] &
|
||
|
CMIS_MEMORY_MODEL_MASK)
|
||
|
@@ -436,6 +437,12 @@ cmis_memory_map_init_pages(struct cmd_context *ctx,
|
||
|
return ret;
|
||
|
map->page_01h = request.data - CMIS_PAGE_SIZE;
|
||
|
|
||
|
+ cmis_request_init(&request, 0, 0x2, CMIS_PAGE_SIZE);
|
||
|
+ ret = nl_get_eeprom_page(ctx, &request);
|
||
|
+ if (ret < 0)
|
||
|
+ return ret;
|
||
|
+ map->page_02h = request.data - CMIS_PAGE_SIZE;
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.35.1
|
||
|
|