Commit Graph

637 Commits

Author SHA1 Message Date
Lucas Wei
eae5a83bf8 Merge android-4.19-stable (4.19.252) into android-msm-pixel-4.19-lts
Merge 4.19.252 into android-4.19-stable
Linux 4.19.252
    dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate
    dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
    dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly
    dmaengine: pl330: Fix lockdep warning about non-static key
  * ida: don't use BUG_ON() for debugging
      lib/idr.c
    misc: rtsx_usb: set return value in rsp_buf alloc err path
  * misc: rtsx_usb: use separate command and response buffers
      include/linux/rtsx_usb.h
  * misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
      include/linux/rtsx_usb.h
    i2c: cadence: Unregister the clk notifier in error path
    selftests: forwarding: fix error message in learning_test
    selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
    selftests: forwarding: fix flood_unicast_test when h2 supports IFF_UNICAST_FLT
    ibmvnic: Properly dispose of all skbs during a failover.
    ARM: at91: pm: use proper compatible for sama5d2's rtc
    pinctrl: sunxi: a83t: Fix NAND function name for some pins
    ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
    xfs: remove incorrect ASSERT in xfs_rename
    can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits
    can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
    can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
    powerpc/powernv: delay rng platform device creation until later in boot
  * video: of_display_timing.h: include errno.h
      include/video/of_display_timing.h
    fbcon: Disallow setting font bigger than screen size
    iommu/vt-d: Fix PCI bus rescan device hot add
    net: rose: fix UAF bug caused by rose_t0timer_expiry
  * usbnet: fix memory leak in error case
      drivers/net/usb/usbnet.c
    can: gs_usb: gs_usb_open/close(): fix memory leak
    can: grcan: grcan_probe(): remove extra of_node_get()
    can: bcm: use call_rcu() instead of costly synchronize_rcu()
  * mm/slub: add missing TID updates on slab deactivation
      mm/slub.c
  * esp: limit skb_page_frag_refill use to a single page
      include/net/esp.h
      net/ipv4/esp4.c
      net/ipv6/esp6.c
    Merge 4.19.251 into android-4.19-stable
    Merge 4.19.250 into android-4.19-stable
  * ANDROID: revert some RNG function signature changes
      drivers/char/random.c
      include/linux/random.h
  * ANDROID: cpu/hotplug: avoid breaking Android ABI by fusing cpuhp steps
      include/linux/cpuhotplug.h
      kernel/cpu.c
    Merge 4.19.249 into android-4.19-stable
  * UPSTREAM: lib/crypto: blake2s: avoid indirect calls to compression function for Clang CFI
      include/crypto/internal/blake2s.h
      lib/crypto/blake2s.c
  * BACKPORT: lib/crypto: add prompts back to crypto libraries
      crypto/Kconfig
      lib/Kconfig
      lib/crypto/Kconfig
  * BACKPORT: lib/crypto: blake2s: include as built-in
      crypto/Kconfig
      drivers/net/Kconfig
      include/crypto/internal/blake2s.h
      lib/crypto/Kconfig
      lib/crypto/Makefile
      lib/crypto/blake2s-generic.c
      lib/crypto/blake2s.c
Linux 4.19.251
    net: usb: qmi_wwan: add Telit 0x1070 composition
    net: usb: qmi_wwan: add Telit 0x1060 composition
    xen/arm: Fix race in RB-tree based P2M accounting
    xen/blkfront: force data bouncing when backend is untrusted
    xen/netfront: force data bouncing when backend is untrusted
    xen/netfront: fix leaking data in shared pages
    xen/blkfront: fix leaking data in shared pages
  * ipv6/sit: fix ipip6_tunnel_get_prl return value
      net/ipv6/sit.c
  * sit: use min
      net/ipv6/sit.c
    net: dsa: bcm_sf2: force pause link settings
    hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails
    xen/gntdev: Avoid blocking in unmap_grant_pages()
  * net: tun: avoid disabling NAPI twice
      drivers/net/tun.c
    NFC: nxp-nci: Don't issue a zero length i2c_master_read()
    nfc: nfcmrvl: Fix irq_of_parse_and_map() return value
  * net: bonding: fix use-after-free after 802.3ad slave unbind
      drivers/net/bonding/bond_3ad.c
  * net: bonding: fix possible NULL deref in rlb code
      drivers/net/bonding/bond_alb.c
    netfilter: nft_dynset: restore set element counter when failing to update
    caif_virtio: fix race between virtio_device_ready() and ndo_open()
    net: ipv6: unexport __init-annotated seg6_hmac_net_init()
  * usbnet: fix memory allocation in helpers
      drivers/net/usb/usbnet.c
    RDMA/qedr: Fix reporting QP timeout attribute
  * net: tun: stop NAPI when detaching queues
      drivers/net/tun.c
  * net: tun: unlink NAPI from device on destruction
      drivers/net/tun.c
    selftests/net: pass ipv6_args to udpgso_bench's IPv6 TCP test
    virtio-net: fix race between ndo_open() and virtio_device_ready()
  * net: usb: ax88179_178a: Fix packet receiving
      drivers/net/usb/ax88179_178a.c
    net: rose: fix UAF bugs caused by timer handler
    SUNRPC: Fix READ_PLUS crasher
    s390/archrandom: simplify back to earlier design and initialize earlier
    dm raid: fix KASAN warning in raid5_add_disks
    dm raid: fix accesses beyond end of raid member array
    nvdimm: Fix badblocks clear off-by-one error
  * UPSTREAM: crypto: poly1305 - fix poly1305_core_setkey() declaration
      include/crypto/internal/poly1305.h
      include/crypto/poly1305.h
      lib/crypto/poly1305-donna64.c
      lib/crypto/poly1305.c
  * UPSTREAM: mm: fix misplaced unlock_page in do_wp_page()
      mm/memory.c
  * BACKPORT: mm: do_wp_page() simplification
      mm/memory.c
  * UPSTREAM: mm/ksm: Remove reuse_ksm_page()
      include/linux/ksm.h
  * UPSTREAM: mm: reuse only-pte-mapped KSM page in do_wp_page()
      include/linux/ksm.h
      mm/memory.c
Linux 4.19.250
  * swiotlb: skip swiotlb_bounce when orig_addr is zero
      kernel/dma/swiotlb.c
  * net/sched: move NULL ptr check to qdisc_put() too
      net/sched/sch_generic.c
    net: mscc: ocelot: allow unregistered IP multicast flooding
  * kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
      include/linux/kexec.h
  * fdt: Update CRC check for rng-seed
      drivers/of/fdt.c
    xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
  * drm: remove drm_fb_helper_modinit
      drivers/gpu/drm/drm_crtc_helper_internal.h
      drivers/gpu/drm/drm_kms_helper_common.c
    powerpc/pseries: wire up rng during setup_arch()
  * kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
      Makefile
  * modpost: fix section mismatch check for exported init/exit sections
      scripts/mod/modpost.c
    ARM: cns3xxx: Fix refcount leak in cns3xxx_init
    ARM: Fix refcount leak in axxia_boot_secondary
    soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
    ARM: exynos: Fix refcount leak in exynos_map_pmu
    ARM: dts: imx6qdl: correct PU regulator ramp delay
    powerpc/powernv: wire up rng during setup_arch
    powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
    powerpc: Enable execve syscall exit tracepoint
    xtensa: Fix refcount leak bug in time.c
    xtensa: xtfpga: Fix refcount leak bug in setup
    iio: adc: axp288: Override TS pin bias current for some models
    iio: trigger: sysfs: fix use-after-free on remove
    iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
    iio: accel: mma8452: ignore the return value of reset operation
    iio:accel:bma180: rearrange iio trigger get and register
    iio:chemical:ccs811: rearrange iio trigger get and register
    usb: chipidea: udc: check request status before setting device address
  * xhci: turn off port power in shutdown
      drivers/usb/host/xhci-hub.c
      drivers/usb/host/xhci.c
      drivers/usb/host/xhci.h
    iio: adc: vf610: fix conversion mode sysfs node name
    gpio: winbond: Fix error code in winbond_gpio_get()
    virtio_net: fix xdp_rxq_info bug after suspend/resume
    igb: Make DMA faster when CPU is active on the PCIe link
    afs: Fix dynamic root getattr
    MIPS: Remove repetitive increase irq_err_count
    x86/xen: Remove undefined behavior in setup_features()
    erspan: do not assume transport header is always set
  * net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms
      net/sched/sch_netem.c
  * bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
      drivers/net/bonding/bond_main.c
    USB: serial: option: add Quectel RM500K module support
    USB: serial: option: add Quectel EM05-G modem
    USB: serial: option: add Telit LE910Cx 0x1250 composition
  * random: quiet urandom warning ratelimit suppression message
      drivers/char/random.c
      include/linux/ratelimit.h
    dm era: commit metadata in postsuspend after worker stops
  * ata: libata: add qc->flags in ata_qc_complete_template tracepoint
      include/trace/events/libata.h
    ALSA: hda/realtek: Add quirk for Clevo PD70PNT
    ALSA: hda/conexant: Fix missing beep setup
    ALSA: hda/via: Fix missing beep setup
  * random: schedule mix_interrupt_randomness() less often
      drivers/char/random.c
    vt: drop old FONT ioctls
Linux 4.19.249
  * Revert "hwmon: Make chip parameter for with_info API mandatory"
      drivers/hwmon/hwmon.c
  * tcp: drop the hash_32() part from the index calculation
      net/ipv4/inet_hashtables.c
  * tcp: increase source port perturb table to 2^16
      net/ipv4/inet_hashtables.c
  * tcp: dynamically allocate the perturb table used by source ports
      net/ipv4/inet_hashtables.c
  * tcp: add small random increments to the source port
      net/ipv4/inet_hashtables.c
  * tcp: use different parts of the port_offset for index and offset
      net/ipv4/inet_hashtables.c
  * tcp: add some entropy in __inet_hash_connect()
      net/ipv4/inet_hashtables.c
    xprtrdma: fix incorrect header size calculations
  * usb: gadget: u_ether: fix regression in setting fixed MAC address
      drivers/usb/gadget/function/u_ether.c
    s390/mm: use non-quiescing sske for KVM switch to keyed guest
    powerpc/mm: Switch obsolete dssall to .long
    RISC-V: fix barrier() use in <vdso/processor.h>
    net: openvswitch: fix leak of nested actions
    net: openvswitch: fix misuse of the cached connection on tuple changes
    virtio-pci: Remove wrong address verification in vp_del_vqs()
  * ext4: add reserved GDT blocks check
      fs/ext4/resize.c
  * ext4: make variable "count" signed
      fs/ext4/namei.c
  * ext4: fix bug_on ext4_mb_use_inode_pa
      fs/ext4/mballoc.c
    serial: 8250: Store to lsr_save_flags after lsr read
    usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe
    usb: dwc2: Fix memory leak in dwc2_hcd_init
    USB: serial: io_ti: add Agilent E5805A support
    USB: serial: option: add support for Cinterion MV31 with new baseline
    comedi: vmk80xx: fix expression for tx buffer size
  * irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
      drivers/irqchip/irq-gic-v3.c
    irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
    faddr2line: Fix overlapping text section failures, the sequel
    certs/blacklist_hashes.c: fix const confusion in certs blacklist
    arm64: ftrace: fix branch range checks
    net: bgmac: Fix an erroneous kfree() in bgmac_remove()
    mlxsw: spectrum_cnt: Reorder counter pools
    misc: atmel-ssc: Fix IRQ check in ssc_probe
    tty: goldfish: Fix free_irq() on remove
    i40e: Fix call trace in setup_tx_descriptors
    i40e: Fix adding ADQ filter to TC0
    pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
  * random: credit cpu and bootloader seeds by default
      drivers/char/Kconfig
    net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag
  * ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
      net/l2tp/l2tp_ip6.c
    nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
    virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed
    scsi: pmcraid: Fix missing resource cleanup in error case
    scsi: ipr: Fix missing/incorrect resource cleanup in error case
    scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology
    scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
  * ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put()
      sound/soc/codecs/wm_adsp.c
    ASoC: es8328: Fix event generation for deemphasis control
    ASoC: wm8962: Fix suspend while playing music
    ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
    ASoC: cs42l56: Correct typo in minimum level for SX volume controls
    ASoC: cs42l52: Correct TLV for Bypass Volume
    ASoC: cs53l30: Correct number of volume levels on SX controls
    ASoC: cs42l52: Fix TLV scales for mixer controls
    powerpc/kasan: Silence KASAN warnings in __get_wchan()
  * random: account for arch randomness in bits
      drivers/char/random.c
  * random: mark bootloader randomness code as __init
      drivers/char/random.c
      include/linux/random.h
  * random: avoid checking crng_ready() twice in random_init()
      drivers/char/random.c
  * crypto: drbg - make reseeding from get_random_bytes() synchronous
      crypto/drbg.c
      drivers/char/random.c
      include/crypto/drbg.h
  * crypto: drbg - always try to free Jitter RNG instance
      crypto/drbg.c
  * crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed()
      crypto/drbg.c
  * crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
      crypto/drbg.c
      include/crypto/drbg.h
  * crypto: drbg - prepare for more fine-grained tracking of seeding state
      crypto/drbg.c
      include/crypto/drbg.h
  * crypto: drbg - always seeded with SP800-90B compliant noise source
      crypto/drbg.c
      include/crypto/drbg.h
  * crypto: drbg - add FIPS 140-2 CTRNG for noise source
      crypto/drbg.c
      include/crypto/drbg.h
  * Revert "random: use static branch for crng_ready()"
      drivers/char/random.c
  * random: check for signals after page of pool writes
      drivers/char/random.c
  * random: wire up fops->splice_{read,write}_iter()
      drivers/char/random.c
  * random: convert to using fops->write_iter()
      drivers/char/random.c
  * random: move randomize_page() into mm where it belongs
      drivers/char/random.c
      include/linux/mm.h
      include/linux/random.h
      mm/util.c
  * random: move initialization functions out of hot pages
      drivers/char/random.c
  * random: use proper return types on get_random_{int,long}_wait()
      drivers/char/random.c
      include/linux/random.h
  * random: remove extern from functions in header
      include/linux/random.h
  * random: use static branch for crng_ready()
      drivers/char/random.c
  * random: credit architectural init the exact amount
      drivers/char/random.c
  * random: handle latent entropy and command line from random_init()
      drivers/char/random.c
      include/linux/random.h
      init/main.c
  * random: use proper jiffies comparison macro
      drivers/char/random.c
  * random: remove ratelimiting for in-kernel unseeded randomness
      drivers/char/random.c
      lib/Kconfig.debug
  * random: avoid initializing twice in credit race
      drivers/char/random.c
  * random: use symbolic constants for crng_init states
      drivers/char/random.c
  * siphash: use one source of truth for siphash permutations
      drivers/char/random.c
      include/linux/prandom.h
      include/linux/siphash.h
      lib/siphash.c
  * random: help compiler out with fast_mix() by using simpler arguments
      drivers/char/random.c
  * random: do not use input pool from hard IRQs
      drivers/char/random.c
  * random: order timer entropy functions below interrupt functions
      drivers/char/random.c
  * random: do not pretend to handle premature next security model
      drivers/char/random.c
  * random: do not use batches when !crng_ready()
      drivers/char/random.c
  * random: insist on random_get_entropy() existing in order to simplify
      drivers/char/random.c
    xtensa: use fallback for random_get_entropy() instead of zero
    sparc: use fallback for random_get_entropy() instead of zero
    um: use fallback for random_get_entropy() instead of zero
    x86/tsc: Use fallback for random_get_entropy() instead of zero
    nios2: use fallback for random_get_entropy() instead of zero
    arm: use fallback for random_get_entropy() instead of zero
    mips: use fallback for random_get_entropy() instead of just c0 random
    m68k: use fallback for random_get_entropy() instead of zero
  * timekeeping: Add raw clock fallback for random_get_entropy()
      include/linux/timex.h
      kernel/time/timekeeping.c
    powerpc: define get_cycles macro for arch-override
    alpha: define get_cycles macro for arch-override
    parisc: define get_cycles macro for arch-override
    s390: define get_cycles macro for arch-override
    ia64: define get_cycles macro for arch-override
  * init: call time_init() before rand_initialize()
      init/main.c
    random: fix sysctl documentation nits
  * random: document crng_fast_key_erasure() destination possibility
      drivers/char/random.c
  * random: make random_get_entropy() return an unsigned long
      drivers/char/random.c
      include/linux/timex.h
  * random: check for signals every PAGE_SIZE chunk of /dev/[u]random
      drivers/char/random.c
  * random: check for signal_pending() outside of need_resched() check
      drivers/char/random.c
  * random: do not allow user to keep crng key around on stack
      drivers/char/random.c
  * random: do not split fast init input in add_hwgenerator_randomness()
      drivers/char/random.c
  * random: mix build-time latent entropy into pool at init
      drivers/char/random.c
  * random: re-add removed comment about get_random_{u32,u64} reseeding
      drivers/char/random.c
  * random: treat bootloader trust toggle the same way as cpu trust toggle
      drivers/char/Kconfig
      drivers/char/random.c
  * random: skip fast_init if hwrng provides large chunk of entropy
      drivers/char/random.c
  * random: check for signal and try earlier when generating entropy
      drivers/char/random.c
  * random: reseed more often immediately after booting
      drivers/char/random.c
  * random: make consistent usage of crng_ready()
      drivers/char/random.c
  * random: use SipHash as interrupt entropy accumulator
      drivers/char/random.c
  * random: replace custom notifier chain with standard one
      crypto/drbg.c
      drivers/char/random.c
      include/crypto/drbg.h
      include/linux/random.h
      lib/random32.c
      lib/vsprintf.c
  * random: don't let 644 read-only sysctls be written to
      drivers/char/random.c
  * random: give sysctl_random_min_urandom_seed a more sensible value
      drivers/char/random.c
  * random: do crng pre-init loading in worker rather than irq
      drivers/char/random.c
  * random: unify cycles_t and jiffies usage and types
      drivers/char/random.c
  * random: cleanup UUID handling
      drivers/char/random.c
  * random: only wake up writers after zap if threshold was passed
      drivers/char/random.c
  * random: round-robin registers as ulong, not u32
      drivers/char/random.c
  * random: clear fast pool, crng, and batches in cpuhp bring up
      drivers/char/random.c
      include/linux/cpuhotplug.h
      include/linux/random.h
      kernel/cpu.c
  * random: pull add_hwgenerator_randomness() declaration into random.h
      drivers/char/hw_random/core.c
      include/linux/hw_random.h
      include/linux/random.h
  * random: check for crng_init == 0 in add_device_randomness()
      drivers/char/random.c
  * random: unify early init crng load accounting
      drivers/char/random.c
  * random: do not take pool spinlock at boot
      drivers/char/random.c
  * random: defer fast pool mixing to worker
      drivers/char/random.c
  * random: rewrite header introductory comment
      drivers/char/random.c
  * random: group sysctl functions
      drivers/char/random.c
  * random: group userspace read/write functions
      drivers/char/random.c
  * random: group entropy collection functions
      drivers/char/random.c
  * random: group entropy extraction functions
      drivers/char/random.c
  * random: group initialization wait functions
      drivers/char/random.c
  * random: remove whitespace and reorder includes
      drivers/char/random.c
  * random: remove useless header comment
      include/linux/random.h
  * random: introduce drain_entropy() helper to declutter crng_reseed()
      drivers/char/random.c
  * random: deobfuscate irq u32/u64 contributions
      drivers/char/random.c
  * random: add proper SPDX header
      drivers/char/random.c
  * random: remove unused tracepoints
      drivers/char/random.c
      lib/random32.c
  * random: remove ifdef'd out interrupt bench
      drivers/char/random.c
  * random: tie batched entropy generation to base_crng generation
      drivers/char/random.c
  * random: zero buffer after reading entropy from userspace
      drivers/char/random.c
  * random: remove outdated INT_MAX >> 6 check in urandom_read()
      drivers/char/random.c
  * random: use hash function for crng_slow_load()
      drivers/char/random.c
      include/linux/hw_random.h
      include/linux/random.h
  * random: absorb fast pool into input pool after fast load
      drivers/char/random.c
  * random: do not xor RDRAND when writing into /dev/random
      drivers/char/random.c
  * random: ensure early RDSEED goes through mixer on init
      drivers/char/random.c
  * random: inline leaves of rand_initialize()
      drivers/char/random.c
  * random: use RDSEED instead of RDRAND in entropy extraction
      drivers/char/random.c
  * random: fix locking in crng_fast_load()
      drivers/char/random.c
  * random: remove batched entropy locking
      drivers/char/random.c
  * random: remove use_input_pool parameter from crng_reseed()
      drivers/char/random.c
  * random: make credit_entropy_bits() always safe
      drivers/char/random.c
  * random: always wake up entropy writers after extraction
      drivers/char/random.c
  * random: use linear min-entropy accumulation crediting
      drivers/char/random.c
  * random: simplify entropy debiting
      drivers/char/random.c
  * random: use computational hash for entropy extraction
      drivers/char/random.c
  * random: only call crng_finalize_init() for primary_crng
      drivers/char/random.c
  * random: access primary_pool directly rather than through pointer
      drivers/char/random.c
  * random: continually use hwgenerator randomness
      drivers/char/random.c
  * random: simplify arithmetic function flow in account()
      drivers/char/random.c
  * random: access input_pool_data directly rather than through pointer
      drivers/char/random.c
  * random: cleanup fractional entropy shift constants
      drivers/char/random.c
  * random: prepend remaining pool constants with POOL_
      drivers/char/random.c
  * random: de-duplicate INPUT_POOL constants
      drivers/char/random.c
  * random: remove unused OUTPUT_POOL constants
      drivers/char/random.c
  * random: rather than entropy_store abstraction, use global
      drivers/char/random.c
  * random: remove unused extract_entropy() reserved argument
      drivers/char/random.c
  * random: remove incomplete last_data logic
      drivers/char/random.c
  * random: cleanup integer types
      drivers/char/random.c
  * random: cleanup poolinfo abstraction
      drivers/char/random.c
  * random: fix typo in comments
      drivers/char/random.c
  * random: don't reset crng_init_cnt on urandom_read()
      drivers/char/random.c
  * random: avoid superfluous call to RDRAND in CRNG extraction
      drivers/char/random.c
  * random: early initialization of ChaCha constants
      drivers/char/random.c
  * random: initialize ChaCha20 constants with correct endianness
      drivers/char/random.c
  * random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
      drivers/char/random.c
  * random: harmonize "crng init done" messages
      drivers/char/random.c
  * random: mix bootloader randomness into pool
      drivers/char/random.c
  * random: do not re-init if crng_reseed completes before primary init
      drivers/char/random.c
  * random: do not sign extend bytes for rotation when mixing
      drivers/char/random.c
  * random: use BLAKE2s instead of SHA1 in extraction
      drivers/char/random.c
  * random: remove unused irq_flags argument from add_interrupt_randomness()
      drivers/char/random.c
      include/linux/random.h
      kernel/irq/handle.c
  * random: document add_hwgenerator_randomness() with other input functions
      drivers/char/random.c
  * crypto: blake2s - adjust include guard naming
      include/crypto/blake2s.h
      include/crypto/internal/blake2s.h
  * crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
      include/crypto/blake2s.h
    MAINTAINERS: co-maintain random.c
  * random: remove dead code left over from blocking pool
      drivers/char/random.c
  * random: avoid arch_get_random_seed_long() when collecting IRQ randomness
      drivers/char/random.c
  * random: add arch_get_random_*long_early()
      drivers/char/random.c
      include/linux/random.h
    powerpc: Use bool in archrandom.h
  * linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
      include/linux/random.h
  * linux/random.h: Use false with bool
      include/linux/random.h
  * linux/random.h: Remove arch_has_random, arch_has_random_seed
      include/linux/random.h
    s390: Remove arch_has_random, arch_has_random_seed
    powerpc: Remove arch_has_random, arch_has_random_seed
    x86: Remove arch_has_random, arch_has_random_seed
  * random: avoid warnings for !CONFIG_NUMA builds
      drivers/char/random.c
  * random: split primary/secondary crng init paths
      drivers/char/random.c
  * random: remove some dead code of poolinfo
      drivers/char/random.c
  * random: fix typo in add_timer_randomness()
      drivers/char/random.c
  * random: Add and use pr_fmt()
      drivers/char/random.c
  * random: convert to ENTROPY_BITS for better code readability
      drivers/char/random.c
  * random: remove unnecessary unlikely()
      drivers/char/random.c
  * random: remove kernel.random.read_wakeup_threshold
      drivers/char/random.c
  * random: delete code to pull data into pools
      drivers/char/random.c
  * random: remove the blocking pool
      drivers/char/random.c
  * random: fix crash on multiple early calls to add_bootloader_randomness()
      drivers/char/random.c
  * char/random: silence a lockdep splat with printk()
      drivers/char/random.c
  * random: make /dev/random be almost like /dev/urandom
      drivers/char/random.c
  * random: ignore GRND_RANDOM in getentropy(2)
      drivers/char/random.c
      include/uapi/linux/random.h
  * random: add GRND_INSECURE to return best-effort non-cryptographic bytes
      drivers/char/random.c
      include/uapi/linux/random.h
  * random: Add a urandom_read_nowait() for random APIs that don't warn
      drivers/char/random.c
  * random: Don't wake crng_init_wait when crng_init == 1
      drivers/char/random.c
  * lib/crypto: sha1: re-roll loops to reduce code size
      lib/sha1.c
  * lib/crypto: blake2s: move hmac construction into wireguard
      include/crypto/blake2s.h
      lib/crypto/blake2s.c
  * crypto: blake2s - generic C library implementation and selftest
      include/crypto/blake2s.h
      include/crypto/internal/blake2s.h
      lib/Makefile
      lib/crypto/Makefile
      lib/crypto/blake2s-generic.c
      lib/crypto/blake2s.c
  * Revert "hwrng: core - Freeze khwrng thread during suspend"
      drivers/char/random.c
  * char/random: Add a newline at the end of the file
      drivers/char/random.c
  * random: Use wait_event_freezable() in add_hwgenerator_randomness()
      drivers/char/random.c
  * fdt: add support for rng-seed
      drivers/char/Kconfig
      drivers/char/random.c
      drivers/of/fdt.c
      include/linux/random.h
  * random: Support freezable kthreads in add_hwgenerator_randomness()
      drivers/char/random.c
  * random: fix soft lockup when trying to read from an uninitialized blocking pool
      drivers/char/random.c
  * latent_entropy: avoid build error when plugin cflags are not set
      include/linux/random.h
  * random: document get_random_int() family
      drivers/char/random.c
  * random: move rand_initialize() earlier
      drivers/char/random.c
      include/linux/random.h
      init/main.c
  * random: only read from /dev/random after its pool has received 128 bits
      drivers/char/random.c
  * drivers/char/random.c: make primary_crng static
      drivers/char/random.c
  * drivers/char/random.c: remove unused stuct poolinfo::poolbits
      drivers/char/random.c
  * drivers/char/random.c: constify poolinfo_table
      drivers/char/random.c
    9p: missing chunk of "fs/9p: Don't update file type when updating file attributes"

Bug: 240880948
Change-Id: I46de87f5e1ff2146dbc394d88275d609ee871bc1
Signed-off-by: Lucas Wei <lucaswei@google.com>
2022-08-09 10:46:08 +08:00
Hsin-Yi Wang
377ca648a1 video: of_display_timing.h: include errno.h
commit 3663a2fb325b8782524f3edb0ae32d6faa615109 upstream.

If CONFIG_OF is not enabled, default of_get_display_timing() returns an
errno, so include the header.

Fixes: 422b67e0b3 ("videomode: provide dummy inline functions for !CONFIG_OF")
Suggested-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-12 16:29:01 +02:00
Nirmal Abraham
69c26a7f62 fbdev: msm: snapshot of mdss driver
This is a snapshot of mdss driver from msm-4.14
as of commit '15e898828d1e (fbdev: msm: Avoid UAF
in mdss_dsi_cmd_write)'.

Change-Id: I16fe01fd45855d5c268c210ec61f09c6fa625761
Signed-off-by: Nirmal Abraham <nabrah@codeaurora.org>
Signed-off-by: Althaf Neelanchirayil <aneelanc@codeaurora.org>
2020-06-17 06:00:22 +05:30
Mikulas Patocka
42f59b83f0 udlfb: introduce a rendering mutex
commit babc250e278eac7b0e671bdaedf833759b43bb78 upstream.

Rendering calls may be done simultaneously from the workqueue,
dlfb_ops_write, dlfb_ops_ioctl, dlfb_ops_set_par and dlfb_dpy_deferred_io.
The code is robust enough so that it won't crash on concurrent rendering.

However, concurrent rendering may cause display corruption if the same
pixel is simultaneously being rendered. In order to avoid this corruption,
this patch adds a mutex around the rendering calls.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: <stable@vger.kernel.org>
[b.zolnierkie: replace "dlfb:" with "uldfb:" in the patch summary]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-25 18:23:30 +02:00
Mikulas Patocka
fb36a97654 udlfb: fix sleeping inside spinlock
commit 6b11f9d8433b471fdd3ebed232b43a4b723be6ff upstream.

If a framebuffer device is used as a console, the rendering calls
(copyarea, fillrect, imageblit) may be done with the console spinlock
held. On udlfb, these function call dlfb_handle_damage that takes a
blocking semaphore before acquiring an URB.

In order to fix the bug, this patch changes the calls copyarea, fillrect
and imageblit to offload USB work to a workqueue.

A side effect of this patch is 3x improvement in console scrolling speed
because the device doesn't have to be updated after each copyarea call.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-25 18:23:29 +02:00
Mikulas Patocka
c014cae8e1 udlfb: handle unplug properly
commit 68a958a915ca912b8ce71b9eea7445996f6e681e upstream.

The udlfb driver maintained an open count and cleaned up itself when the
count reached zero. But the console is also counted in the reference count
- so, if the user unplugged the device, the open count would not drop to
zero and the driver stayed loaded with console attached. If the user
re-plugged the adapter, it would create a device /dev/fb1, show green
screen and the access to the console would be lost.

The framebuffer subsystem has reference counting on its own - in order to
fix the unplug bug, we rely the framebuffer reference counting. When the
user unplugs the adapter, we call unregister_framebuffer unconditionally.
unregister_framebuffer will unbind the console, wait until all users stop
using the framebuffer and then call the fb_destroy method. The fb_destroy
cleans up the USB driver.

This patch makes the following changes:
* Drop dlfb->kref and rely on implicit framebuffer reference counting
  instead.
* dlfb_usb_disconnect calls unregister_framebuffer, the rest of driver
  cleanup is done in the function dlfb_ops_destroy. dlfb_ops_destroy will
  be called by the framebuffer subsystem when no processes have the
  framebuffer open or mapped.
* We don't use workqueue during initialization, but initialize directly
  from dlfb_usb_probe. The workqueue could race with dlfb_usb_disconnect
  and this racing would produce various kinds of memory corruption.
* We use usb_get_dev and usb_put_dev to make sure that the USB subsystem
  doesn't free the device under us.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
cc: Dave Airlie <airlied@redhat.com>
Cc: Bernie Thompson <bernie@plugable.com>,
Cc: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-27 10:09:03 +01:00
Linus Torvalds
06e386a1db Merge tag 'fbdev-v4.19' of https://github.com/bzolnier/linux
Pull fbdev updates from Bartlomiej Zolnierkiewicz:
 "Mostly small fixes and cleanups for fb drivers (the biggest updates
  are for udlfb and pxafb drivers). This also adds deferred console
  takeover support to the console code and efifb driver.

  Summary:

   - add support for deferred console takeover, when enabled defers
     fbcon taking over the console from the dummy console until the
     first text is displayed on the console - together with the "quiet"
     kernel commandline option this allows fbcon to still be used
     together with a smooth graphical bootup (Hans de Goede)

   - improve console locking debugging code (Thomas Zimmermann)

   - copy the ACPI BGRT boot graphics to the framebuffer when deferred
     console takeover support is used in efifb driver (Hans de Goede)

   - update udlfb driver - fix lost console when the user unplugs a USB
     adapter, fix the screen corruption issue, fix locking and add some
     performance optimizations (Mikulas Patocka)

   - update pxafb driver - fix using uninitialized memory, switch to
     devm_* API, handle initialization errors and add support for
     lcd-supply regulator (Daniel Mack)

   - add support for boards booted with a DeviceTree in pxa3xx_gcu
     driver (Daniel Mack)

   - rename omap2 module to omap2fb.ko to avoid conflicts with omap1
     driver (Arnd Bergmann)

   - enable ACPI-based enumeration for goldfishfb driver (Yu Ning)

   - fix goldfishfb driver to make user space Android code use 60 fps
     (Christoffer Dall)

   - print big fat warning when nomodeset kernel parameter is used in
     vgacon driver (Lyude Paul)

   - remove VLA usage from fsl-diu-fb driver (Kees Cook)

   - misc fixes (Julia Lawall, Geert Uytterhoeven, Fredrik Noring,
     Yisheng Xie, Dan Carpenter, Daniel Vetter, Anton Vasilyev, Randy
     Dunlap, Gustavo A. R. Silva, Colin Ian King, Fengguang Wu)

   - misc cleanups (Roman Kiryanov, Yisheng Xie, Colin Ian King)"

* tag 'fbdev-v4.19' of https://github.com/bzolnier/linux: (54 commits)
  Documentation/fb: corrections for fbcon.txt
  fbcon: Do not takeover the console from atomic context
  dummycon: Stop exporting dummycon_[un]register_output_notifier
  fbcon: Only defer console takeover if the current console driver is the dummycon
  fbcon: Only allow FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER if fbdev is builtin
  fbdev: omap2: omapfb: fix ifnullfree.cocci warnings
  fbdev: omap2: omapfb: fix bugon.cocci warnings
  fbdev: omap2: omapfb: fix boolreturn.cocci warnings
  fb: amifb: fix build warnings when not builtin
  fbdev/core: Disable console-lock warnings when fb.lockless_register_fb is set
  console: Replace #if 0 with atomic var 'ignore_console_lock_warning'
  udlfb: use spin_lock_irq instead of spin_lock_irqsave
  udlfb: avoid prefetch
  udlfb: optimization - test the backing buffer
  udlfb: allow reallocating the framebuffer
  udlfb: set line_length in dlfb_ops_set_par
  udlfb: handle allocation failure
  udlfb: set optimal write delay
  udlfb: make a local copy of fb_ops
  udlfb: don't switch if we are switching to the same videomode
  ...
2018-08-23 15:44:58 -07:00
Mikulas Patocka
7433914efd udlfb: allow reallocating the framebuffer
This patch changes udlfb so that it may reallocate the framebuffer when
setting higher-resolution mode. If we boot the system without monitor
attached, udlfb creates a framebuffer with the size 800x600. This patch
makes it possible to select higher videomode with the fbset command when
a monitor is attached.

Note that there is no reliable way to prevent the system from touching the
old framebuffer, so we must not free it. We add it to the list
dlfb->deferred_free and free it when the driver is unloaded.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
[b.zolnierkie: sparse fixes]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-07-25 15:41:56 +02:00
Mikulas Patocka
bb24153a3f udlfb: set optimal write delay
The default delay 5 jiffies is too much when the kernel is compiled with
HZ=100 - it results in jumpy cursor in Xwindow.

In order to find out the optimal delay, I benchmarked the driver on
1280x720x30fps video. I found out that with HZ=1000, 10ms is acceptable,
but with HZ=250 or HZ=300, we need 4ms, so that the video is played
without any frame skips.

This patch changes the delay to this value.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-07-25 15:41:55 +02:00
Mikulas Patocka
2c29cfc3ea udlfb: make a local copy of fb_ops
The defio subsystem overwrites the method fb_osp->mmap. That method is
stored in module's static data - and that means that if we have multiple
diplaylink adapters, they will over write each other's method.

In order to avoid interference between multiple adapters, we copy the
fb_ops structure to a device-local memory.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-07-25 15:41:55 +02:00
Mikulas Patocka
564f180737 udlfb: don't switch if we are switching to the same videomode
The udlfb driver reprograms the hardware everytime the user switches the
console, that makes quite unusable when working on the console.

This patch makes the driver remember the videomode we are in and avoid
reprogramming the hardware if we switch to the same videomode.

We mask the "activate" field and the "FB_VMODE_SMOOTH_XPAN" flag when
comparing the videomode, because they cause spurious switches when
switching to and from the Xserver.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-07-25 15:41:55 +02:00
Mikulas Patocka
9d0aa601e4 udlfb: fix semaphore value leak
I observed that the performance of the udl fb driver degrades over time.
On a freshly booted machine, it takes 6 seconds to do "ls -la /usr/bin";
after some time of use, the same operation takes 14 seconds.

The reason is that the value of "limit_sem" decays over time.

The udl driver uses a semaphore "limit_set" to specify how many free urbs
are there on dlfb->urbs.list. If the count is zero, the "down" operation
will sleep until some urbs are added to the freelist.

In order to avoid some hypothetical deadlock, the driver will not call
"up" immediately, but it will offload it to a workqueue. The problem is
that if we call "schedule_delayed_work" on the same work item multiple
times, the work item may only be executed once.

This is happening:
* some urb completes
* dlfb_urb_completion adds it to the free list
* dlfb_urb_completion calls schedule_delayed_work to schedule the function
  dlfb_release_urb_work to increase the semaphore count
* as the urb is on the free list, some other task grabs it and submits it
* the submitted urb completes, dlfb_urb_completion is called again
* dlfb_urb_completion calls schedule_delayed_work, but the work is already
  scheduled, so it does nothing
* finally, dlfb_release_urb_work is called, it increases the semaphore
  count by 1, although it should increase it by 2

So, the semaphore count is decreasing over time, and this causes gradual
performance degradation.

Note that in the current kernel, the "up" function may be called from
interrupt and it may race with the "down" function called by another
thread, so we don't have to offload the call of "up" to a workqueue at
all. This patch removes the workqueue code. The patch also changes
"down_interruptible" to "down" in dlfb_free_urb_list, so that we will
clean up the driver properly even if a signal arrives.

With this patch, the performance of udlfb no longer degrades.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
[b.zolnierkie: fix immediatelly -> immediately typo]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-07-25 15:41:54 +02:00
vkorjani
ea107a183b drm: Add support for pps and compression mode command packet
After enabling DSC we need to send compression mode command packet
and pps data packet, for which 2 new data types are added
07h  Compression Mode Data Type Write , short write, 2 parameters
0Ah  PPS Long Write (word count determines number of bytes)
This patch adds support to send these packets.

Cc: David Airlie <airlied@linux.ie>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org

Changes in v3:
- None

Signed-off-by: vkorjani <vikas.korjani@intel.com>
[seanpaul removed pps_write_buffer fn, added types to packet_format helpers]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
2018-07-25 07:51:05 -04:00
Linus Torvalds
644f2639ae Merge tag 'fbdev-v4.18' of git://github.com/bzolnier/linux
Pull fbdev updates from Bartlomiej Zolnierkiewicz:
 "There is nothing really major here, few small fixes, some cleanups and
  dead drivers removal:

   - mark omapfb drivers as orphans in MAINTAINERS file (Tomi Valkeinen)

   - add missing module license tags to omap/omapfb driver (Arnd
     Bergmann)

   - add missing GPIOLIB dependendy to omap2/omapfb driver (Arnd
     Bergmann)

   - convert savagefb, aty128fb & radeonfb drivers to use msleep & co.
     (Jia-Ju Bai)

   - allow COMPILE_TEST build for viafb driver (media part was reviewed
     by media subsystem Maintainer)

   - remove unused MERAM support from sh_mobile_lcdcfb and shmob-drm
     drivers (drm parts were acked by shmob-drm driver Maintainer)

   - remove unused auo_k190xfb drivers

   - misc cleanups (Souptick Joarder, Wolfram Sang, Markus Elfring, Andy
     Shevchenko, Colin Ian King)"

* tag 'fbdev-v4.18' of git://github.com/bzolnier/linux: (26 commits)
  fb_omap2: add gpiolib dependency
  video/omap: add module license tags
  MAINTAINERS: make omapfb orphan
  video: fbdev: pxafb: match_string() conversion fixup
  video: fbdev: nvidia: fix spelling mistake: "scaleing" -> "scaling"
  video: fbdev: fix spelling mistake: "frambuffer" -> "framebuffer"
  video: fbdev: pxafb: Convert to use match_string() helper
  video: fbdev: via: allow COMPILE_TEST build
  video: fbdev: remove unused sh_mobile_meram driver
  drm: shmobile: remove unused MERAM support
  video: fbdev: sh_mobile_lcdcfb: remove unused MERAM support
  video: fbdev: remove unused auo_k190xfb drivers
  video: omap: Improve a size determination in omapfb_do_probe()
  video: sm501fb: Improve a size determination in sm501fb_probe()
  video: fbdev-MMP: Improve a size determination in path_init()
  video: fbdev-MMP: Delete an error message for a failed memory allocation in two functions
  video: auo_k190x: Delete an error message for a failed memory allocation in auok190x_common_probe()
  video: sh_mobile_lcdcfb: Delete an error message for a failed memory allocation in two functions
  video: sh_mobile_meram: Delete an error message for a failed memory allocation in sh_mobile_meram_probe()
  video: fbdev: sh_mobile_meram: Drop SUPERH platform dependency
  ...
2018-06-17 05:00:24 +09:00
Bartlomiej Zolnierkiewicz
187a60358a video: fbdev: remove unused sh_mobile_meram driver
Since commit a521422ea4  ("ARM: shmobile: mackerel: Remove Legacy C
board code") MERAM functionality is unused. Remove it.

Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-05-14 15:47:30 +02:00
Bartlomiej Zolnierkiewicz
9076aa994a video: fbdev: sh_mobile_lcdcfb: remove unused MERAM support
Since commit a521422ea4  ("ARM: shmobile: mackerel: Remove Legacy C
board code") MERAM functionality is unused. Remove it.

Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-05-14 15:47:30 +02:00
Bartlomiej Zolnierkiewicz
745f8c14e3 video: fbdev: remove unused auo_k190xfb drivers
auo_k1900fb and auo_k1901fb drivers have been introduced six
years ago by following commits:

commit 2c8304d312 ("video: auo_k190x: add code shared by controller drivers")
commit 96b1d500e0 ("video: auo_k190x: add driver for AUO-K1900 variant")
commit 53027cdf2a ("video: auo_k190x: add driver for AUO-K1901 variant")

They never had any in-kernel user so just remove them (since
they are platform drivers they need corresponding platform
devices to be registered by kernel and it has never happened).

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-05-14 15:47:30 +02:00
Mauro Carvalho Chehab
f10379aad3 media: include/video/omapfb_dss.h: use IS_ENABLED()
Just checking for ifdefs cause build issues as reported by
kernel test:

config: openrisc-allmodconfig (attached as .config)
compiler: or1k-linux-gcc (GCC) 6.0.0 20160327 (experimental)

All errors (new ones prefixed by >>):

   drivers/video/fbdev/omap2/omapfb/omapfb-main.c: In function 'omapfb_init_connections':
>> drivers/video/fbdev/omap2/omapfb/omapfb-main.c:2396:8: error: implicit declaration of function 'omapdss_find_mgr_from_display' [-Werror=implicit-function-declaration]
     mgr = omapdss_find_mgr_from_display(def_dssdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/omapfb-main.c:2396:6: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     mgr = omapdss_find_mgr_from_display(def_dssdev);
         ^
   drivers/video/fbdev/omap2/omapfb/omapfb-main.c: In function 'omapfb_find_default_display':
>> drivers/video/fbdev/omap2/omapfb/omapfb-main.c:2430:13: error: implicit declaration of function 'omapdss_get_default_display_name' [-Werror=implicit-function-declaration]
     def_name = omapdss_get_default_display_name();
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/omap2/omapfb/omapfb-main.c:2430:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     def_name = omapdss_get_default_display_name();
              ^

So, use IS_ENABLED() instead.

Fixes: 771f7be87f ("media: omapfb: omapfb_dss.h: add stubs to build with COMPILE_TEST && DRM_OMAP")

Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: tomi.valkeinen@ti.com
Cc: linux-omap@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-05-05 11:45:51 -04:00
Mauro Carvalho Chehab
771f7be87f media: omapfb: omapfb_dss.h: add stubs to build with COMPILE_TEST && DRM_OMAP
Add stubs for omapfb_dss.h, in the case it is included by
some driver when CONFIG_FB_OMAP2 is not defined, with can
happen on ARM when DRM_OMAP is not 'n'.

That allows building such driver(s) with COMPILE_TEST.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-05-04 09:54:47 -04:00
Vladimir Zapolskiy
a2a348014a video: of: display_timing: Remove of_display_timings_exist() function
Since introduction of of_display_timings_exist() function in commit
cc3f414cf2 ("video: add of helper for display timings/videomode") it
didn't attract any users, and the function has no potential, because
of_get_display_timings() covers its functionality and does more.

Drop the unused exported function from the kernel.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-03-12 17:06:54 +01:00
Linus Torvalds
c3611b6d7f Merge tag 'fbdev-v4.16' of git://github.com/bzolnier/linux
Pull fbdev updates from Bartlomiej Zolnierkiewicz:
 "There is nothing really major here:

   - fix display-timings lookup in the Device Tree in atmel_lcdfb driver
     (Johan Hovold)

   - fix video mode and line_length to be set correctly in vfb driver
     (Pieter "PoroCYon" Sluys)

   - fix returning nonsensical values to the user-space on GIO_FONTX
     ioctl when using dummy console (Nicolas Pitre)

   - add missing license tag to mmpfb driver (Arnd Bergmann)

   - convert radeonfb and pxa3xx_gcu drivers to use ktime_get[_ts64]()
     instead of the deprecated do_gettimeofday() (Arnd Bergmann)

   - switch udlfb driver from using the pr_*() logging functions to the
     dev_*() ones + related cleanups (Ladislav Michl)

   - use __raw I/O accessors also on arm64 (Ji Zhang)

   - fix Kconfig help text for intelfb driver (Randy Dunlap)

   - do not duplicate features data in omapfb driver (Ladislav Michl)

   - misc cleanups (Colin Ian King, Markus Elfring, Rasmus Villemoes,
     Vasyl Gomonovych, Himanshu Jha, Michael Trimarchi)"

* tag 'fbdev-v4.16' of git://github.com/bzolnier/linux: (25 commits)
  video: udlfb: Switch from the pr_*() to the dev_*() logging functions
  video: udlfb: Constify read only data
  video: fbdev/mmp: add MODULE_LICENSE
  console/dummy: leave .con_font_get set to NULL
  fbdev: mxsfb: use framebuffer_alloc in the correct way
  video: udlfb: Do not name private data 'dev'
  video: udlfb: Remove noisy warnings
  video: udlfb: Remove redundant gdev variable
  video: udlfb: Remove unnecessary local variable
  fbdev: auo_k190x: Use zeroing memory allocator instead of allocator/memset
  vfb: fix video mode and line_length being set when loaded
  fbdev: arm64 use __raw I/O memory api
  omapfb: dss: Do not duplicate features data
  video: fbdev: omap2: Use PTR_ERR_OR_ZERO()
  fbdev: au1200fb: delete duplicate header contents
  fbdev: pxa3xx: use ktime_get_ts64 for time stamps
  fbdev: radeon: use ktime_get() for HZ calibration
  video: smscufx: Improve a size determination in two functions
  video: udlfb: Delete an unnecessary return statement in two functions
  video: udlfb: Improve a size determination in dlfb_alloc_urb_list()
  ...
2018-02-07 13:10:43 -08:00
Ladislav Michl
7ea46206d1 video: udlfb: Do not name private data 'dev'
Variable 'dev' is usually used for 'struct device'. Therefore
rename driver private data to dlfb to avoid confusion once
driver will be using dev_*() logging functions.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Cc: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-01-15 17:04:22 +01:00
Ladislav Michl
84df64956b video: udlfb: Remove redundant gdev variable
gdev is not really needed as the same content can be read
from udev->dev.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Cc: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2018-01-15 17:04:21 +01:00
Dave Airlie
b0caa1333b Merge tag 'imx-drm-next-2018-01-02' of git://git.pengutronix.de/git/pza/linux into drm-next
drm/imx: format modifier support

- Add tiled prefetch support to PRE
- Add format modifier support to PRG and imx-drm-core
- Use runtime PM to control PRG clock
- Allow building ipu-v3 under COMPILE_TEST

* tag 'imx-drm-next-2018-01-02' of git://git.pengutronix.de/git/pza/linux:
  gpu: ipu-v3: allow to build with COMPILE_TEST
  drm/imx: advertise supported plane format modifiers
  drm/imx: add FB modifier support
  gpu: ipu-v3: prg: add modifier support
  gpu: ipu-v3: pre: add tiled prefetch support
  gpu: ipu-v3: prg: switch to runtime PM
2018-01-05 11:33:24 +10:00
Krzysztof Kozlowski
4f52e55081 drm/exynos/decon: Move headers from global to local place
The DECON headers contain only defines for registers.  There are no
other drivers using them so this should be put locally to the Exynos DRM
driver.  Keeping headers local helps managing the code.

Suggested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2018-01-02 08:38:00 +09:00
Lucas Stach
a2ceec52d9 gpu: ipu-v3: prg: add modifier support
Allow to pass through the modifier to the PRE unit and extend the
format check with the supported modifiers.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2017-12-19 12:49:11 +01:00
Linus Torvalds
e1d1ea549b Merge tag 'fbdev-v4.15' of git://github.com/bzolnier/linux
Pull fbdev updates from Bartlomiej Zolnierkiewicz:
 "There is nothing really major here (though removal of the dead igafb
  driver stands out in diffstat).

  Summary:

   - convert timers to use timer_setup() (Kees Cook, Thierry Reding)

   - fix panels support on iMX boards in mxsfb driver (Stefan Agner)

   - fix timeout on EDID read in udlfb driver (Ladislav Michl)

   - add missing modes to fix out of bounds access in controlfb driver
     (Geert Uytterhoeven)

   - update initialisation paths in sa1100fb driver to be more robust
     (Russell King)

   - fix error handling path of ->probe method in au1200fb driver
     (Christophe JAILLET)

   - fix handling of cases when either panel or crt is defined in
     sm501fb driver (Sudip Mukherjee, Colin Ian King)

   - add ability to the Goldfish FB driver to be recognized by OS via DT
     (Aleksandar Markovic)

   - structures constifications (Bhumika Goyal)

   - misc fixes (Allen Pais, Gustavo A. R. Silva, Dan Carpenter)

   - misc cleanups (Colin Ian King, Himanshu Jha, Markus Elfring)

   - remove dead igafb driver"

* tag 'fbdev-v4.15' of git://github.com/bzolnier/linux: (42 commits)
  OMAPFB: prevent buffer underflow in omapfb_parse_vram_param()
  video: fbdev: sm501fb: fix potential null pointer dereference on fbi
  fbcon: Initialize ops->info early
  video: fbdev: Convert timers to use timer_setup()
  video: fbdev: pxa3xx_gcu: Convert timers to use timer_setup()
  fbdev: controlfb: Add missing modes to fix out of bounds access
  video: fbdev: sis_main: mark expected switch fall-throughs
  video: fbdev: cirrusfb: mark expected switch fall-throughs
  video: fbdev: aty: radeon_pm: mark expected switch fall-throughs
  video: fbdev: sm501fb: mark expected switch fall-through in sm501fb_blank_crt
  video: fbdev: intelfb: remove redundant variables
  video/fbdev/dnfb: Use common error handling code in dnfb_probe()
  sm501fb: suspend and resume fb if it exists
  sm501fb: unregister framebuffer only if registered
  sm501fb: deallocate colormap only if allocated
  video: goldfishfb: Add support for device tree bindings
  Documentation: Add device tree binding for Goldfish FB driver
  video: udlfb: Fix read EDID timeout
  video: fbdev: remove dead igafb driver
  video: fbdev: mxsfb: fix pixelclock polarity
  ...
2017-11-20 21:50:24 -10:00
Bartlomiej Zolnierkiewicz
1e7d4beba2 video: fbdev: remove dead igafb driver
igafb driver hasn't compiled since at least kernel v2.6.34 as
commit 6016a363f6 ("of: unify phandle name in struct device_node")
missed updating igafb.c to use dp->phandle instead of dp->node.

Cc: "David S. Miller" <davem@davemloft.net>
Cc: Bhumika Goyal <bhumirks@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2017-11-09 18:09:30 +01:00
Greg Kroah-Hartman
b24413180f License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.

By default all files without license information are under the default
license of the kernel, which is GPL version 2.

Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier.  The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.

This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.

How this work was done:

Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
 - file had no licensing information it it.
 - file was a */uapi/* one with no licensing information in it,
 - file was a */uapi/* one with existing licensing information,

Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.

The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne.  Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.

The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed.  Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.

Criteria used to select files for SPDX license identifier tagging was:
 - Files considered eligible had to be source code files.
 - Make and config files were included as candidates if they contained >5
   lines of source
 - File already had some variant of a license header in it (even if <5
   lines).

All documentation files were explicitly excluded.

The following heuristics were used to determine which SPDX license
identifiers to apply.

 - when both scanners couldn't find any license traces, file was
   considered to have no license information in it, and the top level
   COPYING file license applied.

   For non */uapi/* files that summary was:

   SPDX license identifier                            # files
   ---------------------------------------------------|-------
   GPL-2.0                                              11139

   and resulted in the first patch in this series.

   If that file was a */uapi/* path one, it was "GPL-2.0 WITH
   Linux-syscall-note" otherwise it was "GPL-2.0".  Results of that was:

   SPDX license identifier                            # files
   ---------------------------------------------------|-------
   GPL-2.0 WITH Linux-syscall-note                        930

   and resulted in the second patch in this series.

 - if a file had some form of licensing information in it, and was one
   of the */uapi/* ones, it was denoted with the Linux-syscall-note if
   any GPL family license was found in the file or had no licensing in
   it (per prior point).  Results summary:

   SPDX license identifier                            # files
   ---------------------------------------------------|------
   GPL-2.0 WITH Linux-syscall-note                       270
   GPL-2.0+ WITH Linux-syscall-note                      169
   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause)    21
   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)    17
   LGPL-2.1+ WITH Linux-syscall-note                      15
   GPL-1.0+ WITH Linux-syscall-note                       14
   ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause)    5
   LGPL-2.0+ WITH Linux-syscall-note                       4
   LGPL-2.1 WITH Linux-syscall-note                        3
   ((GPL-2.0 WITH Linux-syscall-note) OR MIT)              3
   ((GPL-2.0 WITH Linux-syscall-note) AND MIT)             1

   and that resulted in the third patch in this series.

 - when the two scanners agreed on the detected license(s), that became
   the concluded license(s).

 - when there was disagreement between the two scanners (one detected a
   license but the other didn't, or they both detected different
   licenses) a manual inspection of the file occurred.

 - In most cases a manual inspection of the information in the file
   resulted in a clear resolution of the license that should apply (and
   which scanner probably needed to revisit its heuristics).

 - When it was not immediately clear, the license identifier was
   confirmed with lawyers working with the Linux Foundation.

 - If there was any question as to the appropriate license identifier,
   the file was flagged for further research and to be revisited later
   in time.

In total, over 70 hours of logged manual review was done on the
spreadsheet to determine the SPDX license identifiers to apply to the
source files by Kate, Philippe, Thomas and, in some cases, confirmation
by lawyers working with the Linux Foundation.

Kate also obtained a third independent scan of the 4.13 code base from
FOSSology, and compared selected files where the other two scanners
disagreed against that SPDX file, to see if there was new insights.  The
Windriver scanner is based on an older version of FOSSology in part, so
they are related.

Thomas did random spot checks in about 500 files from the spreadsheets
for the uapi headers and agreed with SPDX license identifier in the
files he inspected. For the non-uapi files Thomas did random spot checks
in about 15000 files.

In initial set of patches against 4.14-rc6, 3 files were found to have
copy/paste license identifier errors, and have been fixed to reflect the
correct identifier.

Additionally Philippe spent 10 hours this week doing a detailed manual
inspection and review of the 12,461 patched files from the initial patch
version early this week with:
 - a full scancode scan run, collecting the matched texts, detected
   license ids and scores
 - reviewing anything where there was a license detected (about 500+
   files) to ensure that the applied SPDX license was correct
 - reviewing anything where there was no detection but the patch license
   was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied
   SPDX license was correct

This produced a worksheet with 20 files needing minor correction.  This
worksheet was then exported into 3 different .csv files for the
different types of files to be modified.

These .csv files were then reviewed by Greg.  Thomas wrote a script to
parse the csv files and add the proper SPDX tag to the file, in the
format that the file expected.  This script was further refined by Greg
based on the output to detect more types of files automatically and to
distinguish between header and source .c files (which need different
comment types.)  Finally Greg ran the script using the .csv files to
generate the patches.

Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-02 11:10:55 +01:00
Dave Airlie
a682169891 Merge tag 'imx-drm-next-2017-06-08' of git://git.pengutronix.de/git/pza/linux into drm-next
imx-drm: cleanups and YUV 4:2:0 memory read/write reduction support

- Remove counter load enable form PRE, which has no effect.
- Add support for setting the double read/write reduction flag in channel
  parameter memory. This can be used to save some memory bandwidth when
  capturing in YUV 4:2:0 chroma subsampled formats.
- Allocate DMA channel structures as needed, most of the 64 channels are
  unused or even reserved.
- Remove unused interrupt busy waiting routine.
- Set VDIC field order for both AUTO and MAN inputs simultaneously as
  both can't be active at the same time.

* tag 'imx-drm-next-2017-06-08' of git://git.pengutronix.de/git/pza/linux:
  gpu: ipu-v3: vdic: include AUTO field order bit in ipu_vdi_set_field_order
  gpu: ipu-v3: remove interrupt busy waiting routine
  gpu: ipu-v3: allocate ipuv3_channels as needed
  gpu: ipu-v3: Add support for double read/write reduction
  gpu: ipu-v3: prg: remove counter load enable
2017-06-16 10:05:38 +10:00
Philipp Zabel
e1e9733cd3 gpu: ipu-v3: Add support for double read/write reduction
Allow to skip writing odd chroma rows by setting the RDRW bit for
4:2:0 chroma subsampled formats for any IDMAC write channel. This
also allows to skip reading odd rows for the VDIC read channel.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2017-06-08 08:57:18 +02:00
Andrzej Hajda
b2adc53075 drm/exynos/decon5433: simplify shadow protect code
There is no point in protecting only particular windows during update.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-06-01 16:21:36 +09:00
Nicolas Dichtel
fcc8487d47 uapi: export all headers under uapi directories
Regularly, when a new header is created in include/uapi/, the developer
forgets to add it in the corresponding Kbuild file. This error is usually
detected after the release is out.

In fact, all headers under uapi directories should be exported, thus it's
useless to have an exhaustive list.

After this patch, the following files, which were not exported, are now
exported (with make headers_install_all):
asm-arc/kvm_para.h
asm-arc/ucontext.h
asm-blackfin/shmparam.h
asm-blackfin/ucontext.h
asm-c6x/shmparam.h
asm-c6x/ucontext.h
asm-cris/kvm_para.h
asm-h8300/shmparam.h
asm-h8300/ucontext.h
asm-hexagon/shmparam.h
asm-m32r/kvm_para.h
asm-m68k/kvm_para.h
asm-m68k/shmparam.h
asm-metag/kvm_para.h
asm-metag/shmparam.h
asm-metag/ucontext.h
asm-mips/hwcap.h
asm-mips/reg.h
asm-mips/ucontext.h
asm-nios2/kvm_para.h
asm-nios2/ucontext.h
asm-openrisc/shmparam.h
asm-parisc/kvm_para.h
asm-powerpc/perf_regs.h
asm-sh/kvm_para.h
asm-sh/ucontext.h
asm-tile/shmparam.h
asm-unicore32/shmparam.h
asm-unicore32/ucontext.h
asm-x86/hwcap2.h
asm-xtensa/kvm_para.h
drm/armada_drm.h
drm/etnaviv_drm.h
drm/vgem_drm.h
linux/aspeed-lpc-ctrl.h
linux/auto_dev-ioctl.h
linux/bcache.h
linux/btrfs_tree.h
linux/can/vxcan.h
linux/cifs/cifs_mount.h
linux/coresight-stm.h
linux/cryptouser.h
linux/fsmap.h
linux/genwqe/genwqe_card.h
linux/hash_info.h
linux/kcm.h
linux/kcov.h
linux/kfd_ioctl.h
linux/lightnvm.h
linux/module.h
linux/nbd-netlink.h
linux/nilfs2_api.h
linux/nilfs2_ondisk.h
linux/nsfs.h
linux/pr.h
linux/qrtr.h
linux/rpmsg.h
linux/sched/types.h
linux/sed-opal.h
linux/smc.h
linux/smc_diag.h
linux/stm.h
linux/switchtec_ioctl.h
linux/vfio_ccw.h
linux/wil6210_uapi.h
rdma/bnxt_re-abi.h

Note that I have removed from this list the files which are generated in every
exported directories (like .install or .install.cmd).

Thanks to Julien Floret <julien.floret@6wind.com> for the tip to get all
subdirs with a pure makefile command.

For the record, note that exported files for asm directories are a mix of
files listed by:
 - include/uapi/asm-generic/Kbuild.asm;
 - arch/<arch>/include/uapi/asm/Kbuild;
 - arch/<arch>/include/asm/Kbuild.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Mark Salter <msalter@redhat.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-05-11 00:21:54 +09:00
Linus Torvalds
2f34c1231b Merge tag 'drm-for-v4.12' of git://people.freedesktop.org/~airlied/linux
Pull drm u pdates from Dave Airlie:
 "This is the main drm pull request for v4.12. Apart from two fixes
  pulls, everything should have been in drm-next for at least 2 weeks.

  The biggest thing in here is AMD released the public headers for their
  upcoming VEGA GPUs. These as always are quite a sizeable chunk of
  header files. They've also added initial non-display support for those
  GPUs, though they aren't available in production yet.

  Otherwise it's pretty much normal.

  New bridge drivers:
   - megachips-stdpxxxx-ge-b850v3-fw LVDS->DP++
   - generic LVDS bridge support.

  Core:
   - Displayport link train failure reporting to userspace
   - debugfs interface cleaned up
   - subsystem TODO in kerneldoc now
   - Extended fbdev support (flipping and vblank wait)
   - drm_platform removed
   - EDP CRC support in helper
   - HF-VSDB SCDC support in EDID parser
   - Lots of code cleanups and header extraction
   - Thunderbolt external GPU awareness
   - Atomic helper improvements
   - Documentation improvements

  panel:
   - Sitronix and Samsung new panel support

  amdgpu:
   - Preliminary vega10 support
   - Multi-level page table support
   - GPU sensor support for userspace
   - PRT support for sparse buffers
   - SR-IOV improvements
   - Non-contig VRAM CPU mapping

  i915:
   - Atomic modesetting enabled by default on Gen5+
   - LSPCON improvements
   - Atomic state handling for cdclk
   - GPU reset improvements
   - In-kernel unit tests
   - Geminilake improvements and color manager support
   - Designware i2c fixes
   - vblank evasion improvements
   - Hotplug safe connector iterators
   - GVT scheduler QoS support
   - GVT Kabylake support

  nouveau:
   - Acceleration support for Pascal (GP10x).
   - Rearchitecture of code handling proprietary signed firmware
   - Fix GTX 970 with odd MMU configuration
   - GP10B support
   - GP107 acceleration support

  vmwgfx:
   - Atomic modesetting support for vmwgfx

  omapdrm:
   - Support for render nodes
   - Refactor omapdss code
   - Fix some probe ordering issues
   - Fix too dark RGB565 rendering

  sunxi:
   - prelim rework for multiple pipes.

  mali-dp:
   - Color management support
   - Plane scaling
   - Power management improvements

  imx-drm:
   - Prefetch Resolve Engine/Gasket on i.MX6QP
   - Deferred plane disabling
   - Separate alpha support

  mediatek:
   - Mediatek SoC MT2701 support

  rcar-du:
   - Gen3 HDMI support

  msm:
   - 4k support for newer chips
   - OPP bindings for gpu
   - prep work for per-process pagetables

  vc4:
   - HDMI audio support
   - fixes

  qxl:
   - minor fixes.

  dw-hdmi:
   - PHY improvements
   - CSC fixes
   - Amlogic GX SoC support"

* tag 'drm-for-v4.12' of git://people.freedesktop.org/~airlied/linux: (1778 commits)
  drm/nouveau/fb/gf100-: Fix 32 bit wraparound in new ram detection
  drm/nouveau/secboot/gm20b: fix the error return code in gm20b_secboot_tegra_read_wpr()
  drm/nouveau/kms: Increase max retries in scanout position queries.
  drm/nouveau/bios/bitP: check that table is long enough for optional pointers
  drm/nouveau/fifo/nv40: no ctxsw for pre-nv44 mpeg engine
  drm: mali-dp: use div_u64 for expensive 64-bit divisions
  drm/i915: Confirm the request is still active before adding it to the await
  drm/i915: Avoid busy-spinning on VLV_GLTC_PW_STATUS mmio
  drm/i915/selftests: Allocate inode/file dynamically
  drm/i915: Fix system hang with EI UP masked on Haswell
  drm/i915: checking for NULL instead of IS_ERR() in mock selftests
  drm/i915: Perform link quality check unconditionally during long pulse
  drm/i915: Fix use after free in lpe_audio_platdev_destroy()
  drm/i915: Use the right mapping_gfp_mask for final shmem allocation
  drm/i915: Make legacy cursor updates more unsynced
  drm/i915: Apply a cond_resched() to the saturated signaler
  drm/i915: Park the signaler before sleeping
  drm: mali-dp: Check the mclk rate and allow up/down scaling
  drm: mali-dp: Enable image enhancement when scaling
  drm: mali-dp: Add plane upscaling support
  ...
2017-05-03 11:44:24 -07:00
Linus Torvalds
5a0387a8a8 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto updates from Herbert Xu:
 "Here is the crypto update for 4.12:

  API:
   - Add batch registration for acomp/scomp
   - Change acomp testing to non-unique compressed result
   - Extend algorithm name limit to 128 bytes
   - Require setkey before accept(2) in algif_aead

  Algorithms:
   - Add support for deflate rfc1950 (zlib)

  Drivers:
   - Add accelerated crct10dif for powerpc
   - Add crc32 in stm32
   - Add sha384/sha512 in ccp
   - Add 3des/gcm(aes) for v5 devices in ccp
   - Add Queue Interface (QI) backend support in caam
   - Add new Exynos RNG driver
   - Add ThunderX ZIP driver
   - Add driver for hardware random generator on MT7623 SoC"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (101 commits)
  crypto: stm32 - Fix OF module alias information
  crypto: algif_aead - Require setkey before accept(2)
  crypto: scomp - add support for deflate rfc1950 (zlib)
  crypto: scomp - allow registration of multiple scomps
  crypto: ccp - Change ISR handler method for a v5 CCP
  crypto: ccp - Change ISR handler method for a v3 CCP
  crypto: crypto4xx - rename ce_ring_contol to ce_ring_control
  crypto: testmgr - Allow ecb(cipher_null) in FIPS mode
  Revert "crypto: arm64/sha - Add constant operand modifier to ASM_EXPORT"
  crypto: ccp - Disable interrupts early on unload
  crypto: ccp - Use only the relevant interrupt bits
  hwrng: mtk - Add driver for hardware random generator on MT7623 SoC
  dt-bindings: hwrng: Add Mediatek hardware random generator bindings
  crypto: crct10dif-vpmsum - Fix missing preempt_disable()
  crypto: testmgr - replace compression known answer test
  crypto: acomp - allow registration of multiple acomps
  hwrng: n2 - Use devm_kcalloc() in n2rng_probe()
  crypto: chcr - Fix error handling related to 'chcr_alloc_shash'
  padata: get_next is never NULL
  crypto: exynos - Add new Exynos RNG driver
  ...
2017-05-02 15:53:46 -07:00
Krzysztof Kozlowski
ed067d4a85 linux/kernel.h: Add ALIGN_DOWN macro
Few parts of kernel define their own macro for aligning down so provide
a common define for this, with the same usage and assumptions as existing
ALIGN.

Convert also three existing implementations to this one.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2017-04-21 20:30:44 +08:00
Dave Airlie
e5c1ff1475 Backmerge tag 'v4.11-rc4' into drm-next
Linux 4.11-rc4

The i915 GVT team need the rc4 code to base some more code on.
2017-03-28 17:34:19 +10:00
Andrzej Hajda
f3cce673e1 drm/exynos/decon5433: signal frame done interrupt at front porch
DECON in case of video mode generates interrupt by default at start
of vertical back porch. As this interrupt is used to generate VBLANK
events more optimal point is start of vertical front porch.

Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-03-21 13:17:22 +09:00
Andrzej Hajda
73488331eb drm/exynos/decon5433: fix vblank event handling
Current implementation of event handling assumes that vblank interrupt is
always called at the right time. It is not true, it can be delayed due to
various reasons. As a result different races can happen. The patch fixes
the issue by using hardware frame counter present in DECON to serialize
vblank and commit completion events.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-03-21 13:17:21 +09:00
Lucas Stach
ea9c260514 gpu: ipu-v3: add driver for Prefetch Resolve Gasket
This adds support for the i.MX6 QUadPlus PRG unit. It glues together the
IPU and the PRE units.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
v4: add missing ipu_soc->prg_priv
2017-03-16 10:14:02 +01:00
Philipp Zabel
e72db3b1e5 gpu: ipu-v3: add support for separate alpha channels
The IPUv3 can read 8-bit alpha values from a separate IDMAC channel driven
by the Alpha Transparency Controller (ATC) for the graphics IDMAC channels.
This allows to reduce memory bandwidth via a conditional read mechanism or
to support planar YUV formats with alpha transparency.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2017-03-15 15:42:31 +01:00
Philipp Zabel
f9bb7acb9b gpu: ipu-v3: add unsynchronised DP channel disabling
When disabling the foreground DP channel during a modeset, the DC is
already disabled without waiting for end of frame. There is no reason
to wait for a frame boundary before updating the DP registers in that
case.
Add support to apply updates immediately. No functional changes, yet.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
2017-03-15 15:28:27 +01:00
Andrzej Hajda
1514d50b7a drm/exynos/decon5433: signal vblank only on odd fields
In case of interlace mode irq is generated for odd and even fields, but
vblank should be signaled only for the last emitted field.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-02-07 13:52:52 +09:00
Andrzej Hajda
5aa6c9ace5 drm/exynos/decon5433: add support for interlace modes
Some registers should be programmed differently in interlace mode.
Additionally IP does not signal stop state properly in interlaced
mode, so warning has been removed.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-02-07 13:52:51 +09:00
Dave Airlie
1a3865d64a Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/media into drm-next
rcar-du -next branch.

* 'drm/next/du' of git://linuxtv.org/pinchartl/media:
  drm: rcar-du: Fix LVDS start sequence on Gen3
  drm: rcar-du: Fix H/V sync signal polarity configuration
  drm: rcar-du: Fix display timing controller parameter
  drm: rcar-du: Fix dot clock routing configuration
  drm: rcar-du: Add R8A7796 support
  drm: rcar-du: Add R8A7792 support
  drm: rcar-du: Simplify and fix probe error handling
  drm: rcar-du: Fix crash in encoder failure error path
  drm: rcar-du: Remove memory allocation error message
  drm: rcar-du: Remove test for impossible error condition
  drm: rcar-du: Bring HDMI encoder comments in line with the driver
  drm: rcar-du: Constify node argument to rcar_du_lvds_connector_init()
  video: of: Constify node argument to display timing functions
2016-11-16 09:39:21 +10:00
Laurent Pinchart
f5a000c9f8 video: of: Constify node argument to display timing functions
The node pointer passed to the display timing functions is never
modified, make it const.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-11-14 03:35:00 +02:00
Dave Airlie
628d16555e Merge tag 'imx-drm-next-2016-11-10' of git://git.pengutronix.de/git/pza/linux into drm-next
imx-drm plane update cleanup, YUV formats

- request modeset if plane offsets changed, only the plane base
  address can be changed without disabling the plane IDMAC channel.
- cleanup of plane atomic_update
- remove unused ipu_cpmem_set_yuv_planar function
- support YUV 4:4:4, 4:2:2, NV12 and NV16 plane formats
- not only mask interrupts during irq init, also clear them
- remove a legacy check from imx-ldb
- add support to set the CSI downsizing bits
- silence an obnoxious warning during modeset

* tag 'imx-drm-next-2016-11-10' of git://git.pengutronix.de/git/pza/linux:
  gpu: ipu-di: silence videomode logspam
  gpu: ipu-v3: add ipu_csi_set_downsize
  drm/imx: imx-ldb: remove unnecessary double disable check
  gpu: ipu-v3: initially clear all interrupts
  drm/imx: ipuv3-plane: add support for YUV 4:2:2 and 4:4:4, NV12, and NV16 formats
  gpu: ipu-v3: add YUV 4:4:4 support
  gpu: ipu-cpmem: remove unused ipu_cpmem_set_yuv_planar function
  drm/imx: ipuv3-plane: let drm_plane_state_to_ubo/vbo handle chroma subsampling other than 4:2:0
  drm/imx: ipuv3-plane: merge ipu_plane_atomic_set_base into atomic_update
  drm/imx: ipuv3-plane: request modeset if plane offsets changed
2016-11-11 09:31:27 +10:00
Philipp Zabel
867341b958 gpu: ipu-v3: add ipu_csi_set_downsize
Support downsizing to 1/2 width and/or height in the CSI.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2016-11-07 15:17:47 +01:00
Peter Ujfalusi
e886fecbe7 video: display_timing: Add flags to select the edge when the sync is driven
The sync can be - and for some panels it must be - driven on different edge
then the data.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-11-02 10:48:18 +02:00
Philipp Zabel
9c24d680de gpu: ipu-cpmem: remove unused ipu_cpmem_set_yuv_planar function
ipu_cpmem_set_yuv_planar_full is only used directly, remove the wrapper.

Suggested-by: Liu Ying <gnuiyl@gmail.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Liu Ying <gnuiyl@gmail.com>
2016-10-20 14:40:02 +02:00