spin_lock_irqsave(&vfe->output_lock, flags);
 
        output = &line->output;
-       if (output->state != VFE_OUTPUT_OFF) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is running\n");
                goto error;
        }
 
        ops->reg_update_clear(vfe, line->id);
 
-       if (output->state != VFE_OUTPUT_OFF) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is not in reserved state %d\n",
                        output->state);
                spin_unlock_irqrestore(&vfe->output_lock, flags);
 
        spin_lock_irqsave(&vfe->output_lock, flags);
 
        output = &line->output;
-       if (output->state != VFE_OUTPUT_OFF) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is running\n");
                goto error;
        }
 
        vfe_reg_update_clear(vfe, line->id);
 
-       if (output->state != VFE_OUTPUT_OFF) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is not in reserved state %d\n",
                        output->state);
                spin_unlock_irqrestore(&vfe->output_lock, flags);
 
 
        ops->reg_update_clear(vfe, line->id);
 
-       if (output->state != VFE_OUTPUT_RESERVED) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is not in reserved state %d\n", output->state);
                spin_unlock_irqrestore(&vfe->output_lock, flags);
                return -EINVAL;
        spin_lock_irqsave(&vfe->output_lock, flags);
 
        output = &line->output;
-       if (output->state != VFE_OUTPUT_OFF) {
+       if (output->state > VFE_OUTPUT_RESERVED) {
                dev_err(vfe->camss->dev, "Output is running\n");
                goto error;
        }
 
        int ret;
 
        if (enable) {
+               line->output.state = VFE_OUTPUT_RESERVED;
                ret = vfe->ops->vfe_enable(line);
                if (ret < 0)
                        dev_err(vfe->camss->dev,
 
                                        struct v4l2_subdev *vfe = &camss->vfe[k].line[j].subdev;
 
                                        ret = media_create_pad_link(&csid->entity,
-                                                                   MSM_CSID_PAD_SRC,
+                                                                   MSM_CSID_PAD_FIRST_SRC + j,
                                                                    &vfe->entity,
                                                                    MSM_VFE_PAD_SINK,
                                                                    0);