2014-07-28 10:30:18 +02:00
/*
* Copyright ( C ) STMicroelectronics SA 2014
* Authors : Benjamin Gaignard < benjamin . gaignard @ st . com >
* Fabien Dessenne < fabien . dessenne @ st . com >
* for STMicroelectronics .
* License terms : GNU General Public License ( GPL ) , version 2
*/
# ifndef _STI_MIXER_H_
# define _STI_MIXER_H_
# include <drm/drmP.h>
2015-07-31 11:32:34 +02:00
# include "sti_plane.h"
2014-07-28 10:30:18 +02:00
# define to_sti_mixer(x) container_of(x, struct sti_mixer, drm_crtc)
2015-08-03 14:22:16 +02:00
enum sti_mixer_status {
STI_MIXER_READY ,
STI_MIXER_DISABLING ,
STI_MIXER_DISABLED ,
} ;
2014-07-28 10:30:18 +02:00
/**
* STI Mixer subdevice structure
*
* @ dev : driver device
* @ regs : mixer registers
* @ id : id of the mixer
* @ drm_crtc : crtc object link to the mixer
* @ pending_event : set if a flip event is pending on crtc
2015-08-03 14:22:16 +02:00
* @ status : to know the status of the mixer
2014-07-28 10:30:18 +02:00
*/
struct sti_mixer {
struct device * dev ;
void __iomem * regs ;
int id ;
2015-07-31 11:32:13 +02:00
struct drm_crtc drm_crtc ;
2014-07-28 10:30:18 +02:00
struct drm_pending_vblank_event * pending_event ;
2015-08-03 14:22:16 +02:00
enum sti_mixer_status status ;
2014-07-28 10:30:18 +02:00
} ;
const char * sti_mixer_to_str ( struct sti_mixer * mixer ) ;
struct sti_mixer * sti_mixer_create ( struct device * dev , int id ,
2015-07-31 11:32:13 +02:00
void __iomem * baseaddr ) ;
2014-07-28 10:30:18 +02:00
2015-07-31 11:32:13 +02:00
int sti_mixer_set_plane_status ( struct sti_mixer * mixer ,
struct sti_plane * plane , bool status ) ;
int sti_mixer_set_plane_depth ( struct sti_mixer * mixer , struct sti_plane * plane ) ;
2014-07-28 10:30:18 +02:00
int sti_mixer_active_video_area ( struct sti_mixer * mixer ,
2015-07-31 11:32:13 +02:00
struct drm_display_mode * mode ) ;
2014-07-28 10:30:18 +02:00
void sti_mixer_set_background_status ( struct sti_mixer * mixer , bool enable ) ;
/* depth in Cross-bar control = z order */
2015-07-31 11:31:38 +02:00
# define GAM_MIXER_NB_DEPTH_LEVEL 6
2014-07-28 10:30:18 +02:00
# define STI_MIXER_MAIN 0
# define STI_MIXER_AUX 1
# endif