On 05/09/2025 11:23, Nicolas Frattaroli wrote: > In order to make files other than panthor_devfreq.c be able to touch the > members of a panthor_devfreq instance, it needs to live somewhere other > than the .c file. > > Move it into the panthor_devfreq.h header, so that the upcoming MediaTek > MFG devfreq can use it as well. > > Signed-off-by: Nicolas Frattaroli <nicolas.frattar...@collabora.com>
Reviewed-by: Steven Price <steven.pr...@arm.com> > --- > drivers/gpu/drm/panthor/panthor_devfreq.c | 32 --------------------------- > drivers/gpu/drm/panthor/panthor_devfreq.h | 36 > ++++++++++++++++++++++++++++++- > 2 files changed, 35 insertions(+), 33 deletions(-) > > diff --git a/drivers/gpu/drm/panthor/panthor_devfreq.c > b/drivers/gpu/drm/panthor/panthor_devfreq.c > index > 8903f60c0a3f06313ac2008791c210ff32b6bd52..02eb3ca15d1874e1cbafc6b614b196c5cc75b6a1 > 100644 > --- a/drivers/gpu/drm/panthor/panthor_devfreq.c > +++ b/drivers/gpu/drm/panthor/panthor_devfreq.c > @@ -12,38 +12,6 @@ > #include "panthor_devfreq.h" > #include "panthor_device.h" > > -/** > - * struct panthor_devfreq - Device frequency management > - */ > -struct panthor_devfreq { > - /** @devfreq: devfreq device. */ > - struct devfreq *devfreq; > - > - /** @gov_data: Governor data. */ > - struct devfreq_simple_ondemand_data gov_data; > - > - /** @busy_time: Busy time. */ > - ktime_t busy_time; > - > - /** @idle_time: Idle time. */ > - ktime_t idle_time; > - > - /** @time_last_update: Last update time. */ > - ktime_t time_last_update; > - > - /** @last_busy_state: True if the GPU was busy last time we updated the > state. */ > - bool last_busy_state; > - > - /** > - * @lock: Lock used to protect busy_time, idle_time, time_last_update > and > - * last_busy_state. > - * > - * These fields can be accessed concurrently by > panthor_devfreq_get_dev_status() > - * and panthor_devfreq_record_{busy,idle}(). > - */ > - spinlock_t lock; > -}; > - > static void panthor_devfreq_update_utilization(struct panthor_devfreq > *pdevfreq) > { > ktime_t now, last; > diff --git a/drivers/gpu/drm/panthor/panthor_devfreq.h > b/drivers/gpu/drm/panthor/panthor_devfreq.h > index > f8e29e02f66cb3281ed4bb4c75cda9bd4df82b92..e8b5ccddd45c52ee3215e9c84c6ebd9109640282 > 100644 > --- a/drivers/gpu/drm/panthor/panthor_devfreq.h > +++ b/drivers/gpu/drm/panthor/panthor_devfreq.h > @@ -4,11 +4,45 @@ > #ifndef __PANTHOR_DEVFREQ_H__ > #define __PANTHOR_DEVFREQ_H__ > > +#include <linux/devfreq.h> > + > struct devfreq; > struct thermal_cooling_device; > > struct panthor_device; > -struct panthor_devfreq; > + > +/** > + * struct panthor_devfreq - Device frequency management > + */ > +struct panthor_devfreq { > + /** @devfreq: devfreq device. */ > + struct devfreq *devfreq; > + > + /** @gov_data: Governor data. */ > + struct devfreq_simple_ondemand_data gov_data; > + > + /** @busy_time: Busy time. */ > + ktime_t busy_time; > + > + /** @idle_time: Idle time. */ > + ktime_t idle_time; > + > + /** @time_last_update: Last update time. */ > + ktime_t time_last_update; > + > + /** @last_busy_state: True if the GPU was busy last time we updated the > state. */ > + bool last_busy_state; > + > + /** > + * @lock: Lock used to protect busy_time, idle_time, time_last_update > and > + * last_busy_state. > + * > + * These fields can be accessed concurrently by > panthor_devfreq_get_dev_status() > + * and panthor_devfreq_record_{busy,idle}(). > + */ > + spinlock_t lock; > +}; > + > > int panthor_devfreq_init(struct panthor_device *ptdev); > >