msm: camera: Change CSID interrupt mask

CSID SOT (Start of Transmission) bit is enabled by default. This
causes lot of unnecessary interrupts. Disable CSID SOT mask, disable
DBG_CSID macro so that none of debug interrupts are triggered.
Remove unwanted logs.

Change-Id: Ib23da7d7b972dd61eb4df255d65b2954f953bffd
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
This commit is contained in:
Sreesudhan Ramakrish Ramkumar
2013-03-26 23:54:06 -07:00
committed by Iliyan Malchev
parent b209dd4e75
commit 855c01951d

View File

@@ -24,7 +24,7 @@
#define CSID_VERSION_V3 0x30000000
#define MSM_CSID_DRV_NAME "msm_csid"
#define DBG_CSID 1
#define DBG_CSID 0
#define TRUE 1
#define FALSE 0
@@ -36,8 +36,6 @@
#define CDBG(fmt, args...) do { } while (0)
#endif
static uint32_t irq_count;
static int msm_csid_cid_lut(
struct msm_camera_csid_lut_params *csid_lut_params,
void __iomem *csidbase)
@@ -84,8 +82,8 @@ static void msm_csid_set_debug_reg(void __iomem *csidbase,
{
uint32_t val = 0;
val = ((1 << csid_params->lane_cnt) - 1) << 20;
msm_camera_io_w(0x7f010801 | val, csidbase + CSID_IRQ_MASK_ADDR);
msm_camera_io_w(0x7f010801 | val, csidbase + CSID_IRQ_CLEAR_CMD_ADDR);
msm_camera_io_w(0x7f010800 | val, csidbase + CSID_IRQ_MASK_ADDR);
msm_camera_io_w(0x7f010800 | val, csidbase + CSID_IRQ_CLEAR_CMD_ADDR);
}
#else
static void msm_csid_set_debug_reg(void __iomem *csidbase,
@@ -94,11 +92,8 @@ static void msm_csid_set_debug_reg(void __iomem *csidbase,
static void msm_csid_reset(struct csid_device *csid_dev)
{
CDBG("%s:%d called\n", __func__, __LINE__);
msm_camera_io_w(CSID_RST_STB_ALL, csid_dev->base + CSID_RST_CMD_ADDR);
CDBG("%s:%d called\n", __func__, __LINE__);
wait_for_completion_interruptible(&csid_dev->reset_complete);
CDBG("%s:%d called\n", __func__, __LINE__);
return;
}
@@ -159,11 +154,6 @@ static irqreturn_t msm_csid_irq(int irq_num, void *data)
__func__, csid_dev->pdev->id, irq);
if (irq & (0x1 << CSID_RST_DONE_IRQ_BITSHIFT))
complete(&csid_dev->reset_complete);
if (irq & 0x1) {
pr_debug("%s CSID%d_IRQ_STATUS_ADDR = 0x%x\n",
__func__, csid_dev->pdev->id, irq);
irq_count++;
}
msm_camera_io_w(irq, csid_dev->base + CSID_IRQ_CLEAR_CMD_ADDR);
return IRQ_HANDLED;
}
@@ -253,13 +243,11 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
int rc = 0;
uint8_t core_id = 0;
CDBG("%s:%d called\n", __func__, __LINE__);
if (!csid_version) {
pr_err("%s:%d csid_version NULL\n", __func__, __LINE__);
rc = -EINVAL;
return rc;
}
CDBG("%s:%d called\n", __func__, __LINE__);
if (csid_dev->csid_state == CSID_POWER_UP) {
pr_err("%s: csid invalid state %d\n", __func__,
@@ -267,7 +255,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
rc = -EINVAL;
return rc;
}
CDBG("%s:%d called\n", __func__, __LINE__);
csid_dev->base = ioremap(csid_dev->mem->start,
resource_size(csid_dev->mem));
@@ -276,10 +263,8 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
rc = -ENOMEM;
return rc;
}
CDBG("%s:%d called\n", __func__, __LINE__);
if (CSID_VERSION <= CSID_VERSION_V2) {
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_camera_config_vreg(&csid_dev->pdev->dev,
csid_8960_vreg_info, ARRAY_SIZE(csid_8960_vreg_info),
NULL, 0, &csid_dev->csi_vdd, 1);
@@ -287,7 +272,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: regulator on failed\n", __func__);
goto vreg_config_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_camera_enable_vreg(&csid_dev->pdev->dev,
csid_8960_vreg_info, ARRAY_SIZE(csid_8960_vreg_info),
@@ -296,7 +280,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: regulator enable failed\n", __func__);
goto vreg_enable_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_cam_clk_enable(&csid_dev->pdev->dev,
csid_8960_clk_info, csid_dev->csid_clk,
@@ -305,9 +288,7 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: clock enable failed\n", __func__);
goto clk_enable_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
} else if (CSID_VERSION >= CSID_VERSION_V3) {
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_camera_config_vreg(&csid_dev->pdev->dev,
csid_8974_vreg_info, ARRAY_SIZE(csid_8974_vreg_info),
NULL, 0, &csid_dev->csi_vdd, 1);
@@ -315,7 +296,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: regulator on failed\n", __func__);
goto vreg_config_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_camera_enable_vreg(&csid_dev->pdev->dev,
csid_8974_vreg_info, ARRAY_SIZE(csid_8974_vreg_info),
@@ -324,7 +304,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: regulator enable failed\n", __func__);
goto vreg_enable_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_cam_clk_enable(&csid_dev->pdev->dev,
csid_8974_clk_info[0].clk_info, csid_dev->csid0_clk,
@@ -333,10 +312,8 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
pr_err("%s: clock enable failed\n", __func__);
goto csid0_clk_enable_failed;
}
CDBG("%s:%d called\n", __func__, __LINE__);
core_id = csid_dev->pdev->id;
if (core_id) {
CDBG("%s:%d called\n", __func__, __LINE__);
rc = msm_cam_clk_enable(&csid_dev->pdev->dev,
csid_8974_clk_info[core_id].clk_info,
csid_dev->csid_clk,
@@ -348,7 +325,6 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
}
}
}
CDBG("%s:%d called\n", __func__, __LINE__);
csid_dev->hw_version =
msm_camera_io_r(csid_dev->base + CSID_HW_VERSION_ADDR);
@@ -356,17 +332,12 @@ static int msm_csid_init(struct csid_device *csid_dev, uint32_t *csid_version)
csid_dev->hw_version);
*csid_version = csid_dev->hw_version;
CDBG("%s:%d called\n", __func__, __LINE__);
init_completion(&csid_dev->reset_complete);
CDBG("%s:%d called\n", __func__, __LINE__);
enable_irq(csid_dev->irq->start);
CDBG("%s:%d called\n", __func__, __LINE__);
msm_csid_reset(csid_dev);
CDBG("%s:%d called\n", __func__, __LINE__);
csid_dev->csid_state = CSID_POWER_UP;
irq_count = 0;
return rc;
clk_enable_failed:
@@ -578,7 +549,6 @@ static int __devinit csid_probe(struct platform_device *pdev)
struct csid_device *new_csid_dev;
int rc = 0;
CDBG("%s:%d called\n", __func__, __LINE__);
new_csid_dev = kzalloc(sizeof(struct csid_device), GFP_KERNEL);
if (!new_csid_dev) {
pr_err("%s: no enough memory\n", __func__);