09 Jul, 2016

2 commits


02 May, 2016

1 commit

  • Commit 0c426c472b5585ed6e59160359c979506d45ae49 ("[media] media: Always
    keep a graph walk large enough around") changed
    media_device_register_entity() function to take mdev->graph_mutex. This
    causes deadlock in driver probe, which calls (indirectly) this function
    with ->graph_mutex taken. This patch removes taking ->graph_mutex in
    driver probe to avoid deadlock. Other drivers don't take ->graph_mutex
    for entity registration, so this change should be safe.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Mauro Carvalho Chehab

    Marek Szyprowski
     

11 Jan, 2016

6 commits

  • Currently, v4l2_device_register() doesn't use the media_device
    struct. So, calling media_device_init() could be called either
    before or after v4l2_device_register().

    Yet, it is a good practice to initialize everything before calling
    the register functions. Also, the other drivers call
    media_device_init() before registering the V4L2 device.

    So, move the call for media_device_init() to happen earlier on
    exynos4-is and s3c-camif.

    This is just a cleanup patch.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • The media device node is registered and so made visible to user-space
    before entities are registered and links created which means that the
    media graph obtained by user-space could be only partially enumerated
    if that happens too early before all the graph has been created.

    To avoid this race condition, split the media init and registration
    in separate functions and only register the media device node when
    all the pending subdevices have been registered, either explicitly
    by the driver or asynchronously using v4l2_async_register_subdev().

    The media_device_register() had a check for drivers not filling dev
    and model fields but all drivers in mainline set them and not doing
    it will be a driver bug so change the function return to void and
    add a BUG_ON() for dev being NULL instead.

    Also, add a media_device_cleanup() function that will destroy the
    graph_mutex that is initialized in media_device_init().

    [mchehab@osg.samsung.com: Fix compilation if !CONFIG_MEDIA_CONTROLLER
    and remove two warnings added by this changeset]
    Suggested-by: Sakari Ailus
    Signed-off-by: Javier Martinez Canillas
    Acked-by: Sakari Ailus
    Signed-off-by: Mauro Carvalho Chehab

    Javier Martinez Canillas
     
  • With the MC next gen rework, what's left for media_entity_init()
    is to just initialize the PADs. However, certain devices, like
    a FLASH led/light doesn't have any input or output PAD.

    So, there's no reason why calling media_entity_init() would be
    mandatory. Also, despite its name, what this function actually
    does is to initialize the PADs data. So, rename it to
    media_entity_pads_init() in order to reflect that.

    The media entity actual init happens during entity register,
    at media_device_register_entity(). We should move init of
    num_links and num_backlinks to it.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Instead of relying on media subtype, use the new macros to detect
    if an entity is a subdev or an A/V DMA entity.

    Please note that most drivers assume that there's just AV_DMA or
    V4L2 subdevs. This is not true anymore, as we've added MC support
    for DVB, and there are plans to add support for ALSA and FB/DRM
    too.

    Ok, on the current pipelines supported by those drivers, just V4L
    stuff are there, but, assuming that some day a pipeline that also
    works with other subsystems will ever added, it is better to add
    explicit checks for the AV_DMA stuff.

    Acked-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • With the new API, a link can be either between two PADs or between an interface
    and an entity. So, we need to use a better name for the function that create
    links between two pads.

    So, rename the such function to media_create_pad_link().

    No functional changes.

    This patch was created via this shell script:
    for i in $(find drivers/media -name '*.[ch]' -type f) $(find drivers/staging/media -name '*.[ch]' -type f) $(find include/ -name '*.h' -type f) ; do sed s,media_entity_create_link,media_create_pad_link,g a && mv a $i; done

    Acked-by: Hans Verkuil
    Tested-by: Javier Martinez Canillas
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Currently, media_entity_init() creates an array with the links,
    allocated at init time. It provides a parameter (extra_links)
    that would allocate more links than the current needs, but this
    is not used by any driver.

    As we want to be able to do dynamic link allocation/removal,
    we'll need to change the implementation of the links. So,
    before doing that, let's first remove that extra unused
    parameter, in order to cleanup the interface first.

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Sakari Ailus
    Acked-by: Laurent Pinchart

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

18 Dec, 2015

2 commits

  • Move timestamp from struct vb2_v4l2_buffer to struct vb2_buffer
    for common use, and change its type to u64 in order to handling
    y2038 problem. This patch also includes all device drivers' changes related to
    this restructuring.

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     
  • The queue_setup callback has a void pointer that is just for V4L2
    and is the pointer to the v4l2_format struct that was passed to
    VIDIOC_CREATE_BUFS. The idea was that drivers would use the information
    from that struct to buffers suitable for the requested format.

    After the vb2 split series this pointer is now a void pointer,
    which is ugly, and the reality is that all existing drivers will
    effectively just look at the sizeimage field of v4l2_format.

    To make this more generic the queue_setup callback is changed:
    the void pointer is dropped, instead if the *num_planes argument
    is 0, then use the current format size, if it is non-zero, then
    it contains the number of requested planes and the sizes array
    contains the requested sizes. If either is unsupported, then return
    -EINVAL, otherwise use the requested size(s).

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

17 Nov, 2015

1 commit

  • Let's not mix headers used by the core with those headers that
    are needed by some driver-specific interface header.

    The headers used on drivers were manually moved using:
    mkdir include/media/drv-intf/
    git mv include/media/cx2341x.h include/media/cx25840.h \
    include/media/exynos-fimc.h include/media/msp3400.h \
    include/media/s3c_camif.h include/media/saa7146.h \
    include/media/saa7146_vv.h include/media/sh_mobile_ceu.h \
    include/media/sh_mobile_csi2.h include/media/sh_vou.h \
    include/media/si476x.h include/media/soc_mediabus.h \
    include/media/tea575x.h include/media/drv-intf/

    And the references for those headers were corrected using:

    MAIN_DIR="media/"
    PREV_DIR="media/"
    DIRS="drv-intf/"

    echo "Checking affected files" >&2
    for i in $DIRS; do
    for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
    n=`basename $j`
    git grep -l $n
    done
    done|sort|uniq >files && (
    echo "Handling files..." >&2;
    echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo "perl -ne 's,(include [\\\"\\&2;
    echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
    done;
    done;
    echo "cat > a && mv a \$i; done"
    );
    ) >script && . ./script

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Arnd Bergmann

    Mauro Carvalho Chehab
     

21 Oct, 2015

1 commit

  • Replace struct v4l2_format * with void * to make queue_setup()
    for common use.
    And then, modify all device drivers related with this change.

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    [hans.verkuil@cisco.com: fix missing const in fimc-lite.c]

    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     

01 Oct, 2015

3 commits

  • Remove v4l2 stuff - v4l2_buf, v4l2_plane - from struct vb2_buffer.

    Add new member variables - bytesused, length, offset, userptr, fd,
    data_offset - to struct vb2_plane in order to cover all information
    of v4l2_plane.
    struct vb2_plane {

    unsigned int bytesused;
    unsigned int length;
    union {
    unsigned int offset;
    unsigned long userptr;
    int fd;
    } m;
    unsigned int data_offset;
    }

    Replace v4l2_buf with new member variables - index, type, memory - which
    are common fields for buffer management.
    struct vb2_buffer {

    unsigned int index;
    unsigned int type;
    unsigned int memory;
    unsigned int num_planes;
    struct vb2_plane planes[VIDEO_MAX_PLANES];

    };

    v4l2 specific fields - flags, field, timestamp, timecode,
    sequence - are moved to vb2_v4l2_buffer in videobuf2-v4l2.c
    struct vb2_v4l2_buffer {
    struct vb2_buffer vb2_buf;

    __u32 flags;
    __u32 field;
    struct timeval timestamp;
    struct v4l2_timecode timecode;
    __u32 sequence;
    };

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     
  • Make videobuf2-v4l2 as a wrapper of videobuf2-core for v4l2-use.
    And replace videobuf2-core.h with videobuf2-v4l2.h.
    This renaming change should be accompanied by the modifications
    of all device drivers that include videobuf2-core.h.
    It can be done with just running this shell script.

    replace()
    {
    str1=$1
    str2=$2
    dir=$3
    for file in $(find $dir -name *.h -o -name *.c -o -name Makefile)
    do
    echo $file
    sed "s/$str1/$str2/g" $file > $file.out
    mv $file.out $file
    done
    }

    replace "videobuf2-core" "videobuf2-v4l2" "include/media/"
    replace "videobuf2-core" "videobuf2-v4l2" "drivers/media/"
    replace "videobuf2-core" "videobuf2-v4l2" "drivers/usb/gadget/"
    replace "videobuf2-core" "videobuf2-v4l2" "drivers/staging/media/"

    Signed-off-by: Junghak Sung
    Signed-off-by: Geunyoung Kim
    Acked-by: Seung-Woo Kim
    Acked-by: Inki Dae
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Junghak Sung
     
  • This is a preparation for a change to the type of v4l2 timestamps.
    v4l2_get_timestamp() is a helper function that reads the monotonic
    time and stores it into a 'struct timeval'. Multiple drivers implement
    the same thing themselves for historic reasons.

    Changing them all to use v4l2_get_timestamp() is more consistent
    and reduces the amount of code duplication, and most importantly
    simplifies the following changes.

    Signed-off-by: Arnd Bergmann
    Acked-by: Sylwester Nawrocki
    [hans.verkuil@cisco.com: dropped the v4l2-dev.c patch that didn't belong here]
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Arnd Bergmann
     

12 May, 2015

1 commit


01 May, 2015

1 commit


28 Apr, 2015

1 commit

  • Fix these compiler warnings that appeared after switching to gcc-5.1.0:

    drivers/media/platform/s3c-camif/camif-capture.c: In function 'sensor_set_power':
    drivers/media/platform/s3c-camif/camif-capture.c:118:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
    if (!on == camif->sensor.power_count)
    ^
    drivers/media/platform/s3c-camif/camif-capture.c: In function 'sensor_set_streaming':
    drivers/media/platform/s3c-camif/camif-capture.c:134:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
    if (!on == camif->sensor.stream_count)
    ^

    Signed-off-by: Hans Verkuil
    Cc: Kamil Debski
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

24 Mar, 2015

1 commit

  • If a subdevice pad op is called from a bridge driver, then there is
    no v4l2_subdev_fh struct that can be passed to the subdevice. This
    made it hard to use such subdevs from a bridge driver.

    This patch replaces the v4l2_subdev_fh pointer by a v4l2_subdev_pad_config
    pointer in the pad ops. This allows bridge drivers to use the various
    try_ pad ops by creating a v4l2_subdev_pad_config struct and passing it
    along to the pad op.

    The v4l2_subdev_get_try_* macros had to be changed because of this, so
    I also took the opportunity to use the full name of the v4l2_subdev_get_try_*
    functions in the __V4L2_SUBDEV_MK_GET_TRY macro arguments: if you now do
    'git grep v4l2_subdev_get_try_format' you will actually find the header
    where it is defined.

    One remark regarding the drivers/staging/media/davinci_vpfe patches: the
    *_init_formats() functions assumed that fh could be NULL. However, that's
    not true for this driver, it's always set. This is almost certainly a copy
    and paste from the omap3isp driver. I've updated the code to reflect the
    fact that fh is never NULL.

    Signed-off-by: Hans Verkuil
    Acked-by: Lad, Prabhakar
    Tested-by: Lad, Prabhakar
    Acked-by: Laurent Pinchart
    Acked-by: Sakari Ailus
    Acked-by: Sylwester Nawrocki
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

23 Dec, 2014

1 commit

  • This patch drops driver specific wait_prepare() and
    wait_finish() callbacks from vb2_ops and instead uses
    the the helpers vb2_ops_wait_prepare/finish() provided
    by the vb2 core, the lock member of the queue needs
    to be initalized to a mutex so that vb2 helpers
    vb2_ops_wait_prepare/finish() can make use of it.

    Signed-off-by: Lad, Prabhakar
    Cc: Sylwester Nawrocki
    Acked-by: Sylwester Nawrocki
    Signed-off-by: Kamil Debski
    Signed-off-by: Mauro Carvalho Chehab

    Prabhakar Lad
     

15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

25 Nov, 2014

1 commit


15 Nov, 2014

1 commit

  • In order to have subsytem agnostic media bus format definitions we've
    moved media bus definition to include/uapi/linux/media-bus-format.h and
    prefixed values with MEDIA_BUS_FMT instead of V4L2_MBUS_FMT.

    Reference new definitions in all platform drivers.

    Signed-off-by: Boris Brezillon
    Acked-by: Hans Verkuil
    Acked-by: Sakari Ailus
    Acked-by: Sekhar Nori
    Acked-by: Lad, Prabhakar
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Boris BREZILLON
     

20 Oct, 2014

1 commit


26 Sep, 2014

1 commit

  • drivers/media//platform/s3c-camif/camif-capture.c: In function ‘camif_prepare_addr’:
    include/linux/dynamic_debug.h:64:16: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-capture.c:283:2: note: in expansion of macro ‘pr_debug’
    pr_debug("DMA address: y: %#x cb: %#x cr: %#x\n",
    ^
    include/linux/dynamic_debug.h:64:16: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-capture.c:283:2: note: in expansion of macro ‘pr_debug’
    pr_debug("DMA address: y: %#x cb: %#x cr: %#x\n",
    ^
    include/linux/dynamic_debug.h:64:16: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 7 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-capture.c:283:2: note: in expansion of macro ‘pr_debug’
    pr_debug("DMA address: y: %#x cb: %#x cr: %#x\n",
    ^
    include/linux/dynamic_debug.h:64:16: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 6 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-regs.c:217:2: note: in expansion of macro ‘pr_debug’
    pr_debug("dst_buf[%d]: %#X, cb: %#X, cr: %#X\n",
    ^
    include/linux/dynamic_debug.h:64:16: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 7 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-regs.c:217:2: note: in expansion of macro ‘pr_debug’
    pr_debug("dst_buf[%d]: %#X, cb: %#X, cr: %#X\n",
    ^
    include/linux/dynamic_debug.h:64:16: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 8 has type ‘dma_addr_t’ [-Wformat=]
    static struct _ddebug __aligned(8) \
    ^
    include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
    ^
    include/linux/printk.h:266:2: note: in expansion of macro ‘dynamic_pr_debug’
    dynamic_pr_debug(fmt, ##__VA_ARGS__)
    ^
    drivers/media//platform/s3c-camif/camif-regs.c:217:2: note: in expansion of macro ‘pr_debug’
    pr_debug("dst_buf[%d]: %#X, cb: %#X, cr: %#X\n",
    ^

    Acked-by: Sylwester Nawrocki
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

22 Jul, 2014

1 commit


05 Jul, 2014

1 commit


23 Apr, 2014

1 commit

  • The vb2 core ignores any return code from the stop_streaming op.
    And there really isn't anything it can do anyway in case of an error.
    So change the return type to void and update any drivers that implement it.

    The int return gave drivers the idea that this operation could actually
    fail, but that's really not the case.

    The pwc amd sdr-msi3101 drivers both had this construction:

    if (mutex_lock_interruptible(&s->v4l2_lock))
    return -ERESTARTSYS;

    This has been updated to just call mutex_lock(). The stop_streaming op
    expects this to really stop streaming and I very much doubt this will
    work reliably if stop_streaming just returns without really stopping the
    DMA.

    Signed-off-by: Hans Verkuil
    Acked-by: Pawel Osciak
    Acked-by: Sakari Ailus
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

06 Mar, 2014

1 commit


04 Feb, 2014

1 commit


24 Aug, 2013

1 commit


20 Jun, 2013

1 commit

  • * linus: (1465 commits)
    ARM: tegra30: clocks: Fix pciex clock registration
    lseek(fd, n, SEEK_END) does *not* go to eof - n
    Linux 3.10-rc6
    smp.h: Use local_irq_{save,restore}() in !SMP version of on_each_cpu().
    powerpc: Fix missing/delayed calls to irq_work
    powerpc: Fix emulation of illegal instructions on PowerNV platform
    powerpc: Fix stack overflow crash in resume_kernel when ftracing
    snd_pcm_link(): fix a leak...
    use can_lookup() instead of direct checks of ->i_op->lookup
    move exit_task_namespaces() outside of exit_notify()
    fput: task_work_add() can fail if the caller has passed exit_task_work()
    xfs: don't shutdown log recovery on validation errors
    xfs: ensure btree root split sets blkno correctly
    xfs: fix implicit padding in directory and attr CRC formats
    xfs: don't emit v5 superblock warnings on write
    mei: me: clear interrupts on the resume path
    mei: nfc: fix nfc device freeing
    mei: init: Flush scheduled work before resetting the device
    sctp: fully initialize sctp_outq in sctp_outq_init
    netiucv: Hold rtnl between name allocation and device registration.
    ...

    Mauro Carvalho Chehab
     

13 Jun, 2013

3 commits


09 Jun, 2013

1 commit


21 May, 2013

1 commit


06 Mar, 2013

2 commits

  • Ensure the driver gets always at least its minimum required
    number of buffers allocated by checking actual number of
    allocated buffers in vb2_reqbufs(). And free any partially
    allocated buffer queue with signaling an error to user space.
    Without this patch applications may wait forever to dequeue
    a filled buffer, because the hardware didn't even start after
    VIDIOC_STREAMON, VIDIOC_QBUF calls, due to insufficient number
    of empty buffers.

    Reported-by: Alexander Nestorov
    Signed-off-by: Sylwester Nawrocki
    Signed-off-by: Mauro Carvalho Chehab

    Sylwester Nawrocki
     
  • Not all drivers use monotonic timestamps. This patch adds a way to set the
    timestamp type per every queue.
    In addition, set proper timestamp type in drivers that I am sure that use
    either MONOTONIC or COPY timestamps. Other drivers will correctly report
    UNKNOWN timestamp type instead of assuming that all drivers use monotonic
    timestamps.

    Signed-off-by: Kamil Debski
    Signed-off-by: Kyungmin Park
    Reviewed-by: Sylwester Nawrocki
    Acked-by: Hans Verkuil
    Signed-off-by: Sylwester Nawrocki
    Signed-off-by: Mauro Carvalho Chehab

    Kamil Debski