Commit c4e38b2a authored by Roy Pledge's avatar Roy Pledge Committed by Li Yang
Browse files

soc: fsl: qbman: Ensure device cleanup is run for kexec



Make sure that the QBMan device cleanup routines are executed
when the device was previously initialized. This is needed for
kexec since the device will keep it's state from the previous
kernel that was executing.

Signed-off-by: default avatarRoy Pledge <roy.pledge@nxp.com>
Signed-off-by: default avatarLi Yang <leoyang.li@nxp.com>
parent a38fd874
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ static int bman_portal_probe(struct platform_device *pdev)
		__bman_portals_probed = 1;
		/* unassigned portal, skip init */
		spin_unlock(&bman_lock);
		return 0;
		goto check_cleanup;
	}

	cpumask_set_cpu(cpu, &portal_cpus);
@@ -176,6 +176,7 @@ static int bman_portal_probe(struct platform_device *pdev)
	if (!cpu_online(cpu))
		bman_offline_cpu(cpu);

check_cleanup:
	if (__bman_portals_probed == 1 && bman_requires_cleanup()) {
		/*
		 * BMan wasn't reset prior to boot (Kexec for example)
+2 −1
Original line number Diff line number Diff line
@@ -302,7 +302,7 @@ static int qman_portal_probe(struct platform_device *pdev)
		__qman_portals_probed = 1;
		/* unassigned portal, skip init */
		spin_unlock(&qman_lock);
		return 0;
		goto check_cleanup;
	}

	cpumask_set_cpu(cpu, &portal_cpus);
@@ -323,6 +323,7 @@ static int qman_portal_probe(struct platform_device *pdev)
	if (!cpu_online(cpu))
		qman_offline_cpu(cpu);

check_cleanup:
	if (__qman_portals_probed == 1 && qman_requires_cleanup()) {
		/*
		 * QMan wasn't reset prior to boot (Kexec for example)