18 Jul, 2016

1 commit


09 Jul, 2016

1 commit

  • * topic/cec:
    [media] DocBook/media: add CEC documentation
    [media] s5p_cec: get rid of an unused var
    [media] move s5p-cec to staging
    [media] vivid: add CEC emulation
    [media] cec: s5p-cec: Add s5p-cec driver
    [media] cec: adv7511: add cec support
    [media] cec: adv7842: add cec support
    [media] cec: adv7604: add cec support
    [media] cec: add compat32 ioctl support
    [media] cec/TODO: add TODO file so we know why this is still in staging
    [media] cec: add HDMI CEC framework (api)
    [media] cec: add HDMI CEC framework (adapter)
    [media] cec: add HDMI CEC framework (core)
    [media] cec-funcs.h: static inlines to pack/unpack CEC messages
    [media] cec.h: add cec header
    [media] cec-edid: add module for EDID CEC helper functions
    [media] cec.txt: add CEC framework documentation
    [media] rc: Add HDMI CEC protocol handling
    Input: add HDMI CEC specific keycodes
    Input: add BUS_CEC type

    Mauro Carvalho Chehab
     

28 Jun, 2016

33 commits

  • drivers/staging/media/s5p-cec/s5p_cec.c: In function 's5p_cec_adap_enable':
    drivers/staging/media/s5p-cec/s5p_cec.c:42:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
    int ret;
    ^~~

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • As the CEC core is currently at staging, it doesn't make any sense
    to put a dependent driver outside staging. So, move it also to
    staging.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • The vivid driver has been extended to provide CEC adapters for the HDMI
    input and HDMI outputs in order to test CEC applications.

    This CEC emulation is faithful to the CEC timings (i.e., it all at a
    snail's pace).

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

    Hans Verkuil
     
  • Add CEC interface driver present in the Samsung Exynos range of
    SoCs.

    The following files were based on work by SangPil Moon:
    - exynos_hdmi_cec.h
    - exynos_hdmi_cecctl.c

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

    Kamil Debski
     
  • Add CEC support to the adv7511 driver.

    Signed-off-by: Hans Verkuil
    [k.debski@samsung.com: Merged changes from CEC Updates commit by Hans Verkuil]
    Signed-off-by: Kamil Debski
    Signed-off-by: Hans Verkuil

    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • Add CEC support to the adv7842 driver.

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

    Hans Verkuil
     
  • Add CEC support to the adv7604 driver.

    Signed-off-by: Hans Verkuil
    [k.debski@samsung.com: Merged changes from CEC Updates commit by Hans Verkuil]
    [k.debski@samsung.com: add missing methods cec/io_write_and_or]
    [k.debski@samsung.com: change adv7604 to adv76xx in added functions]
    [hansverk@cisco.com: use _clr_set instead of _and_or]

    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • Explain why cec.c is still in staging.

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

    Hans Verkuil
     
  • The added HDMI CEC framework provides a generic kernel interface for
    HDMI CEC devices.

    Note that the CEC framework is added to staging/media and that the
    cec.h and cec-funcs.h headers are not exported yet. While the kABI
    is mature, I would prefer to allow the uABI some more time before
    it is mainlined in case it needs more tweaks.

    This adds the cec-api.c source that deals with the public CEC API
    and the Kconfig/Makefile plumbing.

    The MAINTAINERS file is also updated.

    Signed-off-by: Hans Verkuil
    [k.debski@samsung.com: code cleanup and fixes]
    Signed-off-by: Kamil Debski

    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • The added HDMI CEC framework provides a generic kernel interface for
    HDMI CEC devices.

    Note that the CEC framework is added to staging/media and that the
    cec.h and cec-funcs.h headers are not exported yet. While the kABI
    is mature, I would prefer to allow the uABI some more time before
    it is mainlined in case it needs more tweaks.

    This adds the cec-adap.c source that deals with the low-level CEC
    messaging and logical address handling.

    Signed-off-by: Hans Verkuil
    [k.debski@samsung.com: change kthread handling when setting logical address]
    [k.debski@samsung.com: code cleanup and fixes]
    [k.debski@samsung.com: add possibility to clear assigned logical addresses]
    Signed-off-by: Kamil Debski

    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • The added HDMI CEC framework provides a generic kernel interface for
    HDMI CEC devices.

    Note that the CEC framework is added to staging/media and that the
    cec.h and cec-funcs.h headers are not exported yet. While the kABI
    is mature, I would prefer to allow the uABI some more time before
    it is mainlined in case it needs more tweaks.

    This adds the cec-core.c, media/cec.h and cec-priv.h sources.

    Signed-off-by: Hans Verkuil
    [k.debski@samsung.com: Merged CEC Updates commit by Hans Verkuil]
    [k.debski@samsung.com: Merged Update author commit by Hans Verkuil]
    [k.debski@samsung.com: code cleanup and fixes]
    [k.debski@samsung.com: add missing CEC commands to match spec]
    [k.debski@samsung.com: add RC framework support]
    [k.debski@samsung.com: move and edit documentation]
    [k.debski@samsung.com: add vendor id reporting]
    [k.debski@samsung.com: reorder of API structs and add reserved fields]
    [k.debski@samsung.com: fix handling of events and fix 32/64bit timespec problem]
    [k.debski@samsung.com: add sequence number handling]
    [k.debski@samsung.com: add passthrough mode]
    [k.debski@samsung.com: fix CEC defines, add missing CEC 2.0 commands]
    Signed-off-by: Kamil Debski

    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • The cec-edid module contains helper functions to find and manipulate
    the CEC physical address inside an EDID. Even if the CEC support itself
    is disabled, drivers will still need these functions. Which is the
    reason this is module is separate from the upcoming CEC framework.

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

    Hans Verkuil
     
  • Adds ioctls DV_TIMINGS_CAP, ENUM_DV_TIMINGS, G_DV_TIMINGS, S_DV_TIMINGS,
    and QUERY_DV_TIMINGS.

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

    Ulrich Hecht
     
  • Fix rcar_vin_try_fmt's use of an inappropriate pad number when calling
    the subdev set_fmt function - for the ADV7612, IDs should be non-zero.

    Signed-off-by: William Towle
    Reviewed-by: Rob Taylor
    [ulrich.hecht+renesas@gmail.com: adapted to rcar-vin rewrite]
    Signed-off-by: Ulrich Hecht
    Signed-off-by: Hans Verkuil

    Signed-off-by: Mauro Carvalho Chehab

    Ulrich Hecht
     
  • Add detection of source pad number for drivers aware of the media controller
    API, so that rcar-vin can create device nodes to support modern drivers such
    as adv7604.c (for HDMI on Lager) and the converted adv7180.c (for composite)
    underneath.

    Building rcar_vin gains a dependency on CONFIG_MEDIA_CONTROLLER, in
    line with requirements for building the drivers associated with it.

    Signed-off-by: William Towle
    Signed-off-by: Rob Taylor
    [ulrich.hecht+renesas@gmail.com: adapted to rcar-vin rewrite]
    Signed-off-by: Ulrich Hecht
    Signed-off-by: Hans Verkuil

    Signed-off-by: Mauro Carvalho Chehab

    Ulrich Hecht
     
  • Memory allocated for maxiradio device is not deallocated when
    the device is removed.

    Found by Linux Driver Verification project (linuxtesting.org).

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

    Alexey Khoroshilov
     
  • If *nplanes is not zero, it should use the requested size if valid

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

    Helen Fornazier
     
  • Additionally, now it specifies which channels it's showing.

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

    Ismael Luceno
     
  • The dv_timings_cap() and enum_dv_timings() pad operations take a pad
    number as an input argument and return the DV timings capabilities and
    list of supported DV timings for that pad.

    Commit bd3e275f3ec0 ("[media] media: i2c: adv7604: Use v4l2-dv-timings
    helpers") broke this as it started ignoring the pad number, always
    returning the information associated with the currently selected input.
    Fix it.

    Fixes: bd3e275f3ec0 ("[media] media: i2c: adv7604: Use v4l2-dv-timings helpers")

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

    Laurent Pinchart
     
  • This patch adds V4L2 controls for Auto Exposure Control and Auto Gain
    Control settings. These settings include low pass filter, update
    frequency of these settings and the update interval for those units.

    [Avoid forward declarations]
    [Fix 80 columns limit violation]
    [Rename controls to avoid underscores in names]
    [Fix the AEC maximum shutter width on MT9V032]

    Signed-off-by: Markus Pargmann
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Markus Pargmann
     
  • The power_on function of the driver resets the chip and sets the
    CHIP_CONTROL register to 0. This switches the operating mode to slave.
    The s_stream function sets the correct mode. But this caused problems on
    a board where the camera chip is operated as master. The camera started
    after a random amount of time streaming an image, I observed between 10
    and 300 seconds.

    The STRFM_OUT and STLN_OUT pins are not connected on this board which
    may cause some issues in slave mode. I could not find any documentation
    about this.

    Keeping the chip in master mode after the reset helped to fix this
    issue for me.

    Signed-off-by: Markus Pargmann
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Markus Pargmann
     
  • Since commit b42261078a91 ("regmap: i2c: fallback to SMBus if the adapter
    does not support standard I2C"), regmap-i2c will check the
    I2C_FUNC_SMBUS_[BYTE|WORD]_DATA functionality based on the regmap_config
    setting if the adapter does not support standard I2C.

    So remove the I2C_FUNC_SMBUS_WORD_DATA functionality check in the driver code.

    Signed-off-by: Axel Lin
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Axel Lin
     
  • The of_gpio.h header isn't needed, don't include it.

    Reported-by: Philipp Zabel
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Laurent Pinchart
     
  • If the driver fails to reset the camera or to set up control handlers, it
    has to power the camera back off.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Guennadi Liakhovetski
     
  • This v4l2_subdev_internal_ops structure is never modified. All other
    v4l2_subdev_internal_ops structures are declared as const.

    Done with the help of Coccinelle.

    Signed-off-by: Julia Lawall
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Julia Lawall
     
  • The value is not used after the assignment.

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

    Sakari Ailus
     
  • Users won't know what to put in this module option if it isn't
    described.

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

    Hans Verkuil
     
  • Audio hw params are shared across all DMA channels,
    so if the user changes any of these while any DMA channel is
    enabled, it will impact the enabled channels, potentially causing
    serious instability issues.

    This commit avoids such situation, by preventing any hw param
    change (on any DMA channel) if any other DMA audio channel is capturing.

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

    Ezequiel Garcia
     
  • Currently, the driver has a fixed period size of 4096 bytes
    (2048 frames). Since this hardware can configure the audio
    capture size, this commit allows a period size range of [512-4096].

    This is very useful to reduce the audio latency.

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

    Ezequiel Garcia
     
  • Now that we've introduced the dma_mode parameter to pick the
    DMA operation, let's use it to also select the audio DMA
    operation.

    When dma_mode != memcpy, the driver will avoid using memcpy
    in the audio capture path, and the DMA hardware operation
    will act directly on the ALSA buffers.

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

    Ezequiel Garcia
     
  • Now that the driver has the infrastructure to support more
    DMA modes, let's add the DMA scatter-gather mode.

    In this mode, the device delivers sequential top-bottom
    frames. The scatter-gather logic is based on staging's
    tw686x-kh driver (by Krzysztof Ha?asa).

    Tested-by: Tim Harvey
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Ezequiel Garcia
     
  • Now that the driver has the infrastructure to support more
    DMA modes, let's add the DMA contiguous interlaced frame mode.

    In this mode, the DMA P and B buffers are programmed with
    the user-provided buffers. When a P (or B) frame is ready,
    a new buffer is dequeued into P (or B).

    In addition to interlaced fields, the device can also be
    programmed to deliver alternate fields. Only interlaced
    mode is supported for now.

    Tested-by: Tim Harvey
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Ezequiel Garcia
     
  • Let's set the corner stone to support all the DMA modes
    available on this device.

    For stability reasons, the driver is currently setting DMA frame
    mode, and using single DMA buffers to get the P and B buffers.
    Each frame is then memcpy'ed into the user buffer.

    However, other platforms might be interested in avoiding this
    memcpy, or in taking advantage of the chip's DMA scatter-gather
    capabilities.

    To achieve this, this commit introduces a "dma_mode" module parameter,
    and a tw686x_dma_ops struct. This will allow to define functions to
    alloc/free DMA buffers, and to return the frames to userspace.

    The memcpy-based method described above is named as dma_mode="memcpy".
    Current alloc/free functions are renamed as tw686x_memcpy_xxx,
    and are now used through a memcpy_dma_ops.

    Tested-by: Tim Harvey
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Ezequiel Garcia
     

24 Jun, 2016

5 commits

  • Those structs are used only at bdisp-hw, so they shouldn't be
    there in a header file that it is used elsewhere.

    This fixes the following Gcc 6.1 warnings:

    In file included from drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0:
    drivers/media/platform/sti/bdisp/bdisp-filter.h:207:65: warning: ‘bdisp_v_spec’ defined but not used [-Wunused-const-variable=]
    static const struct __maybe_unused bdisp_filter_v_spec bdisp_v_spec[] = {
    ^~~~~~~~~
    In file included from drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0:
    drivers/media/platform/sti/bdisp/bdisp-filter.h:23:65: warning: ‘bdisp_h_spec’ defined but not used [-Wunused-const-variable=]
    static const struct __maybe_unused bdisp_filter_h_spec bdisp_h_spec[] = {
    ^~~~~~~~~

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Gcc 6.1 warns about an unused table:

    drivers/media/i2c/adv7842.c:2400:27: warning: 'prim_mode_txt' defined but not used [-Wunused-const-variable=]
    static const char * const prim_mode_txt[] = {
    ^~~~~~~~~~~~~

    That seems to be useful for debug, and likely were used before.
    While we could simply remove, let's comment it out, for now.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Gcc 6.1 warns about an unused table:

    drivers/media/usb/em28xx/em28xx-dvb.c:907:38: warning: 'pctv_461e_m88ds3103_config' defined but not used [-Wunused-const-variable=]
    static const struct m88ds3103_config pctv_461e_m88ds3103_config = {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~

    That's a left over of patch 76b91be3d360a ('em28xx: PCTV 461e use I2C
    client for demod and SEC').

    Remove the dead code.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Gcc 6.1 warns about some unused vars. Remove them:
    drivers/media/platform/vivid/vivid-vid-cap.c:40:2: warning: 'tpf_default' defined but not used [-Wunused-const-variable=]
    tpf_default = {.numerator = 1, .denominator = 30};
    ^~~~~~~~~~~
    drivers/media/platform/vivid/vivid-sdr-cap.c:54:27: warning: 'NUM_FORMATS' defined but not used [-Wunused-const-variable=]
    static const unsigned int NUM_FORMATS = ARRAY_SIZE(formats);
    ^~~~~~~~~~~

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Gcc 6.1 warns about some unused tables:

    drivers/media/pci/zoran/zr36016.c:251:18: warning: 'zr016_yoff' defined but not used [-Wunused-const-variable=]
    static const int zr016_yoff[] = { 8, 9, 7 };
    ^~~~~~~~~~
    drivers/media/pci/zoran/zr36016.c:250:18: warning: 'zr016_xoff' defined but not used [-Wunused-const-variable=]
    static const int zr016_xoff[] = { 20, 20, 20 };
    ^~~~~~~~~~

    Those tables aren't used anywere. So, remove them.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab