06 Apr, 2016

1 commit

  • - VBT code refactor for a clean split between parsing&using of firmware
    information (Jani)
    - untangle the pll computation code, and splitting up the monster
    i9xx_crtc_compute_clocks (Ander)
    - dsi support for bxt (Jani, Shashank Sharma and others)
    - color manager (i.e. de-gamma, color conversion matrix & gamma support) from
    Lionel Landwerlin
    - Vulkan hsw support in the command parser (Jordan Justen)
    - large-scale renaming of intel_engine_cs variables/parameters to avoid the epic
    ring vs. engine confusion introduced in gen8 (Tvrtko Ursulin)
    - few atomic patches from Maarten&Matt, big one is two-stage wm programming on ilk-bdw
    - refactor driver load and add infrastructure to inject load failures for
    testing, from Imre
    - various small things all over

    * tag 'drm-intel-next-2016-03-30' of git://anongit.freedesktop.org/drm-intel: (179 commits)
    drm/i915: Update DRIVER_DATE to 20160330
    drm/i915: Call intel_dp_mst_resume() before resuming displays
    drm/i915: Fix races on fbdev
    drm/i915: remove unused dev_priv->render_reclock_avail
    drm/i915: move sdvo mappings to vbt data
    drm/i915: move edp low vswing config to vbt data
    drm/i915: use a substruct in vbt data for edp
    drm/i915: replace for_each_engine()
    drm/i915: introduce for_each_engine_id()
    drm/i915/bxt: Fix DSI HW state readout
    drm/i915: Remove vblank wait from hsw_enable_ips, v2.
    drm/i915: Tidy aliasing_gtt_bind_vma()
    drm/i915: Split PNV version of crtc_compute_clock()
    drm/i915: Split g4x_crtc_compute_clock()
    drm/i915: Split i8xx_crtc_compute_clock()
    drm/i915: Split CHV and VLV specific crtc_compute_clock() hooks
    drm/i915: Merge ironlake_compute_clocks() and ironlake_crtc_compute_clock()
    drm/i915: Move fp divisor calculation into ironlake_compute_dpll()
    drm/i915: Pass crtc_state->dpll directly to ->find_dpll()
    drm/i915: Simplify ironlake_crtc_compute_clock() CPU eDP case
    ...

    Dave Airlie
     

22 Mar, 2016

2 commits

  • Pull drm updates from Dave Airlie:
    "This is the main drm pull request for 4.6 kernel.

    Overall the coolest thing here for me is the nouveau maxwell signed
    firmware support from NVidia, it's taken a long while to extract this
    from them.

    I also wish the ARM vendors just designed one set of display IP, ARM
    display block proliferation is definitely increasing.

    Core:
    - drm_event cleanups
    - Internal API cleanup making mode_fixup optional.
    - Apple GMUX vga switcheroo support.
    - DP AUX testing interface

    Panel:
    - Refactoring of DSI core for use over more transports.

    New driver:
    - ARM hdlcd driver

    i915:
    - FBC/PSR (framebuffer compression, panel self refresh) enabled by default.
    - Ongoing atomic display support work
    - Ongoing runtime PM work
    - Pixel clock limit checks
    - VBT DSI description support
    - GEM fixes
    - GuC firmware scheduler enhancements

    amdkfd:
    - Deferred probing fixes to avoid make file or link ordering.

    amdgpu/radeon:
    - ACP support for i2s audio support.
    - Command Submission/GPU scheduler/GPUVM optimisations
    - Initial GPU reset support for amdgpu

    vmwgfx:
    - Support for DX10 gen mipmaps
    - Pageflipping and other fixes.

    exynos:
    - Exynos5420 SoC support for FIMD
    - Exynos5422 SoC support for MIPI-DSI

    nouveau:
    - GM20x secure boot support - adds acceleration for Maxwell GPUs.
    - GM200 support
    - GM20B clock driver support
    - Power sensors work

    etnaviv:
    - Correctness fixes for GPU cache flushing
    - Better support for i.MX6 systems.

    imx-drm:
    - VBlank IRQ support
    - Fence support
    - OF endpoint support

    msm:
    - HDMI support for 8996 (snapdragon 820)
    - Adreno 430 support
    - Timestamp queries support

    virtio-gpu:
    - Fixes for Android support.

    rockchip:
    - Add support for Innosilicion HDMI

    rcar-du:
    - Support for 4 crtcs
    - R8A7795 support
    - RCar Gen 3 support

    omapdrm:
    - HDMI interlace output support
    - dma-buf import support
    - Refactoring to remove a lot of legacy code.

    tilcdc:
    - Rewrite of pageflipping code
    - dma-buf support
    - pinctrl support

    vc4:
    - HDMI modesetting bug fixes
    - Significant 3D performance improvement.

    fsl-dcu (FreeScale):
    - Lots of fixes

    tegra:
    - Two small fixes

    sti:
    - Atomic support for planes
    - Improved HDMI support"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1063 commits)
    drm/amdgpu: release_pages requires linux/pagemap.h
    drm/sti: restore mode_fixup callback
    drm/amdgpu/gfx7: add MTYPE definition
    drm/amdgpu: removing BO_VAs shouldn't be interruptible
    drm/amd/powerplay: show uvd/vce power gate enablement for tonga.
    drm/amd/powerplay: show uvd/vce power gate info for fiji
    drm/amdgpu: use sched fence if possible
    drm/amdgpu: move ib.fence to job.fence
    drm/amdgpu: give a fence param to ib_free
    drm/amdgpu: include the right version of gmc header files for iceland
    drm/radeon: fix indentation.
    drm/amd/powerplay: add uvd/vce dpm enabling flag to fix the performance issue for CZ
    drm/amdgpu: switch back to 32bit hw fences v2
    drm/amdgpu: remove amdgpu_fence_is_signaled
    drm/amdgpu: drop the extra fence range check v2
    drm/amdgpu: signal fences directly in amdgpu_fence_process
    drm/amdgpu: cleanup amdgpu_fence_wait_empty v2
    drm/amdgpu: keep all fences in an RCU protected array v2
    drm/amdgpu: add number of hardware submissions to amdgpu_fence_driver_init_ring
    drm/amdgpu: RCU protected amd_sched_fence_release
    ...

    Linus Torvalds
     
  • Patch based on a previous series by Shashank Sharma.

    v2: Do not read GAMMA_MODE register to figure what mode we're in

    v3: Program PREC_PAL_GC_MAX to clamp pixel values > 1.0

    Add documentation on how the Broadcast RGB property is affected by CTM

    v4: Update contributors

    v5: Refactor degamma/gamma LUTs load into a single function

    v6: Fix missing intel_crtc variable (bisect issue)

    v7: Fix & simplify limited range matrix multiplication (Matt Roper's
    comment)

    Signed-off-by: Shashank Sharma
    Signed-off-by: Kumar, Kiran S
    Signed-off-by: Kausal Malladi
    Signed-off-by: Lionel Landwerlin
    Acknowledged-by: Matt Roper
    Signed-off-by: Matt Roper
    Link: http://patchwork.freedesktop.org/patch/msgid/1458125837-2576-4-git-send-email-lionel.g.landwerlin@intel.com

    Lionel Landwerlin
     

18 Mar, 2016

3 commits

  • Pull USB updates from Greg KH:
    "Here is the big USB patchset for 4.6-rc1.

    The normal mess is here, gadget and xhci fixes and updates, and lots
    of other driver updates and cleanups as well. Full details are in the
    shortlog.

    All have been in linux-next for a while with no reported issues"

    * tag 'usb-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (266 commits)
    USB: core: let USB device know device node
    usb: devio: Add ioctl to disallow detaching kernel USB drivers.
    usb: gadget: f_acm: Fix configfs attr name
    usb: udc: lpc32xx: remove USB PLL and USB OTG clock management
    usb: udc: lpc32xx: remove direct access to clock controller registers
    usb: udc: lpc32xx: switch to clock prepare/unprepare model
    usb: renesas_usbhs: gadget: fix giveback status code in usbhsg_pipe_disable()
    usb: gadget: renesas_usb3: Use ARCH_RENESAS
    usb: dwc2: Fix issues in dwc2_complete_non_isoc_xfer_ddma()
    usb: dwc2: Add support for Lantiq ARX and XRX SoCs
    usb: phy: generic: Handle late registration of gadget
    usb: gadget: bdc_udc: fix race condition in bdc_udc_exit()
    usb: musb: core: added missing const qualifier to musb_hdrc_platform_data::config
    usb: dwc2: Move host-specific core functions into hcd.c
    usb: dwc2: Move register save and restore functions
    usb: dwc2: Use kmem_cache_free()
    usb: dwc2: host: If using uframe scheduler, end splits better
    usb: dwc2: host: Totally redo the microframe scheduler
    usb: dwc2: host: Properly set even/odd frame
    usb: dwc2: host: Add dwc2_hcd_get_future_frame_number() call
    ...

    Linus Torvalds
     
  • Pul documentation update from Jon Corbet:
    "Another relatively boring cycle for the docs tree: typo fixes,
    translation updates, etc"

    * tag 'docs-for-linus' of git://git.lwn.net/linux:
    modsign: Fix documentation on module signing enforcement parameter.
    Doc: nfs: Fix typos in Documentation/filesystems/nfs
    Documentation: kselftest: Remove duplicate word
    doc: fix grammar
    Documentation: Howto: Fixed subtitles style
    Doc: ARM: Fix a typo in clksrc-change-registers.awk
    Documentation/ko_KR: update maintainer information
    Documentation: Fix int/unsigned int comparison
    Documentation: Chinese translation of arm64/silicon-errata.txt
    Documentation:Update Documentation/zh_CN/arm64/booting.txt
    Documentation: HOWTO: remove obsolete info about regression postings
    Doc: ja_JP: Fix a typo in HOWTO
    Doc: i2c: Fix typo in Documentation/i2c
    Doc: DocBook: Fix a typo in device-drivers.tmpl
    Remove "arch" usage in Documentation/features/list-arch.sh
    README: cosmetic fixes
    Documentation/CodingStyle: add space before parenthesis in example macro
    SubmittingPatches: fix spelling of "git send-email"

    Linus Torvalds
     
  • Pull crypto update from Herbert Xu:
    "Here is the crypto update for 4.6:

    API:
    - Convert remaining crypto_hash users to shash or ahash, also convert
    blkcipher/ablkcipher users to skcipher.
    - Remove crypto_hash interface.
    - Remove crypto_pcomp interface.
    - Add crypto engine for async cipher drivers.
    - Add akcipher documentation.
    - Add skcipher documentation.

    Algorithms:
    - Rename crypto/crc32 to avoid name clash with lib/crc32.
    - Fix bug in keywrap where we zero the wrong pointer.

    Drivers:
    - Support T5/M5, T7/M7 SPARC CPUs in n2 hwrng driver.
    - Add PIC32 hwrng driver.
    - Support BCM6368 in bcm63xx hwrng driver.
    - Pack structs for 32-bit compat users in qat.
    - Use crypto engine in omap-aes.
    - Add support for sama5d2x SoCs in atmel-sha.
    - Make atmel-sha available again.
    - Make sahara hashing available again.
    - Make ccp hashing available again.
    - Make sha1-mb available again.
    - Add support for multiple devices in ccp.
    - Improve DMA performance in caam.
    - Add hashing support to rockchip"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (116 commits)
    crypto: qat - remove redundant arbiter configuration
    crypto: ux500 - fix checks of error code returned by devm_ioremap_resource()
    crypto: atmel - fix checks of error code returned by devm_ioremap_resource()
    crypto: qat - Change the definition of icp_qat_uof_regtype
    hwrng: exynos - use __maybe_unused to hide pm functions
    crypto: ccp - Add abstraction for device-specific calls
    crypto: ccp - CCP versioning support
    crypto: ccp - Support for multiple CCPs
    crypto: ccp - Remove check for x86 family and model
    crypto: ccp - memset request context to zero during import
    lib/mpi: use "static inline" instead of "extern inline"
    lib/mpi: avoid assembler warning
    hwrng: bcm63xx - fix non device tree compatibility
    crypto: testmgr - allow rfc3686 aes-ctr variants in fips mode.
    crypto: qat - The AE id should be less than the maximal AE number
    lib/mpi: Endianness fix
    crypto: rockchip - add hash support for crypto engine in rk3288
    crypto: xts - fix compile errors
    crypto: doc - add skcipher API documentation
    crypto: doc - update AEAD AD handling
    ...

    Linus Torvalds
     

17 Mar, 2016

1 commit

  • We've been accumulating code across the driver that depends on the VBT
    specific structures and defines. The VBT is an uncontrollable
    beast. Encourage encapsulation of the VBT data by hiding the structures
    and defines in a private header only to be included from intel_bios.c.

    Reviewed-by: Daniel Vetter
    Signed-off-by: Jani Nikula
    Link: http://patchwork.freedesktop.org/patch/msgid/1458125015-7931-7-git-send-email-jani.nikula@intel.com

    Jani Nikula
     

08 Mar, 2016

1 commit

  • Patch based on a previous series by Shashank Sharma.

    This introduces optional properties to enable color correction at the
    pipe level. It relies on 3 transformations applied to every pixels
    displayed. First a lookup into a degamma table, then a multiplication
    of the rgb components by a 3x3 matrix and finally another lookup into
    a gamma table.

    The following properties can be added to a pipe :
    - DEGAMMA_LUT : blob containing degamma LUT
    - DEGAMMA_LUT_SIZE : number of elements in DEGAMMA_LUT
    - CTM : transformation matrix applied after the degamma LUT
    - GAMMA_LUT : blob containing gamma LUT
    - GAMMA_LUT_SIZE : number of elements in GAMMA_LUT

    DEGAMMA_LUT_SIZE and GAMMA_LUT_SIZE are read only properties, set by
    the driver to tell userspace applications what sizes should be the
    lookup tables in DEGAMMA_LUT and GAMMA_LUT.

    A helper is also provided so legacy gamma correction is redirected
    through these new properties.

    v2: Register LUT size properties as range

    v3: Fix round in drm_color_lut_get_value() helper
    More docs on how degamma/gamma properties are used

    v4: Update contributors

    v5: Rename CTM_MATRIX property to CTM (Doh!)
    Add legacy gamma_set atomic helper
    Describe CTM/LUT acronyms in the kernel doc

    v6: Fix missing blob unref in drm_atomic_helper_crtc_reset

    Signed-off-by: Shashank Sharma
    Signed-off-by: Kumar, Kiran S
    Signed-off-by: Kausal Malladi
    Signed-off-by: Lionel Landwerlin
    Reviewed-by: Matt Roper
    Acked-by: Rob Bradford
    [danvet: CrOS maintainers are also happy with the userspacde side:
    https://codereview.chromium.org/1182063002/ ]
    Reviewed-by: Daniel Stone
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1456506302-640-4-git-send-email-lionel.g.landwerlin@intel.com

    Lionel Landwerlin
     

06 Mar, 2016

1 commit

  • The new USBDEVFS_DROP_PRIVILEGES ioctl allows a process to voluntarily
    relinquish the ability to issue other ioctls that may interfere with
    other processes and drivers that have claimed an interface on the
    device.

    This commit also includes a simple utility to be able to test the
    ioctl, located at Documentation/usb/usbdevfs-drop-permissions.c

    Example (with qemu-kvm's input device):

    $ lsusb
    ...
    Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd

    $ usb-devices
    ...
    C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
    I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=02 Driver=usbhid

    $ sudo ./usbdevfs-drop-permissions /dev/bus/usb/001/002
    OK: privileges dropped!
    Available options:
    [0] Exit now
    [1] Reset device. Should fail if device is in use
    [2] Claim 4 interfaces. Should succeed where not in use
    [3] Narrow interface permission mask
    Which option shall I run?: 1
    ERROR: USBDEVFS_RESET failed! (1 - Operation not permitted)
    Which test shall I run next?: 2
    ERROR claiming if 0 (1 - Operation not permitted)
    ERROR claiming if 1 (1 - Operation not permitted)
    ERROR claiming if 2 (1 - Operation not permitted)
    ERROR claiming if 3 (1 - Operation not permitted)
    Which test shall I run next?: 0

    After unbinding usbhid:

    $ usb-devices
    ...
    I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=02 Driver=(none)

    $ sudo ./usbdevfs-drop-permissions /dev/bus/usb/001/002
    ...
    Which option shall I run?: 2
    OK: claimed if 0
    ERROR claiming if 1 (1 - Operation not permitted)
    ERROR claiming if 2 (1 - Operation not permitted)
    ERROR claiming if 3 (1 - Operation not permitted)
    Which test shall I run next?: 1
    OK: USBDEVFS_RESET succeeded
    Which test shall I run next?: 0

    After unbinding usbhid and restricting the mask:

    $ sudo ./usbdevfs-drop-permissions /dev/bus/usb/001/002
    ...
    Which option shall I run?: 3
    Insert new mask: 0
    OK: privileges dropped!
    Which test shall I run next?: 2
    ERROR claiming if 0 (1 - Operation not permitted)
    ERROR claiming if 1 (1 - Operation not permitted)
    ERROR claiming if 2 (1 - Operation not permitted)
    ERROR claiming if 3 (1 - Operation not permitted)

    Signed-off-by: Reilly Grant
    Acked-by: Alan Stern
    Signed-off-by: Emilio López
    Signed-off-by: Greg Kroah-Hartman

    Reilly Grant
     

03 Mar, 2016

1 commit


27 Feb, 2016

2 commits


20 Feb, 2016

1 commit


19 Feb, 2016

2 commits


17 Feb, 2016

4 commits


16 Feb, 2016

1 commit


11 Feb, 2016

1 commit


10 Feb, 2016

1 commit


09 Feb, 2016

4 commits

  • Centralize gmux' ACPI HID in a header file and add apple_gmux_present().
    This can be used by other drivers to activate quirks specific to dual
    GPU MacBook Pros & Mac Pros. The alternative would be to hardcode DMI
    or PCI IDs and amend them whenever Apple introduces a new machine.

    Tested-by: Lukas Wunner
    [MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina 15"]
    Signed-off-by: Lukas Wunner
    Reviewed-by: Darren Hart
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/89c23769058a340e5e11d4a7102f3793d3b0c94c.1452525860.git.lukas@wunner.de

    Lukas Wunner
     
  • Allow handlers to declare their capabilities and allow clients to
    obtain that information. So far we have these use cases:

    * If the handler is able to switch DDC separately, clients need to
    probe EDID with drm_get_edid_switcheroo(). We should allow them
    to detect a capable handler to ensure this function only gets
    called when needed.

    * Likewise if the handler is unable to switch AUX separately, the active
    client needs to communicate link training parameters to the inactive
    client, which may then skip the AUX handshake and set up its output
    with these pre-calibrated values (DisplayPort specification v1.1a,
    section 2.5.3.3). Clients need a way to recognize such a situation.

    The flags for the radeon_atpx_handler and amdgpu_atpx_handler are
    initially set to 0, this can later on be amended with
    handler_flags |= VGA_SWITCHEROO_CAN_SWITCH_DDC;
    when a ->switch_ddc callback is added.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61115
    Tested-by: Lukas Wunner
    [MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina 15"]
    Signed-off-by: Lukas Wunner
    Reviewed-by: Darren Hart
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/2b0d93ed6e511ca09e95e45e0b35627f330fabce.1452525860.git.lukas@wunner.de

    Lukas Wunner
     
  • First drm-misc pull req for 4.6. Big one is the drm_event cleanup, which
    is also prep work for adding android fence support to kms (Gustavo is
    planning to do that). Otherwise random small bits all over.

    * tag 'topic/drm-misc-2016-02-08' of git://anongit.freedesktop.org/drm-intel: (33 commits)
    gma500: clean up an excessive and confusing helper
    drm/gma500: remove helper function
    drm/vmwgfx: Nuke preclose hook
    drm/vc4: Nuke preclose hook
    drm/tilcdc: Nuke preclose hook
    drm/tegra: Stop cancelling page flip events
    drm/shmob: Nuke preclose hook
    drm/rcar: Nuke preclose hook
    drm/omap: Nuke close hooks
    drm/msm: Nuke preclose hooks
    drm/imx: Unconfuse preclose logic
    drm/exynos: Remove event cancelling from postclose
    drm/atmel: Nuke preclose
    drm/i915: Nuke intel_modeset_preclose
    drm: Nuke vblank event file cleanup code
    drm: Clean up pending events in the core
    drm/vblank: Use drm_event_reserve_init
    drm/vmwgfx: fix a NULL dereference
    drm/crtc-helper: Add caveat to disable_unused_functions doc
    drm/gma500: Remove empty preclose hook
    ...

    Dave Airlie
     
  • - support for v3 vbt dsi blocks (Jani)
    - improve mmio debug checks (Mika Kuoppala)
    - reorg the ddi port translation table entries and related code (Ville)
    - reorg gen8 interrupt handling for future platforms (Tvrtko)
    - refactor tile width/height computations for framebuffers (Ville)
    - kerneldoc integration for intel_pm.c (Jani)
    - move default context from engines to device-global dev_priv (Dave Gordon)
    - make seqno/irq ordering coherent with execlist (Chris)
    - decouple internal engine number from UABI (Chris&Tvrtko)
    - tons of small fixes all over, as usual

    * tag 'drm-intel-next-2016-01-24' of git://anongit.freedesktop.org/drm-intel: (148 commits)
    drm/i915: Update DRIVER_DATE to 20160124
    drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids
    drm/i915: Decouple execbuf uAPI from internal implementation
    drm/i915: Use ordered seqno write interrupt generation on gen8+ execlists
    drm/i915: Limit the auto arming of mmio debugs on vlv/chv
    drm/i915: Tune down "GT register while GT waking disabled" message
    drm/i915: tidy up a few leftovers
    drm/i915: abolish separate per-ring default_context pointers
    drm/i915: simplify allocation of driver-internal requests
    drm/i915: Fix NULL plane->fb oops on SKL
    drm/i915: Do not put big intel_crtc_state on the stack
    Revert "drm/i915: Add two-stage ILK-style watermark programming (v10)"
    drm/i915: add DOC: headline to RC6 kernel-doc
    drm/i915: turn some bogus kernel-doc comments to normal comments
    drm/i915/sdvo: revert bogus kernel-doc comments to normal comments
    drm/i915/gen9: Correct max save/restore register count during gpu reset with GuC
    drm/i915: Demote user facing DMC firmware load failure message
    drm/i915: use hlist_for_each_entry
    drm/i915: skl_update_scaler() wants a rotation bitmask instead of bit number
    drm/i915: Don't reject primary plane windowing with color keying enabled on SKL+
    ...

    Dave Airlie
     

06 Feb, 2016

1 commit


01 Feb, 2016

4 commits

  • The two formats are very similar, having two separate pages to describe
    them is overkill.

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

    Laurent Pinchart
     
  • A driver might detect a new standard or DV timings, but it will never change to
    those new timings automatically. Instead it will send an event and let the application
    take care of it.

    Make this explicit in the documentation.

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

    Hans Verkuil
     
  • Very old hardware may have an analog stage tuner. Those hardware
    consists of a PLL that converts a RF signal into IF signals.

    Depending on the hardware, those video IF signal can be
    decoded directly by the bridge chipset. Most Conexant
    chips (bt8x8, cx2388x, etc) have internally the decoders
    for that. Yet, even on such hardware, the tuner may have
    internally its own TV multi-standard decoder like tda9887.

    The same happens with the audio IF signal, where some bridges
    are capable of receiving it, while others require an external
    IF-PLL sound decoder, like msp3400.

    Those external IF-PLL audio and video decoders have their own
    I2C address, and use different drivers to handle them. So, they're
    mapped as different subdevices on Linux.

    Thankfully, all modern hardware comes with an IC chip that
    has both the RF and the IF stages on it, being capable of
    decoding audio and video IF signals internally.

    Yet, as we need to support drivers that can work with either
    analog or silicon tuners, we need to add two entity types
    for those old hardware.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • The customer PC hardware can be shipped with lots of different
    configurations, as vendors use to replace some of the chips on
    their hardware along the time. All drivers that support such
    devices are prepared to handle the hardware differences, using
    their own auto-probing logic.

    They do it in a way that number of inputs and outputs for a given
    hardware type doesn't change.

    Now that we're adding media controller capabilities to those drivers,
    we need to standardize the number of inputs and outputs for each
    hardware type, as we want to have a generic function at the V4L2
    core that would create the links for the entities that are expected
    on such hardware.

    Such standard is already there for tuners, but tuner.h is not the
    best place to store such data, as we'll need to add definitions also
    for analog TV demodulators.

    Also, we'll need a place to put a set of MC handling functions. So,
    let's create a v4l2-mc.h to store such kind of definitions.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

25 Jan, 2016

2 commits


18 Jan, 2016

4 commits

  • Pull in Dave's drm-next pull request to have a clean base for 4.6.
    Also, we need the various atomic state extensions Maarten recently
    created.

    Conflicts are just adjacent changes that all resolve to nothing in git
    diff.

    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • Pull drm updates from Dave Airlie:
    "This is the main drm pull request for 4.5. I don't think I've missed
    anything too major, I'm mostly back at work now but I'll probably get
    some sleep in 5 years time.

    Summary:

    New drivers:
    - etnaviv:

    GPU driver for the 3D core on the Vivante core used in numerous
    ARM boards.

    Highlights:

    Core:
    - Atomic suspend/resume helpers
    - Move the headers to using userspace friendlier types.
    - Documentation updates
    - Lots of struct_mutex removal.
    - Bunch of DP MST fixes from AMD.

    Panel:
    - More DSI helpers
    - Support for some new basic panels

    i915:
    - Basic Kabylake support
    - DP link training and detect code refactoring
    - fbc/psr fixes
    - FIFO underrun fixes
    - SDE interrupt handling fixes
    - dma-buf/fence support in pageflip path.
    - GPU side for MST audio support

    radeon/amdgpu:
    - Drop UMS support
    - GPUVM/Scheduler optimisations
    - Initial Powerplay support for Tonga/Fiji/CZ/ST
    - ACP audio prerequisites

    nouveau:
    - GK20a instmem improvements
    - PCIE link speed change support

    msm:
    - DSI support for msm8960/apq8064

    tegra:
    - Host1X support for Tegra210 SoC

    vc4:
    - 3D acceleration support

    armada:
    - Get rid of struct mutex

    tda998x:
    - Atomic modesetting support
    - TMDS clock limitations

    omapdrm:
    - Atomic modesetting support
    - improved TILER performance

    rockchip:
    - RK3036 VOP support
    - Atomic modesetting support
    - Synopsys DW MIPI DSI support

    exynos:
    - Runtime PM support
    - of_graph binding for DP panels
    - Cleanup of IPP code
    - Configurable plane support
    - Kernel panic fixes at release time"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (711 commits)
    drm/fb_cma_helper: Remove implicit call to disable_unused_functions
    drm/amdgpu: add missing irq.h include
    drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates
    drm/vmwgfx: Fix an incorrect lock check
    drm: nouveau: fix nouveau_debugfs_init prototype
    drm/nouveau/pci: fix check in nvkm_pcie_set_link
    drm/amdgpu: validate duplicates first
    drm/amdgpu: move VM page tables to the LRU end on CS v2
    drm/ttm: add ttm_bo_move_to_lru_tail function v2
    drm/ttm: fix adding foreign BOs to the swap LRU
    drm/ttm: fix adding foreign BOs to the LRU during init v2
    drm/radeon: use kobj_to_dev()
    drm/amdgpu: use kobj_to_dev()
    drm/amdgpu/cz: force vce clocks when sclks are forced
    drm/amdgpu/cz: force uvd clocks when sclks are forced
    drm/amdgpu/cz: add code to enable forcing VCE clocks
    drm/amdgpu/cz: add code to enable forcing UVD clocks
    drm/amdgpu: fix lost sync_to if scheduler is enabled.
    drm/amd/powerplay: fix static checker warning for return meaningless value.
    drm/sysfs: use kobj_to_dev()
    ...

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "We've had quite busy weeks in this cycle. Looking at ALSA core, the
    significant changes are a few fixes wrt timer and sequencer ioctls
    that have been revealed by fuzzer recently. Other than that, ASoC
    core got a few updates about DAI link handling, but these are rather
    straightforward refactoring.

    In drivers scene, ASoC received quite lots of new drivers in addition
    to bunch of updates for still ongoing Intel Skylake support and
    topology API. HD-audio gained a new HDMI/DP hotplug notification via
    component. FireWire got a pile of code refactoring/updates with
    SCS.1x driver integration.

    More highlights are shown below.

    [ NOTE: this contains also many commits for DRM. This is due to the
    pull of drm stable branch into sound tree, as the base of i915 audio
    component work for HD-audio. The highlights below don't contain
    these DRM changes, as these are supposed to be pulled via drm tree
    in anyway sooner or later. ]

    Core:
    - Handful fixes to harden ALSA timer and sequencer ioctls against
    races reported by syzkaller fuzzer
    - Irq description string can be unique to each card; only for
    HD-audio for now

    ASoC:
    - Conversion of the array of DAI links to a list for supporting
    dynamically adding and removing DAI links
    - Topology API enhancements to make everything more component based
    and being able to specify PCM links via topology
    - Some more fixes for the topology code, though it is still not final
    and ready for enabling in production; we really need to get to the
    point where that can be done
    - A pile of changes for Intel SkyLake drivers which hopefully deliver
    some useful initial functionality for systems with this chipset,
    though there is more work still to come
    - Lots of new features and cleanups for the Renesas drivers
    - ANC support for WM5110
    - New drivers: Imagination Technologies IPs, Atmel class D speaker,
    Cirrus CS47L24 and WM1831, Dialog DA7128, Realtek RT5659 and
    RT56156, Rockchip RK3036, TI PC3168A, and AMD ACP
    - Rename PCM1792a driver to be generic pcm179x

    HD-Audio:
    - Use audio component for i915 HDMI/DP hotplug handling
    - On-demand binding with i915 driver
    - bdl_pos_adj parameter adjustment for Baytrail controllers
    - Enable power_save_node for CX20722; this shouldn't lead to
    regression, hopefully
    - Kabylake HDMI/DP codec support
    - Quirks for Lenovo E50-80, Dell Latitude E-series, and other Dell
    machines
    - A few code refactoring

    FireWire:
    - Lots of code cleanup and refactoring
    - Integrate the support of SCS.1x devices into snd-oxfw driver;
    snd-scs1x driver is obsoleted

    USB-audio:
    - Fix possible NULL dereference at disconnection
    - A regression fix for Native Instruments devices

    Misc:
    - A few code cleanups of fm801 driver"

    * tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (722 commits)
    ALSA: timer: Code cleanup
    ALSA: timer: Harden slave timer list handling
    ALSA: hda - Add fixup for Dell Latitidue E6540
    ALSA: timer: Fix race among timer ioctls
    ALSA: hda - add codec support for Kabylake display audio codec
    ALSA: timer: Fix double unlink of active_list
    ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices
    ALSA: hda - fix the headset mic detection problem for a Dell laptop
    ALSA: hda - Fix white noise on Dell Latitude E5550
    ALSA: hda_intel: add card number to irq description
    ALSA: seq: Fix race at timer setup and close
    ALSA: seq: Fix missing NULL check at remove_events ioctl
    ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect
    ASoC: hdac_hdmi: remove unused hdac_hdmi_query_pin_connlist
    ASoC: AMD: Add missing include file
    ALSA: hda - Fixup inverted internal mic for Lenovo E50-80
    ALSA: usb: Add native DSD support for Oppo HA-1
    ASoC: Make aux_dev more like a generic component
    ASoC: bcm2835: cleanup includes by ordering them alphabetically
    ASoC: AMD: Manage ACP 2.x SRAM banks power
    ...

    Linus Torvalds
     
  • Pull documentation updates from Jon Corbet:
    "A relatively boring cycle in the docs tree. There's a few kernel-doc
    fixes and various document tweaks.

    One patch reaches out of the documentation subtree to fix a comment in
    init/do_mounts_rd.c. There didn't seem to be anybody more appropriate
    to take that one, so I accepted it"

    * tag 'docs-4.5' of git://git.lwn.net/linux: (29 commits)
    thermal: add description for integral_cutoff unit
    Documentation: update libhugetlbfs site url
    Documentation: Explain pci=conf1,conf2 more verbosely
    DMA-API: fix confusing sentence in Documentation/DMA-API.txt
    Documentation: translations: update linux cross reference link
    Documentation: fix typo in CodingStyle
    init, Documentation: Remove ramdisk_blocksize mentions
    Documentation-getdelays: Apply a recommendation from "checkpatch.pl" in main()
    Documentation: HOWTO: update versions from 3.x to 4.x
    Documentation: remove outdated references from translations
    Doc: treewide: Fix grammar "a" to "an"
    Documentation: cpu-hotplug: Fix sysfs mount instructions
    can-doc: Add hint about getting timestamps
    Fix CFQ I/O scheduler parameter name in documentation
    Documentation: arm: remove dead links from Marvell Berlin docs
    Documentation: HOWTO: update code cross reference link
    Doc: Docbook/iio: Fix typo in iio.tmpl
    DocBook: make index.html generation less verbose by default
    DocBook: Cleanup: remove an unused $(call) line
    DocBook: Add a help message for DOCBOOKS env var
    ...

    Linus Torvalds
     

14 Jan, 2016

2 commits

  • Pull second batch of media updates from Mauro Carvalho Chehab:
    "This is the second part of the media patches. It contains the media
    controller next generation patches, with is the result of one year of
    discussions and development. It also contains patches to enable media
    controller support at the DVB subsystem.

    The goal is to improve the media controller to allow proper support
    for other types of Video4Linux devices (radio and TV ones) and to
    extend the media controller functionality to allow it to be used by
    other subsystems like DVB, ALSA and IIO.

    In order to use the new functionality, a new ioctl is needed
    (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the
    struct fields of this ioctl in order to avoid compat32 issues, I
    decided to add a patch at the end of this series commenting out the
    new ioctl, in order to postpone the addition of the new ioctl to the
    next Kernel version (4.6).

    With that, no userspace visible changes should happen at the media
    controller API, as the existing ioctls are untouched. Yet, it helps
    DVB, ALSA and IIO developers to develop and test the patches adding
    media controller support there, as the core will contain all required
    internal changes to allow adding support for devices that belong to
    those subsystems"

    * tag 'media/v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (177 commits)
    [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY
    [media] mxl111sf: Add a tuner entity
    [media] dvbdev: create links on devices with multiple frontends
    [media] media-entitiy: add a function to create multiple links
    [media] dvb-usb-v2: postpone removal of media_device
    [media] dvbdev: Add RF connector if needed
    [media] dvbdev: remove two dead functions if !CONFIG_MEDIA_CONTROLLER_DVB
    [media] call media_device_init() before registering the V4L2 device
    [media] uapi/media.h: Use u32 for the number of graph objects
    [media] media-entity: don't sleep at media_device_register_entity()
    [media] media-entity: increase max number of PADs
    [media] media-entity.h: document the remaining functions
    [media] media-device.h: use just one u32 counter for object ID
    [media] media-entity.h fix documentation for several parameters
    [media] DocBook: document media_entity_graph_walk_cleanup()
    [media] move documentation to the header files
    [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to media-entity.c
    [media] media: Remove pre-allocated entity enumeration bitmap
    [media] staging: v4l: davinci_vpbe: Use the new media graph walk interface
    [media] staging: v4l: omap4iss: Use the new media graph walk interface
    ...

    Linus Torvalds
     
  • Pull MTD updates from Brian Norris:
    "Generic MTD:

    - populate the MTD device 'of_node' field (and get a proper 'of_node'
    symlink in sysfs)

    This yielded some new helper functions, and changes across a
    variety of drivers

    - partitioning cleanups, to prepare for better device-tree based
    partitioning in the future

    Eliminate a lot of boilerplate for drivers that want to use
    OF-based partition parsing

    The DT bindings for this didn't settle yet, so most non-cleanup
    portions are deferred for a future release

    NAND:

    - embed a struct mtd_info inside struct nand_chip

    This is really long overdue; too many drivers have to do the same
    silly boilerplate to allocate and link up two "independent"
    structs, when in fact, everyone is assuming there is an exact 1:1
    relationship between a NAND chips struct and its underlying MTD.
    This aids improved helpers and should make certain abstractions
    easier in the future.

    Also causes a lot of churn, helped along by some automated code
    transformations

    - add more core support for detecting (and "correcting") bitflips in
    erased pages; requires opt-in by drivers, but at least we kill a
    few bad implementations and hopefully stave off future ones

    - pxa3xx_nand: cleanups, a few fixes, and PM improvements

    - new JZ4780 NAND driver

    SPI NOR:

    - provide default erase function, for controllers that just want to
    send the SECTOR_ERASE command directly

    - fix some module auto-loading issues with device tree
    ("jedec,spi-nor")

    - error handling fixes

    - new Mediatek QSPI flash driver

    Other:

    - cfi: force valid geometry Kconfig (finally!)

    This one used to trip up randconfigs occasionally, since bots
    aren't deterred by big scary "advanced configuration" menus

    More? Probably. See the commit logs"

    * tag 'for-linus-20160112' of git://git.infradead.org/linux-mtd: (168 commits)
    mtd: jz4780_nand: replace if/else blocks with switch/case
    mtd: nand: jz4780: Update ecc correction error codes
    mtd: nandsim: use nand_get_controller_data()
    mtd: jz4780_nand: remove useless mtd->priv = chip assignment
    staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers
    mtd: nand: make use of nand_set/get_controller_data() helpers
    ARM: make use of nand_set/get_controller_data() helpers
    mtd: nand: add helpers to access ->priv
    mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs
    mtd: nand: jz4740: remove custom 'erased check' implementation
    mtd: nand: diskonchip: remove custom 'erased check' implementation
    mtd: nand: davinci: remove custom 'erased check' implementation
    mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions
    mtd: nand: return consistent error codes in ecc.correct() implementations
    doc: dt: mtd: new binding for jz4780-{nand,bch}
    mtd: cfi_cmdset_0001: fixing memory leak and handling failed kmalloc
    mtd: spi-nor: wait until lock/unlock operations are ready
    mtd: tests: consolidate kmalloc/memset 0 call to kzalloc
    jffs2: use to_delayed_work
    mtd: nand: assign reasonable default name for NAND drivers
    ...

    Linus Torvalds
     

11 Jan, 2016

1 commit

  • Document what I've learned so far about the gmux so that we can
    collaboratively reverse-engineer its remaining unknown bits
    without everyone having to start from scratch.

    The DOC sections are bound together in the gpu.tmpl DocBook
    under a new vga_switcheroo "Handlers" chapter. Eventually
    this should be amended with documentation about the four other
    handlers that exist so far (nouveau v1 DSM, nouveau Optimus DSM,
    radeon ATPX, amdgpu ATPX).

    Requires kernel-doc with asciidoc support.

    The EFI variable was reverse-engineered by Bruno Bierbaumer
    and Andreas Heider .

    Some of the remaining open questions:

    * How are vblank intervals synchronized on retinas to achieve seamless
    switching? Is the DP mux capable of this? It's not mentioned in the
    data sheets. Or is it done at the OS level, i.e. do we have to
    synchronize vblank intervals between DRM drivers? There's a signal
    coming from the panel connector and going into gmux, could this be
    the vblank signal as received by the panel to properly time the
    switch?

    * On retinas there's an I2C bus between gmux and the connector of the
    right I/O board, apparently leading to the Parade PS8401A HDMI
    repeater. What is this for, is it controlled via gmux registers?
    Data sheet:
    http://www.paradetech.com/products/jitter-cleaning-repeaters/ps8401/

    * On retinas there's an I2C bus between gmux and the LED driver.
    Pre-retinas connected the LED driver to SMBUS. Are there additional
    gmux registers on retinas to control it?

    * The MacPro6,1 2013 also has a gmux, the same Renesas R4F2113 as the
    retina MacBook Pro. The Mac Pro doesn't have a built-in display,
    so what is its purpose? Power control of the dual FirePro GPUs?
    Switching of the external DP/Thunderbolt ports? The iFixit teardown
    clearly shows one TI HD3SS212 DisplayPort mux on the logic board next
    to one of the three Thunderbolt controllers. However six muxes would
    be necessary to switch all six ports between GPUs. The mux is probably
    necessary for one of the display configurations allowed by Apple,
    but which one?
    https://www.ifixit.com/Teardown/Mac+Pro+Late+2013+Teardown/20778
    https://d3nevzfk7ii3be.cloudfront.net/igi/fELBTnt31QhnDsqq.huge
    https://support.apple.com/en-us/HT202801

    * Registers we haven't decoded yet:
    0x700 32 Bit configmap?
    0x708 32 Bit power sequence?
    0x712 8 Bit status of clock from panel on retinas?
    0x713 8 Bit dito?
    0x724 16 Bit backlight, raw value?
    0x760 32 Bit backlight
    0x764 32 Bit backlight
    0x768 8 Bit backlight
    0x76a 16 Bit backlight
    0x76c 16 Bit backlight
    0x76e 16 Bit backlight
    0x77f edp/dp/hdmi probe? retina only.

    * Addition by Bruno Prémont :
    "Missing is also precise knowledge as to what the gmux depends on.
    From behavioral reports, it is somehow sensitive to VGA IO/MEM
    routing (it apparently needs the routing to go to integrated GPU,
    not discrete GPU).
    When the routing is inappropriate backlight control IO just reads back
    as 0xFF (and eventually gmux IO in general does so)."

    Signed-off-by: Lukas Wunner
    Acked-by: Darren Hart
    Link: http://patchwork.freedesktop.org/patch/msgid/da309e436fbeac886477d80376457b7d83ea4b2d.1452431795.git.lukas@wunner.de
    Signed-off-by: Daniel Vetter

    Lukas Wunner