Commit 57d8ae15 authored by Quentin Schulz's avatar Quentin Schulz Committed by Tomeu Vizoso
Browse files

accel/rocket: factor out code with find_core_for_dev in rocket_remove



There already is a function to return the offset of the core for a given
struct device, so let's reuse that function instead of reimplementing
the same logic.

There's one change in behavior when a struct device is passed which
doesn't match any core's. Before, we would continue through
rocket_remove() but now we exit early, to match what other callers of
find_core_for_dev() (rocket_device_runtime_resume/suspend()) are doing.
This however should never happen. Aside from that, no intended change in
behavior.

Signed-off-by: default avatarQuentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: default avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
Signed-off-by: default avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
Link: https://patch.msgid.link/20251215-rocket-reuse-find-core-v1-1-be86a1d2734c@cherry.de
parent 34f4495a
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -193,17 +193,18 @@ static int rocket_probe(struct platform_device *pdev)
	return ret;
}

static int find_core_for_dev(struct device *dev);

static void rocket_remove(struct platform_device *pdev)
{
	struct device *dev = &pdev->dev;
	int core = find_core_for_dev(dev);

	if (core < 0)
		return;

	for (unsigned int core = 0; core < rdev->num_cores; core++) {
		if (rdev->cores[core].dev == dev) {
	rocket_core_fini(&rdev->cores[core]);
	rdev->num_cores--;
			break;
		}
	}

	if (rdev->num_cores == 0) {
		/* Last core removed, deinitialize DRM device. */