Lines Matching refs:mixer
50 const char *sti_mixer_to_str(struct sti_mixer *mixer) in sti_mixer_to_str() argument
52 switch (mixer->id) { in sti_mixer_to_str()
62 static inline u32 sti_mixer_reg_read(struct sti_mixer *mixer, u32 reg_id) in sti_mixer_reg_read() argument
64 return readl(mixer->regs + reg_id); in sti_mixer_reg_read()
67 static inline void sti_mixer_reg_write(struct sti_mixer *mixer, in sti_mixer_reg_write() argument
70 writel(val, mixer->regs + reg_id); in sti_mixer_reg_write()
73 void sti_mixer_set_background_status(struct sti_mixer *mixer, bool enable) in sti_mixer_set_background_status() argument
75 u32 val = sti_mixer_reg_read(mixer, GAM_MIXER_CTL); in sti_mixer_set_background_status()
79 sti_mixer_reg_write(mixer, GAM_MIXER_CTL, val); in sti_mixer_set_background_status()
82 static void sti_mixer_set_background_color(struct sti_mixer *mixer, in sti_mixer_set_background_color() argument
87 sti_mixer_reg_write(mixer, GAM_MIXER_BKC, val); in sti_mixer_set_background_color()
90 static void sti_mixer_set_background_area(struct sti_mixer *mixer, in sti_mixer_set_background_area() argument
100 sti_mixer_reg_write(mixer, GAM_MIXER_BCO, ydo << 16 | xdo); in sti_mixer_set_background_area()
101 sti_mixer_reg_write(mixer, GAM_MIXER_BCS, yds << 16 | xds); in sti_mixer_set_background_area()
104 int sti_mixer_set_layer_depth(struct sti_mixer *mixer, struct sti_layer *layer) in sti_mixer_set_layer_depth() argument
142 DRM_DEBUG_DRIVER("%s %s depth=%d\n", sti_mixer_to_str(mixer), in sti_mixer_set_layer_depth()
144 dev_dbg(mixer->dev, "GAM_MIXER_CRB val 0x%x mask 0x%x\n", in sti_mixer_set_layer_depth()
147 val = sti_mixer_reg_read(mixer, GAM_MIXER_CRB); in sti_mixer_set_layer_depth()
150 sti_mixer_reg_write(mixer, GAM_MIXER_CRB, val); in sti_mixer_set_layer_depth()
152 dev_dbg(mixer->dev, "Read GAM_MIXER_CRB 0x%x\n", in sti_mixer_set_layer_depth()
153 sti_mixer_reg_read(mixer, GAM_MIXER_CRB)); in sti_mixer_set_layer_depth()
157 int sti_mixer_active_video_area(struct sti_mixer *mixer, in sti_mixer_active_video_area() argument
168 sti_mixer_to_str(mixer), xdo, ydo, xds, yds); in sti_mixer_active_video_area()
169 sti_mixer_reg_write(mixer, GAM_MIXER_AVO, ydo << 16 | xdo); in sti_mixer_active_video_area()
170 sti_mixer_reg_write(mixer, GAM_MIXER_AVS, yds << 16 | xds); in sti_mixer_active_video_area()
172 sti_mixer_set_background_color(mixer, 0xFF, 0, 0); in sti_mixer_active_video_area()
174 sti_mixer_set_background_area(mixer, mode); in sti_mixer_active_video_area()
175 sti_mixer_set_background_status(mixer, true); in sti_mixer_active_video_area()
204 int sti_mixer_set_layer_status(struct sti_mixer *mixer, in sti_mixer_set_layer_status() argument
210 sti_mixer_to_str(mixer), sti_layer_to_str(layer)); in sti_mixer_set_layer_status()
218 val = sti_mixer_reg_read(mixer, GAM_MIXER_CTL); in sti_mixer_set_layer_status()
221 sti_mixer_reg_write(mixer, GAM_MIXER_CTL, val); in sti_mixer_set_layer_status()
226 void sti_mixer_clear_all_layers(struct sti_mixer *mixer) in sti_mixer_clear_all_layers() argument
230 DRM_DEBUG_DRIVER("%s clear all layer\n", sti_mixer_to_str(mixer)); in sti_mixer_clear_all_layers()
231 val = sti_mixer_reg_read(mixer, GAM_MIXER_CTL) & 0xFFFF0000; in sti_mixer_clear_all_layers()
232 sti_mixer_reg_write(mixer, GAM_MIXER_CTL, val); in sti_mixer_clear_all_layers()
235 void sti_mixer_set_matrix(struct sti_mixer *mixer) in sti_mixer_set_matrix() argument
240 sti_mixer_reg_write(mixer, GAM_MIXER_MX0 + (i * 4), in sti_mixer_set_matrix()
247 struct sti_mixer *mixer = devm_kzalloc(dev, sizeof(*mixer), GFP_KERNEL); in sti_mixer_create() local
251 if (!mixer) { in sti_mixer_create()
255 mixer->regs = baseaddr; in sti_mixer_create()
256 mixer->dev = dev; in sti_mixer_create()
257 mixer->id = id; in sti_mixer_create()
260 sti_mixer_set_matrix(mixer); in sti_mixer_create()
263 sti_mixer_to_str(mixer), mixer->regs); in sti_mixer_create()
265 return mixer; in sti_mixer_create()