Skip to content

Commit

Permalink
driver: edac: Use error events header file in xilinx ddrmc driver
Browse files Browse the repository at this point in the history
As macros for the error event node-id and error event mask are available
in xlnx-error-events.h header file to use with xilinx event management
driver.

So, Replace the existing macro with macros from xlnx-error-events.h as
below,
- EVENT_ERROR_PMC_ERR1 gets replace by XPM_NODETYPE_EVENT_ERROR_PMC_ERR1,
- PMC_ERR1_DDRMC_CR gets replace by XPM_EVENT_ERROR_MASK_DDRMC_CR,
- PMC_ERR1_DDRMC_NCR gets replace by XPM_EVENT_ERROR_MASK_DDRMC_NCR.

Signed-off-by: Abhyuday Godhasara <abhyuday.godhasara@xilinx.com>
  • Loading branch information
agodhasa-xilinx authored and Michal Simek committed Sep 20, 2021
1 parent 7dcc924 commit 7d8a993
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions drivers/edac/xilinx_ddrmc_edac.c
Expand Up @@ -11,6 +11,7 @@
#include <linux/platform_device.h>
#include <linux/sizes.h>
#include <linux/firmware/xlnx-zynqmp.h>
#include <linux/firmware/xlnx-error-events.h>
#include <linux/firmware/xlnx-event-manager.h>

#include "edac_module.h"
Expand Down Expand Up @@ -225,8 +226,6 @@
#define XILINX_DRAM_SIZE_16G 4
#define XILINX_DRAM_SIZE_32G 5

#define PMC_ERR1_DDRMC_CR BIT(18)
#define PMC_ERR1_DDRMC_NCR BIT(19)
/**
* struct xddr_ecc_error_info - ECC error log information.
* @rank: Rank number.
Expand Down Expand Up @@ -604,9 +603,9 @@ static void xddr_err_callback(const u32 *payload, void *data)
/* Lock the PCSR registers */

writel(1, priv->ddrmc_baseaddr + XDDR_PCSR_OFFSET);
if (payload[2] == PMC_ERR1_DDRMC_CR)
if (payload[2] == XPM_EVENT_ERROR_MASK_DDRMC_CR)
p->error_type = XDDR_ERR_TYPE_CE;
if (payload[2] == PMC_ERR1_DDRMC_NCR)
if (payload[2] == XPM_EVENT_ERROR_MASK_DDRMC_NCR)
p->error_type = XDDR_ERR_TYPE_UE;

status = xddr_get_error_info(priv);
Expand Down Expand Up @@ -1191,8 +1190,8 @@ static int xddr_mc_probe(struct platform_device *pdev)
xddr_setup_address_map(priv);
#endif

rc = xlnx_register_event(PM_NOTIFY_CB, EVENT_ERROR_PMC_ERR1,
PMC_ERR1_DDRMC_CR | PMC_ERR1_DDRMC_NCR,
rc = xlnx_register_event(PM_NOTIFY_CB, XPM_NODETYPE_EVENT_ERROR_PMC_ERR1,
XPM_EVENT_ERROR_MASK_DDRMC_CR | XPM_EVENT_ERROR_MASK_DDRMC_NCR,
false, xddr_err_callback, mci);
if (rc == -ENODEV) {
rc = xddr_setup_irq(mci, pdev);
Expand Down Expand Up @@ -1235,8 +1234,8 @@ static int xddr_mc_remove(struct platform_device *pdev)
edac_remove_sysfs_attributes(mci);
#endif

xlnx_unregister_event(PM_NOTIFY_CB, EVENT_ERROR_PMC_ERR1,
PMC_ERR1_DDRMC_CR | PMC_ERR1_DDRMC_CR,
xlnx_unregister_event(PM_NOTIFY_CB, XPM_NODETYPE_EVENT_ERROR_PMC_ERR1,
XPM_EVENT_ERROR_MASK_DDRMC_CR | XPM_EVENT_ERROR_MASK_DDRMC_NCR,
xddr_err_callback);
edac_mc_del_mc(&pdev->dev);
edac_mc_free(mci);
Expand Down

0 comments on commit 7d8a993

Please sign in to comment.