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 | |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 33 | struct msm_rotator_img_info { |
| 34 | unsigned int session_id; |
| 35 | struct msmfb_img src; |
| 36 | struct msmfb_img dst; |
| 37 | struct mdp_rect src_rect; |
| 38 | unsigned int dst_x; |
| 39 | unsigned int dst_y; |
| 40 | unsigned char rotations; |
| 41 | int enable; |
Adrian Salido-Moreno | 67273e5 | 2011-10-21 19:04:18 -0700 | [diff] [blame] | 42 | unsigned int downscale_ratio; |
Ravishangar Kalyanam | 1eca352 | 2012-05-31 18:02:24 -0700 | [diff] [blame] | 43 | unsigned int secure; |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 44 | }; |
| 45 | |
| 46 | struct msm_rotator_data_info { |
| 47 | int session_id; |
| 48 | struct msmfb_data src; |
| 49 | struct msmfb_data dst; |
| 50 | unsigned int version_key; |
| 51 | struct msmfb_data src_chroma; |
| 52 | struct msmfb_data dst_chroma; |
Ken Zhang | 93b9f9a | 2013-04-08 18:56:58 -0400 | [diff] [blame] | 53 | uint32_t wait_for_finish; |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 54 | }; |
| 55 | |
| 56 | struct msm_rot_clocks { |
| 57 | const char *clk_name; |
| 58 | enum rotator_clk_type clk_type; |
| 59 | unsigned int clk_rate; |
| 60 | }; |
| 61 | |
| 62 | struct msm_rotator_platform_data { |
| 63 | unsigned int number_of_clocks; |
| 64 | unsigned int hardware_version_number; |
| 65 | struct msm_rot_clocks *rotator_clks; |
Nagamalleswararao Ganji | 5fabbd6 | 2011-11-06 23:10:43 -0800 | [diff] [blame] | 66 | #ifdef CONFIG_MSM_BUS_SCALING |
| 67 | struct msm_bus_scale_pdata *bus_scale_table; |
| 68 | #endif |
Olav Haugan | ef95ae3 | 2012-05-15 09:50:30 -0700 | [diff] [blame] | 69 | char rot_iommu_split_domain; |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 70 | }; |
| 71 | #endif |
| 72 | |