mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
drm/vc4: Move HVS state to main header
In order to introduce unit tests for the HVS state computation, we'll need access to the vc4_hvs_state struct definition and its associated helpers. Let's move them in our driver header. Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Maíra Canal <mcanal@igalia.com> Link: https://lore.kernel.org/r/20221123-rpi-kunit-tests-v3-13-4615a663a84a@cerno.tech Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This commit is contained in:
parent
4adf59449f
commit
3c5cb5ec2e
|
|
@ -355,6 +355,29 @@ struct vc4_hvs {
|
|||
bool vc5_hdmi_enable_4096by2160;
|
||||
};
|
||||
|
||||
#define HVS_NUM_CHANNELS 3
|
||||
|
||||
struct vc4_hvs_state {
|
||||
struct drm_private_state base;
|
||||
unsigned long core_clock_rate;
|
||||
|
||||
struct {
|
||||
unsigned in_use: 1;
|
||||
unsigned long fifo_load;
|
||||
struct drm_crtc_commit *pending_commit;
|
||||
} fifo_state[HVS_NUM_CHANNELS];
|
||||
};
|
||||
|
||||
static inline struct vc4_hvs_state *
|
||||
to_vc4_hvs_state(const struct drm_private_state *priv)
|
||||
{
|
||||
return container_of(priv, struct vc4_hvs_state, base);
|
||||
}
|
||||
|
||||
struct vc4_hvs_state *vc4_hvs_get_global_state(struct drm_atomic_state *state);
|
||||
struct vc4_hvs_state *vc4_hvs_get_old_global_state(const struct drm_atomic_state *state);
|
||||
struct vc4_hvs_state *vc4_hvs_get_new_global_state(const struct drm_atomic_state *state);
|
||||
|
||||
struct vc4_plane {
|
||||
struct drm_plane base;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
#include "vc4_drv.h"
|
||||
#include "vc4_regs.h"
|
||||
|
||||
#define HVS_NUM_CHANNELS 3
|
||||
|
||||
struct vc4_ctm_state {
|
||||
struct drm_private_state base;
|
||||
struct drm_color_ctm *ctm;
|
||||
|
|
@ -39,23 +37,6 @@ to_vc4_ctm_state(const struct drm_private_state *priv)
|
|||
return container_of(priv, struct vc4_ctm_state, base);
|
||||
}
|
||||
|
||||
struct vc4_hvs_state {
|
||||
struct drm_private_state base;
|
||||
unsigned long core_clock_rate;
|
||||
|
||||
struct {
|
||||
unsigned in_use: 1;
|
||||
unsigned long fifo_load;
|
||||
struct drm_crtc_commit *pending_commit;
|
||||
} fifo_state[HVS_NUM_CHANNELS];
|
||||
};
|
||||
|
||||
static struct vc4_hvs_state *
|
||||
to_vc4_hvs_state(const struct drm_private_state *priv)
|
||||
{
|
||||
return container_of(priv, struct vc4_hvs_state, base);
|
||||
}
|
||||
|
||||
struct vc4_load_tracker_state {
|
||||
struct drm_private_state base;
|
||||
u64 hvs_load;
|
||||
|
|
@ -191,7 +172,7 @@ vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state)
|
|||
VC4_SET_FIELD(ctm_state->fifo, SCALER_OLEDOFFS_DISPFIFO));
|
||||
}
|
||||
|
||||
static struct vc4_hvs_state *
|
||||
struct vc4_hvs_state *
|
||||
vc4_hvs_get_new_global_state(const struct drm_atomic_state *state)
|
||||
{
|
||||
struct vc4_dev *vc4 = to_vc4_dev(state->dev);
|
||||
|
|
@ -204,7 +185,7 @@ vc4_hvs_get_new_global_state(const struct drm_atomic_state *state)
|
|||
return to_vc4_hvs_state(priv_state);
|
||||
}
|
||||
|
||||
static struct vc4_hvs_state *
|
||||
struct vc4_hvs_state *
|
||||
vc4_hvs_get_old_global_state(const struct drm_atomic_state *state)
|
||||
{
|
||||
struct vc4_dev *vc4 = to_vc4_dev(state->dev);
|
||||
|
|
@ -217,7 +198,7 @@ vc4_hvs_get_old_global_state(const struct drm_atomic_state *state)
|
|||
return to_vc4_hvs_state(priv_state);
|
||||
}
|
||||
|
||||
static struct vc4_hvs_state *
|
||||
struct vc4_hvs_state *
|
||||
vc4_hvs_get_global_state(struct drm_atomic_state *state)
|
||||
{
|
||||
struct vc4_dev *vc4 = to_vc4_dev(state->dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user