* For output buffers copy the timestamp if needed,
                 * and the timecode field and flag if needed.
                 */
-               if (q->timestamp_flags == V4L2_BUF_FLAG_TIMESTAMP_COPY)
+               if ((q->timestamp_flags & V4L2_BUF_FLAG_TIMESTAMP_MASK) ==
+                   V4L2_BUF_FLAG_TIMESTAMP_COPY)
                        vb->v4l2_buf.timestamp = b->timestamp;
                vb->v4l2_buf.flags |= b->flags & V4L2_BUF_FLAG_TIMECODE;
                if (b->flags & V4L2_BUF_FLAG_TIMECODE)
                return -EINVAL;
 
        /* Warn that the driver should choose an appropriate timestamp type */
-       WARN_ON(q->timestamp_flags == V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN);
+       WARN_ON((q->timestamp_flags & V4L2_BUF_FLAG_TIMESTAMP_MASK) ==
+               V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN);
 
        INIT_LIST_HEAD(&q->queued_list);
        INIT_LIST_HEAD(&q->done_list);