Loading drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c +13 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,19 @@ #include "msm_jpeg_common.h" #include "msm_jpeg_hw.h" int msm_jpeg_platform_set_clk_rate(struct msm_jpeg_device *pgmn_dev, long clk_rate) { struct msm_cam_clk_info jpeg_core_clk_info[] = { {"core_clk", JPEG_CLK_RATE, 0} }; jpeg_core_clk_info[0].clk_rate = clk_rate; return msm_cam_clk_enable(&pgmn_dev->pdev->dev, jpeg_core_clk_info, pgmn_dev->jpeg_clk, ARRAY_SIZE(jpeg_core_clk_info), 1); } void msm_jpeg_platform_p2v(struct msm_jpeg_device *pgmn_dev, struct file *file, struct ion_handle **ionhandle, int domain_num) { Loading drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ #include "msm_jpeg_sync.h" #define JPEG_CLK_RATE 266670000 int msm_jpeg_platform_set_clk_rate(struct msm_jpeg_device *pgmn_dev, long clk_rate); void msm_jpeg_platform_p2v(struct msm_jpeg_device *pgmn_dev, struct file *file, struct ion_handle **ionhandle, int domain_num); uint32_t msm_jpeg_platform_v2p(struct msm_jpeg_device *pgmn_dev, int fd, Loading drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c +33 −0 Original line number Diff line number Diff line Loading @@ -804,6 +804,36 @@ int msm_jpeg_ioctl_test_dump_region(struct msm_jpeg_device *pgmn_dev, return 0; } int msm_jpeg_ioctl_set_clk_rate(struct msm_jpeg_device *pgmn_dev, unsigned long arg) { long clk_rate; int rc; if ((pgmn_dev->state != MSM_JPEG_INIT) && (pgmn_dev->state != MSM_JPEG_RESET)) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } if (get_user(clk_rate, (long __user *)arg)) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } JPEG_DBG("%s:%d] Requested clk rate %ld\n", __func__, __LINE__, clk_rate); if (clk_rate < 0) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } rc = msm_jpeg_platform_set_clk_rate(pgmn_dev, clk_rate); if (rc < 0) { JPEG_PR_ERR("%s: clk failed rc = %d\n", __func__, rc); return -EFAULT; } return 0; } long __msm_jpeg_ioctl(struct msm_jpeg_device *pgmn_dev, unsigned int cmd, unsigned long arg) { Loading Loading @@ -873,6 +903,9 @@ long __msm_jpeg_ioctl(struct msm_jpeg_device *pgmn_dev, rc = msm_jpeg_ioctl_test_dump_region(pgmn_dev, arg); break; case MSM_JPEG_IOCTL_SET_CLK_RATE: rc = msm_jpeg_ioctl_set_clk_rate(pgmn_dev, arg); break; default: JPEG_PR_ERR(KERN_INFO "%s:%d] cmd = %d not supported\n", __func__, __LINE__, _IOC_NR(cmd)); Loading include/media/msm_jpeg.h +3 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ #define MSM_JPEG_IOCTL_TEST_DUMP_REGION \ _IOW(MSM_JPEG_IOCTL_MAGIC, 15, unsigned long) #define MSM_JPEG_IOCTL_SET_CLK_RATE \ _IOW(MSM_JPEG_IOCTL_MAGIC, 16, unsigned long) #define MSM_JPEG_MODE_REALTIME_ENCODE 0 #define MSM_JPEG_MODE_OFFLINE_ENCODE 1 #define MSM_JPEG_MODE_REALTIME_ROTATION 2 Loading Loading
drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c +13 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,19 @@ #include "msm_jpeg_common.h" #include "msm_jpeg_hw.h" int msm_jpeg_platform_set_clk_rate(struct msm_jpeg_device *pgmn_dev, long clk_rate) { struct msm_cam_clk_info jpeg_core_clk_info[] = { {"core_clk", JPEG_CLK_RATE, 0} }; jpeg_core_clk_info[0].clk_rate = clk_rate; return msm_cam_clk_enable(&pgmn_dev->pdev->dev, jpeg_core_clk_info, pgmn_dev->jpeg_clk, ARRAY_SIZE(jpeg_core_clk_info), 1); } void msm_jpeg_platform_p2v(struct msm_jpeg_device *pgmn_dev, struct file *file, struct ion_handle **ionhandle, int domain_num) { Loading
drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.h +2 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ #include "msm_jpeg_sync.h" #define JPEG_CLK_RATE 266670000 int msm_jpeg_platform_set_clk_rate(struct msm_jpeg_device *pgmn_dev, long clk_rate); void msm_jpeg_platform_p2v(struct msm_jpeg_device *pgmn_dev, struct file *file, struct ion_handle **ionhandle, int domain_num); uint32_t msm_jpeg_platform_v2p(struct msm_jpeg_device *pgmn_dev, int fd, Loading
drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c +33 −0 Original line number Diff line number Diff line Loading @@ -804,6 +804,36 @@ int msm_jpeg_ioctl_test_dump_region(struct msm_jpeg_device *pgmn_dev, return 0; } int msm_jpeg_ioctl_set_clk_rate(struct msm_jpeg_device *pgmn_dev, unsigned long arg) { long clk_rate; int rc; if ((pgmn_dev->state != MSM_JPEG_INIT) && (pgmn_dev->state != MSM_JPEG_RESET)) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } if (get_user(clk_rate, (long __user *)arg)) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } JPEG_DBG("%s:%d] Requested clk rate %ld\n", __func__, __LINE__, clk_rate); if (clk_rate < 0) { JPEG_PR_ERR("%s:%d] failed\n", __func__, __LINE__); return -EFAULT; } rc = msm_jpeg_platform_set_clk_rate(pgmn_dev, clk_rate); if (rc < 0) { JPEG_PR_ERR("%s: clk failed rc = %d\n", __func__, rc); return -EFAULT; } return 0; } long __msm_jpeg_ioctl(struct msm_jpeg_device *pgmn_dev, unsigned int cmd, unsigned long arg) { Loading Loading @@ -873,6 +903,9 @@ long __msm_jpeg_ioctl(struct msm_jpeg_device *pgmn_dev, rc = msm_jpeg_ioctl_test_dump_region(pgmn_dev, arg); break; case MSM_JPEG_IOCTL_SET_CLK_RATE: rc = msm_jpeg_ioctl_set_clk_rate(pgmn_dev, arg); break; default: JPEG_PR_ERR(KERN_INFO "%s:%d] cmd = %d not supported\n", __func__, __LINE__, _IOC_NR(cmd)); Loading
include/media/msm_jpeg.h +3 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ #define MSM_JPEG_IOCTL_TEST_DUMP_REGION \ _IOW(MSM_JPEG_IOCTL_MAGIC, 15, unsigned long) #define MSM_JPEG_IOCTL_SET_CLK_RATE \ _IOW(MSM_JPEG_IOCTL_MAGIC, 16, unsigned long) #define MSM_JPEG_MODE_REALTIME_ENCODE 0 #define MSM_JPEG_MODE_OFFLINE_ENCODE 1 #define MSM_JPEG_MODE_REALTIME_ROTATION 2 Loading