From: Matt Roper <matthew.d.roper@intel.com> To: intel-gfx@lists.freedesktop.org Cc: Matt Roper <matthew.d.roper@intel.com>, Mauro Carvalho Chehab <mchehab@osg.samsung.com>, Jean Delvare <jdelvare@suse.com>, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/8] dmi: Move memdev_dmi_entry definition to dmi.h (v2) Date: Tue, 8 Mar 2016 10:32:37 -0800 [thread overview] Message-ID: <1457461957-23029-1-git-send-email-matthew.d.roper@intel.com> (raw) In-Reply-To: <20160308133713.24e0b71a@endymion> A couple of the EDAC drivers have a nice memdev_dmi_entry structure for decoding DMI memory device entries. Move the structure definition to dmi.h so that it can be shared between those drivers and also other parts of the kernel; the i915 graphics driver is going to need to use this structure soon as well. As part of this move we rename the structure s/memdev_dmi_entry/dmi_entry_memdev/ to ensure it has a proper 'dmi' prefix. v2: - Rename structure to dmi_entry_memdev. (Jean) - Use __packed instead of __attribute__((__packed__)) for consistency with the rest of the dmi.h header. (Jean) Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: Jean Delvare <jdelvare@suse.com> Cc: linux-edac@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/edac/ghes_edac.c | 28 +-------------------------- drivers/edac/i7core_edac.c | 47 +++++++++++----------------------------------- include/linux/dmi.h | 25 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 63 deletions(-) diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c index e3fa439..39535bb 100644 --- a/drivers/edac/ghes_edac.c +++ b/drivers/edac/ghes_edac.c @@ -35,32 +35,6 @@ static DEFINE_MUTEX(ghes_edac_lock); static int ghes_edac_mc_num; -/* Memory Device - Type 17 of SMBIOS spec */ -struct memdev_dmi_entry { - u8 type; - u8 length; - u16 handle; - u16 phys_mem_array_handle; - u16 mem_err_info_handle; - u16 total_width; - u16 data_width; - u16 size; - u8 form_factor; - u8 device_set; - u8 device_locator; - u8 bank_locator; - u8 memory_type; - u16 type_detail; - u16 speed; - u8 manufacturer; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 attributes; - u32 extended_size; - u16 conf_mem_clk_speed; -} __attribute__((__packed__)); - struct ghes_edac_dimm_fill { struct mem_ctl_info *mci; unsigned count; @@ -80,7 +54,7 @@ static void ghes_edac_dmidecode(const struct dmi_header *dh, void *arg) struct mem_ctl_info *mci = dimm_fill->mci; if (dh->type == DMI_ENTRY_MEM_DEVICE) { - struct memdev_dmi_entry *entry = (struct memdev_dmi_entry *)dh; + struct dmi_entry_memdev *entry = (struct dmi_entry_memdev *)dh; struct dimm_info *dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, mci->n_layers, dimm_fill->count, 0, 0); diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index 01087a3..fbfb06f 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c @@ -1906,31 +1906,6 @@ static struct notifier_block i7_mce_dec = { .notifier_call = i7core_mce_check_error, }; -struct memdev_dmi_entry { - u8 type; - u8 length; - u16 handle; - u16 phys_mem_array_handle; - u16 mem_err_info_handle; - u16 total_width; - u16 data_width; - u16 size; - u8 form; - u8 device_set; - u8 device_locator; - u8 bank_locator; - u8 memory_type; - u16 type_detail; - u16 speed; - u8 manufacturer; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 attributes; - u32 extended_size; - u16 conf_mem_clk_speed; -} __attribute__((__packed__)); - /* * Decode the DRAM Clock Frequency, be paranoid, make sure that all @@ -1946,28 +1921,28 @@ static void decode_dclk(const struct dmi_header *dh, void *_dclk_freq) return; if (dh->type == DMI_ENTRY_MEM_DEVICE) { - struct memdev_dmi_entry *memdev_dmi_entry = - (struct memdev_dmi_entry *)dh; + struct dmi_entry_memdev *dmi_entry_memdev = + (struct dmi_entry_memdev *)dh; unsigned long conf_mem_clk_speed_offset = - (unsigned long)&memdev_dmi_entry->conf_mem_clk_speed - - (unsigned long)&memdev_dmi_entry->type; + (unsigned long)&dmi_entry_memdev->conf_mem_clk_speed - + (unsigned long)&dmi_entry_memdev->type; unsigned long speed_offset = - (unsigned long)&memdev_dmi_entry->speed - - (unsigned long)&memdev_dmi_entry->type; + (unsigned long)&dmi_entry_memdev->speed - + (unsigned long)&dmi_entry_memdev->type; /* Check that a DIMM is present */ - if (memdev_dmi_entry->size == 0) + if (dmi_entry_memdev->size == 0) return; /* * Pick the configured speed if it's available, otherwise * pick the DIMM speed, or we don't have a speed. */ - if (memdev_dmi_entry->length > conf_mem_clk_speed_offset) { + if (dmi_entry_memdev->length > conf_mem_clk_speed_offset) { dmi_mem_clk_speed = - memdev_dmi_entry->conf_mem_clk_speed; - } else if (memdev_dmi_entry->length > speed_offset) { - dmi_mem_clk_speed = memdev_dmi_entry->speed; + dmi_entry_memdev->conf_mem_clk_speed; + } else if (dmi_entry_memdev->length > speed_offset) { + dmi_mem_clk_speed = dmi_entry_memdev->speed; } else { *dclk_freq = -1; return; diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 5e9c74c..60dcc31 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -78,6 +78,31 @@ struct dmi_header { u16 handle; } __packed; +struct dmi_entry_memdev { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __packed; + struct dmi_device { struct list_head list; int type; -- 2.1.4
WARNING: multiple messages have this Message-ID (diff)
From: Matt Roper <matthew.d.roper@intel.com> To: intel-gfx@lists.freedesktop.org Cc: Jean Delvare <jdelvare@suse.com>, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Mauro Carvalho Chehab <mchehab@osg.samsung.com> Subject: [PATCH 6/8] dmi: Move memdev_dmi_entry definition to dmi.h (v2) Date: Tue, 8 Mar 2016 10:32:37 -0800 [thread overview] Message-ID: <1457461957-23029-1-git-send-email-matthew.d.roper@intel.com> (raw) In-Reply-To: <20160308133713.24e0b71a@endymion> A couple of the EDAC drivers have a nice memdev_dmi_entry structure for decoding DMI memory device entries. Move the structure definition to dmi.h so that it can be shared between those drivers and also other parts of the kernel; the i915 graphics driver is going to need to use this structure soon as well. As part of this move we rename the structure s/memdev_dmi_entry/dmi_entry_memdev/ to ensure it has a proper 'dmi' prefix. v2: - Rename structure to dmi_entry_memdev. (Jean) - Use __packed instead of __attribute__((__packed__)) for consistency with the rest of the dmi.h header. (Jean) Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: Jean Delvare <jdelvare@suse.com> Cc: linux-edac@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/edac/ghes_edac.c | 28 +-------------------------- drivers/edac/i7core_edac.c | 47 +++++++++++----------------------------------- include/linux/dmi.h | 25 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 63 deletions(-) diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c index e3fa439..39535bb 100644 --- a/drivers/edac/ghes_edac.c +++ b/drivers/edac/ghes_edac.c @@ -35,32 +35,6 @@ static DEFINE_MUTEX(ghes_edac_lock); static int ghes_edac_mc_num; -/* Memory Device - Type 17 of SMBIOS spec */ -struct memdev_dmi_entry { - u8 type; - u8 length; - u16 handle; - u16 phys_mem_array_handle; - u16 mem_err_info_handle; - u16 total_width; - u16 data_width; - u16 size; - u8 form_factor; - u8 device_set; - u8 device_locator; - u8 bank_locator; - u8 memory_type; - u16 type_detail; - u16 speed; - u8 manufacturer; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 attributes; - u32 extended_size; - u16 conf_mem_clk_speed; -} __attribute__((__packed__)); - struct ghes_edac_dimm_fill { struct mem_ctl_info *mci; unsigned count; @@ -80,7 +54,7 @@ static void ghes_edac_dmidecode(const struct dmi_header *dh, void *arg) struct mem_ctl_info *mci = dimm_fill->mci; if (dh->type == DMI_ENTRY_MEM_DEVICE) { - struct memdev_dmi_entry *entry = (struct memdev_dmi_entry *)dh; + struct dmi_entry_memdev *entry = (struct dmi_entry_memdev *)dh; struct dimm_info *dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, mci->n_layers, dimm_fill->count, 0, 0); diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index 01087a3..fbfb06f 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c @@ -1906,31 +1906,6 @@ static struct notifier_block i7_mce_dec = { .notifier_call = i7core_mce_check_error, }; -struct memdev_dmi_entry { - u8 type; - u8 length; - u16 handle; - u16 phys_mem_array_handle; - u16 mem_err_info_handle; - u16 total_width; - u16 data_width; - u16 size; - u8 form; - u8 device_set; - u8 device_locator; - u8 bank_locator; - u8 memory_type; - u16 type_detail; - u16 speed; - u8 manufacturer; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 attributes; - u32 extended_size; - u16 conf_mem_clk_speed; -} __attribute__((__packed__)); - /* * Decode the DRAM Clock Frequency, be paranoid, make sure that all @@ -1946,28 +1921,28 @@ static void decode_dclk(const struct dmi_header *dh, void *_dclk_freq) return; if (dh->type == DMI_ENTRY_MEM_DEVICE) { - struct memdev_dmi_entry *memdev_dmi_entry = - (struct memdev_dmi_entry *)dh; + struct dmi_entry_memdev *dmi_entry_memdev = + (struct dmi_entry_memdev *)dh; unsigned long conf_mem_clk_speed_offset = - (unsigned long)&memdev_dmi_entry->conf_mem_clk_speed - - (unsigned long)&memdev_dmi_entry->type; + (unsigned long)&dmi_entry_memdev->conf_mem_clk_speed - + (unsigned long)&dmi_entry_memdev->type; unsigned long speed_offset = - (unsigned long)&memdev_dmi_entry->speed - - (unsigned long)&memdev_dmi_entry->type; + (unsigned long)&dmi_entry_memdev->speed - + (unsigned long)&dmi_entry_memdev->type; /* Check that a DIMM is present */ - if (memdev_dmi_entry->size == 0) + if (dmi_entry_memdev->size == 0) return; /* * Pick the configured speed if it's available, otherwise * pick the DIMM speed, or we don't have a speed. */ - if (memdev_dmi_entry->length > conf_mem_clk_speed_offset) { + if (dmi_entry_memdev->length > conf_mem_clk_speed_offset) { dmi_mem_clk_speed = - memdev_dmi_entry->conf_mem_clk_speed; - } else if (memdev_dmi_entry->length > speed_offset) { - dmi_mem_clk_speed = memdev_dmi_entry->speed; + dmi_entry_memdev->conf_mem_clk_speed; + } else if (dmi_entry_memdev->length > speed_offset) { + dmi_mem_clk_speed = dmi_entry_memdev->speed; } else { *dclk_freq = -1; return; diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 5e9c74c..60dcc31 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -78,6 +78,31 @@ struct dmi_header { u16 handle; } __packed; +struct dmi_entry_memdev { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __packed; + struct dmi_device { struct list_head list; int type; -- 2.1.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-03-08 18:33 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-08 1:05 [PATCH 0/8] SKL WM fixes and Arbitrated Display Bandwidth WA Matt Roper 2016-03-08 1:05 ` [PATCH 1/8] drm/i915/skl+: Use plane size for relative data rate calculation Matt Roper 2016-03-08 1:05 ` [PATCH 2/8] drm/i915/skl+: calculate ddb minimum allocation (v3) Matt Roper 2016-03-08 1:05 ` [PATCH 3/8] drm/i915/skl+: calculate plane pixel rate (v3) Matt Roper 2016-03-08 1:05 ` [PATCH 4/8] drm/i915/skl+: Use scaling amount for plane data rate calculation (v3) Matt Roper 2016-04-13 20:58 ` Sripada, Radhakrishna 2016-03-08 1:05 ` [PATCH 5/8] drm/i915/gen9: Hold wm_mutex around SKL watermark updates Matt Roper 2016-03-08 1:05 ` [PATCH 6/8] dmi: Move memdev_dmi_entry definition to dmi.h Matt Roper 2016-03-08 12:37 ` Jean Delvare 2016-03-08 12:37 ` Jean Delvare 2016-03-08 18:32 ` Matt Roper [this message] 2016-03-08 18:32 ` [PATCH 6/8] dmi: Move memdev_dmi_entry definition to dmi.h (v2) Matt Roper 2016-03-17 14:18 ` Jean Delvare 2017-07-31 8:36 ` Jean Delvare 2017-07-31 8:36 ` Jean Delvare 2017-08-09 16:18 ` Matt Roper 2017-08-09 16:18 ` Matt Roper 2017-08-10 9:39 ` Jean Delvare 2017-08-10 9:39 ` Jean Delvare 2016-03-08 1:05 ` [PATCH 7/8] drm/i915: Add support to parse DMI table and get platform memory info (v3) Matt Roper 2016-03-08 18:49 ` Ville Syrjälä 2016-03-08 18:55 ` Matt Roper 2016-03-08 19:00 ` [PATCH 7/8] drm/i915: Add support to parse DMI table and get platform memory info (v4) Matt Roper 2016-03-08 1:05 ` [PATCH 8/8] drm/i915/skl: WA for watermark calculation based on Arbitrated Display BW (v4) Matt Roper 2016-03-08 5:07 ` [PATCH 0/8] SKL WM fixes and Arbitrated Display Bandwidth WA Kumar, Shobhit 2016-03-08 7:57 ` ✗ Fi.CI.BAT: failure for " Patchwork 2016-03-08 18:51 ` Matt Roper 2016-03-09 7:01 ` ✗ Fi.CI.BAT: failure for SKL WM fixes and Arbitrated Display Bandwidth WA (rev3) Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1457461957-23029-1-git-send-email-matthew.d.roper@intel.com \ --to=matthew.d.roper@intel.com \ --cc=intel-gfx@lists.freedesktop.org \ --cc=jdelvare@suse.com \ --cc=linux-edac@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mchehab@osg.samsung.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.