Skip to content

Commit 97d6276

Browse files
jbuddhabgregkh
authored andcommitted
drivers: soc: xilinx: add check for platform
Some error event IDs for Versal and Versal NET are different. Both the platforms should access their respective error event IDs so use sub_family_code to check for platform and check error IDs for respective platforms. The family code is passed via platform data to avoid platform detection again. Platform data is setup when even driver is registered. Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Link: https://lore.kernel.org/r/20231219055025.27570-3-jay.buddhabhatti@amd.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0c4b225 commit 97d6276

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

drivers/edac/versal_edac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ static int mc_probe(struct platform_device *pdev)
10051005
goto free_edac_mc;
10061006
}
10071007

1008-
rc = xlnx_register_event(PM_NOTIFY_CB, EVENT_ERROR_PMC_ERR1,
1008+
rc = xlnx_register_event(PM_NOTIFY_CB, VERSAL_EVENT_ERROR_PMC_ERR1,
10091009
XPM_EVENT_ERROR_MASK_DDRMC_CR | XPM_EVENT_ERROR_MASK_DDRMC_NCR |
10101010
XPM_EVENT_ERROR_MASK_NOC_CR | XPM_EVENT_ERROR_MASK_NOC_NCR,
10111011
false, err_callback, mci);
@@ -1042,7 +1042,7 @@ static int mc_remove(struct platform_device *pdev)
10421042
debugfs_remove_recursive(priv->debugfs);
10431043
#endif
10441044

1045-
xlnx_unregister_event(PM_NOTIFY_CB, EVENT_ERROR_PMC_ERR1,
1045+
xlnx_unregister_event(PM_NOTIFY_CB, VERSAL_EVENT_ERROR_PMC_ERR1,
10461046
XPM_EVENT_ERROR_MASK_DDRMC_CR |
10471047
XPM_EVENT_ERROR_MASK_NOC_CR |
10481048
XPM_EVENT_ERROR_MASK_NOC_NCR |

drivers/soc/xilinx/xlnx_event_manager.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,26 @@ struct registered_event_data {
7777

7878
static bool xlnx_is_error_event(const u32 node_id)
7979
{
80-
if (node_id == EVENT_ERROR_PMC_ERR1 ||
81-
node_id == EVENT_ERROR_PMC_ERR2 ||
82-
node_id == EVENT_ERROR_PSM_ERR1 ||
83-
node_id == EVENT_ERROR_PSM_ERR2)
84-
return true;
80+
u32 pm_family_code, pm_sub_family_code;
81+
82+
zynqmp_pm_get_family_info(&pm_family_code, &pm_sub_family_code);
83+
84+
if (pm_sub_family_code == VERSAL_SUB_FAMILY_CODE) {
85+
if (node_id == VERSAL_EVENT_ERROR_PMC_ERR1 ||
86+
node_id == VERSAL_EVENT_ERROR_PMC_ERR2 ||
87+
node_id == VERSAL_EVENT_ERROR_PSM_ERR1 ||
88+
node_id == VERSAL_EVENT_ERROR_PSM_ERR2)
89+
return true;
90+
} else {
91+
if (node_id == VERSAL_NET_EVENT_ERROR_PMC_ERR1 ||
92+
node_id == VERSAL_NET_EVENT_ERROR_PMC_ERR2 ||
93+
node_id == VERSAL_NET_EVENT_ERROR_PMC_ERR3 ||
94+
node_id == VERSAL_NET_EVENT_ERROR_PSM_ERR1 ||
95+
node_id == VERSAL_NET_EVENT_ERROR_PSM_ERR2 ||
96+
node_id == VERSAL_NET_EVENT_ERROR_PSM_ERR3 ||
97+
node_id == VERSAL_NET_EVENT_ERROR_PSM_ERR4)
98+
return true;
99+
}
85100

86101
return false;
87102
}

include/linux/firmware/xlnx-zynqmp.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,18 @@
9595
/*
9696
* Node IDs for the Error Events.
9797
*/
98-
#define EVENT_ERROR_PMC_ERR1 (0x28100000U)
99-
#define EVENT_ERROR_PMC_ERR2 (0x28104000U)
100-
#define EVENT_ERROR_PSM_ERR1 (0x28108000U)
101-
#define EVENT_ERROR_PSM_ERR2 (0x2810C000U)
98+
#define VERSAL_EVENT_ERROR_PMC_ERR1 (0x28100000U)
99+
#define VERSAL_EVENT_ERROR_PMC_ERR2 (0x28104000U)
100+
#define VERSAL_EVENT_ERROR_PSM_ERR1 (0x28108000U)
101+
#define VERSAL_EVENT_ERROR_PSM_ERR2 (0x2810C000U)
102+
103+
#define VERSAL_NET_EVENT_ERROR_PMC_ERR1 (0x28100000U)
104+
#define VERSAL_NET_EVENT_ERROR_PMC_ERR2 (0x28104000U)
105+
#define VERSAL_NET_EVENT_ERROR_PMC_ERR3 (0x28108000U)
106+
#define VERSAL_NET_EVENT_ERROR_PSM_ERR1 (0x2810C000U)
107+
#define VERSAL_NET_EVENT_ERROR_PSM_ERR2 (0x28110000U)
108+
#define VERSAL_NET_EVENT_ERROR_PSM_ERR3 (0x28114000U)
109+
#define VERSAL_NET_EVENT_ERROR_PSM_ERR4 (0x28118000U)
102110

103111
/* ZynqMP SD tap delay tuning */
104112
#define SD_ITAPDLY 0xFF180314

0 commit comments

Comments
 (0)