1ed98261bSTomeu Vizoso /* SPDX-License-Identifier: GPL-2.0-only */ 2ed98261bSTomeu Vizoso /* Copyright 2024-2025 Tomeu Vizoso <tomeu@tomeuvizoso.net> */ 3ed98261bSTomeu Vizoso 4ed98261bSTomeu Vizoso #ifndef __ROCKET_DEVICE_H__ 5ed98261bSTomeu Vizoso #define __ROCKET_DEVICE_H__ 6ed98261bSTomeu Vizoso 7ed98261bSTomeu Vizoso #include <drm/drm_device.h> 8ed98261bSTomeu Vizoso #include <linux/clk.h> 9ed98261bSTomeu Vizoso #include <linux/container_of.h> 10ed98261bSTomeu Vizoso #include <linux/iommu.h> 11ed98261bSTomeu Vizoso #include <linux/platform_device.h> 12ed98261bSTomeu Vizoso 13ed98261bSTomeu Vizoso #include "rocket_core.h" 14ed98261bSTomeu Vizoso 15ed98261bSTomeu Vizoso struct rocket_device { 16ed98261bSTomeu Vizoso struct drm_device ddev; 17ed98261bSTomeu Vizoso 18*0810d5adSTomeu Vizoso struct mutex sched_lock; 19*0810d5adSTomeu Vizoso 20ed98261bSTomeu Vizoso struct rocket_core *cores; 21ed98261bSTomeu Vizoso unsigned int num_cores; 22ed98261bSTomeu Vizoso }; 23ed98261bSTomeu Vizoso 24ed98261bSTomeu Vizoso struct rocket_device *rocket_device_init(struct platform_device *pdev, 25ed98261bSTomeu Vizoso const struct drm_driver *rocket_drm_driver); 26ed98261bSTomeu Vizoso void rocket_device_fini(struct rocket_device *rdev); 27ed98261bSTomeu Vizoso #define to_rocket_device(drm_dev) \ 28ed98261bSTomeu Vizoso ((struct rocket_device *)(container_of((drm_dev), struct rocket_device, ddev))) 29ed98261bSTomeu Vizoso 30ed98261bSTomeu Vizoso #endif /* __ROCKET_DEVICE_H__ */ 31