]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
platform:tegra:camera: changed vi4_init
authorHien Goi <hgoi@nvidia.com>
Mon, 15 May 2017 21:58:13 +0000 (14:58 -0700)
committermobile promotions <svcmobile_promotions@nvidia.com>
Thu, 18 May 2017 00:59:51 +0000 (17:59 -0700)
-writes to CFG_INTERRUPT_MASK and CFG_INTERRUPT_STATUS were causing
vi master error messages and the writes to stall
-removed those writes in vi4_init as they are not needed
-moved vi4_init below check for bypass

Bug 1906966

Change-Id: I6552eebc8f10e8059bcdf7de4aa883f55d607047
Signed-off-by: Hien Goi <hgoi@nvidia.com>
Reviewed-on: http://git-master/r/1482282
(cherry picked from commit ad0dc28fbd03d005500b5bd3b821c730bcaa4a0e)
Reviewed-on: http://git-master/r/1483480
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nathan Lord <nlord@nvidia.com>
Reviewed-by: Jihoon Bang <jbang@nvidia.com>
drivers/media/platform/tegra/camera/vi/vi4_fops.c

index e451acfbe2cc1887883a62c096c6ecb82e591758..5d75923945a1dfd413901d763ab03692ace024c0 100644 (file)
@@ -124,8 +124,6 @@ int vi4_add_ctrls(struct tegra_channel *chan)
 
 static bool vi4_init(struct tegra_channel *chan)
 {
-       vi4_write(chan, CFG_INTERRUPT_MASK, 0x3f0000f9);
-       vi4_write(chan, CFG_INTERRUPT_STATUS, 0x3f000001);
        vi4_write(chan, NOTIFY_ERROR, 0x1);
        vi4_write(chan, NOTIFY_TAG_CLASSIFY_0, 0xe39c08e3);
        return true;
@@ -743,7 +741,6 @@ int vi4_channel_start_streaming(struct vb2_queue *vq, u32 count)
        struct camera_common_data *s_data;
        unsigned int emb_buf_size = 0;
 
-       vi4_init(chan);
        ret = media_entity_pipeline_start(&chan->video.entity, pipe);
        if (ret < 0)
                goto error_pipeline_start;
@@ -755,6 +752,8 @@ int vi4_channel_start_streaming(struct vb2_queue *vq, u32 count)
                return ret;
        }
 
+       vi4_init(chan);
+
        spin_lock_irqsave(&chan->capture_state_lock, flags);
        chan->capture_state = CAPTURE_IDLE;
        spin_unlock_irqrestore(&chan->capture_state_lock, flags);