msm: camera: Move gemini clk to gemini driver
Move gemini clk and regulator to gemini driver,
to remove the need for platform specific io files.
Update clock lookup table with the gemini device name,
for find clocks properly through clk_get
Change-Id: I5097635eb1da4c142fea0ee40516b74d21cf0929
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
Signed-off-by: Sunil Joseph <sunilj@codeaurora.org>
Signed-off-by: Jignesh Mehta <jigneshm@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064.c b/arch/arm/mach-msm/board-8064.c
index 0d25c89..99a3ed2 100644
--- a/arch/arm/mach-msm/board-8064.c
+++ b/arch/arm/mach-msm/board-8064.c
@@ -1970,6 +1970,7 @@
&apq8064_etm_device,
&apq_cpudai_slim_4_rx,
&apq_cpudai_slim_4_tx,
+ &msm8960_gemini_device,
};
static struct platform_device *sim_devices[] __initdata = {
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index 5951734..d124ba6 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2800,8 +2800,8 @@
OWN(APPS1, 6, "iface_clk", grp_2d_p_clk, "kgsl-2d0.0"),
OWN(APPS1, 6, "iface_clk", grp_2d_p_clk, "footswitch-pcom.0"),
OWN(APPS1, 31, "hdmi_clk", hdmi_clk, "dtv.0"),
- OWN(APPS1, 0, "jpeg_clk", jpeg_clk, NULL),
- OWN(APPS1, 0, "jpeg_pclk", jpeg_p_clk, NULL),
+ OWN(APPS1, 0, "jpeg_clk", jpeg_clk, "msm_gemini.0"),
+ OWN(APPS1, 0, "jpeg_pclk", jpeg_p_clk, "msm_gemini.0"),
OWN(APPS1, 23, "lpa_codec_clk", lpa_codec_clk, NULL),
OWN(APPS1, 23, "lpa_core_clk", lpa_core_clk, NULL),
OWN(APPS1, 23, "lpa_pclk", lpa_p_clk, NULL),
diff --git a/arch/arm/mach-msm/clock-8960.c b/arch/arm/mach-msm/clock-8960.c
index 0ebaaab..3f7206f 100644
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -5047,8 +5047,8 @@
CLK_LOOKUP("vcap_npl_clk", vcap_npl_clk.c, ""),
CLK_LOOKUP("vcap_npl_clk", vcap_npl_clk.c, "msm_vcap.0"),
CLK_LOOKUP("bus_clk", ijpeg_axi_clk.c, "footswitch-8x60.3"),
- CLK_LOOKUP("mem_clk", imem_axi_clk.c, ""),
- CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, ""),
+ CLK_LOOKUP("imem_clk", imem_axi_clk.c, "msm_gemini.0"),
+ CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, "msm_gemini.0"),
CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("core_clk", jpegd_clk.c, ""),
CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
@@ -5093,7 +5093,7 @@
CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("master_iface_clk", hdmi_m_p_clk.c, "hdmi_msm.1"),
CLK_LOOKUP("slave_iface_clk", hdmi_s_p_clk.c, "hdmi_msm.1"),
- CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, ""),
+ CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, "msm_gemini.0"),
CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("iface_clk", jpegd_p_clk.c, ""),
CLK_LOOKUP("mem_iface_clk", imem_p_clk.c, "kgsl-3d0.0"),
@@ -5349,8 +5349,8 @@
CLK_LOOKUP("core_clk", gfx3d_clk.c, "kgsl-3d0.0"),
CLK_LOOKUP("core_clk", gfx3d_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("bus_clk", ijpeg_axi_clk.c, "footswitch-8x60.3"),
- CLK_LOOKUP("imem_clk", imem_axi_clk.c, NULL),
- CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, NULL),
+ CLK_LOOKUP("imem_clk", imem_axi_clk.c, "msm_gemini.0"),
+ CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, "msm_gemini.0"),
CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("core_clk", jpegd_clk.c, ""),
CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
@@ -5402,7 +5402,7 @@
CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("master_iface_clk", hdmi_m_p_clk.c, "hdmi_msm.1"),
CLK_LOOKUP("slave_iface_clk", hdmi_s_p_clk.c, "hdmi_msm.1"),
- CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, NULL),
+ CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, "msm_gemini.0"),
CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("iface_clk", jpegd_p_clk.c, ""),
CLK_LOOKUP("mem_iface_clk", imem_p_clk.c, "kgsl-3d0.0"),
@@ -5638,8 +5638,8 @@
CLK_LOOKUP("bus_clk",
gfx3d_axi_clk_8930.c, "footswitch-8x60.2"),
CLK_LOOKUP("bus_clk", ijpeg_axi_clk.c, "footswitch-8x60.3"),
- CLK_LOOKUP("imem_clk", imem_axi_clk.c, NULL),
- CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, NULL),
+ CLK_LOOKUP("imem_clk", imem_axi_clk.c, "msm_gemini.0"),
+ CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, "msm_gemini.0"),
CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
CLK_LOOKUP("core_clk", mdp_clk.c, "footswitch-8x60.4"),
@@ -5682,7 +5682,7 @@
CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("master_iface_clk", hdmi_m_p_clk.c, "hdmi_msm.1"),
CLK_LOOKUP("slave_iface_clk", hdmi_s_p_clk.c, "hdmi_msm.1"),
- CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, NULL),
+ CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, "msm_gemini.0"),
CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("mem_iface_clk", imem_p_clk.c, "kgsl-3d0.0"),
CLK_LOOKUP("iface_clk", mdp_p_clk.c, "mdp.0"),
diff --git a/arch/arm/mach-msm/clock-8x60.c b/arch/arm/mach-msm/clock-8x60.c
index a1bbf53..2bfadf6 100644
--- a/arch/arm/mach-msm/clock-8x60.c
+++ b/arch/arm/mach-msm/clock-8x60.c
@@ -3613,7 +3613,7 @@
CLK_LOOKUP("core_clk", gfx2d1_clk.c, "footswitch-8x60.1"),
CLK_LOOKUP("core_clk", gfx3d_clk.c, "kgsl-3d0.0"),
CLK_LOOKUP("core_clk", gfx3d_clk.c, "footswitch-8x60.2"),
- CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, NULL),
+ CLK_LOOKUP("ijpeg_clk", ijpeg_clk.c, "msm_gemini.0"),
CLK_LOOKUP("core_clk", ijpeg_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("core_clk", jpegd_clk.c, NULL),
CLK_LOOKUP("core_clk", mdp_clk.c, "mdp.0"),
@@ -3666,7 +3666,7 @@
CLK_LOOKUP("iface_clk", gfx3d_p_clk.c, "footswitch-8x60.2"),
CLK_LOOKUP("master_iface_clk", hdmi_m_p_clk.c, "hdmi_msm.1"),
CLK_LOOKUP("slave_iface_clk", hdmi_s_p_clk.c, "hdmi_msm.1"),
- CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, NULL),
+ CLK_LOOKUP("ijpeg_pclk", ijpeg_p_clk.c, "msm_gemini.0"),
CLK_LOOKUP("iface_clk", ijpeg_p_clk.c, "footswitch-8x60.3"),
CLK_LOOKUP("iface_clk", jpegd_p_clk.c, NULL),
CLK_LOOKUP("mem_iface_clk", imem_p_clk.c, "kgsl-3d0.0"),
diff --git a/arch/arm/mach-msm/include/mach/camera.h b/arch/arm/mach-msm/include/mach/camera.h
index e6a0175..04cfa71 100644
--- a/arch/arm/mach-msm/include/mach/camera.h
+++ b/arch/arm/mach-msm/include/mach/camera.h
@@ -638,8 +638,6 @@
};
int msm_camio_enable(struct platform_device *dev);
-int msm_camio_jpeg_clk_enable(void);
-int msm_camio_jpeg_clk_disable(void);
int msm_camio_vpe_clk_enable(uint32_t);
int msm_camio_vpe_clk_disable(void);
diff --git a/drivers/media/video/msm/Makefile b/drivers/media/video/msm/Makefile
index 3dea4e9..4fd6e49 100644
--- a/drivers/media/video/msm/Makefile
+++ b/drivers/media/video/msm/Makefile
@@ -3,10 +3,10 @@
CFLAGS_REMOVE_msm_vfe8x.o = -Wframe-larger-than=1024
endif
+EXTRA_CFLAGS += -Idrivers/media/video/msm/io
obj-$(CONFIG_MSM_CAMERA) += io/
ifeq ($(CONFIG_MSM_CAMERA_V4L2),y)
EXTRA_CFLAGS += -Idrivers/media/video/msm/csi
- EXTRA_CFLAGS += -Idrivers/media/video/msm/io
EXTRA_CFLAGS += -Idrivers/media/video/msm/sensors
obj-$(CONFIG_MSM_CAMERA) += msm_isp.o msm.o msm_mem.o msm_mctl.o msm_mctl_buf.o msm_mctl_pp.o
obj-$(CONFIG_MSM_CAMERA) += sensors/ actuators/ csi/
diff --git a/drivers/media/video/msm/gemini/msm_gemini_platform.c b/drivers/media/video/msm/gemini/msm_gemini_platform.c
index ee0ff2f..fb5b035 100644
--- a/drivers/media/video/msm/gemini/msm_gemini_platform.c
+++ b/drivers/media/video/msm/gemini/msm_gemini_platform.c
@@ -20,6 +20,7 @@
#include <mach/msm_subsystem_map.h>
#include "msm_gemini_platform.h"
+#include "msm_gemini_sync.h"
#include "msm_gemini_common.h"
#include "msm_gemini_hw.h"
@@ -80,6 +81,20 @@
return 0;
}
+static struct msm_cam_clk_info gemini_8x_clk_info[] = {
+ {"ijpeg_clk", 228571000},
+ {"ijpeg_pclk", -1},
+};
+
+static struct msm_cam_clk_info gemini_7x_clk_info[] = {
+ {"jpeg_clk", 153600000},
+ {"jpeg_pclk", -1},
+};
+
+static struct msm_cam_clk_info gemini_imem_clk_info[] = {
+ {"imem_clk", -1},
+};
+
int msm_gemini_platform_init(struct platform_device *pdev,
struct resource **mem,
void **base,
@@ -91,6 +106,8 @@
int gemini_irq;
struct resource *gemini_mem, *gemini_io, *gemini_irq_res;
void *gemini_base;
+ struct msm_gemini_device *pgmn_dev =
+ (struct msm_gemini_device *) context;
gemini_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!gemini_mem) {
@@ -119,10 +136,43 @@
goto fail1;
}
- rc = msm_camio_jpeg_clk_enable();
- if (rc) {
- GMN_PR_ERR("%s: clk failed rc = %d\n", __func__, rc);
- goto fail2;
+ pgmn_dev->hw_version = GEMINI_8X60;
+ rc = msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_8x_clk_info,
+ pgmn_dev->gemini_clk, ARRAY_SIZE(gemini_8x_clk_info), 1);
+ if (rc < 0) {
+ pgmn_dev->hw_version = GEMINI_7X;
+ rc = msm_cam_clk_enable(&pgmn_dev->pdev->dev,
+ gemini_7x_clk_info, pgmn_dev->gemini_clk,
+ ARRAY_SIZE(gemini_7x_clk_info), 1);
+ if (rc < 0) {
+ GMN_PR_ERR("%s: clk failed rc = %d\n", __func__, rc);
+ goto fail2;
+ }
+ } else {
+ rc = msm_cam_clk_enable(&pgmn_dev->pdev->dev,
+ gemini_imem_clk_info, &pgmn_dev->gemini_clk[2],
+ ARRAY_SIZE(gemini_imem_clk_info), 1);
+ if (!rc)
+ pgmn_dev->hw_version = GEMINI_8960;
+ }
+
+ if (pgmn_dev->hw_version != GEMINI_7X) {
+ if (pgmn_dev->gemini_fs == NULL) {
+ pgmn_dev->gemini_fs =
+ regulator_get(&pgmn_dev->pdev->dev, "fs_ijpeg");
+ if (IS_ERR(pgmn_dev->gemini_fs)) {
+ pr_err("%s: Regulator FS_ijpeg get failed %ld\n",
+ __func__, PTR_ERR(pgmn_dev->gemini_fs));
+ pgmn_dev->gemini_fs = NULL;
+ goto gemini_fs_failed;
+ } else if (regulator_enable(pgmn_dev->gemini_fs)) {
+ pr_err("%s: Regulator FS_ijpeg enable failed\n",
+ __func__);
+ regulator_put(pgmn_dev->gemini_fs);
+ pgmn_dev->gemini_fs = NULL;
+ goto gemini_fs_failed;
+ }
+ }
}
msm_gemini_hw_init(gemini_base, resource_size(gemini_mem));
@@ -146,7 +196,21 @@
return rc;
fail3:
- msm_camio_jpeg_clk_disable();
+ if (pgmn_dev->hw_version != GEMINI_7X) {
+ regulator_disable(pgmn_dev->gemini_fs);
+ regulator_put(pgmn_dev->gemini_fs);
+ pgmn_dev->gemini_fs = NULL;
+ }
+gemini_fs_failed:
+ if (pgmn_dev->hw_version == GEMINI_8960)
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_imem_clk_info,
+ &pgmn_dev->gemini_clk[2], ARRAY_SIZE(gemini_imem_clk_info), 0);
+ if (pgmn_dev->hw_version != GEMINI_7X)
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_8x_clk_info,
+ pgmn_dev->gemini_clk, ARRAY_SIZE(gemini_8x_clk_info), 0);
+ else
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_7x_clk_info,
+ pgmn_dev->gemini_clk, ARRAY_SIZE(gemini_7x_clk_info), 0);
fail2:
iounmap(gemini_base);
fail1:
@@ -158,10 +222,28 @@
int msm_gemini_platform_release(struct resource *mem, void *base, int irq,
void *context)
{
- int result;
+ int result = 0;
+ struct msm_gemini_device *pgmn_dev =
+ (struct msm_gemini_device *) context;
free_irq(irq, context);
- result = msm_camio_jpeg_clk_disable();
+
+ if (pgmn_dev->hw_version != GEMINI_7X) {
+ regulator_disable(pgmn_dev->gemini_fs);
+ regulator_put(pgmn_dev->gemini_fs);
+ pgmn_dev->gemini_fs = NULL;
+ }
+
+ if (pgmn_dev->hw_version == GEMINI_8960)
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_imem_clk_info,
+ &pgmn_dev->gemini_clk[2], ARRAY_SIZE(gemini_imem_clk_info), 0);
+ if (pgmn_dev->hw_version != GEMINI_7X)
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_8x_clk_info,
+ pgmn_dev->gemini_clk, ARRAY_SIZE(gemini_8x_clk_info), 0);
+ else
+ msm_cam_clk_enable(&pgmn_dev->pdev->dev, gemini_7x_clk_info,
+ pgmn_dev->gemini_clk, ARRAY_SIZE(gemini_7x_clk_info), 0);
+
iounmap(base);
release_mem_region(mem->start, resource_size(mem));
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
diff --git a/drivers/media/video/msm/gemini/msm_gemini_sync.h b/drivers/media/video/msm/gemini/msm_gemini_sync.h
index a47e766..1c6726d 100644
--- a/drivers/media/video/msm/gemini/msm_gemini_sync.h
+++ b/drivers/media/video/msm/gemini/msm_gemini_sync.h
@@ -21,6 +21,10 @@
#include <media/v4l2-subdev.h>
#include "msm_gemini_core.h"
+#define GEMINI_7X 0x1
+#define GEMINI_8X60 (0x1 << 1)
+#define GEMINI_8960 (0x1 << 2)
+
struct msm_gemini_q {
char const *name;
struct list_head q;
@@ -39,6 +43,9 @@
struct resource *mem;
int irq;
void *base;
+ struct clk *gemini_clk[3];
+ struct regulator *gemini_fs;
+ uint32_t hw_version;
struct device *device;
struct cdev cdev;
diff --git a/drivers/media/video/msm/io/msm_io_8960.c b/drivers/media/video/msm/io/msm_io_8960.c
index 1ab4223..f9c454a 100644
--- a/drivers/media/video/msm/io/msm_io_8960.c
+++ b/drivers/media/video/msm/io/msm_io_8960.c
@@ -27,141 +27,11 @@
#define BUFF_SIZE_128 128
-static struct clk *camio_jpeg_clk;
-static struct clk *camio_jpeg_pclk;
-static struct clk *camio_imem_clk;
-static struct regulator *fs_ijpeg;
-
-int msm_camio_clk_enable(enum msm_camio_clk_type clktype)
-{
- int rc = 0;
- struct clk *clk = NULL;
-
- switch (clktype) {
- case CAMIO_JPEG_CLK:
- camio_jpeg_clk =
- clk = clk_get(NULL, "ijpeg_clk");
- clk_set_rate(clk, 228571000);
- break;
-
- case CAMIO_JPEG_PCLK:
- camio_jpeg_pclk =
- clk = clk_get(NULL, "ijpeg_pclk");
- break;
-
- case CAMIO_IMEM_CLK:
- camio_imem_clk =
- clk = clk_get(NULL, "imem_clk");
- break;
-
- default:
- break;
- }
-
- if (!IS_ERR(clk))
- rc = clk_enable(clk);
- else
- rc = PTR_ERR(clk);
-
- if (rc < 0)
- pr_err("%s(%d) failed %d\n", __func__, clktype, rc);
-
- return rc;
-}
-
-int msm_camio_clk_disable(enum msm_camio_clk_type clktype)
-{
- int rc = 0;
- struct clk *clk = NULL;
-
- switch (clktype) {
- case CAMIO_JPEG_CLK:
- clk = camio_jpeg_clk;
- break;
-
- case CAMIO_JPEG_PCLK:
- clk = camio_jpeg_pclk;
- break;
-
- case CAMIO_IMEM_CLK:
- clk = camio_imem_clk;
- break;
-
- default:
- break;
- }
-
- if (!IS_ERR(clk)) {
- clk_disable(clk);
- clk_put(clk);
- } else
- rc = PTR_ERR(clk);
-
- if (rc < 0)
- pr_err("%s(%d) failed %d\n", __func__, clktype, rc);
-
- return rc;
-}
-
void msm_camio_clk_rate_set_2(struct clk *clk, int rate)
{
clk_set_rate(clk, rate);
}
-int msm_camio_jpeg_clk_disable(void)
-{
- int rc = 0;
- rc = msm_camio_clk_disable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_disable(CAMIO_JPEG_CLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_disable(CAMIO_IMEM_CLK);
- if (rc < 0)
- return rc;
-
- if (fs_ijpeg) {
- rc = regulator_disable(fs_ijpeg);
- if (rc < 0) {
- pr_err("%s: Regulator disable failed %d\n",
- __func__, rc);
- return rc;
- }
- regulator_put(fs_ijpeg);
- }
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
-int msm_camio_jpeg_clk_enable(void)
-{
- int rc = 0;
- fs_ijpeg = regulator_get(NULL, "fs_ijpeg");
- if (IS_ERR(fs_ijpeg)) {
- pr_err("%s: Regulator FS_IJPEG get failed %ld\n",
- __func__, PTR_ERR(fs_ijpeg));
- fs_ijpeg = NULL;
- } else if (regulator_enable(fs_ijpeg)) {
- pr_err("%s: Regulator FS_IJPEG enable failed\n", __func__);
- regulator_put(fs_ijpeg);
- }
-
- rc = msm_camio_clk_enable(CAMIO_JPEG_CLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_enable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
-
- rc = msm_camio_clk_enable(CAMIO_IMEM_CLK);
- if (rc < 0)
- return rc;
-
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
void msm_camio_bus_scale_cfg(struct msm_bus_scale_pdata *cam_bus_scale_table,
enum msm_bus_perf_setting perf_setting)
{
diff --git a/drivers/media/video/msm/io/msm_io_8x60.c b/drivers/media/video/msm/io/msm_io_8x60.c
index 4e8dc25..baa1245 100644
--- a/drivers/media/video/msm/io/msm_io_8x60.c
+++ b/drivers/media/video/msm/io/msm_io_8x60.c
@@ -85,12 +85,9 @@
static struct clk *camio_csi0_pclk;
static struct clk *camio_csi1_pclk;
static struct clk *camio_vfe_pclk;
-static struct clk *camio_jpeg_clk;
-static struct clk *camio_jpeg_pclk;
static struct clk *camio_vpe_clk;
static struct clk *camio_vpe_pclk;
static struct regulator *fs_vfe;
-static struct regulator *fs_ijpeg;
static struct regulator *fs_vpe;
static struct regulator *ldo15;
static struct regulator *lvs0;
@@ -254,17 +251,6 @@
clk = clk_get(&camio_dev->dev, "csi_pclk");
break;
- case CAMIO_JPEG_CLK:
- camio_jpeg_clk =
- clk = clk_get(NULL, "ijpeg_clk");
- msm_camio_clk_rate_set_2(clk, 228571000);
- break;
-
- case CAMIO_JPEG_PCLK:
- camio_jpeg_pclk =
- clk = clk_get(NULL, "ijpeg_pclk");
- break;
-
case CAMIO_VPE_CLK:
camio_vpe_clk =
clk = clk_get(NULL, "vpe_clk");
@@ -334,14 +320,6 @@
clk = camio_csi1_pclk;
break;
- case CAMIO_JPEG_CLK:
- clk = camio_jpeg_clk;
- break;
-
- case CAMIO_JPEG_PCLK:
- clk = camio_jpeg_pclk;
- break;
-
case CAMIO_VPE_CLK:
clk = camio_vpe_clk;
break;
@@ -393,47 +371,6 @@
return IRQ_HANDLED;
}
-int msm_camio_jpeg_clk_disable(void)
-{
- int rc = 0;
- if (fs_ijpeg) {
- rc = regulator_disable(fs_ijpeg);
- if (rc < 0) {
- CDBG("%s: Regulator disable failed %d\n", __func__, rc);
- return rc;
- }
- regulator_put(fs_ijpeg);
- }
- rc = msm_camio_clk_disable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_disable(CAMIO_JPEG_CLK);
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
-int msm_camio_jpeg_clk_enable(void)
-{
- int rc = 0;
- rc = msm_camio_clk_enable(CAMIO_JPEG_CLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_enable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
- fs_ijpeg = regulator_get(NULL, "fs_ijpeg");
- if (IS_ERR(fs_ijpeg)) {
- CDBG("%s: Regulator FS_IJPEG get failed %ld\n", __func__,
- PTR_ERR(fs_ijpeg));
- fs_ijpeg = NULL;
- } else if (regulator_enable(fs_ijpeg)) {
- CDBG("%s: Regulator FS_IJPEG enable failed\n", __func__);
- regulator_put(fs_ijpeg);
- }
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
int msm_camio_vpe_clk_disable(void)
{
int rc = 0;
diff --git a/drivers/media/video/msm/io/msm_io_vfe31.c b/drivers/media/video/msm/io/msm_io_vfe31.c
index 7f3b7ae..24bba59 100644
--- a/drivers/media/video/msm/io/msm_io_vfe31.c
+++ b/drivers/media/video/msm/io/msm_io_vfe31.c
@@ -108,8 +108,6 @@
static struct clk *camio_csi_clk;
static struct clk *camio_csi_pclk;
static struct clk *camio_csi_vfe_clk;
-static struct clk *camio_jpeg_clk;
-static struct clk *camio_jpeg_pclk;
static struct clk *camio_vpe_clk;
static struct regulator *fs_vpe;
static struct msm_camera_io_ext camio_ext;
@@ -117,7 +115,6 @@
static struct resource *camifpadio, *csiio;
void __iomem *camifpadbase, *csibase;
static uint32_t vpe_clk_rate;
-static uint32_t jpeg_clk_rate;
static struct regulator_bulk_data regs[] = {
{ .supply = "gp2", .min_uV = 2600000, .max_uV = 2600000 },
@@ -239,16 +236,6 @@
clk = clk_get(NULL, "csi_pclk");
break;
- case CAMIO_JPEG_CLK:
- camio_jpeg_clk =
- clk = clk_get(NULL, "jpeg_clk");
- jpeg_clk_rate = clk_round_rate(clk, 144000000);
- clk_set_rate(clk, jpeg_clk_rate);
- break;
- case CAMIO_JPEG_PCLK:
- camio_jpeg_pclk =
- clk = clk_get(NULL, "jpeg_pclk");
- break;
case CAMIO_VPE_CLK:
camio_vpe_clk =
clk = clk_get(NULL, "vpe_clk");
@@ -308,12 +295,6 @@
case CAMIO_CSI0_PCLK:
clk = camio_csi_pclk;
break;
- case CAMIO_JPEG_CLK:
- clk = camio_jpeg_clk;
- break;
- case CAMIO_JPEG_PCLK:
- clk = camio_jpeg_pclk;
- break;
case CAMIO_VPE_CLK:
clk = camio_vpe_clk;
break;
@@ -356,22 +337,6 @@
return IRQ_HANDLED;
}
-int msm_camio_jpeg_clk_disable(void)
-{
- msm_camio_clk_disable(CAMIO_JPEG_CLK);
- msm_camio_clk_disable(CAMIO_JPEG_PCLK);
- /* Need to add the code for remove PM QOS requirement */
- return 0;
-}
-
-
-int msm_camio_jpeg_clk_enable(void)
-{
- msm_camio_clk_enable(CAMIO_JPEG_CLK);
- msm_camio_clk_enable(CAMIO_JPEG_PCLK);
- return 0;
-}
-
int msm_camio_vpe_clk_disable(void)
{
msm_camio_clk_disable(CAMIO_VPE_CLK);
diff --git a/drivers/media/video/msm/io/msm_io_vfe31_v4l2.c b/drivers/media/video/msm/io/msm_io_vfe31_v4l2.c
index 451cb5a..a1270ea 100644
--- a/drivers/media/video/msm/io/msm_io_vfe31_v4l2.c
+++ b/drivers/media/video/msm/io/msm_io_vfe31_v4l2.c
@@ -33,12 +33,9 @@
#define BUFF_SIZE_128 128
-static struct clk *camio_jpeg_clk;
static struct clk *camio_vfe_clk;
-static struct clk *camio_jpeg_pclk;
static struct clk *camio_vpe_clk;
static struct clk *camio_vpe_pclk;
-static struct regulator *fs_ijpeg;
static struct regulator *fs_vpe;
static int vpe_clk_rate;
@@ -49,19 +46,6 @@
struct clk *clk = NULL;
switch (clktype) {
- case CAMIO_JPEG_CLK:
- camio_jpeg_clk =
- clk = clk_get(NULL, "ijpeg_clk");
- rc = clk_set_rate(clk, 228571000);
- if (rc < 0)
- rc = clk_set_rate(clk, 153600000);
- break;
-
- case CAMIO_JPEG_PCLK:
- camio_jpeg_pclk =
- clk = clk_get(NULL, "ijpeg_pclk");
- break;
-
case CAMIO_VPE_CLK:
camio_vpe_clk =
clk = clk_get(NULL, "vpe_clk");
@@ -93,14 +77,6 @@
struct clk *clk = NULL;
switch (clktype) {
- case CAMIO_JPEG_CLK:
- clk = camio_jpeg_clk;
- break;
-
- case CAMIO_JPEG_PCLK:
- clk = camio_jpeg_pclk;
- break;
-
case CAMIO_VPE_CLK:
clk = camio_vpe_clk;
break;
@@ -138,47 +114,6 @@
clk_set_rate(clk, rate);
}
-int msm_camio_jpeg_clk_disable(void)
-{
- int rc = 0;
- if (fs_ijpeg) {
- rc = regulator_disable(fs_ijpeg);
- if (rc < 0) {
- CDBG("%s: Regulator disable failed %d\n", __func__, rc);
- return rc;
- }
- regulator_put(fs_ijpeg);
- }
- rc = msm_camio_clk_disable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_disable(CAMIO_JPEG_CLK);
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
-int msm_camio_jpeg_clk_enable(void)
-{
- int rc = 0;
- rc = msm_camio_clk_enable(CAMIO_JPEG_CLK);
- if (rc < 0)
- return rc;
- rc = msm_camio_clk_enable(CAMIO_JPEG_PCLK);
- if (rc < 0)
- return rc;
- fs_ijpeg = regulator_get(NULL, "fs_ijpeg");
- if (IS_ERR(fs_ijpeg)) {
- CDBG("%s: Regulator FS_IJPEG get failed %ld\n", __func__,
- PTR_ERR(fs_ijpeg));
- fs_ijpeg = NULL;
- } else if (regulator_enable(fs_ijpeg)) {
- CDBG("%s: Regulator FS_IJPEG enable failed\n", __func__);
- regulator_put(fs_ijpeg);
- }
- CDBG("%s: exit %d\n", __func__, rc);
- return rc;
-}
-
int msm_camio_vpe_clk_disable(void)
{
int rc = 0;