#include <drm/drm_fourcc.h>
#include <drm/drm_util.h>
#include "mdp5_kms.h"
#include "mdp5_smp.h"
struct mdp5_smp { … };
static inline
struct mdp5_kms *get_kms(struct mdp5_smp *smp)
{ … }
static inline u32 pipe2client(enum mdp5_pipe pipe, int plane)
{ … }
static int smp_request_block(struct mdp5_smp *smp,
struct mdp5_smp_state *state,
u32 cid, int nblks)
{ … }
static void set_fifo_thresholds(struct mdp5_smp *smp,
enum mdp5_pipe pipe, int nblks)
{ … }
uint32_t mdp5_smp_calculate(struct mdp5_smp *smp,
const struct msm_format *format,
u32 width, bool hdecim)
{ … }
int mdp5_smp_assign(struct mdp5_smp *smp, struct mdp5_smp_state *state,
enum mdp5_pipe pipe, uint32_t blkcfg)
{ … }
void mdp5_smp_release(struct mdp5_smp *smp, struct mdp5_smp_state *state,
enum mdp5_pipe pipe)
{ … }
static unsigned update_smp_state(struct mdp5_smp *smp,
u32 cid, mdp5_smp_state_t *assigned)
{ … }
static void write_smp_alloc_regs(struct mdp5_smp *smp)
{ … }
static void write_smp_fifo_regs(struct mdp5_smp *smp)
{ … }
void mdp5_smp_prepare_commit(struct mdp5_smp *smp, struct mdp5_smp_state *state)
{ … }
void mdp5_smp_complete_commit(struct mdp5_smp *smp, struct mdp5_smp_state *state)
{ … }
void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p,
struct mdp5_global_state *global_state)
{ … }
struct mdp5_smp *mdp5_smp_init(struct mdp5_kms *mdp5_kms, const struct mdp5_smp_block *cfg)
{ … }