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) |
| 15 | |
| 16 | #define ROTATOR_VERSION_01 0xA5B4C301 |
| 17 | |
| 18 | enum rotator_clk_type { |
| 19 | ROTATOR_CORE_CLK, |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 20 | ROTATOR_PCLK, |
| 21 | ROTATOR_IMEM_CLK |
| 22 | }; |
| 23 | |
| 24 | struct msm_rotator_img_info { |
| 25 | unsigned int session_id; |
| 26 | struct msmfb_img src; |
| 27 | struct msmfb_img dst; |
| 28 | struct mdp_rect src_rect; |
| 29 | unsigned int dst_x; |
| 30 | unsigned int dst_y; |
| 31 | unsigned char rotations; |
| 32 | int enable; |
Adrian Salido-Moreno | 67273e5 | 2011-10-21 19:04:18 -0700 | [diff] [blame] | 33 | unsigned int downscale_ratio; |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 34 | }; |
| 35 | |
| 36 | struct msm_rotator_data_info { |
| 37 | int session_id; |
| 38 | struct msmfb_data src; |
| 39 | struct msmfb_data dst; |
| 40 | unsigned int version_key; |
| 41 | struct msmfb_data src_chroma; |
| 42 | struct msmfb_data dst_chroma; |
| 43 | }; |
| 44 | |
| 45 | struct msm_rot_clocks { |
| 46 | const char *clk_name; |
| 47 | enum rotator_clk_type clk_type; |
| 48 | unsigned int clk_rate; |
| 49 | }; |
| 50 | |
| 51 | struct msm_rotator_platform_data { |
| 52 | unsigned int number_of_clocks; |
| 53 | unsigned int hardware_version_number; |
| 54 | struct msm_rot_clocks *rotator_clks; |
Nagamalleswararao Ganji | 5fabbd6 | 2011-11-06 23:10:43 -0800 | [diff] [blame] | 55 | #ifdef CONFIG_MSM_BUS_SCALING |
| 56 | struct msm_bus_scale_pdata *bus_scale_table; |
| 57 | #endif |
Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 58 | }; |
| 59 | #endif |
| 60 | |