| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 1 | #ifndef __MSM_ROTATOR_H__ | 
| Kobi Cohen Arazi | 18b0478 | 2011-07-26 12:11:34 -0700 | [diff] [blame] | 2 | #define __MSM_ROTATOR_H__ | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 3 |  | 
 | 4 | #include <linux/types.h> | 
 | 5 | #include <linux/msm_mdp.h> | 
 | 6 |  | 
 | 7 | #define MSM_ROTATOR_IOCTL_MAGIC 'R' | 
 | 8 |  | 
 | 9 | #define MSM_ROTATOR_IOCTL_START   \ | 
 | 10 | 		_IOWR(MSM_ROTATOR_IOCTL_MAGIC, 1, struct msm_rotator_img_info) | 
 | 11 | #define MSM_ROTATOR_IOCTL_ROTATE   \ | 
 | 12 | 		_IOW(MSM_ROTATOR_IOCTL_MAGIC, 2, struct msm_rotator_data_info) | 
 | 13 | #define MSM_ROTATOR_IOCTL_FINISH   \ | 
 | 14 | 		_IOW(MSM_ROTATOR_IOCTL_MAGIC, 3, int) | 
| Ken Zhang | a50db54 | 2013-02-20 14:48:06 -0500 | [diff] [blame] | 15 | #define MSM_ROTATOR_IOCTL_BUFFER_SYNC   \ | 
 | 16 | 		_IOW(MSM_ROTATOR_IOCTL_MAGIC, 4, struct msm_rotator_buf_sync) | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 17 |  | 
 | 18 | #define ROTATOR_VERSION_01	0xA5B4C301 | 
 | 19 |  | 
 | 20 | enum rotator_clk_type { | 
 | 21 | 	ROTATOR_CORE_CLK, | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 22 | 	ROTATOR_PCLK, | 
 | 23 | 	ROTATOR_IMEM_CLK | 
 | 24 | }; | 
 | 25 |  | 
| Ken Zhang | a50db54 | 2013-02-20 14:48:06 -0500 | [diff] [blame] | 26 | struct msm_rotator_buf_sync { | 
 | 27 | 	uint32_t session_id; | 
 | 28 | 	uint32_t flags; | 
 | 29 | 	int acq_fen_fd; | 
 | 30 | 	int rel_fen_fd; | 
 | 31 | }; | 
 | 32 |  | 
| Padmanabhan Komanduru | 3dfc431 | 2013-04-12 17:22:00 +0530 | [diff] [blame] | 33 | struct rot_buf_type { | 
 | 34 | 	struct ion_handle *ihdl; | 
 | 35 | 	uint32_t write_addr; | 
 | 36 | 	uint32_t read_addr; | 
 | 37 | }; | 
 | 38 |  | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 39 | struct msm_rotator_img_info { | 
 | 40 | 	unsigned int session_id; | 
 | 41 | 	struct msmfb_img  src; | 
 | 42 | 	struct msmfb_img  dst; | 
 | 43 | 	struct mdp_rect src_rect; | 
 | 44 | 	unsigned int    dst_x; | 
 | 45 | 	unsigned int    dst_y; | 
 | 46 | 	unsigned char   rotations; | 
 | 47 | 	int enable; | 
| Adrian Salido-Moreno | 67273e5 | 2011-10-21 19:04:18 -0700 | [diff] [blame] | 48 | 	unsigned int	downscale_ratio; | 
| Ravishangar Kalyanam | 1eca352 | 2012-05-31 18:02:24 -0700 | [diff] [blame] | 49 | 	unsigned int secure; | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 50 | }; | 
 | 51 |  | 
 | 52 | struct msm_rotator_data_info { | 
 | 53 | 	int session_id; | 
 | 54 | 	struct msmfb_data src; | 
 | 55 | 	struct msmfb_data dst; | 
 | 56 | 	unsigned int version_key; | 
 | 57 | 	struct msmfb_data src_chroma; | 
 | 58 | 	struct msmfb_data dst_chroma; | 
| Ken Zhang | 93b9f9a | 2013-04-08 18:56:58 -0400 | [diff] [blame] | 59 | 	uint32_t wait_for_finish; | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 60 | }; | 
 | 61 |  | 
 | 62 | struct msm_rot_clocks { | 
 | 63 | 	const char *clk_name; | 
 | 64 | 	enum rotator_clk_type clk_type; | 
 | 65 | 	unsigned int clk_rate; | 
 | 66 | }; | 
 | 67 |  | 
 | 68 | struct msm_rotator_platform_data { | 
 | 69 | 	unsigned int number_of_clocks; | 
 | 70 | 	unsigned int hardware_version_number; | 
 | 71 | 	struct msm_rot_clocks *rotator_clks; | 
| Nagamalleswararao Ganji | 5fabbd6 | 2011-11-06 23:10:43 -0800 | [diff] [blame] | 72 | #ifdef CONFIG_MSM_BUS_SCALING | 
 | 73 | 	struct msm_bus_scale_pdata *bus_scale_table; | 
 | 74 | #endif | 
| Olav Haugan | ef95ae3 | 2012-05-15 09:50:30 -0700 | [diff] [blame] | 75 | 	char rot_iommu_split_domain; | 
| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 76 | }; | 
 | 77 | #endif | 
 | 78 |  |