Commit b27a838f authored by Erico Nunes's avatar Erico Nunes Committed by Qiang Yu
Browse files

drm/lima: fix void pointer to enum lima_gpu_id cast warning



Create a simple data struct to hold compatible data so that we don't
have to do the casts to void pointer to hold data.
Fixes the following warning:
  drivers/gpu/drm/lima/lima_drv.c:387:13: error: cast to smaller integer
  type 'enum lima_gpu_id' from 'const void *'

Signed-off-by: default avatarErico Nunes <nunes.erico@gmail.com>
Signed-off-by: default avatarQiang Yu <yuq825@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240401224329.1228468-3-nunes.erico@gmail.com
parent a6683c69
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -371,6 +371,7 @@ static int lima_pdev_probe(struct platform_device *pdev)
{
	struct lima_device *ldev;
	struct drm_device *ddev;
	const struct lima_compatible *comp;
	int err;

	err = lima_sched_slab_init();
@@ -384,7 +385,13 @@ static int lima_pdev_probe(struct platform_device *pdev)
	}

	ldev->dev = &pdev->dev;
	ldev->id = (enum lima_gpu_id)of_device_get_match_data(&pdev->dev);
	comp = of_device_get_match_data(&pdev->dev);
	if (!comp) {
		err = -ENODEV;
		goto err_out0;
	}

	ldev->id = comp->id;

	platform_set_drvdata(pdev, ldev);

@@ -459,9 +466,17 @@ static void lima_pdev_remove(struct platform_device *pdev)
	lima_sched_slab_fini();
}

static const struct lima_compatible lima_mali400_data = {
	.id = lima_gpu_mali400,
};

static const struct lima_compatible lima_mali450_data = {
	.id = lima_gpu_mali450,
};

static const struct of_device_id dt_match[] = {
	{ .compatible = "arm,mali-400", .data = (void *)lima_gpu_mali400 },
	{ .compatible = "arm,mali-450", .data = (void *)lima_gpu_mali450 },
	{ .compatible = "arm,mali-400", .data = &lima_mali400_data },
	{ .compatible = "arm,mali-450", .data = &lima_mali450_data },
	{}
};
MODULE_DEVICE_TABLE(of, dt_match);
+5 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <drm/drm_file.h>

#include "lima_ctx.h"
#include "lima_device.h"

extern int lima_sched_timeout_ms;
extern uint lima_heap_init_nr_pages;
@@ -39,6 +40,10 @@ struct lima_submit {
	struct lima_sched_task *task;
};

struct lima_compatible {
	enum lima_gpu_id id;
};

static inline struct lima_drm_priv *
to_lima_drm_priv(struct drm_file *file)
{