mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-08-20 02:51:09 +00:00
* refs/heads/tmp-a483478:
UPSTREAM: arm64: vdso: Build vDSO with -ffixed-x18
Revert "drm/dsi: Fix byte order of DCS set/get brightness"
Reverting below patches from android-4.19-stable.125
Linux 4.19.125
rxrpc: Fix ack discard
rxrpc: Trace discarded ACKs
iio: adc: stm32-dfsdm: fix device used to request dma
iio: adc: stm32-dfsdm: Use dma_request_chan() instead dma_request_slave_channel()
iio: adc: stm32-adc: fix device used to request dma
iio: adc: stm32-adc: Use dma_request_chan() instead dma_request_slave_channel()
x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
rxrpc: Fix a memory leak in rxkad_verify_response()
rapidio: fix an error in get_user_pages_fast() error handling
ipack: tpci200: fix error return code in tpci200_register()
mei: release me_cl object reference
misc: rtsx: Add short delay after exit from ASPM
iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
iio: sca3000: Remove an erroneous 'get_device()'
staging: greybus: Fix uninitialized scalar variable
staging: iio: ad2s1210: Fix SPI reading
Revert "gfs2: Don't demote a glock until its revokes are written"
brcmfmac: abort and release host after error
tty: serial: qcom_geni_serial: Fix wrap around of TX buffer
cxgb4/cxgb4vf: Fix mac_hlist initialization and free
cxgb4: free mac_hlist properly
net: bcmgenet: abort suspend on error
net: bcmgenet: code movement
Revert "net/ibmvnic: Fix EOI when running in XIVE mode"
media: fdp1: Fix R-Car M3-N naming in debug message
thunderbolt: Drop duplicated get_switch_at_route()
staging: most: core: replace strcpy() by strscpy()
libnvdimm/btt: Fix LBA masking during 'free list' population
libnvdimm/btt: Remove unnecessary code in btt_freelist_init
nfit: Add Hyper-V NVDIMM DSM command set to white list
powerpc/64s: Disable STRICT_KERNEL_RWX
powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.
dmaengine: owl: Use correct lock in owl_dma_get_pchan()
dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
apparmor: Fix aa_label refcnt leak in policy_update
apparmor: fix potential label refcnt leak in aa_change_profile
apparmor: Fix use-after-free in aa_audit_rule_init
drm/etnaviv: fix perfmon domain interation
ALSA: hda/realtek - Add more fixup entries for Clevo machines
ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
ALSA: pcm: fix incorrect hw_base increase
ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio option
padata: purge get_cpu and reorder_via_wq from padata_do_serial
padata: initialize pd->cpu with effective cpumask
padata: Replace delayed timer with immediate workqueue in padata_reorder
ARM: futex: Address build warning
platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
USB: core: Fix misleading driver bug report
stmmac: fix pointer check after utilization in stmmac_interrupt
ceph: fix double unlock in handle_cap_export()
HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
x86/apic: Move TSC deadline timer debug printk
HID: i2c-hid: reset Synaptics SYNA2393 on resume
scsi: ibmvscsi: Fix WARN_ON during event pool release
component: Silence bind error on -EPROBE_DEFER
aquantia: Fix the media type of AQC100 ethernet controller in the driver
vhost/vsock: fix packet delivery order to monitoring devices
configfs: fix config_item refcnt leak in configfs_rmdir()
scsi: qla2xxx: Delete all sessions before unregister local nvme port
scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
HID: alps: Add AUI1657 device ID
HID: multitouch: add eGalaxTouch P80H84 support
gcc-common.h: Update for GCC 10
ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'
iommu/amd: Fix over-read of ACPI UID from IVRS table
ubifs: remove broken lazytime support
fix multiplication overflow in copy_fdtable()
mtd: spinand: Propagate ECC information to the MTD structure
ima: Fix return value of ima_write_policy()
evm: Check also if *tfm is an error pointer in init_desc()
ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
riscv: set max_pfn to the PFN of the last page
KVM: SVM: Fix potential memory leak in svm_cpu_init()
i2c: dev: Fix the race between the release of i2c_dev and cdev
ubsan: build ubsan.c more conservatively
x86/uaccess, ubsan: Fix UBSAN vs. SMAP
ANDROID: scsi: ufs: Handle clocks when lrbp fails
ANDROID: fscrypt: handle direct I/O with IV_INO_LBLK_32
BACKPORT: FROMLIST: fscrypt: add support for IV_INO_LBLK_32 policies
ANDROID: Update the ABI xml and qcom whitelist
ANDROID: Fix build.config.gki-debug
Linux 4.19.124
Makefile: disallow data races on gcc-10 as well
KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
ARM: dts: r8a7740: Add missing extal2 to CPG node
arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
ARM: dts: r8a73a4: Add missing CMT1 interrupts
arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards
clk: Unlink clock if failed to prepare or enable
Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
usb: gadget: legacy: fix error return code in cdc_bind()
usb: gadget: legacy: fix error return code in gncm_bind()
usb: gadget: audio: Fix a missing error return value in audio_bind()
usb: gadget: net2272: Fix a memory leak in an error handling path in 'net2272_plat_probe()'
dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
exec: Move would_dump into flush_old_exec
x86/unwind/orc: Fix error handling in __unwind_start()
x86: Fix early boot crash on gcc-10, third try
cifs: fix leaked reference on requeued write
ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
ARM: dts: dra7: Fix bus_dma_limit for PCIe
usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
USB: gadget: fix illegal array access in binding with UDC
usb: host: xhci-plat: keep runtime active when removing host
usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
gcc-10: avoid shadowing standard library 'free()' in crypto
gcc-10: disable 'restrict' warning for now
gcc-10: disable 'stringop-overflow' warning for now
gcc-10: disable 'array-bounds' warning for now
gcc-10: disable 'zero-length-bounds' warning for now
Stop the ad-hoc games with -Wno-maybe-initialized
kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig
gcc-10 warnings: fix low-hanging fruit
pnp: Use list_for_each_entry() instead of open coding
hwmon: (da9052) Synchronize access with mfd
IB/mlx4: Test return value of calls to ib_get_cached_pkey
netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
arm64: fix the flush_icache_range arguments in machine_kexec
netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
nfs: fscache: use timespec64 in inode auxdata
NFS: Fix fscache super_cookie index_key from changing after umount
mmc: block: Fix request completion in the CQE timeout path
mmc: core: Check request type before completing the request
i40iw: Fix error handling in i40iw_manage_arp_cache()
pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
pinctrl: baytrail: Enable pin configuration setting for GPIO chip
gfs2: Another gfs2_walk_metadata fix
ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
ALSA: hda/hdmi: fix race in monitor detection during probe
cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
dmaengine: mmp_tdma: Reset channel error on release
dmaengine: pch_dma.c: Avoid data race between probe and irq handler
riscv: fix vdso build with lld
tcp: fix SO_RCVLOWAT hangs with fat skbs
net: tcp: fix rx timestamp behavior for tcp_recvmsg
netprio_cgroup: Fix unlimited memory leak of v2 cgroups
net: ipv4: really enforce backoff for redirects
net: dsa: loop: Add module soft dependency
hinic: fix a bug of ndo_stop
virtio_net: fix lockdep warning on 32 bit
tcp: fix error recovery in tcp_zerocopy_receive()
Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
pppoe: only process PADT targeted at local interfaces
net: phy: fix aneg restart in phy_ethtool_set_eee
netlabel: cope with NULL catmap
net: fix a potential recursive NETDEV_FEAT_CHANGE
mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
scsi: sg: add sg_remove_request in sg_write
virtio-blk: handle block_device_operations callbacks after hot unplug
drop_monitor: work around gcc-10 stringop-overflow warning
net: moxa: Fix a potential double 'free_irq()'
net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
shmem: fix possible deadlocks on shmlock_user_lock
net: dsa: Do not make user port errors fatal
ANDROID: rtc: class: call hctosys in resource managed registration
ANDROID: GKI: Update the ABI xml and whitelist
ANDROID: power_supply: Add RTX power-supply property
f2fs: flush dirty meta pages when flushing them
f2fs: fix checkpoint=disable:%u%%
f2fs: rework filename handling
f2fs: split f2fs_d_compare() from f2fs_match_name()
f2fs: don't leak filename in f2fs_try_convert_inline_dir()
ANDROID: clang: update to 11.0.1
FROMLIST: x86_64: fix jiffies ODR violation
ANDROID: arm64: vdso: Fix removing SCS flags
ANDROID: GKI: Update the ABI xml and whitelist
ANDROID: Incremental fs: wake up log pollers less often
ANDROID: Incremental fs: Fix scheduling while atomic error
ANDROID: Incremental fs: Avoid continually recalculating hashes
ANDROID: export: Disable symbol trimming on modules
ANDROID: GKI: Update the ABI xml and whitelist
ANDROID: fscrypt: set dun_bytes more precisely
ANDROID: dm-default-key: set dun_bytes more precisely
ANDROID: block: backport the ability to specify max_dun_bytes
ANDROID: Revert "ANDROID: GKI: gki_defconfig: CONFIG_DM_DEFAULT_KEY=m"
Linux 4.19.123
ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
scripts/decodecode: fix trapping instruction formatting
objtool: Fix stack offset tracking for indirect CFAs
netfilter: nf_osf: avoid passing pointer to local var
netfilter: nat: never update the UDP checksum when it's 0
x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
x86/unwind/orc: Fix error path for bad ORC entry type
x86/unwind/orc: Prevent unwinding before ORC initialization
x86/unwind/orc: Don't skip the first frame for inactive tasks
x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
x86/entry/64: Fix unwind hints in kernel exit path
x86/entry/64: Fix unwind hints in register clearing code
batman-adv: Fix refcnt leak in batadv_v_ogm_process
batman-adv: Fix refcnt leak in batadv_store_throughput_override
batman-adv: Fix refcnt leak in batadv_show_throughput_override
batman-adv: fix batadv_nc_random_weight_tq
KVM: VMX: Mark RCX, RDX and RSI as clobbered in vmx_vcpu_run()'s asm blob
KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm blobs
coredump: fix crash when umh is disabled
staging: gasket: Check the return value of gasket_get_bar_index()
mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
arm64: hugetlb: avoid potential NULL dereference
KVM: arm64: Fix 32bit PC wrap-around
KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
tracing: Add a vmalloc_sync_mappings() for safe measure
USB: serial: garmin_gps: add sanity checking for data length
USB: uas: add quirk for LaCie 2Big Quadra
HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
net: stricter validation of untrusted gso packets
bnxt_en: Fix VF anti-spoof filter setup.
bnxt_en: Improve AER slot reset.
net/mlx5: Fix command entry leak in Internal Error State
net/mlx5: Fix forced completion access non initialized command entry
bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
tipc: fix partial topology connection closure
sch_sfq: validate silly quantum values
sch_choke: avoid potential panic in choke_reset()
net: usb: qmi_wwan: add support for DW5816e
net_sched: sch_skbprio: add message validation to skbprio_change()
net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
net: macsec: preserve ingress frame ordering
fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
dp83640: reverse arguments to list_add_tail
vt: fix unicode console freeing with a common interface
tracing/kprobes: Fix a double initialization typo
USB: serial: qcserial: Add DW5816e support
ANDROID: usb: gadget: Add missing inline qualifier to stub functions
ANDROID: Drop ABI monitoring from KASAN build config
ANDROID: Rename build.config.gki.arch_kasan
ANDROID: GKI: Enable CONFIG_STATIC_USERMODEHELPER
ANDROID: dm-default-key: Update key size for wrapped keys
ANDROID: gki_defconfig: enable CONFIG_MMC_CRYPTO
ANDROID: mmc: MMC crypto API
ANDROID: GKI: Update the ABI xml and whitelist
ANDROID: GKI: add missing exports for cam_smmu_api.ko
Linux 4.19.122
drm/atomic: Take the atomic toys away from X
cgroup, netclassid: remove double cond_resched
mac80211: add ieee80211_is_any_nullfunc()
platform/x86: GPD pocket fan: Fix error message when temp-limits are out of range
ALSA: hda: Match both PCI ID and SSID for driver blacklist
hexagon: define ioremap_uc
hexagon: clean up ioremap
mfd: intel-lpss: Use devm_ioremap_uc for MMIO
lib: devres: add a helper function for ioremap_uc
drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
net: systemport: suppress warnings on failed Rx SKB allocations
net: bcmgenet: suppress warnings on failed Rx SKB allocations
lib/mpi: Fix building for powerpc with clang
scripts/config: allow colons in option strings for sed
s390/ftrace: fix potential crashes when switching tracers
cifs: protect updating server->dstaddr with a spinlock
ASoC: rsnd: Fix "status check failed" spam for multi-SSI
ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent
net: stmmac: Fix sub-second increment
net: stmmac: fix enabling socfpga's ptp_ref_clock
wimax/i2400m: Fix potential urb refcnt leak
drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii)
ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode
usb: dwc3: gadget: Properly set maxpacket limit
ASoC: sgtl5000: Fix VAG power-on handling
selftests/ipc: Fix test failure seen after initial test run
ASoC: topology: Check return value of pcm_new_ver
powerpc/pci/of: Parse unassigned resources
vhost: vsock: kick send_pkt worker once device is started
ANDROID: GKI: fix build warning on 32bits due to ASoC msm change
ANDROID: GKI: fix build error on 32bits due to ASoC msm change
ANDROID: GKI: update abi definition due to FAIR_GROUP_SCHED removal
ANDROID: GKI: Remove FAIR_GROUP_SCHED
ANDROID: GKI: BULK update ABI XML representation and qcom whitelist
ANDROID: build.config.gki.aarch64: Enable WHITELIST_STRICT_MODE
ANDROID: GKI: Update the ABI xml and qcom whitelist
ANDROID: remove unused variable
ANDROID: Drop ABI monitoring from KASAN build config
Linux 4.19.121
mmc: meson-mx-sdio: remove the broken ->card_busy() op
mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
mmc: sdhci-msm: Enable host capabilities pertains to R1b response
mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
mmc: sdhci-xenon: fix annoying 1.8V regulator warning
mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout loop
btrfs: transaction: Avoid deadlock due to bad initialization timing of fs_info::journal_info
btrfs: fix partial loss of prealloc extent past i_size after fsync
selinux: properly handle multiple messages in selinux_netlink_send()
dmaengine: dmatest: Fix iteration non-stop logic
nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
ALSA: opti9xx: shut up gcc-10 range warning
iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
scsi: target/iblock: fix WRITE SAME zeroing
iommu/qcom: Fix local_base status check
vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
RDMA/core: Fix race between destroy and release FD object
RDMA/core: Prevent mixed use of FDs between shared ufiles
RDMA/mlx4: Initialize ib_spec on the stack
RDMA/mlx5: Set GRH fields in query QP on RoCE
scsi: qla2xxx: check UNLOADING before posting async work
scsi: qla2xxx: set UNLOADING before waiting for session deletion
dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
dm writecache: fix data corruption when reloading the target
dm verity fec: fix hash block number in verity_fec_decode
PM: hibernate: Freeze kernel threads in software_resume()
PM: ACPI: Output correct message on target power state
ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
ALSA: hda/hdmi: fix without unlocked before return
ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
btrfs: fix block group leak when removing fails
drm/qxl: qxl_release use after free
drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
drm/edid: Fix off-by-one in DispID DTD pixel clock
ANDROID: GKI: Bulk update ABI XML representation
ANDROID: GKI: Enable net testing options
ANDROID: gki_defconfig: Enable CONFIG_REMOTEPROC
ANDROID: Rename build.config.gki.arch_kasan
ANDROID: GKI: Update ABI for IOMMU
ANDROID: Incremental fs: Fix issues with very large files
ANDROID: Correct build.config branch name
ANDROID: GKI: Bulk update ABI XML representation and whitelist.
UPSTREAM: vdso: Fix clocksource.h macro detection
ANDROID: GKI: update abi definition due to added padding
ANDROID: GKI: networking: add Android ABI padding to a lot of networking structures
ANDROID: GKI: dma-mapping.h: add Android ABI padding to a structure
ANDROID: GKI: ioport.h: add Android ABI padding to a structure
ANDROID: GKI: iomap.h: add Android ABI padding to a structure
ANDROID: GKI: genhd.h: add Android ABI padding to some structures
ANDROID: GKI: hrtimer.h: add Android ABI padding to a structure
ANDROID: GKI: ethtool.h: add Android ABI padding to a structure
ANDROID: GKI: sched: add Android ABI padding to some structures
ANDROID: GKI: kernfs.h: add Android ABI padding to some structures
ANDROID: GKI: kobject.h: add Android ABI padding to some structures
ANDROID: GKI: mm.h: add Android ABI padding to a structure
ANDROID: GKI: mmu_notifier.h: add Android ABI padding to some structures
ANDROID: GKI: pci: add Android ABI padding to some structures
ANDROID: GKI: irqdomain.h: add Android ABI padding to a structure
ANDROID: GKI: blk_types.h: add Android ABI padding to a structure
ANDROID: GKI: scsi.h: add Android ABI padding to a structure
ANDROID: GKI: quota.h: add Android ABI padding to some structures
ANDROID: GKI: timer.h: add Android ABI padding to a structure
ANDROID: GKI: user_namespace.h: add Android ABI padding to a structure
FROMGIT: f2fs: fix missing check for f2fs_unlock_op
Linux 4.19.120
propagate_one(): mnt_set_mountpoint() needs mount_lock
ext4: check for non-zero journal inum in ext4_calculate_overhead
qed: Fix use after free in qed_chain_free
bpf, x86_32: Fix clobbering of dst for BPF_JSET
hwmon: (jc42) Fix name to have no illegal characters
ext4: convert BUG_ON's to WARN_ON's in mballoc.c
ext4: increase wait time needed before reuse of deleted inode numbers
ext4: use matching invalidatepage in ext4_writepage
arm64: Delete the space separator in __emit_inst
ALSA: hda: call runtime_allow() for all hda controllers
xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
objtool: Support Clang non-section symbols in ORC dump
objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
scsi: target: fix PR IN / READ FULL STATUS for FC
ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported
ALSA: hda: Keep the controller initialization even if no codecs found
xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
x86: hyperv: report value of misc_features
net: fec: set GPR bit on suspend by DT configuration.
bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
xfs: clear PF_MEMALLOC before exiting xfsaild thread
mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
perf/core: fix parent pid/tid in task exit events
net/mlx5: Fix failing fw tracer allocation on s390
cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled
ARM: dts: bcm283x: Disable dsi0 node
PCI: Move Apex Edge TPU class quirk to fix BAR assignment
PCI: Avoid ASMedia XHCI USB PME# from D0 defect
svcrdma: Fix leak of svc_rdma_recv_ctxt objects
svcrdma: Fix trace point use-after-free race
xfs: acquire superblock freeze protection on eofblocks scans
net/cxgb4: Check the return from t4_query_params properly
rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
i2c: altera: use proper variable to hold errno
nfsd: memory corruption in nfsd4_lock()
ASoC: wm8960: Fix wrong clock after suspend & resume
ASoC: tas571x: disable regulators on failed probe
ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs
iio:ad7797: Use correct attribute_group
usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
usb: dwc3: gadget: Do link recovery for SS and SSP
binder: take read mode of mmap_sem in binder_alloc_free_page()
include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap
mtd: cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer
remoteproc: Fix wrong rvring index computation
FROMLIST: PM / devfreq: Restart previous governor if new governor fails to start
ANDROID: GKI: arm64: Enable GZIP and LZ4 kernel compression modes
ANDROID: GKI: arm64: gki_defconfig: Set arm_smmu configuration
ANDROID: GKI: iommu/arm-smmu: Modularize ARM SMMU driver
ANDROID: GKI: iommu: Snapshot of vendor changes
ANDROID: GKI: Additions to ARM SMMU register definitions
ANDROID: GKI: iommu/io-pgtable-arm: LPAE related updates by vendor
ANDROID: GKI: common: dma-mapping: make dma_common_contiguous_remap more robust
ANDROID: GKI: dma-coherent: Expose device base address and size
ANDROID: GKI: arm64: add support for NO_KERNEL_MAPPING and STRONGLY_ORDERED
ANDROID: GKI: dma-mapping: Add dma_remap functions
ANDROID: GKI: arm64: Support early fixup for CMA
ANDROID: GKI: iommu: dma-mapping-fast: Fast ARMv7/v8 Long Descriptor Format
ANDROID: GKI: arm64: dma-mapping: add support for IOMMU mapper
ANDROID: GKI: add ARCH_NR_GPIO for ABI match
ANDROID: GKI: kernel: Export symbol of `cpu_do_idle`
ANDROID: GKI: kernel: Export symbols needed by msm_minidump.ko and minidump_log.ko (again)
ANDROID: GKI: add missing exports for __flush_dcache_area
ANDROID: GKI: arm64: Export caching APIs
ANDROID: GKI: arm64: provide dma cache routines with same API as 32 bit
ANDROID: gki_defconfig: add FORTIFY_SOURCE, remove SPMI_MSM_PMIC_ARB
Revert "ANDROID: GKI: spmi: pmic-arb: don't enable SPMI_MSM_PMIC_ARB by default"
ANDROID: GKI: update abi definitions after adding padding
ANDROID: GKI: elevator: add Android ABI padding to some structures
ANDROID: GKI: dentry: add Android ABI padding to some structures
ANDROID: GKI: bio: add Android ABI padding to some structures
ANDROID: GKI: scsi: add Android ABI padding to some structures
ANDROID: GKI: ufs: add Android ABI padding to some structures
ANDROID: GKI: workqueue.h: add Android ABI padding to some structures
ANDROID: GKI: fs.h: add Android ABI padding to some structures
ANDROID: GKI: USB: add Android ABI padding to some structures
ANDROID: GKI: mm: add Android ABI padding to some structures
ANDROID: GKI: mount.h: add Android ABI padding to some structures
ANDROID: GKI: sched.h: add Android ABI padding to some structures
ANDROID: GKI: sock.h: add Android ABI padding to some structures
ANDROID: GKI: module.h: add Android ABI padding to some structures
ANDROID: GKI: device.h: add Android ABI padding to some structures
ANDROID: GKI: phy: add Android ABI padding to some structures
ANDROID: GKI: add android_kabi.h
ANDROID: ABI: update due to previous changes in the tree
BACKPORT: sched/core: Fix reset-on-fork from RT with uclamp
ANDROID: GKI: Add support for missing V4L2 symbols
ANDROID: GKI: Bulk update ABI XML representation
ANDROID: GKI: arm64: psci: Support for OS initiated scheme
ANDROID: GKI: net: add counter for number of frames coalesced in GRO
ANDROID: GKI: cfg80211: Include length of kek in rekey data
BACKPORT: loop: change queue block size to match when using DIO
ANDROID: Incremental fs: Add setattr call
ANDROID: GKI: enable CONFIG_RTC_SYSTOHC
ANDROID: GKI: ipv4: add vendor padding to __IPV4_DEVCONF_* enums
Revert "ANDROID: GKI: ipv4: increase __IPV4_DEVCONF_MAX to 64"
ANDROID: driver: gpu: drm: fix export symbol types
ANDROID: SoC: core: fix export symbol type
ANDROID: ufshcd-crypto: fix export symbol type
ANDROID: GKI: drivers: mailbox: fix race resulting in multiple message submission
ANDROID: GKI: arm64: gki_defconfig: Enable a few thermal configs
Revert "ANDROID: GKI: add base.h include to match MODULE_VERSIONS"
FROMLIST: thermal: Make cooling device trip point writable from sysfs
ANDROID: GKI: drivers: thermal: cpu_cooling: Use CPU ID as cooling device ID
ANDROID: GKI: PM / devfreq: Allow min freq to be 0
ANDROID: GKI: arm64: gki_defconfig: Enable REGULATOR_PROXY_CONSUMER
ANDROID: GKI: Bulk Update ABI XML representation
ANDROID: KASAN support for GKI remove CONFIG_CC_WERROR
ANDROID: KASAN support for GKI
ANDROID: virt_wifi: fix export symbol types
ANDROID: vfs: fix export symbol type
ANDROID: vfs: fix export symbol types
ANDROID: fscrypt: fix export symbol type
ANDROID: cfi: fix export symbol types
ANDROID: bpf: fix export symbol type
Linux 4.19.119
s390/mm: fix page table upgrade vs 2ndary address mode accesses
xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
serial: sh-sci: Make sure status register SCxSR is read in correct sequence
xhci: prevent bus suspend if a roothub port detected a over-current condition
usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
usb: dwc3: gadget: Fix request completion check
UAS: fix deadlock in error handling and PM flushing work
UAS: no use logging any details in case of ENODEV
cdc-acm: introduce a cool down
cdc-acm: close race betrween suspend() and acm_softint
staging: vt6656: Power save stop wake_up_count wrap around.
staging: vt6656: Fix pairwise key entry save.
staging: vt6656: Fix drivers TBTT timing counter.
staging: vt6656: Fix calling conditions of vnt_set_bss_mode
staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
vt: don't use kmalloc() for the unicode screen buffer
vt: don't hardcode the mem allocation upper bound
staging: comedi: Fix comedi_device refcnt leak in comedi_open
staging: comedi: dt2815: fix writing hi byte of analog output
powerpc/setup_64: Set cache-line-size based on cache-block-size
ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
iwlwifi: mvm: beacon statistics shouldn't go backwards
iwlwifi: pcie: actually release queue memory in TVQM
ASoC: dapm: fixup dapm kcontrol widget
audit: check the length of userspace generated audit records
usb-storage: Add unusual_devs entry for JMicron JMS566
tty: rocket, avoid OOB access
tty: hvc: fix buffer overflow during hvc_alloc().
KVM: VMX: Enable machine check support for 32bit targets
KVM: Check validity of resolved slot when searching memslots
KVM: s390: Return last valid slot if approx index is out-of-bounds
tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
tpm/tpm_tis: Free IRQ if probing fails
ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
ALSA: hda/realtek - Add new codec supported for ALC245
ALSA: hda/realtek - Fix unexpected init_amp override
ALSA: usx2y: Fix potential NULL dereference
tools/vm: fix cross-compile build
mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
mm/hugetlb: fix a addressing exception caused by huge_pte_offset
vmalloc: fix remap_vmalloc_range() bounds checks
USB: hub: Fix handling of connect changes during sleep
USB: core: Fix free-while-in-use bug in the USB S-Glibrary
USB: early: Handle AMD's spec-compliant identifiers, too
USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
USB: sisusbvga: Change port variable from signed to unsigned
fs/namespace.c: fix mountpoint reference counter race
iio: xilinx-xadc: Make sure not exceed maximum samplerate
iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
iio: xilinx-xadc: Fix ADC-B powerdown
iio: adc: stm32-adc: fix sleep in atomic context
iio: st_sensors: rely on odr mask to know if odr can be set
iio: core: remove extra semi-colon from devm_iio_device_register() macro
ALSA: usb-audio: Add connector notifier delegation
ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
ALSA: hda: Remove ASUS ROG Zenith from the blacklist
KEYS: Avoid false positive ENOMEM error on key read
mlxsw: Fix some IS_ERR() vs NULL bugs
vrf: Check skb for XFRM_TRANSFORMED flag
xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
net: dsa: b53: Rework ARL bin logic
net: dsa: b53: Fix ARL register definitions
net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
vrf: Fix IPv6 with qdisc and xfrm
team: fix hang in team_mode_get()
tcp: cache line align MAX_TCP_HEADER
sched: etf: do not assume all sockets are full blown
net/x25: Fix x25_neigh refcnt leak when receiving frame
net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array
net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
net: bcmgenet: correct per TX/RX ring statistics
macvlan: fix null dereference in macvlan_device_event()
macsec: avoid to set wrong mtu
ipv6: fix restrict IPV6_ADDRFORM operation
cxgb4: fix large delays in PTP synchronization
cxgb4: fix adapter crash due to wrong MC size
x86/KVM: Clean up host's steal time structure
x86/KVM: Make sure KVM_VCPU_FLUSH_TLB flag is not missed
x86/kvm: Cache gfn to pfn translation
x86/kvm: Introduce kvm_(un)map_gfn()
KVM: Properly check if "page" is valid in kvm_vcpu_unmap
kvm: fix compile on s390 part 2
kvm: fix compilation on s390
kvm: fix compilation on aarch64
KVM: Introduce a new guest mapping API
KVM: nVMX: Always sync GUEST_BNDCFGS when it comes from vmcs01
KVM: VMX: Zero out *all* general purpose registers after VM-Exit
f2fs: fix to avoid memory leakage in f2fs_listxattr
blktrace: fix dereference after null check
blktrace: Protect q->blk_trace with RCU
net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
net: ipv6: add net argument to ip6_dst_lookup_flow
PCI/ASPM: Allow re-enabling Clock PM
scsi: smartpqi: fix call trace in device discovery
virtio-blk: improve virtqueue error to BLK_STS
tracing/selftests: Turn off timeout setting
drm/amd/display: Not doing optimize bandwidth if flip pending.
xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
perf/core: Disable page faults when getting phys address
pwm: bcm2835: Dynamically allocate base
pwm: renesas-tpu: Fix late Runtime PM enablement
Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled"
loop: Better discard support for block devices
s390/cio: avoid duplicated 'ADD' uevents
kconfig: qconf: Fix a few alignment issues
ipc/util.c: sysvipc_find_ipc() should increase position index
selftests: kmod: fix handling test numbers above 9
kernel/gcov/fs.c: gcov_seq_next() should increase position index
nvme: fix deadlock caused by ANA update wrong locking
ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map()
scsi: iscsi: Report unbind session event when the target has been removed
pwm: rcar: Fix late Runtime PM enablement
ceph: don't skip updating wanted caps when cap is stale
ceph: return ceph_mdsc_do_request() errors from __get_parent()
scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
watchdog: reset last_hw_keepalive time at start
arm64: Silence clang warning on mismatched value/register sizes
arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space
arm64: Fake the IminLine size on systems affected by Neoverse-N1 #1542419
arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
arm64: Add part number for Neoverse N1
vti4: removed duplicate log message.
crypto: mxs-dcp - make symbols 'sha1_null_hash' and 'sha256_null_hash' static
bpftool: Fix printing incorrect pointer in btf_dump_ptr
drm/msm: Use the correct dma_sync calls harder
ext4: fix extent_status fragmentation for plain files
ANDROID: abi_gki_aarch64_cuttlefish_whitelist: remove stale symbols
ANDROID: GKI: ipv4: increase __IPV4_DEVCONF_MAX to 64
ANDROID: GKI: power: add missing export for POWER_RESET_QCOM=m
BACKPORT: cfg80211: Support key configuration for Beacon protection (BIGTK)
BACKPORT: cfg80211: Enhance the AKM advertizement to support per interface.
UPSTREAM: sysrq: Use panic() to force a crash
ANDROID: GKI: kernel: sound: update codec options with block size
ANDROID: add compat cross compiler
ANDROID: x86/vdso: disable LTO only for VDSO
BACKPORT: arm64: vdso32: Enable Clang Compilation
UPSTREAM: arm64: compat: vdso: Expose BUILD_VDSO32
BACKPORT: lib/vdso: Enable common headers
BACKPORT: arm: vdso: Enable arm to use common headers
BACKPORT: x86/vdso: Enable x86 to use common headers
BACKPORT: mips: vdso: Enable mips to use common headers
UPSTREAM: arm64: vdso32: Include common headers in the vdso library
UPSTREAM: arm64: vdso: Include common headers in the vdso library
UPSTREAM: arm64: Introduce asm/vdso/processor.h
BACKPORT: arm64: vdso32: Code clean up
UPSTREAM: linux/elfnote.h: Replace elf.h with UAPI equivalent
UPSTREAM: scripts: Fix the inclusion order in modpost
UPSTREAM: common: Introduce processor.h
UPSTREAM: linux/ktime.h: Extract common header for vDSO
UPSTREAM: linux/jiffies.h: Extract common header for vDSO
UPSTREAM: linux/time64.h: Extract common header for vDSO
BACKPORT: linux/time32.h: Extract common header for vDSO
BACKPORT: linux/time.h: Extract common header for vDSO
UPSTREAM: linux/math64.h: Extract common header for vDSO
BACKPORT: linux/clocksource.h: Extract common header for vDSO
BACKPORT: mips: Introduce asm/vdso/clocksource.h
BACKPORT: arm64: Introduce asm/vdso/clocksource.h
BACKPORT: arm: Introduce asm/vdso/clocksource.h
BACKPORT: x86: Introduce asm/vdso/clocksource.h
UPSTREAM: linux/limits.h: Extract common header for vDSO
BACKPORT: linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h>
BACKPORT: linux/bits.h: Extract common header for vDSO
UPSTREAM: linux/const.h: Extract common header for vDSO
BACKPORT: arm64: vdso: fix flip/flop vdso build bug
UPSTREAM: lib/vdso: Allow the high resolution parts to be compiled out
UPSTREAM: lib/vdso: Only read hrtimer_res when needed in __cvdso_clock_getres()
UPSTREAM: lib/vdso: Mark do_hres() and do_coarse() as __always_inline
UPSTREAM: lib/vdso: Avoid duplication in __cvdso_clock_getres()
UPSTREAM: lib/vdso: Let do_coarse() return 0 to simplify the callsite
UPSTREAM: lib/vdso: Remove checks on return value for 32 bit vDSO
UPSTREAM: lib/vdso: Build 32 bit specific functions in the right context
UPSTREAM: lib/vdso: Make __cvdso_clock_getres() static
UPSTREAM: lib/vdso: Make clock_getres() POSIX compliant again
UPSTREAM: lib/vdso/32: Provide legacy syscall fallbacks
UPSTREAM: lib/vdso: Move fallback invocation to the callers
UPSTREAM: lib/vdso/32: Remove inconsistent NULL pointer checks
UPSTREAM: lib/vdso: Make delta calculation work correctly
UPSTREAM: arm64: compat: Fix syscall number of compat_clock_getres
BACKPORT: arm64: lse: Fix LSE atomics with LLVM
UPSTREAM: mips: Fix gettimeofday() in the vdso library
UPSTREAM: mips: vdso: Fix __arch_get_hw_counter()
BACKPORT: arm64: Kconfig: Make CONFIG_COMPAT_VDSO a proper Kconfig option
UPSTREAM: arm64: vdso32: Rename COMPATCC to CC_COMPAT
UPSTREAM: arm64: vdso32: Pass '--target' option to clang via VDSO_CAFLAGS
UPSTREAM: arm64: vdso32: Don't use KBUILD_CPPFLAGS unconditionally
UPSTREAM: arm64: vdso32: Move definition of COMPATCC into vdso32/Makefile
UPSTREAM: arm64: Default to building compat vDSO with clang when CONFIG_CC_IS_CLANG
UPSTREAM: lib: vdso: Remove CROSS_COMPILE_COMPAT_VDSO
UPSTREAM: arm64: vdso32: Remove jump label config option in Makefile
UPSTREAM: arm64: vdso32: Detect binutils support for dmb ishld
BACKPORT: arm64: vdso: Remove stale files from old assembly implementation
UPSTREAM: arm64: vdso32: Fix broken compat vDSO build warnings
UPSTREAM: mips: compat: vdso: Use legacy syscalls as fallback
BACKPORT: arm64: Relax Documentation/arm64/tagged-pointers.rst
BACKPORT: arm64: Add tagged-address-abi.rst to index.rst
UPSTREAM: arm64: vdso: Fix Makefile regression
UPSTREAM: mips: vdso: Fix flip/flop vdso building bug
UPSTREAM: mips: vdso: Fix source path
UPSTREAM: mips: Add clock_gettime64 entry point
UPSTREAM: mips: Add clock_getres entry point
BACKPORT: mips: Add support for generic vDSO
BACKPORT: arm64: vdso: Explicitly add build-id option
BACKPORT: arm64: vdso: use $(LD) instead of $(CC) to link VDSO
BACKPORT: arm64: vdso: Cleanup Makefiles
UPSTREAM: arm64: vdso: Fix population of AT_SYSINFO_EHDR for compat vdso
UPSTREAM: arm64: vdso: Fix compilation with clang older than 8
UPSTREAM: arm64: compat: Fix __arch_get_hw_counter() implementation
UPSTREAM: arm64: Fix __arch_get_hw_counter() implementation
UPSTREAM: x86/vdso/32: Use 32bit syscall fallback
UPSTREAM: x86/vdso: Fix flip/flop vdso build bug
UPSTREAM: x86/vdso: Give the [ph]vclock_page declarations real types
UPSTREAM: x86/vdso: Add clock_gettime64() entry point
BACKPORT: x86/vdso: Add clock_getres() entry point
BACKPORT: x86/vdso: Switch to generic vDSO implementation
UPSTREAM: x86/segments: Introduce the 'CPUNODE' naming to better document the segment limit CPU/node NR trick
UPSTREAM: x86/vdso: Initialize the CPU/node NR segment descriptor earlier
UPSTREAM: x86/vdso: Introduce helper functions for CPU and node number
UPSTREAM: x86/segments/64: Rename the GDT PER_CPU entry to CPU_NUMBER
BACKPORT: arm64: vdso: Enable vDSO compat support
UPSTREAM: arm64: compat: Get sigreturn trampolines from vDSO
UPSTREAM: arm64: elf: VDSO code page discovery
UPSTREAM: arm64: compat: VDSO setup for compat layer
UPSTREAM: arm64: vdso: Refactor vDSO code
BACKPORT: arm64: compat: Add vDSO
UPSTREAM: arm64: compat: Generate asm offsets for signals
UPSTREAM: arm64: compat: Expose signal related structures
UPSTREAM: arm64: compat: Add missing syscall numbers
BACKPORT: arm64: vdso: Substitute gettimeofday() with C implementation
UPSTREAM: timekeeping: Provide a generic update_vsyscall() implementation
UPSTREAM: lib/vdso: Add compat support
UPSTREAM: lib/vdso: Provide generic VDSO implementation
UPSTREAM: vdso: Define standardized vdso_datapage
UPSTREAM: hrtimer: Split out hrtimer defines into separate header
UPSTREAM: nds32: Fix vDSO clock_getres()
UPSTREAM: arm64: compat: Reduce address limit for 64K pages
BACKPORT: arm64: compat: Add KUSER_HELPERS config option
UPSTREAM: arm64: compat: Refactor aarch32_alloc_vdso_pages()
BACKPORT: arm64: compat: Split kuser32
UPSTREAM: arm64: compat: Alloc separate pages for vectors and sigpage
ANDROID: GKI: Update ABI XML representation
ANDROID: GKI: Enable GENERIC_IRQ_CHIP
ANDROID: GKI: power_supply: Add FG_TYPE power-supply property
ANDROID: GKI: mm: export mm_trace_rss_stat for modules to report RSS changes
ANDROID: GKI: gki_defconfig: Enable CONFIG_LEDS_TRIGGER_TRANSIENT
ANDROID: GKI: gki_defconfig: Enable CONFIG_CPU_FREQ_STAT
ANDROID: GKI: arm64: gki_defconfig: Disable HW tracing features
ANDROID: GKI: gki_defconfig: Enable CONFIG_I2C_CHARDEV
ANDROID: Incremental fs: Use simple compression in log buffer
ANDROID: GKI: usb: core: Add support to parse config summary capability descriptors
ANDROID: GKI: Update ABI XML representation
ANDROID: dm-bow: Fix not to skip trim at framented range
ANDROID: Remove VLA from uid_sys_stats.c
f2fs: fix missing check for f2fs_unlock_op
ANDROID: fix wakeup reason findings
UPSTREAM: cfg80211: fix and clean up cfg80211_gen_new_bssid()
UPSTREAM: cfg80211: save multi-bssid properties
UPSTREAM: cfg80211: make BSSID generation function inline
UPSTREAM: cfg80211: parse multi-bssid only if HW supports it
UPSTREAM: cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible
UPSTREAM: cfg80211: Properly track transmitting and non-transmitting BSS
UPSTREAM: cfg80211: use for_each_element() for multi-bssid parsing
UPSTREAM: cfg80211: Parsing of Multiple BSSID information in scanning
UPSTREAM: cfg80211/nl80211: Offload OWE processing to user space in AP mode
ANDROID: GKI: cfg80211: Sync nl80211 commands/feature with upstream
ANDROID: GKI: gki_defconfig: Enable FW_LOADER_USER_HELPER*
ANDROID: GKI: arm64: gki_defconfig: Disable CONFIG_ARM64_TAGGED_ADDR_ABI
ANDROID: GKI: gki_defconfig: CONFIG_CHR_DEV_SG=y
ANDROID: GKI: gki_defconfig: CONFIG_DM_DEFAULT_KEY=m
ANDROID: update the ABI xml representation
ANDROID: init: GKI: enable hidden configs for GPU
Linux 4.19.118
bpf: fix buggy r0 retval refinement for tracing helpers
KEYS: Don't write out to userspace while holding key semaphore
mtd: phram: fix a double free issue in error path
mtd: lpddr: Fix a double free in probe()
mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB
locktorture: Print ratio of acquisitions, not failures
tty: evh_bytechan: Fix out of bounds accesses
iio: si1133: read 24-bit signed integer for measurement
fbdev: potential information leak in do_fb_ioctl()
net: dsa: bcm_sf2: Fix overflow checks
f2fs: fix to wait all node page writeback
iommu/amd: Fix the configuration of GCR3 table root pointer
libnvdimm: Out of bounds read in __nd_ioctl()
power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks.
ext2: fix debug reference to ext2_xattr_cache
ext2: fix empty body warnings when -Wextra is used
iommu/vt-d: Fix mm reference leak
drm/vc4: Fix HDMI mode validation
f2fs: fix NULL pointer dereference in f2fs_write_begin()
NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
drm/amdkfd: kfree the wrong pointer
x86: ACPI: fix CPU hotplug deadlock
KVM: s390: vsie: Fix possible race when shadowing region 3 tables
compiler.h: fix error in BUILD_BUG_ON() reporting
percpu_counter: fix a data race at vm_committed_as
include/linux/swapops.h: correct guards for non_swap_entry()
cifs: Allocate encryption header through kmalloc
um: ubd: Prevent buffer overrun on command completion
ext4: do not commit super on read-only bdev
s390/cpum_sf: Fix wrong page count in error message
powerpc/maple: Fix declaration made after definition
s390/cpuinfo: fix wrong output when CPU0 is offline
NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
rtc: 88pm860x: fix possible race condition
soc: imx: gpc: fix power up sequencing
clk: tegra: Fix Tegra PMC clock out parents
power: supply: bq27xxx_battery: Silence deferred-probe error
clk: at91: usb: continue if clk_hw_round_rate() return zero
x86/Hyper-V: Report crash data in die() when panic_on_oops is set
x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set
x86/Hyper-V: Trigger crash enlightenment only once during system crash.
x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
x86/Hyper-V: Unload vmbus channel in hv panic callback
xsk: Add missing check on user supplied headroom size
rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
rbd: avoid a deadlock on header_rwsem when flushing notifies
video: fbdev: sis: Remove unnecessary parentheses and commented code
lib/raid6: use vdupq_n_u8 to avoid endianness warnings
x86/Hyper-V: Report crash register data or kmsg before running crash kernel
of: overlay: kmemleak in dup_and_fixup_symbol_prop()
of: unittest: kmemleak in of_unittest_overlay_high_level()
of: unittest: kmemleak in of_unittest_platform_populate()
of: unittest: kmemleak on changeset destroy
ALSA: hda: Don't release card at firmware loading error
irqchip/mbigen: Free msi_desc on device teardown
netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN.
arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
watchdog: sp805: fix restart handler
ext4: use non-movable memory for superblock readahead
scsi: sg: add sg_remove_request in sg_common_write
objtool: Fix switch table detection in .text.unlikely
arm, bpf: Fix offset overflow for BPF_MEM BPF_DW
ANDROID: GKI: Bulk update ABI report.
ANDROID: GKI: qos: Register irq notify after adding the qos request
ANDROID: GKI: Add dual role mode to usb_dr_modes array
UPSTREAM: virtio-gpu api: comment feature flags
ANDROID: arch:arm64: Increase kernel command line size
ANDROID: GKI: Add special linux_banner_ptr for modules
Revert "ANDROID: GKI: Make linux_banner a C pointer"
ANDROID: GKI: PM / devfreq: Add new flag to do simple clock scaling
ANDROID: GKI: Resolve ABI diff for struct snd_usb_audio
ANDROID: GKI: Bulk update ABI
ANDROID: GKI: Update the whitelist for qcom SoCs
ANDROID: GKI: arm64: gki_defconfig: Set CONFIG_SCSI_UFSHCD=m
ANDROID: GKI: scsi: add option to override the command timeout
ANDROID: GKI: scsi: Adjust DBD setting in mode sense for caching mode page per LLD
ANDROID: add ion_stat tracepoint to common kernel
UPSTREAM: gpu/trace: add a gpu total memory usage tracepoint
Linux 4.19.117
mm/vmalloc.c: move 'area->pages' after if statement
wil6210: remove reset file from debugfs
wil6210: make sure Rx ring sizes are correlated
wil6210: add general initialization/size checks
wil6210: ignore HALP ICR if already handled
wil6210: check rx_buff_mgmt before accessing it
x86/resctrl: Fix invalid attempt at removing the default resource group
x86/resctrl: Preserve CDP enable over CPU hotplug
x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
scsi: target: fix hang when multiple threads try to destroy the same iscsi session
scsi: target: remove boilerplate code
kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
ext4: do not zeroout extents beyond i_disksize
drm/amd/powerplay: force the trim of the mclk dpm_levels if OD is enabled
usb: dwc3: gadget: Don't clear flags before transfer ended
usb: dwc3: gadget: don't enable interrupt when disabling endpoint
mac80211_hwsim: Use kstrndup() in place of kasprintf()
btrfs: check commit root generation in should_ignore_root
tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
keys: Fix proc_keys_next to increase position index
ALSA: usb-audio: Check mapping at creating connector controls, too
ALSA: usb-audio: Don't create jack controls for PCM terminals
ALSA: usb-audio: Don't override ignore_ctl_error value from the map
ALSA: usb-audio: Filter error from connector kctl ops, too
ASoC: Intel: mrfld: return error codes when an error occurs
ASoC: Intel: mrfld: fix incorrect check on p->sink
ext4: fix incorrect inodes per group in error message
ext4: fix incorrect group count in ext4_fill_super error message
pwm: pca9685: Fix PWM/GPIO inter-operation
jbd2: improve comments about freeing data buffers whose page mapping is NULL
scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
ovl: fix value of i_ino for lower hardlink corner case
net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
net: revert default NAPI poll timeout to 2 jiffies
net: qrtr: send msgs from local of same id as broadcast
net: ipv6: do not consider routes via gateways for anycast address check
net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
hsr: check protocol version in hsr_newlink()
amd-xgbe: Use __napi_schedule() in BH context
ANDROID: GKI: drivers: of-thermal: Relate thermal zones using same sensor
ANDROID: GKI: Bulk ABI update
ANDROID: GKI: dma: Add set_dma_mask hook to struct dma_map_ops
ANDROID: GKI: ABI update due to recent patches
FROMLIST: drm/prime: add support for virtio exported objects
FROMLIST: dma-buf: add support for virtio exported objects
UPSTREAM: drm/virtio: module_param_named() requires linux/moduleparam.h
UPSTREAM: drm/virtio: fix resource id creation race
UPSTREAM: drm/virtio: make resource id workaround runtime switchable.
BACKPORT: drm/virtio: Drop deprecated load/unload initialization
ANDROID: GKI: Add DRM_TTM config to GKI
ANDROID: Bulk update the ABI xml representation
ANDROID: GKI: spmi: pmic-arb: don't enable SPMI_MSM_PMIC_ARB by default
ANDROID: GKI: attribute page lock and waitqueue functions as sched
ANDROID: GKI: extcon: Fix Add usage of blocking notifier chain
ANDROID: GKI: USB: pd: Extcon fix for C current
ANDROID: drm/dsi: Fix byte order of DCS set/get brightness
ANDROID: GKI: mm: Export symbols to modularize CONFIG_MSM_DRM
ANDROID: GKI: ALSA: compress: Add support to send codec specific data
ANDROID: GKI: ALSA: Compress - dont use lock for all ioctls
ANDROID: GKI: ASoC: msm: qdsp6v2: add support for AMR_WB_PLUS offload
ANDROID: GKI: msm: dolby: MAT and THD audiocodec name modification
ANDROID: GKI: asoc: msm: Add support for compressed perf mode
ANDROID: GKI: msm: audio: support for gapless_pcm
ANDROID: GKI: uapi: msm: dolby: Support for TrueHD and MAT decoders
ANDROID: GKI: ASoC: msm: qdsp6v2: Add TrueHD HDMI compress pass-though
ANDROID: GKI: ALSA: compress: Add APTX format support in ALSA
ANDROID: GKI: msm: qdsp6v2: Add timestamp support for compress capture
ANDROID: GKI: SoC: msm: Add support for meta data in compressed TX
ANDROID: GKI: ALSA: compress: Add DSD format support for ALSA
ANDROID: GKI: ASoC: msm: qdsp6v2: add support for ALAC and APE offload
ANDROID: GKI: SoC: msm: Add compressed TX and passthrough support
ANDROID: GKI: ASoC: msm: qdsp6v2: Add FLAC in compress offload path
ANDROID: GKI: ASoC: msm: add support for different compressed formats
ANDROID: GKI: ASoC: msm: Update the encode option and sample rate
ANDROID: GKI: Enable CONFIG_SND_VERBOSE_PROCFS in gki_defconfig
ANDROID: GKI: Add hidden CONFIG_SND_SOC_COMPRESS to gki_defconfig
ANDROID: GKI: ALSA: pcm: add locks for accessing runtime resource
ANDROID: GKI: Update ABI for DRM changes
ANDROID: GKI: Add drm_dp_send_dpcd_{read,write} accessor functions
ANDROID: GKI: drm: Add drm_dp_mst_get_max_sdp_streams_supported accessor function
ANDROID: GKI: drm: Add drm_dp_mst_has_fec accessor function
ANDROID: GKI: Add 'dsc_info' to struct drm_dp_mst_port
ANDROID: GKI: usb: Add support to handle USB SMMU S1 address
ANDROID: GKI: usb: Add helper APIs to return xhci phys addresses
ANDROID: Add C protos for dma_buf/drm_prime get_uuid
ANDROID: GKI: Make linux_banner a C pointer
ANDROID: GKI: Add 'refresh_rate', 'id' to struct drm_panel_notifier
ANDROID: GKI: Add 'i2c_mutex' to struct drm_dp_aux
ANDROID: GKI: Add 'checksum' to struct drm_connector
Revert "BACKPORT: drm: Add HDR source metadata property"
Revert "BACKPORT: drm: Parse HDR metadata info from EDID"
ANDROID: drm: Add DP colorspace property
ANDROID: GKI: drm: Initialize display->hdmi when parsing vsdb
ANDROID: drivers: gpu: drm: add support to batch commands
ANDROID: ABI: update the qcom whitelist
ANDROID: GKI: ARM64: smp: add vendor field pending_ipi
ANDROID: gki_defconfig: enable msm serial early console
ANDROID: serial: msm_geni_serial_console : Add Earlycon support
ANDROID: GKI: serial: core: export uart_console_device
f2fs: fix quota_sync failure due to f2fs_lock_op
f2fs: support read iostat
f2fs: Fix the accounting of dcc->undiscard_blks
f2fs: fix to handle error path of f2fs_ra_meta_pages()
f2fs: report the discard cmd errors properly
f2fs: fix long latency due to discard during umount
f2fs: add tracepoint for f2fs iostat
f2fs: introduce sysfs/data_io_flag to attach REQ_META/FUA
ANDROID: GKI: update abi definition due to previous changes in the tree
Linux 4.19.116
efi/x86: Fix the deletion of variables in mixed mode
mfd: dln2: Fix sanity checking for endpoints
etnaviv: perfmon: fix total and idle HI cyleces readout
misc: echo: Remove unnecessary parentheses and simplify check for zero
powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
ftrace/kprobe: Show the maxactive number on kprobe_events
drm: Remove PageReserved manipulation from drm_pci_alloc
drm/dp_mst: Fix clearing payload state on topology disable
Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"
crypto: ccree - only try to map auth tag if needed
crypto: ccree - dec auth tag size from cryptlen map
crypto: ccree - don't mangle the request assoclen
crypto: ccree - zero out internal struct before use
crypto: ccree - improve error handling
crypto: caam - update xts sector size for large input length
dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
btrfs: use nofs allocations for running delayed items
powerpc: Make setjmp/longjmp signature standard
powerpc: Add attributes for setjmp/longjmp
scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
powerpc/kprobes: Ignore traps that happened in real mode
powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE entries
powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle
xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
ipmi: fix hung processes in __get_guid()
libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
hfsplus: fix crash and filesystem corruption when deleting files
cpufreq: powernv: Fix use-after-free
kmod: make request_module() return an error when autoloading is disabled
clk: ingenic/jz4770: Exit with error if CGU init failed
Input: i8042 - add Acer Aspire 5738z to nomux list
s390/diag: fix display of diagnose call statistics
perf tools: Support Python 3.8+ in Makefile
ocfs2: no need try to truncate file beyond i_size
fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
ext4: fix a data race at inode->i_blocks
NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable
drm/etnaviv: rework perfmon query infrastructure
rtc: omap: Use define directive for PIN_CONFIG_ACTIVE_HIGH
selftests: vm: drop dependencies on page flags from mlock2 tests
arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
dm verity fec: fix memory leak in verity_fec_dtr
dm writecache: add cond_resched to avoid CPU hangs
arm64: dts: allwinner: h6: Fix PMU compatible
net: qualcomm: rmnet: Allow configuration updates to existing devices
mm: Use fixed constant in page_frag_alloc instead of size + 1
tools: gpio: Fix out-of-tree build regression
x86/speculation: Remove redundant arch_smt_update() invocation
powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
erofs: correct the remaining shrink objects
crypto: mxs-dcp - fix scatterlist linearization for hash
btrfs: fix missing semaphore unlock in btrfs_sync_file
btrfs: fix missing file extent item for hole after ranged fsync
btrfs: drop block from cache on error in relocation
btrfs: set update the uuid generation as soon as possible
Btrfs: fix crash during unmount due to race with delayed inode workers
mtd: spinand: Do not erase the block before writing a bad block marker
mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
CIFS: Fix bug which the return value by asynchronous read is error
KVM: VMX: fix crash cleanup when KVM wasn't used
KVM: x86: Gracefully handle __vmalloc() failure during VM allocation
KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
KVM: x86: Allocate new rmap and large page tracking when moving memslot
KVM: s390: vsie: Fix delivery of addressing exceptions
KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
KVM: nVMX: Properly handle userspace interrupt window request
x86/entry/32: Add missing ASM_CLAC to general_protection entry
signal: Extend exec_id to 64bits
ath9k: Handle txpower changes even when TPC is disabled
MIPS: OCTEON: irq: Fix potential NULL pointer dereference
MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
pstore: pstore_ftrace_seq_next should increase position index
irqchip/versatile-fpga: Apply clear-mask earlier
KEYS: reaching the keys quotas correctly
tpm: tpm2_bios_measurements_next should increase position index
tpm: tpm1_bios_measurements_next should increase position index
tpm: Don't make log failures fatal
PCI: endpoint: Fix for concurrent memory allocation in OB address region
PCI: Add boot interrupt quirk mechanism for Xeon chipsets
PCI/ASPM: Clear the correct bits when enabling L1 substates
PCI: pciehp: Fix indefinite wait on sysfs requests
nvme: Treat discovery subsystems as unique subsystems
nvme-fc: Revert "add module to ops template to allow module references"
thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
acpi/x86: ignore unspecified bit positions in the ACPI global lock field
media: ti-vpe: cal: fix disable_irqs to only the intended target
ALSA: hda/realtek - Add quirk for MSI GL63
ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
ALSA: pcm: oss: Fix regression by buffer overflow fix
ALSA: ice1724: Fix invalid access for enumerated ctl items
ALSA: hda: Fix potential access overflow in beep helper
ALSA: hda: Add driver blacklist
ALSA: usb-audio: Add mixer workaround for TRX40 and co
usb: gadget: composite: Inform controller driver of self-powered
usb: gadget: f_fs: Fix use after free issue as part of queue failure
ASoC: topology: use name_prefix for new kcontrol
ASoC: dpcm: allow start or stop during pause for backend
ASoC: dapm: connect virtual mux with default value
ASoC: fix regwmask
slub: improve bit diffusion for freelist ptr obfuscation
uapi: rename ext2_swab() to swab() and share globally in swab.h
IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
btrfs: track reloc roots based on their commit root bytenr
btrfs: remove a BUG_ON() from merge_reloc_roots()
btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is at least queued
block, bfq: fix use-after-free in bfq_idle_slice_timer_body
locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
firmware: fix a double abort case with fw_load_sysfs_fallback
md: check arrays is suspended in mddev_detach before call quiesce operations
irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
usb: dwc3: core: add support for disabling SS instances in park mode
media: i2c: ov5695: Fix power on and off sequences
block: Fix use-after-free issue accessing struct io_cq
genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
efi/x86: Ignore the memory attributes table on i386
x86/boot: Use unsigned comparison for addresses
gfs2: Don't demote a glock until its revokes are written
pstore/platform: fix potential mem leak if pstore_init_fs failed
libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
media: i2c: video-i2c: fix build errors due to 'imply hwmon'
PCI/switchtec: Fix init_completion race condition with poll_wait()
selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
sched: Avoid scale real weight down to zero
irqchip/versatile-fpga: Handle chained IRQs properly
block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
x86: Don't let pgprot_modify() change the page encryption bit
xhci: bail out early if driver can't accress host in resume
null_blk: fix spurious IO errors after failed past-wp access
null_blk: Handle null_add_dev() failures properly
null_blk: Fix the null_add_dev() error path
firmware: arm_sdei: fix double-lock on hibernate with shared events
media: venus: hfi_parser: Ignore HEVC encoding for V1
cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
i2c: st: fix missing struct parameter description
qlcnic: Fix bad kzalloc null test
cxgb4/ptp: pass the sign of offset delta in FW CMD
hinic: fix wrong para of wait_for_completion_timeout
hinic: fix a bug of waitting for IO stopped
net: vxge: fix wrong __VA_ARGS__ usage
bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage
ANDROID: build.config.allmodconfig: Re-enable XFS_FS
FROMGIT: of: property: Add device link support for extcon
ANDROID: GKI: arm64: gki_defconfig: enable CONFIG_MM_EVENT_STAT
ANDROID: GKI: add fields from per-process mm event tracking feature
ANDROID: GKI: fix ABI diffs caused by ION heap and pool vmstat additions
UPSTREAM: GKI: panic/reboot: allow specifying reboot_mode for panic only
ANDROID: GKI: of: property: Add device link support for phys property
ANDROID: GKI: usb: phy: Fix ABI diff for usb_otg_state
ANDROID: GKI: usb: phy: Fix ABI diff due to usb_phy.drive_dp_pulse
ANDROID: GKI: usb: phy: Fix ABI diff for usb_phy_type and usb_phy.reset
ANDROID: gki_defconfig: enable CONFIG_GPIO_SYSFS
ANDROID: GKI: qcom: Fix compile issue when setting msm_lmh_dcvs as a module
ANDROID: GKI: drivers: cpu_cooling: allow platform freq mitigation
ANDROID: GKI: ASoC: Add locking in DAPM widget power update
ANDROID: GKI: ASoC: jack: Fix buttons enum value
ANDROID: GKI: ALSA: jack: Add support to report second microphone
ANDROID: GKI: ALSA: jack: Update supported jack switch types
ANDROID: GKI: ALSA: jack: update jack types
ANDROID: GKI: Export symbols arm_cpuidle_suspend, cpuidle_dev and cpuidle_register_governor
ANDROID: GKI: usb: hcd: Add USB atomic notifier callback for HC died error
ANDROID: media: increase video max frame number
BACKPORT: nvmem: core: add NVMEM_SYSFS Kconfig
UPSTREAM: nvmem: add support for cell info
UPSTREAM: nvmem: remove the global cell list
UPSTREAM: nvmem: use kref
UPSTREAM: nvmem: use list_for_each_entry_safe in nvmem_device_remove_all_cells()
UPSTREAM: nvmem: provide nvmem_dev_name()
ANDROID: GKI: Bulk ABI update
ANDROID: GKI: cpuhotplug: adding hotplug enums for vendor code
ANDROID: Incremental fs: Fix create_file performance
ANDROID: build.config.common: Add BUILDTOOLS_PREBUILT_BIN
UPSTREAM: kheaders: include only headers into kheaders_data.tar.xz
UPSTREAM: kheaders: remove meaningless -R option of 'ls'
ANDROID: GKI: of: platform: initialize of_reserved_mem
ANDROID: driver: gpu: drm: add notifier for panel related events
ANDROID: include: drm: support unicasting mipi cmds to dsi ctrls
ANDROID: include: drm: increase DRM max property count to 64
BACKPORT: drm: Add HDMI colorspace property
ANDROID: drm: edid: add support for additional CEA extension blocks
BACKPORT: drm: Parse HDR metadata info from EDID
BACKPORT: drm: Add HDR source metadata property
BACKPORT: drm/dp_mst: Parse FEC capability on MST ports
ANDROID: GKI: ABI update for DRM changes
ANDROID: ABI: add missing elf variables to representation
ANDROID: GKI: power_supply: Add PROP_MOISTURE_DETECTION_ENABLED
ANDROID: include: drm: add the definitions for DP Link Compliance tests
ANDROID: drivers: gpu: drm: fix bugs encountered while fuzzing
FROMLIST: power_supply: Add additional health properties to the header
UPSTREAM: power: supply: core: Update sysfs-class-power ABI document
UPSTREAM: Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 (v5.7-rc1)
ANDROID: drivers: gpu: drm: add support for secure framebuffer
ANDROID: include: uapi: drm: add additional QCOM modifiers
ANDROID: drm: dsi: add two DSI mode flags for BLLP
ANDROID: include: uapi: drm: add additional drm mode flags
UPSTREAM: drm: plug memory leak on drm_setup() failure
UPSTREAM: drm: factor out drm_close_helper() function
ANDROID: GKI: Bulk ABI update
BACKPORT: nl80211: Add per peer statistics to compute FCS error rate
ANDROID: GKI: sound: usb: Add snd_usb_enable_audio_stream/find_snd_usb_substream
ANDROID: GKI: add dma-buf includes
ANDROID: GKI: sched: struct fields for Per-Sched-domain over utilization
ANDROID: GKI: Add vendor fields to root_domain
ANDROID: gki_defconfig: Enable CONFIG_IRQ_TIME_ACCOUNTING
ANDROID: fix allmodconfig build to use the right toolchain
ANDROID: fix allmodconfig build to use the right toolchain
ANDROID: GKI: Update ABI
Revert "UPSTREAM: mm, page_alloc: spread allocations across zones before introducing fragmentation"
Revert "UPSTREAM: mm: use alloc_flags to record if kswapd can wake"
Revert "BACKPORT: mm: move zone watermark accesses behind an accessor"
Revert "BACKPORT: mm: reclaim small amounts of memory when an external fragmentation event occurs"
Revert "BACKPORT: mm, compaction: be selective about what pageblocks to clear skip hints"
ANDROID: GKI: panic: add vendor callback function in panic()
UPSTREAM: GKI: thermal: make device_register's type argument const
ANDROID: GKI: add base.h include to match MODULE_VERSIONS
ANDROID: update the ABI based on the new whitelist
ANDROID: GKI: fdt: export symbols required by modules
ANDROID: GKI: drivers: of: Add APIs to find DDR device rank, HBB
ANDROID: GKI: security: Add mmap export symbols for modules
ANDROID: GKI: arch: add stub symbols for boot_reason and cold_boot
ANDROID: GKI: USB: Fix ABI diff for struct usb_bus
ANDROID: GKI: USB: Resolve ABI diff for usb_gadget and usb_gadget_ops
ANDROID: GKI: add hidden V4L2_MEM2MEM_DEV
ANDROID: GKI: enable VIDEO_V4L2_SUBDEV_API
ANDROID: GKI: export symbols from abi_gki_aarch64_qcom_whitelist
ANDROID: Update the whitelist for qcom SoCs
ANDROID: Incremental fs: Fix compound page usercopy crash
ANDROID: Incremental fs: Clean up incfs_test build process
ANDROID: Incremental fs: make remount log buffer change atomic
ANDROID: Incremental fs: Optimize get_filled_block
ANDROID: Incremental fs: Fix mislabeled __user ptrs
ANDROID: Incremental fs: Use 64-bit int for file_size when writing hash blocks
Linux 4.19.115
drm/msm: Use the correct dma_sync calls in msm_gem
drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
usb: dwc3: don't set gadget->is_otg flag
rpmsg: glink: Remove chunk size word align warning
arm64: Fix size of __early_cpu_boot_status
drm/msm: stop abusing dma_map/unmap for cache
clk: qcom: rcg: Return failure for RCG update
fbcon: fix null-ptr-deref in fbcon_switch
RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
RDMA/cma: Teach lockdep about the order of rtnl and lock
RDMA/ucma: Put a lock around every call to the rdma_cm layer
ceph: canonicalize server path in place
ceph: remove the extra slashes in the server path
IB/hfi1: Fix memory leaks in sysfs registration and unregistration
IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
hwrng: imx-rngc - fix an error path
tools/accounting/getdelays.c: fix netlink attribute length
usb: dwc3: gadget: Wrap around when skip TRBs
random: always use batched entropy for get_random_u{32,64}
mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
slcan: Don't transmit uninitialized stack data in padding
net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before accessing PHY registers
net: dsa: bcm_sf2: Ensure correct sub-node is parsed
net: dsa: bcm_sf2: Do not register slave MDIO bus with OF
ipv6: don't auto-add link-local address to lag ports
mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
include/linux/notifier.h: SRCU: fix ctags
bitops: protect variables in set_mask_bits() macro
padata: always acquire cpu_hotplug_lock before pinst->lock
net: Fix Tx hash bound checking
rxrpc: Fix sendmsg(MSG_WAITALL) handling
ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA X99 Classified motherboard
power: supply: axp288_charger: Add special handling for HP Pavilion x2 10
extcon: axp288: Add wakeup support
mei: me: add cedar fork device ids
coresight: do not use the BIT() macro in the UAPI header
misc: pci_endpoint_test: Avoid using module parameter to determine irqtype
misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices
misc: rtsx: set correct pcr_ops for rts522A
media: rc: IR signal for Panasonic air conditioner too long
drm/etnaviv: replace MMU flush marker with flush sequence
tools/power turbostat: Fix missing SYS_LPI counter on some Chromebooks
tools/power turbostat: Fix gcc build warnings
drm/amdgpu: fix typo for vcn1 idle check
initramfs: restore default compression behavior
drm/bochs: downgrade pci_request_region failure from error to warning
drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017
nvme-rdma: Avoid double freeing of async event data
sctp: fix possibly using a bad saddr with a given dst
sctp: fix refcount bug in sctp_wfree
net, ip_tunnel: fix interface lookup with no key
ipv4: fix a RCU-list lock in fib_triestat_seq_show
ANDROID: GKI: export symbols required by SPECTRA_CAMERA
ANDROID: GKI: ARM/ARM64: Introduce arch_read_hardware_id
ANDROID: GKI: drivers: base: soc: export symbols for socinfo
ANDROID: GKI: Update ABI
ANDROID: GKI: ASoC: msm: fix integer overflow for long duration offload playback
ANDROID: GKI: Bulk ABI update
Revert "ANDROID: GKI: mm: add struct/enum fields for SPECULATIVE_PAGE_FAULTS"
ANDROID: GKI: Revert "arm64: kill flush_cache_all()"
ANDROID: GKI: Revert "arm64: Remove unused macros from assembler.h"
ANDROID: GKI: kernel/dma, mm/cma: Export symbols needed by vendor modules
ANDROID: GKI: mm: Export symbols __next_zones_zonelist and zone_watermark_ok_safe
ANDROID: GKI: mm/memblock: export memblock_overlaps_memory
ANDROID: GKI: net, skbuff: export symbols needed by vendor drivers
ANDROID: GKI: Add stub __cpu_isolated_mask symbol
ANDROID: GKI: sched: stub sched_isolate symbols
ANDROID: GKI: export saved_command_line
ANDROID: GKI: Update ABI
ANDROID: GKI: ASoC: core: Update ALSA core to issue restart in underrun.
ANDROID: GKI: SoC: pcm: Add a restart callback field to struct snd_pcm_ops
ANDROID: GKI: SoC: pcm: Add fields to struct snd_pcm_ops and struct snd_soc_component_driver
ANDROID: GKI: ASoC: core: Add compat_ioctl callback to struct snd_pcm_ops
ANDROID: GKI: ALSA: core: modify, rename and export create_subdir API
ANDROID: GKI: usb: Add helper API to issue stop endpoint command
ANDROID: GKI: Thermal: thermal_zone_get_cdev_by_name added
ANDROID: GKI: add missing exports for CONFIG_ARM_SMMU=m
ANDROID: power: wakeup_reason: wake reason enhancements
BACKPORT: FROMGIT: kbuild: mkcompile_h: Include $LD version in /proc/version
ANDROID: GKI: kernel: Export symbols needed by msm_minidump.ko and minidump_log.ko
ubifs: wire up FS_IOC_GET_ENCRYPTION_NONCE
f2fs: wire up FS_IOC_GET_ENCRYPTION_NONCE
ext4: wire up FS_IOC_GET_ENCRYPTION_NONCE
fscrypt: add FS_IOC_GET_ENCRYPTION_NONCE ioctl
ANDROID: Bulk update the ABI xml
ANDROID: gki_defconfig: add CONFIG_IPV6_SUBTREES
ANDROID: GKI: arm64: reserve space in cpu_hwcaps and cpu_hwcap_keys arrays
ANDROID: GKI: of: reserved_mem: Fix kmemleak crash on no-map region
ANDROID: GKI: sched: add task boost vendor fields to task_struct
ANDROID: GKI: mm: add rss counter for unreclaimable pages
ANDROID: GKI: irqdomain: add bus token DOMAIN_BUS_WAKEUP
ANDROID: GKI: arm64: fault: do_tlb_conf_fault_cb register fault callback
ANDROID: GKI: QoS: Enhance framework to support cpu/irq specific QoS requests
ANDROID: GKI: Bulk ABI update
ANDROID: GKI: PM/devfreq: Do not switch governors from sysfs when device is suspended
ANDROID: GKI: PM / devfreq: Fix race condition between suspend/resume and governor_store
ANDROID: GKI: PM / devfreq: Introduce a sysfs lock
ANDROID: GKI: regmap: irq: Add support to clear ack registers
ANDROID: GKI: Remove SCHED_AUTOGROUP
ANDROID: ignore compiler tag __must_check for GENKSYMS
ANDROID: GKI: Bulk update ABI
ANDROID: GKI: Fix ABI diff for struct thermal_cooling_device_ops
ANDROID: GKI: ASoC: soc-core: export function to find components
ANDROID: GKI: thermal: thermal_sys: Add configurable thermal trip points.
ANDROID: fscrypt: fall back to filesystem-layer crypto when needed
ANDROID: block: require drivers to declare supported crypto key type(s)
ANDROID: block: make blk_crypto_start_using_mode() properly check for support
ANDROID: GKI: power: supply: format regression
ANDROID: GKI: kobject: increase number of kobject uevent pointers to 64
ANDROID: GKI: drivers: video: backlight: Fix ABI diff for struct backlight_device
ANDROID: GKI: usb: xhci: Add support for secondary interrupters
ANDROID: GKI: usb: host: xhci: Add support for usb core indexing
ANDROID: gki_defconfig: enable USB_XHCI_HCD
ANDROID: gki_defconfig: enable CONFIG_BRIDGE
ANDROID: GKI: Update ABI report
ANDROID: GKI: arm64: smp: Add set_update_ipi_history_callback
ANDROID: kbuild: ensure __cfi_check is correctly aligned
f2fs: keep inline_data when compression conversion
f2fs: fix to disable compression on directory
f2fs: add missing CONFIG_F2FS_FS_COMPRESSION
f2fs: switch discard_policy.timeout to bool type
f2fs: fix to verify tpage before releasing in f2fs_free_dic()
f2fs: show compression in statx
f2fs: clean up dic->tpages assignment
f2fs: compress: support zstd compress algorithm
f2fs: compress: add .{init,destroy}_decompress_ctx callback
f2fs: compress: fix to call missing destroy_compress_ctx()
f2fs: change default compression algorithm
f2fs: clean up {cic,dic}.ref handling
f2fs: fix to use f2fs_readpage_limit() in f2fs_read_multi_pages()
f2fs: xattr.h: Make stub helpers inline
f2fs: fix to avoid double unlock
f2fs: fix potential .flags overflow on 32bit architecture
f2fs: fix NULL pointer dereference in f2fs_verity_work()
f2fs: fix to clear PG_error if fsverity failed
f2fs: don't call fscrypt_get_encryption_info() explicitly in f2fs_tmpfile()
f2fs: don't trigger data flush in foreground operation
f2fs: fix NULL pointer dereference in f2fs_write_begin()
f2fs: clean up f2fs_may_encrypt()
f2fs: fix to avoid potential deadlock
f2fs: don't change inode status under page lock
f2fs: fix potential deadlock on compressed quota file
f2fs: delete DIO read lock
f2fs: don't mark compressed inode dirty during f2fs_iget()
f2fs: fix to account compressed blocks in f2fs_compressed_blocks()
f2fs: xattr.h: Replace zero-length array with flexible-array member
f2fs: fix to update f2fs_super_block fields under sb_lock
f2fs: Add a new CP flag to help fsck fix resize SPO issues
f2fs: Fix mount failure due to SPO after a successful online resize FS
f2fs: use kmem_cache pool during inline xattr lookups
f2fs: skip migration only when BG_GC is called
f2fs: fix to show tracepoint correctly
f2fs: avoid __GFP_NOFAIL in f2fs_bio_alloc
f2fs: introduce F2FS_IOC_GET_COMPRESS_BLOCKS
f2fs: fix to avoid triggering IO in write path
f2fs: add prefix for f2fs slab cache name
f2fs: introduce DEFAULT_IO_TIMEOUT
f2fs: skip GC when section is full
f2fs: add migration count iff migration happens
f2fs: clean up bggc mount option
f2fs: clean up lfs/adaptive mount option
f2fs: fix to show norecovery mount option
f2fs: clean up parameter of macro XATTR_SIZE()
f2fs: clean up codes with {f2fs_,}data_blkaddr()
f2fs: show mounted time
f2fs: Use scnprintf() for avoiding potential buffer overflow
f2fs: allow to clear F2FS_COMPR_FL flag
f2fs: fix to check dirty pages during compressed inode conversion
f2fs: fix to account compressed inode correctly
f2fs: fix wrong check on F2FS_IOC_FSSETXATTR
f2fs: fix to avoid use-after-free in f2fs_write_multi_pages()
f2fs: fix to avoid using uninitialized variable
f2fs: fix inconsistent comments
f2fs: remove i_sem lock coverage in f2fs_setxattr()
f2fs: cover last_disk_size update with spinlock
f2fs: fix to check i_compr_blocks correctly
FROMLIST: kmod: make request_module() return an error when autoloading is disabled
ANDROID: GKI: Update ABI report
ANDROID: GKI: ARM64: dma-mapping: export symbol arch_setup_dma_ops
ANDROID: GKI: ARM: dma-mapping: export symbol arch_setup_dma_ops
ANDROID: GKI: ASoC: dapm: Avoid static route b/w cpu and codec dai
ANDROID: GKI: ASoC: pcm: Add support for hostless playback/capture
ANDROID: GKI: ASoC: core - add hostless DAI support
ANDROID: GKI: drivers: thermal: Resolve ABI diff for struct thermal_zone_device_ops
ANDROID: GKI: drivers: thermal: Add support for getting trip temperature
ANDROID: GKI: Add functions of_thermal_handle_trip/of_thermal_handle_trip_temp
ANDROID: GKI: drivers: thermal: Add post suspend evaluate flag to thermal zone devicetree
UPSTREAM: loop: Only freeze block queue when needed.
UPSTREAM: loop: Only change blocksize when needed.
ANDROID: Fix wq fp check for CFI builds
ANDROID: GKI: update abi definition after CONFIG_DEBUG_LIST was enabled
ANDROID: gki_defconfig: enable CONFIG_DEBUG_LIST
ANDROID: GKI: Update ABI definition
ANDROID: GKI: remove condition causing sk_buff struct ABI differences
ANDROID: GKI: Export symbol arch_timer_mem_get_cval
ANDROID: GKI: pwm: core: Add option to config PWM duty/period with u64 data length
ANDROID: Update ABI whitelist for qcom SoCs
ANDROID: Incremental fs: Fix remount
ANDROID: Incremental fs: Protect get_fill_block, and add a field
ANDROID: Incremental fs: Fix crash polling 0 size read_log
ANDROID: Incremental fs: get_filled_blocks: better index_out
ANDROID: GKI: of: property: Add device links support for "qcom,wrapper-dev"
ANDROID: GKI: update abi definitions due to recent changes
ANDROID: GKI: clk: Initialize in stack clk_init_data to 0 in all drivers
ANDROID: GKI: drivers: clksource: Add API to return cval
ANDROID: GKI: clk: Add support for voltage voting
ANDROID: GKI: kernel: Export task and IRQ affinity symbols
ANDROID: GKI: regulator: core: Add support for regulator providers with sync state
ANDROID: GKI: regulator: Call proxy-consumer functions for each regulator registered
ANDROID: GKI: regulator: Add proxy consumer driver
ANDROID: GKI: regulator: core: allow long device tree supply regulator property names
ANDROID: GKI: Revert "regulator: Enable supply regulator if child rail is enabled."
ANDROID: GKI: regulator: Remove redundant set_mode call in drms_uA_update
ANDROID: GKI: net: Add the get current NAPI context API
ANDROID: GKI: remove DRM_KMS_CMA_HELPER from GKI configuration
ANDROID: GKI: edac: Fix ABI diffs in edac_device_ctl_info struct
ANDROID: GKI: pwm: Add different PWM output types support
UPSTREAM: cfg80211: Authentication offload to user space in AP mode
Linux 4.19.114
arm64: dts: ls1046ardb: set RGMII interfaces to RGMII_ID mode
arm64: dts: ls1043a-rdb: correct RGMII delay mode to rgmii-id
ARM: dts: N900: fix onenand timings
ARM: dts: imx6: phycore-som: fix arm and soc minimum voltage
ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
ARM: dts: oxnas: Fix clear-mask property
perf map: Fix off by one in strncpy() size argument
arm64: alternative: fix build with clang integrated assembler
net: ks8851-ml: Fix IO operations, again
gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT + AXP288 model
bpf: Explicitly memset some bpf info structures declared on the stack
bpf: Explicitly memset the bpf_attr structure
platform/x86: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
vt: vt_ioctl: fix use-after-free in vt_in_use()
vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
vt: vt_ioctl: remove unnecessary console allocation checks
vt: switch vt_dont_switch to bool
vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
vt: selection, introduce vc_is_sel
mac80211: fix authentication with iwlwifi/mvm
mac80211: Check port authorization in the ieee80211_tx_dequeue() case
media: xirlink_cit: add missing descriptor sanity checks
media: stv06xx: add missing descriptor sanity checks
media: dib0700: fix rc endpoint lookup
media: ov519: add missing endpoint sanity checks
libfs: fix infoleak in simple_attr_read()
ahci: Add Intel Comet Lake H RAID PCI ID
staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb
staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
media: usbtv: fix control-message timeouts
media: flexcop-usb: fix endpoint sanity check
usb: musb: fix crash with highmen PIO and usbmon
USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback
USB: cdc-acm: restore capability check order
USB: serial: option: add Wistron Neweb D19Q1
USB: serial: option: add BroadMobi BM806U
USB: serial: option: add support for ASKEY WWHC050
mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
mac80211: add option for setting control flags
Revert "r8169: check that Realtek PHY driver module is loaded"
vti6: Fix memory leak of skb if input policy check fails
bpf/btf: Fix BTF verification of enum members in struct/union
netfilter: nft_fwd_netdev: validate family and chain type
netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6}
afs: Fix some tracing details
xfrm: policy: Fix doulbe free in xfrm_policy_timer
xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
xfrm: fix uctx len check in verify_sec_ctx_len
RDMA/mlx5: Block delay drop to unprivileged users
vti[6]: fix packet tx through bpf_redirect() in XinY cases
xfrm: handle NETDEV_UNREGISTER for xfrm device
genirq: Fix reference leaks on irq affinity notifiers
RDMA/core: Ensure security pkey modify is not lost
gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model
gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
mac80211: mark station unauthorized before key removal
nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
scsi: sd: Fix optimal I/O size for devices that change reported values
scripts/dtc: Remove redundant YYLOC global declaration
tools: Let O= makes handle a relative path with -C option
perf probe: Do not depend on dwfl_module_addrsym()
ARM: dts: omap5: Add bus_dma_limit for L3 bus
ARM: dts: dra7: Add bus_dma_limit for L3 bus
ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL
Input: avoid BIT() macro usage in the serio.h UAPI header
Input: synaptics - enable RMI on HP Envy 13-ad105ng
Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
i2c: hix5hd2: add missed clk_disable_unprepare in remove
ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare()
sxgbe: Fix off by one in samsung driver strncpy size arg
dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom
mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
scsi: ipr: Fix softlockup when rescanning devices in petitboot
s390/qeth: handle error when backing RX buffer
fsl/fman: detect FMan erratum A050385
arm64: dts: ls1043a: FMan erratum A050385
dt-bindings: net: FMan erratum A050385
cgroup1: don't call release_agent when it is ""
drivers/of/of_mdio.c:fix of_mdiobus_register()
cpupower: avoid multiple definition with gcc -fno-common
nfs: add minor version to nfs_server_key for fscache
cgroup-v1: cgroup_pidlist_next should update position index
hsr: set .netnsok flag
hsr: add restart routine into hsr_get_node_list()
hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
vxlan: check return value of gro_cells_init()
tcp: repair: fix TCP_QUEUE_SEQ implementation
r8169: re-enable MSI on RTL8168c
net: phy: mdio-mux-bcm-iproc: check clk_prepare_enable() return value
net: dsa: mt7530: Change the LINK bit to reflect the link status
net: ip_gre: Accept IFLA_INFO_DATA-less configuration
net: ip_gre: Separate ERSPAN newlink / changelink callbacks
bnxt_en: Reset rings if ring reservation fails during open()
bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
slcan: not call free_netdev before rtnl_unlock in slcan_open
NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
net_sched: keep alloc_hash updated after hash allocation
net_sched: cls_route: remove the right filter from hashtable
net: qmi_wwan: add support for ASKEY WWHC050
net/packet: tpacket_rcv: avoid a producer race condition
net: mvneta: Fix the case where the last poll did not process all rx
net: dsa: Fix duplicate frames flooded by learning
net: cbs: Fix software cbs to consider packet sending time
mlxsw: spectrum_mr: Fix list iteration in error path
macsec: restrict to ethernet devices
hsr: fix general protection fault in hsr_addr_is_self()
geneve: move debug check after netdev unregister
Revert "drm/dp_mst: Skip validating ports during destruction, just ref"
mmc: sdhci-tegra: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command
mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
mmc: core: Allow host controllers to require R1B for CMD6
f2fs: fix to avoid potential deadlock
f2fs: add missing function name in kernel message
f2fs: recycle unused compress_data.chksum feild
f2fs: fix to avoid NULL pointer dereference
f2fs: fix leaking uninitialized memory in compressed clusters
f2fs: fix the panic in do_checkpoint()
f2fs: fix to wait all node page writeback
mm/swapfile.c: move inode_lock out of claim_swapfile
fscrypt: don't evict dirty inodes after removing key
Conflicts:
Documentation/arm64/silicon-errata.txt
Documentation/devicetree/bindings
Documentation/devicetree/bindings/net/fsl-fman.txt
arch/arm/kernel/setup.c
arch/arm/kernel/smp.c
arch/arm/mm/dma-mapping.c
arch/arm64/Kconfig
arch/arm64/Makefile
arch/arm64/include/asm/cpucaps.h
arch/arm64/include/asm/cputype.h
arch/arm64/include/asm/proc-fns.h
arch/arm64/include/asm/traps.h
arch/arm64/kernel/arm64ksyms.c
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/setup.c
arch/arm64/kernel/smp.c
arch/arm64/mm/dma-mapping.c
arch/arm64/mm/fault.c
arch/arm64/mm/proc.S
drivers/base/power/wakeup.c
drivers/clk/clk.c
drivers/clk/qcom/clk-rcg2.c
drivers/clocksource/arm_arch_timer.c
drivers/devfreq/devfreq.c
drivers/devfreq/governor_simpleondemand.c
drivers/dma-buf/dma-buf.c
drivers/extcon/extcon.c
drivers/gpu/Makefile
drivers/gpu/drm/drm_connector.c
drivers/gpu/drm/drm_dp_mst_topology.c
drivers/gpu/drm/drm_edid.c
drivers/gpu/drm/drm_file.c
drivers/gpu/drm/drm_panel.c
drivers/gpu/drm/drm_property.c
drivers/iommu/Kconfig
drivers/iommu/Makefile
drivers/iommu/arm-smmu.c
drivers/iommu/dma-iommu.c
drivers/iommu/dma-mapping-fast.c
drivers/iommu/io-pgtable-arm.c
drivers/iommu/io-pgtable-fast.c
drivers/iommu/io-pgtable.c
drivers/iommu/iommu.c
drivers/irqchip/irq-gic-v3.c
drivers/media/v4l2-core/v4l2-ioctl.c
drivers/mmc/core/Kconfig
drivers/mmc/core/block.c
drivers/mmc/core/queue.c
drivers/mmc/host/cqhci.c
drivers/mmc/host/sdhci-msm.c
drivers/net/wireless/ath/wil6210/interrupt.c
drivers/net/wireless/ath/wil6210/main.c
drivers/net/wireless/ath/wil6210/wil6210.h
drivers/net/wireless/ath/wil6210/wmi.c
drivers/nvmem/core.c
drivers/nvmem/nvmem-sysfs.c
drivers/of/fdt.c
drivers/power/supply/power_supply_sysfs.c
drivers/pwm/sysfs.c
drivers/regulator/core.c
drivers/scsi/sd.c
drivers/scsi/ufs/ufshcd.c
drivers/tty/serial/Kconfig
drivers/tty/serial/Makefile
drivers/usb/common/common.c
fs/crypto/crypto.c
fs/f2fs/checkpoint.c
fs/f2fs/f2fs.h
include/drm/drm_connector.h
include/drm/drm_dp_mst_helper.h
include/drm/drm_panel.h
include/linux/clk-provider.h
include/linux/dma-buf.h
include/linux/dma-mapping-fast.h
include/linux/dma-mapping.h
include/linux/extcon.h
include/linux/io-pgtable.h
include/linux/iommu.h
include/linux/kobject.h
include/linux/mm.h
include/linux/mm_types.h
include/linux/mmc/host.h
include/linux/netdevice.h
include/linux/power_supply.h
include/linux/pwm.h
include/linux/regulator/driver.h
include/linux/thermal.h
include/linux/vm_event_item.h
include/net/cfg80211.h
include/scsi/scsi_device.h
include/sound/pcm.h
include/sound/soc.h
include/uapi/drm/drm_mode.h
include/uapi/linux/coresight-stm.h
include/uapi/linux/ip.h
include/uapi/linux/nl80211.h
include/uapi/linux/videodev2.h
include/uapi/sound/compress_offload.h
kernel/dma/coherent.c
kernel/dma/mapping.c
kernel/panic.c
kernel/power/qos.c
kernel/sched/sched.h
mm/Kconfig
mm/filemap.c
mm/swapfile.c
mm/vmalloc.c
mm/vmstat.c
net/qrtr/qrtr.c
net/wireless/nl80211.c
net/wireless/scan.c
sound/core/compress_offload.c
sound/soc/soc-core.c
sound/usb/card.c
sound/usb/pcm.c
sound/usb/pcm.h
sound/usb/usbaudio.h
Fixed build errors:
drivers/base/power/main.c
drivers/thermal/thermal_core.c
drivers/cpuidle/lpm-levels.c
include/soc/qcom/lpm_levels.h
Change-Id: Idf25b239f53681bdfa2ef371a91720fadf1a3f01
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
2627 lines
94 KiB
C
2627 lines
94 KiB
C
/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
|
|
/*
|
|
* Video for Linux Two header file
|
|
*
|
|
* Copyright (C) 1999-2012 the contributors
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* Alternatively you can redistribute this file under the terms of the
|
|
* BSD license as stated below:
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in
|
|
* the documentation and/or other materials provided with the
|
|
* distribution.
|
|
* 3. The names of its contributors may not be used to endorse or promote
|
|
* products derived from this software without specific prior written
|
|
* permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* Header file for v4l or V4L2 drivers and applications
|
|
* with public API.
|
|
* All kernel-specific stuff were moved to media/v4l2-dev.h, so
|
|
* no #if __KERNEL tests are allowed here
|
|
*
|
|
* See https://linuxtv.org for more info
|
|
*
|
|
* Author: Bill Dirks <bill@thedirks.org>
|
|
* Justin Schoeman
|
|
* Hans Verkuil <hverkuil@xs4all.nl>
|
|
* et al.
|
|
*/
|
|
#ifndef _UAPI__LINUX_VIDEODEV2_H
|
|
#define _UAPI__LINUX_VIDEODEV2_H
|
|
|
|
#ifndef __KERNEL__
|
|
#include <sys/time.h>
|
|
#endif
|
|
#include <linux/compiler.h>
|
|
#include <linux/ioctl.h>
|
|
#include <linux/types.h>
|
|
#include <linux/v4l2-common.h>
|
|
#include <linux/v4l2-controls.h>
|
|
|
|
/*
|
|
* Common stuff for both V4L1 and V4L2
|
|
* Moved from videodev.h
|
|
*/
|
|
#define VIDEO_MAX_FRAME 64
|
|
#define VIDEO_MAX_PLANES 8
|
|
|
|
/*
|
|
* M I S C E L L A N E O U S
|
|
*/
|
|
|
|
/* Four-character-code (FOURCC) */
|
|
#define v4l2_fourcc(a, b, c, d)\
|
|
((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))
|
|
#define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31))
|
|
|
|
/*
|
|
* E N U M S
|
|
*/
|
|
enum v4l2_field {
|
|
V4L2_FIELD_ANY = 0, /* driver can choose from none,
|
|
top, bottom, interlaced
|
|
depending on whatever it thinks
|
|
is approximate ... */
|
|
V4L2_FIELD_NONE = 1, /* this device has no fields ... */
|
|
V4L2_FIELD_TOP = 2, /* top field only */
|
|
V4L2_FIELD_BOTTOM = 3, /* bottom field only */
|
|
V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */
|
|
V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one
|
|
buffer, top-bottom order */
|
|
V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */
|
|
V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into
|
|
separate buffers */
|
|
V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field
|
|
first and the top field is
|
|
transmitted first */
|
|
V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field
|
|
first and the bottom field is
|
|
transmitted first */
|
|
};
|
|
#define V4L2_FIELD_HAS_TOP(field) \
|
|
((field) == V4L2_FIELD_TOP ||\
|
|
(field) == V4L2_FIELD_INTERLACED ||\
|
|
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
|
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
|
(field) == V4L2_FIELD_SEQ_TB ||\
|
|
(field) == V4L2_FIELD_SEQ_BT)
|
|
#define V4L2_FIELD_HAS_BOTTOM(field) \
|
|
((field) == V4L2_FIELD_BOTTOM ||\
|
|
(field) == V4L2_FIELD_INTERLACED ||\
|
|
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
|
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
|
(field) == V4L2_FIELD_SEQ_TB ||\
|
|
(field) == V4L2_FIELD_SEQ_BT)
|
|
#define V4L2_FIELD_HAS_BOTH(field) \
|
|
((field) == V4L2_FIELD_INTERLACED ||\
|
|
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
|
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
|
(field) == V4L2_FIELD_SEQ_TB ||\
|
|
(field) == V4L2_FIELD_SEQ_BT)
|
|
#define V4L2_FIELD_HAS_T_OR_B(field) \
|
|
((field) == V4L2_FIELD_BOTTOM ||\
|
|
(field) == V4L2_FIELD_TOP ||\
|
|
(field) == V4L2_FIELD_ALTERNATE)
|
|
|
|
enum v4l2_buf_type {
|
|
V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
|
|
V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
|
|
V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
|
|
V4L2_BUF_TYPE_VBI_CAPTURE = 4,
|
|
V4L2_BUF_TYPE_VBI_OUTPUT = 5,
|
|
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
|
|
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
|
|
V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
|
|
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
|
|
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10,
|
|
V4L2_BUF_TYPE_SDR_CAPTURE = 11,
|
|
V4L2_BUF_TYPE_SDR_OUTPUT = 12,
|
|
V4L2_BUF_TYPE_META_CAPTURE = 13,
|
|
/* Deprecated, do not use */
|
|
V4L2_BUF_TYPE_PRIVATE = 0x80,
|
|
};
|
|
|
|
#define V4L2_TYPE_IS_MULTIPLANAR(type) \
|
|
((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE \
|
|
|| (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
|
|
|
|
#define V4L2_TYPE_IS_OUTPUT(type) \
|
|
((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT \
|
|
|| (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE \
|
|
|| (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \
|
|
|| (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \
|
|
|| (type) == V4L2_BUF_TYPE_VBI_OUTPUT \
|
|
|| (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT \
|
|
|| (type) == V4L2_BUF_TYPE_SDR_OUTPUT)
|
|
|
|
enum v4l2_tuner_type {
|
|
V4L2_TUNER_RADIO = 1,
|
|
V4L2_TUNER_ANALOG_TV = 2,
|
|
V4L2_TUNER_DIGITAL_TV = 3,
|
|
V4L2_TUNER_SDR = 4,
|
|
V4L2_TUNER_RF = 5,
|
|
};
|
|
|
|
/* Deprecated, do not use */
|
|
#define V4L2_TUNER_ADC V4L2_TUNER_SDR
|
|
|
|
enum v4l2_memory {
|
|
V4L2_MEMORY_MMAP = 1,
|
|
V4L2_MEMORY_USERPTR = 2,
|
|
V4L2_MEMORY_OVERLAY = 3,
|
|
V4L2_MEMORY_DMABUF = 4,
|
|
};
|
|
|
|
/* see also http://vektor.theorem.ca/graphics/ycbcr/ */
|
|
enum v4l2_colorspace {
|
|
/*
|
|
* Default colorspace, i.e. let the driver figure it out.
|
|
* Can only be used with video capture.
|
|
*/
|
|
V4L2_COLORSPACE_DEFAULT = 0,
|
|
|
|
/* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
|
|
V4L2_COLORSPACE_SMPTE170M = 1,
|
|
|
|
/* Obsolete pre-1998 SMPTE 240M HDTV standard, superseded by Rec 709 */
|
|
V4L2_COLORSPACE_SMPTE240M = 2,
|
|
|
|
/* Rec.709: used for HDTV */
|
|
V4L2_COLORSPACE_REC709 = 3,
|
|
|
|
/*
|
|
* Deprecated, do not use. No driver will ever return this. This was
|
|
* based on a misunderstanding of the bt878 datasheet.
|
|
*/
|
|
V4L2_COLORSPACE_BT878 = 4,
|
|
|
|
/*
|
|
* NTSC 1953 colorspace. This only makes sense when dealing with
|
|
* really, really old NTSC recordings. Superseded by SMPTE 170M.
|
|
*/
|
|
V4L2_COLORSPACE_470_SYSTEM_M = 5,
|
|
|
|
/*
|
|
* EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when
|
|
* dealing with really old PAL/SECAM recordings. Superseded by
|
|
* SMPTE 170M.
|
|
*/
|
|
V4L2_COLORSPACE_470_SYSTEM_BG = 6,
|
|
|
|
/*
|
|
* Effectively shorthand for V4L2_COLORSPACE_SRGB, V4L2_YCBCR_ENC_601
|
|
* and V4L2_QUANTIZATION_FULL_RANGE. To be used for (Motion-)JPEG.
|
|
*/
|
|
V4L2_COLORSPACE_JPEG = 7,
|
|
|
|
/* For RGB colorspaces such as produces by most webcams. */
|
|
V4L2_COLORSPACE_SRGB = 8,
|
|
|
|
/* opRGB colorspace */
|
|
V4L2_COLORSPACE_OPRGB = 9,
|
|
|
|
/* BT.2020 colorspace, used for UHDTV. */
|
|
V4L2_COLORSPACE_BT2020 = 10,
|
|
|
|
/* Raw colorspace: for RAW unprocessed images */
|
|
V4L2_COLORSPACE_RAW = 11,
|
|
|
|
/* DCI-P3 colorspace, used by cinema projectors */
|
|
V4L2_COLORSPACE_DCI_P3 = 12,
|
|
};
|
|
|
|
/*
|
|
* Determine how COLORSPACE_DEFAULT should map to a proper colorspace.
|
|
* This depends on whether this is a SDTV image (use SMPTE 170M), an
|
|
* HDTV image (use Rec. 709), or something else (use sRGB).
|
|
*/
|
|
#define V4L2_MAP_COLORSPACE_DEFAULT(is_sdtv, is_hdtv) \
|
|
((is_sdtv) ? V4L2_COLORSPACE_SMPTE170M : \
|
|
((is_hdtv) ? V4L2_COLORSPACE_REC709 : V4L2_COLORSPACE_SRGB))
|
|
|
|
enum v4l2_xfer_func {
|
|
/*
|
|
* Mapping of V4L2_XFER_FUNC_DEFAULT to actual transfer functions
|
|
* for the various colorspaces:
|
|
*
|
|
* V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
|
|
* V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_REC709 and
|
|
* V4L2_COLORSPACE_BT2020: V4L2_XFER_FUNC_709
|
|
*
|
|
* V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_JPEG: V4L2_XFER_FUNC_SRGB
|
|
*
|
|
* V4L2_COLORSPACE_OPRGB: V4L2_XFER_FUNC_OPRGB
|
|
*
|
|
* V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M
|
|
*
|
|
* V4L2_COLORSPACE_RAW: V4L2_XFER_FUNC_NONE
|
|
*
|
|
* V4L2_COLORSPACE_DCI_P3: V4L2_XFER_FUNC_DCI_P3
|
|
*/
|
|
V4L2_XFER_FUNC_DEFAULT = 0,
|
|
V4L2_XFER_FUNC_709 = 1,
|
|
V4L2_XFER_FUNC_SRGB = 2,
|
|
V4L2_XFER_FUNC_OPRGB = 3,
|
|
V4L2_XFER_FUNC_SMPTE240M = 4,
|
|
V4L2_XFER_FUNC_NONE = 5,
|
|
V4L2_XFER_FUNC_DCI_P3 = 6,
|
|
V4L2_XFER_FUNC_SMPTE2084 = 7,
|
|
};
|
|
|
|
/*
|
|
* Determine how XFER_FUNC_DEFAULT should map to a proper transfer function.
|
|
* This depends on the colorspace.
|
|
*/
|
|
#define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \
|
|
((colsp) == V4L2_COLORSPACE_OPRGB ? V4L2_XFER_FUNC_OPRGB : \
|
|
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \
|
|
((colsp) == V4L2_COLORSPACE_DCI_P3 ? V4L2_XFER_FUNC_DCI_P3 : \
|
|
((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
|
|
((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
|
|
V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709)))))
|
|
|
|
enum v4l2_ycbcr_encoding {
|
|
/*
|
|
* Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
|
|
* various colorspaces:
|
|
*
|
|
* V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
|
|
* V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_SRGB,
|
|
* V4L2_COLORSPACE_OPRGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
|
|
*
|
|
* V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709
|
|
*
|
|
* V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020
|
|
*
|
|
* V4L2_COLORSPACE_SMPTE240M: V4L2_YCBCR_ENC_SMPTE240M
|
|
*/
|
|
V4L2_YCBCR_ENC_DEFAULT = 0,
|
|
|
|
/* ITU-R 601 -- SDTV */
|
|
V4L2_YCBCR_ENC_601 = 1,
|
|
|
|
/* Rec. 709 -- HDTV */
|
|
V4L2_YCBCR_ENC_709 = 2,
|
|
|
|
/* ITU-R 601/EN 61966-2-4 Extended Gamut -- SDTV */
|
|
V4L2_YCBCR_ENC_XV601 = 3,
|
|
|
|
/* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */
|
|
V4L2_YCBCR_ENC_XV709 = 4,
|
|
|
|
#ifndef __KERNEL__
|
|
/*
|
|
* sYCC (Y'CbCr encoding of sRGB), identical to ENC_601. It was added
|
|
* originally due to a misunderstanding of the sYCC standard. It should
|
|
* not be used, instead use V4L2_YCBCR_ENC_601.
|
|
*/
|
|
V4L2_YCBCR_ENC_SYCC = 5,
|
|
#endif
|
|
|
|
/* BT.2020 Non-constant Luminance Y'CbCr */
|
|
V4L2_YCBCR_ENC_BT2020 = 6,
|
|
|
|
/* BT.2020 Constant Luminance Y'CbcCrc */
|
|
V4L2_YCBCR_ENC_BT2020_CONST_LUM = 7,
|
|
|
|
/* SMPTE 240M -- Obsolete HDTV */
|
|
V4L2_YCBCR_ENC_SMPTE240M = 8,
|
|
};
|
|
|
|
/*
|
|
* enum v4l2_hsv_encoding values should not collide with the ones from
|
|
* enum v4l2_ycbcr_encoding.
|
|
*/
|
|
enum v4l2_hsv_encoding {
|
|
|
|
/* Hue mapped to 0 - 179 */
|
|
V4L2_HSV_ENC_180 = 128,
|
|
|
|
/* Hue mapped to 0-255 */
|
|
V4L2_HSV_ENC_256 = 129,
|
|
};
|
|
|
|
/*
|
|
* Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
|
|
* This depends on the colorspace.
|
|
*/
|
|
#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
|
|
(((colsp) == V4L2_COLORSPACE_REC709 || \
|
|
(colsp) == V4L2_COLORSPACE_DCI_P3) ? V4L2_YCBCR_ENC_709 : \
|
|
((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
|
|
((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
|
|
V4L2_YCBCR_ENC_601)))
|
|
|
|
enum v4l2_quantization {
|
|
/*
|
|
* The default for R'G'B' quantization is always full range, except
|
|
* for the BT2020 colorspace. For Y'CbCr the quantization is always
|
|
* limited range, except for COLORSPACE_JPEG: this is full range.
|
|
*/
|
|
V4L2_QUANTIZATION_DEFAULT = 0,
|
|
V4L2_QUANTIZATION_FULL_RANGE = 1,
|
|
V4L2_QUANTIZATION_LIM_RANGE = 2,
|
|
};
|
|
|
|
/*
|
|
* Determine how QUANTIZATION_DEFAULT should map to a proper quantization.
|
|
* This depends on whether the image is RGB or not, the colorspace and the
|
|
* Y'CbCr encoding.
|
|
*/
|
|
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \
|
|
(((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
|
|
V4L2_QUANTIZATION_LIM_RANGE : \
|
|
(((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \
|
|
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
|
|
|
/*
|
|
* Deprecated names for opRGB colorspace (IEC 61966-2-5)
|
|
*
|
|
* WARNING: Please don't use these deprecated defines in your code, as
|
|
* there is a chance we have to remove them in the future.
|
|
*/
|
|
#ifndef __KERNEL__
|
|
#define V4L2_COLORSPACE_ADOBERGB V4L2_COLORSPACE_OPRGB
|
|
#define V4L2_XFER_FUNC_ADOBERGB V4L2_XFER_FUNC_OPRGB
|
|
#endif
|
|
|
|
enum v4l2_priority {
|
|
V4L2_PRIORITY_UNSET = 0, /* not initialized */
|
|
V4L2_PRIORITY_BACKGROUND = 1,
|
|
V4L2_PRIORITY_INTERACTIVE = 2,
|
|
V4L2_PRIORITY_RECORD = 3,
|
|
V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE,
|
|
};
|
|
|
|
struct v4l2_rect {
|
|
__s32 left;
|
|
__s32 top;
|
|
__u32 width;
|
|
__u32 height;
|
|
};
|
|
|
|
struct v4l2_fract {
|
|
__u32 numerator;
|
|
__u32 denominator;
|
|
};
|
|
|
|
/**
|
|
* struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
|
|
*
|
|
* @driver: name of the driver module (e.g. "bttv")
|
|
* @card: name of the card (e.g. "Hauppauge WinTV")
|
|
* @bus_info: name of the bus (e.g. "PCI:" + pci_name(pci_dev) )
|
|
* @version: KERNEL_VERSION
|
|
* @capabilities: capabilities of the physical device as a whole
|
|
* @device_caps: capabilities accessed via this particular device (node)
|
|
* @reserved: reserved fields for future extensions
|
|
*/
|
|
struct v4l2_capability {
|
|
__u8 driver[16];
|
|
__u8 card[32];
|
|
__u8 bus_info[32];
|
|
__u32 version;
|
|
__u32 capabilities;
|
|
__u32 device_caps;
|
|
__u32 reserved[3];
|
|
};
|
|
|
|
/* Values for 'capabilities' field */
|
|
#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
|
|
#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
|
|
#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
|
|
#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */
|
|
#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */
|
|
#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */
|
|
#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */
|
|
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
|
|
#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */
|
|
#define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */
|
|
#define V4L2_CAP_RDS_OUTPUT 0x00000800 /* Is an RDS encoder */
|
|
|
|
/* Is a video capture device that supports multiplanar formats */
|
|
#define V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000
|
|
/* Is a video output device that supports multiplanar formats */
|
|
#define V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000
|
|
/* Is a video mem-to-mem device that supports multiplanar formats */
|
|
#define V4L2_CAP_VIDEO_M2M_MPLANE 0x00004000
|
|
/* Is a video mem-to-mem device */
|
|
#define V4L2_CAP_VIDEO_M2M 0x00008000
|
|
|
|
#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
|
|
#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
|
|
#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
|
|
#define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */
|
|
|
|
#define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */
|
|
#define V4L2_CAP_EXT_PIX_FORMAT 0x00200000 /* Supports the extended pixel format */
|
|
#define V4L2_CAP_SDR_OUTPUT 0x00400000 /* Is a SDR output device */
|
|
#define V4L2_CAP_META_CAPTURE 0x00800000 /* Is a metadata capture device */
|
|
|
|
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
|
|
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
|
|
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
|
|
|
|
#define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */
|
|
|
|
#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */
|
|
|
|
/*
|
|
* V I D E O I M A G E F O R M A T
|
|
*/
|
|
struct v4l2_pix_format {
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 pixelformat;
|
|
__u32 field; /* enum v4l2_field */
|
|
__u32 bytesperline; /* for padding, zero if unused */
|
|
__u32 sizeimage;
|
|
__u32 colorspace; /* enum v4l2_colorspace */
|
|
__u32 priv; /* private data, depends on pixelformat */
|
|
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
|
union {
|
|
/* enum v4l2_ycbcr_encoding */
|
|
__u32 ycbcr_enc;
|
|
/* enum v4l2_hsv_encoding */
|
|
__u32 hsv_enc;
|
|
};
|
|
__u32 quantization; /* enum v4l2_quantization */
|
|
__u32 xfer_func; /* enum v4l2_xfer_func */
|
|
};
|
|
|
|
/* Pixel format FOURCC depth Description */
|
|
|
|
/* RGB formats */
|
|
#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
|
|
#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */
|
|
#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */
|
|
#define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16 xxxxrrrr ggggbbbb */
|
|
#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
|
|
#define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16 ARGB-1-5-5-5 */
|
|
#define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */
|
|
#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
|
|
#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */
|
|
#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */
|
|
#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */
|
|
#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
|
|
#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */
|
|
#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
|
|
#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
|
|
#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') /* 32 BGRA-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_RGBA8888_UBWC v4l2_fourcc('Q', 'R', 'G', 'B')
|
|
|
|
/* Grey formats */
|
|
#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */
|
|
#define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */
|
|
#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */
|
|
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */
|
|
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */
|
|
#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */
|
|
#define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */
|
|
|
|
/* Grey bit-packed formats */
|
|
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
|
|
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
|
|
|
|
/* Palette formats */
|
|
#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
|
|
|
|
/* Chrominance formats */
|
|
#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */
|
|
|
|
/* Luminance+Chrominance formats */
|
|
#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */
|
|
#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */
|
|
#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
|
|
#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */
|
|
#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */
|
|
#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */
|
|
#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */
|
|
#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
|
|
#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
|
|
#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
|
|
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
|
|
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
|
|
#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
|
|
|
|
/* two planes -- one Y, one Cr + Cb interleaved */
|
|
#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */
|
|
#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
|
|
#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
|
|
#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
|
|
|
|
/* NV12_512 8-bit Y/CbCr 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV12_512 v4l2_fourcc('Q', '5', '1', '2')
|
|
|
|
/* UBWC 8-bit Y/CbCr 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV12_UBWC v4l2_fourcc('Q', '1', '2', '8')
|
|
/* UBWC 10-bit Y/CbCr 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV12_TP10_UBWC v4l2_fourcc('Q', '1', '2', 'A')
|
|
|
|
#define V4L2_PIX_FMT_NV12_P010_UBWC v4l2_fourcc('Q', '1', '2', 'B')
|
|
|
|
/* two non contiguous planes - one Y, one Cr + Cb interleaved */
|
|
#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */
|
|
#define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */
|
|
#define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */
|
|
#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */
|
|
#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */
|
|
|
|
/* three planes - Y Cb, Cr */
|
|
#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */
|
|
#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
|
|
#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 12 YVU411 planar */
|
|
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
|
|
#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
|
|
#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */
|
|
|
|
/* three non contiguous planes - Y, Cb, Cr */
|
|
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
|
|
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */
|
|
#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */
|
|
#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */
|
|
#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */
|
|
#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */
|
|
|
|
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
|
|
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
|
|
#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */
|
|
#define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */
|
|
#define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */
|
|
#define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0') /* 10 BGBG.. GRGR.. */
|
|
#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */
|
|
#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */
|
|
#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */
|
|
/* 10bit raw bayer packed, 5 bytes for every 4 pixels */
|
|
#define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A')
|
|
#define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A')
|
|
#define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A')
|
|
#define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A')
|
|
/* 10bit raw bayer a-law compressed to 8 bits */
|
|
#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8')
|
|
#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8')
|
|
#define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8')
|
|
#define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8')
|
|
/* 10bit raw bayer DPCM compressed to 8 bits */
|
|
#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8')
|
|
#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
|
|
#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
|
|
#define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8')
|
|
#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */
|
|
#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
|
|
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
|
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
|
#define V4L2_PIX_FMT_SBGGR10DPCM6 v4l2_fourcc('b', 'B', 'A', '6')
|
|
#define V4L2_PIX_FMT_SGBRG10DPCM6 v4l2_fourcc('b', 'G', 'A', '6')
|
|
#define V4L2_PIX_FMT_SGRBG10DPCM6 v4l2_fourcc('B', 'D', '1', '6')
|
|
#define V4L2_PIX_FMT_SRGGB10DPCM6 v4l2_fourcc('b', 'R', 'A', '6')
|
|
|
|
/* 12bit raw bayer packed, 6 bytes for every 4 pixels */
|
|
#define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
|
|
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
|
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
|
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
|
|
/* 14bit raw bayer packed, 7 bytes for every 4 pixels */
|
|
#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
|
|
#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
|
|
#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E')
|
|
#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E')
|
|
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
|
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
|
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
|
#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG.. GBGB.. */
|
|
|
|
#define V4L2_PIX_FMT_SBGGRPLAIN16 v4l2_fourcc('B', 'G', '1', '6')
|
|
#define V4L2_PIX_FMT_SGBRGPLAIN16 v4l2_fourcc('G', 'B', '1', '6')
|
|
#define V4L2_PIX_FMT_SGRBGPLAIN16 v4l2_fourcc('G', 'R', '1', '6')
|
|
#define V4L2_PIX_FMT_SRGGBPLAIN16 v4l2_fourcc('R', 'G', '1', '6')
|
|
/* HSV formats */
|
|
#define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')
|
|
#define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4')
|
|
|
|
/* compressed formats */
|
|
#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */
|
|
#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */
|
|
#define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */
|
|
#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */
|
|
#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */
|
|
#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */
|
|
#define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */
|
|
#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */
|
|
#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */
|
|
#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */
|
|
#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 part 2 ES */
|
|
#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */
|
|
#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
|
|
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
|
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
|
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
|
#define V4L2_PIX_FMT_DIVX_311 v4l2_fourcc('D', 'I', 'V', '3') /* DIVX311 */
|
|
#define V4L2_PIX_FMT_DIVX v4l2_fourcc('D', 'I', 'V', 'X') /* DIVX */
|
|
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
|
|
#define V4L2_PIX_FMT_HEVC_HYBRID v4l2_fourcc('H', 'V', 'C', 'H')
|
|
#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
|
|
#define V4L2_PIX_FMT_TME v4l2_fourcc('T', 'M', 'E', '0') /* TME stream */
|
|
#define V4L2_PIX_FMT_CVP v4l2_fourcc('C', 'V', 'P', '0') /* CVP stream */
|
|
|
|
/* Vendor-specific formats */
|
|
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
|
#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */
|
|
#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */
|
|
#define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */
|
|
#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */
|
|
#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */
|
|
#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */
|
|
#define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */
|
|
#define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */
|
|
#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */
|
|
#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */
|
|
#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */
|
|
#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */
|
|
#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */
|
|
#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */
|
|
#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */
|
|
#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */
|
|
#define V4L2_PIX_FMT_OV511 v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */
|
|
#define V4L2_PIX_FMT_OV518 v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */
|
|
#define V4L2_PIX_FMT_STV0680 v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */
|
|
#define V4L2_PIX_FMT_TM6000 v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */
|
|
#define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */
|
|
#define V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */
|
|
#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */
|
|
#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
|
|
#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */
|
|
#define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */
|
|
#define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
|
|
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
|
|
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
|
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
|
|
|
|
/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
|
|
#define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
|
|
#define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */
|
|
#define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */
|
|
#define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */
|
|
|
|
#define V4L2_PIX_FMT_SDE_ABGR_8888 \
|
|
v4l2_fourcc('R', 'A', '2', '4') /* 32-bit ABGR 8:8:8:8 */
|
|
#define V4L2_PIX_FMT_SDE_RGBA_8888 \
|
|
v4l2_fourcc('A', 'B', '2', '4') /* 32-bit RGBA 8:8:8:8 */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_8888 \
|
|
v4l2_fourcc('X', 'B', '2', '4') /* 32-bit RGBX 8:8:8:8 */
|
|
#define V4L2_PIX_FMT_SDE_XBGR_8888 \
|
|
v4l2_fourcc('R', 'X', '2', '4') /* 32-bit XBGR 8:8:8:8 */
|
|
#define V4L2_PIX_FMT_SDE_RGBA_5551 \
|
|
v4l2_fourcc('R', 'A', '1', '5') /* 16-bit RGBA 5:5:5:1 */
|
|
#define V4L2_PIX_FMT_SDE_ABGR_1555 \
|
|
v4l2_fourcc('A', 'B', '1', '5') /* 16-bit ABGR 1:5:5:5 */
|
|
#define V4L2_PIX_FMT_SDE_BGRA_5551 \
|
|
v4l2_fourcc('B', 'A', '1', '5') /* 16-bit BGRA 5:5:5:1 */
|
|
#define V4L2_PIX_FMT_SDE_BGRX_5551 \
|
|
v4l2_fourcc('B', 'X', '1', '5') /* 16-bit BGRX 5:5:5:1 */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_5551 \
|
|
v4l2_fourcc('R', 'X', '1', '5') /* 16-bit RGBX 5:5:5:1 */
|
|
#define V4L2_PIX_FMT_SDE_XBGR_1555 \
|
|
v4l2_fourcc('X', 'B', '1', '5') /* 16-bit XBGR 1:5:5:5 */
|
|
#define V4L2_PIX_FMT_SDE_RGBA_4444 \
|
|
v4l2_fourcc('R', 'A', '1', '2') /* 16-bit RGBA 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_BGRA_4444 \
|
|
v4l2_fourcc('b', 'A', '1', '2') /* 16-bit BGRA 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_ABGR_4444 \
|
|
v4l2_fourcc('A', 'B', '1', '2') /* 16-bit ABGR 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_4444 \
|
|
v4l2_fourcc('R', 'X', '1', '2') /* 16-bit RGBX 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_BGRX_4444 \
|
|
v4l2_fourcc('B', 'X', '1', '2') /* 16-bit BGRX 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_XBGR_4444 \
|
|
v4l2_fourcc('X', 'B', '1', '2') /* 16-bit XBGR 4:4:4:4 */
|
|
#define V4L2_PIX_FMT_SDE_BGR_565 \
|
|
v4l2_fourcc('B', 'G', '1', '6') /* 16-bit BGR 5:6:5 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CR_CB_GH2V2 \
|
|
v4l2_fourcc('Y', 'U', '4', '2') /* Planar YVU 4:2:0 A16 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CBCR_H1V2 \
|
|
v4l2_fourcc('N', 'H', '1', '6') /* Y/CbCr 4:2:2 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CRCB_H1V2 \
|
|
v4l2_fourcc('N', 'H', '6', '1') /* Y/CrCb 4:2:2 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_VENUS \
|
|
v4l2_fourcc('Q', 'N', 'V', '2') /* Y/CbCr 4:2:0 Venus */
|
|
#define V4L2_PIX_FMT_SDE_Y_CRCB_H2V2_VENUS \
|
|
v4l2_fourcc('Q', 'N', 'V', '1') /* Y/CrCb 4:2:0 Venus */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_8888_UBWC \
|
|
v4l2_fourcc('Q', 'X', 'B', '4') /* RGBX 8:8:8:8 UBWC */
|
|
#define V4L2_PIX_FMT_SDE_RGB_565_UBWC \
|
|
v4l2_fourcc('Q', 'R', 'G', '6') /* RGB 5:6:5 UBWC */
|
|
#define V4L2_PIX_FMT_SDE_RGBA_1010102 \
|
|
v4l2_fourcc('A', 'B', '3', '0') /* RGBA 10:10:10:2 */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_1010102 \
|
|
v4l2_fourcc('X', 'B', '3', '0') /* RGBX 10:10:10:2 */
|
|
#define V4L2_PIX_FMT_SDE_ARGB_2101010 \
|
|
v4l2_fourcc('A', 'R', '3', '0') /* ARGB 2:10:10:10 */
|
|
#define V4L2_PIX_FMT_SDE_XRGB_2101010 \
|
|
v4l2_fourcc('X', 'R', '3', '0') /* XRGB 2:10:10:10 */
|
|
#define V4L2_PIX_FMT_SDE_BGRA_1010102 \
|
|
v4l2_fourcc('B', 'A', '3', '0') /* BGRA 10:10:10:2 */
|
|
#define V4L2_PIX_FMT_SDE_BGRX_1010102 \
|
|
v4l2_fourcc('B', 'X', '3', '0') /* BGRX 10:10:10:2 */
|
|
#define V4L2_PIX_FMT_SDE_ABGR_2101010 \
|
|
v4l2_fourcc('R', 'A', '3', '0') /* ABGR 2:10:10:10 */
|
|
#define V4L2_PIX_FMT_SDE_XBGR_2101010 \
|
|
v4l2_fourcc('R', 'X', '3', '0') /* XBGR 2:10:10:10 */
|
|
#define V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC \
|
|
v4l2_fourcc('Q', 'R', 'B', 'A') /* RGBA 10:10:10:2 UBWC */
|
|
#define V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC \
|
|
v4l2_fourcc('Q', 'X', 'B', 'A') /* RGBX 10:10:10:2 UBWC */
|
|
#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10 \
|
|
v4l2_fourcc('T', 'P', '1', '0') /* Y/CbCr 4:2:0 TP10 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010 \
|
|
v4l2_fourcc('P', '0', '1', '0') /* Y/CbCr 4:2:0 P10 */
|
|
#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010_VENUS \
|
|
v4l2_fourcc('Q', 'P', '1', '0') /* Y/CbCr 4:2:0 P10 Venus*/
|
|
|
|
/* SDR formats - used only for Software Defined Radio devices */
|
|
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
|
#define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
|
|
#define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */
|
|
#define V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */
|
|
#define V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2') /* real u12le */
|
|
#define V4L2_SDR_FMT_PCU16BE v4l2_fourcc('P', 'C', '1', '6') /* planar complex u16be */
|
|
#define V4L2_SDR_FMT_PCU18BE v4l2_fourcc('P', 'C', '1', '8') /* planar complex u18be */
|
|
#define V4L2_SDR_FMT_PCU20BE v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */
|
|
|
|
/* Touch formats - used for Touch devices */
|
|
#define V4L2_TCH_FMT_DELTA_TD16 v4l2_fourcc('T', 'D', '1', '6') /* 16-bit signed deltas */
|
|
#define V4L2_TCH_FMT_DELTA_TD08 v4l2_fourcc('T', 'D', '0', '8') /* 8-bit signed deltas */
|
|
#define V4L2_TCH_FMT_TU16 v4l2_fourcc('T', 'U', '1', '6') /* 16-bit unsigned touch data */
|
|
#define V4L2_TCH_FMT_TU08 v4l2_fourcc('T', 'U', '0', '8') /* 8-bit unsigned touch data */
|
|
|
|
/* Meta-data formats */
|
|
#define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */
|
|
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
|
|
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
|
|
|
|
/* priv field value to indicates that subsequent fields are valid. */
|
|
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
|
|
|
/* Flags */
|
|
#define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
|
|
|
|
/*
|
|
* F O R M A T E N U M E R A T I O N
|
|
*/
|
|
struct v4l2_fmtdesc {
|
|
__u32 index; /* Format number */
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
__u32 flags;
|
|
__u8 description[32]; /* Description string */
|
|
__u32 pixelformat; /* Format fourcc */
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
#define V4L2_FMT_FLAG_COMPRESSED 0x0001
|
|
#define V4L2_FMT_FLAG_EMULATED 0x0002
|
|
|
|
/* Frame Size and frame rate enumeration */
|
|
/*
|
|
* F R A M E S I Z E E N U M E R A T I O N
|
|
*/
|
|
enum v4l2_frmsizetypes {
|
|
V4L2_FRMSIZE_TYPE_DISCRETE = 1,
|
|
V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,
|
|
V4L2_FRMSIZE_TYPE_STEPWISE = 3,
|
|
};
|
|
|
|
struct v4l2_frmsize_discrete {
|
|
__u32 width; /* Frame width [pixel] */
|
|
__u32 height; /* Frame height [pixel] */
|
|
};
|
|
|
|
struct v4l2_frmsize_stepwise {
|
|
__u32 min_width; /* Minimum frame width [pixel] */
|
|
__u32 max_width; /* Maximum frame width [pixel] */
|
|
__u32 step_width; /* Frame width step size [pixel] */
|
|
__u32 min_height; /* Minimum frame height [pixel] */
|
|
__u32 max_height; /* Maximum frame height [pixel] */
|
|
__u32 step_height; /* Frame height step size [pixel] */
|
|
};
|
|
|
|
struct v4l2_frmsizeenum {
|
|
__u32 index; /* Frame size number */
|
|
__u32 pixel_format; /* Pixel format */
|
|
__u32 type; /* Frame size type the device supports. */
|
|
|
|
union { /* Frame size */
|
|
struct v4l2_frmsize_discrete discrete;
|
|
struct v4l2_frmsize_stepwise stepwise;
|
|
};
|
|
|
|
__u32 reserved[2]; /* Reserved space for future use */
|
|
};
|
|
|
|
/*
|
|
* F R A M E R A T E E N U M E R A T I O N
|
|
*/
|
|
enum v4l2_frmivaltypes {
|
|
V4L2_FRMIVAL_TYPE_DISCRETE = 1,
|
|
V4L2_FRMIVAL_TYPE_CONTINUOUS = 2,
|
|
V4L2_FRMIVAL_TYPE_STEPWISE = 3,
|
|
};
|
|
|
|
struct v4l2_frmival_stepwise {
|
|
struct v4l2_fract min; /* Minimum frame interval [s] */
|
|
struct v4l2_fract max; /* Maximum frame interval [s] */
|
|
struct v4l2_fract step; /* Frame interval step size [s] */
|
|
};
|
|
|
|
struct v4l2_frmivalenum {
|
|
__u32 index; /* Frame format index */
|
|
__u32 pixel_format; /* Pixel format */
|
|
__u32 width; /* Frame width */
|
|
__u32 height; /* Frame height */
|
|
__u32 type; /* Frame interval type the device supports. */
|
|
|
|
union { /* Frame interval */
|
|
struct v4l2_fract discrete;
|
|
struct v4l2_frmival_stepwise stepwise;
|
|
};
|
|
|
|
__u32 reserved[2]; /* Reserved space for future use */
|
|
};
|
|
|
|
/*
|
|
* T I M E C O D E
|
|
*/
|
|
struct v4l2_timecode {
|
|
__u32 type;
|
|
__u32 flags;
|
|
__u8 frames;
|
|
__u8 seconds;
|
|
__u8 minutes;
|
|
__u8 hours;
|
|
__u8 userbits[4];
|
|
};
|
|
|
|
/* Type */
|
|
#define V4L2_TC_TYPE_24FPS 1
|
|
#define V4L2_TC_TYPE_25FPS 2
|
|
#define V4L2_TC_TYPE_30FPS 3
|
|
#define V4L2_TC_TYPE_50FPS 4
|
|
#define V4L2_TC_TYPE_60FPS 5
|
|
|
|
/* Flags */
|
|
#define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */
|
|
#define V4L2_TC_FLAG_COLORFRAME 0x0002
|
|
#define V4L2_TC_USERBITS_field 0x000C
|
|
#define V4L2_TC_USERBITS_USERDEFINED 0x0000
|
|
#define V4L2_TC_USERBITS_8BITCHARS 0x0008
|
|
/* The above is based on SMPTE timecodes */
|
|
|
|
struct v4l2_jpegcompression {
|
|
int quality;
|
|
|
|
int APPn; /* Number of APP segment to be written,
|
|
* must be 0..15 */
|
|
int APP_len; /* Length of data in JPEG APPn segment */
|
|
char APP_data[60]; /* Data in the JPEG APPn segment. */
|
|
|
|
int COM_len; /* Length of data in JPEG COM segment */
|
|
char COM_data[60]; /* Data in JPEG COM segment */
|
|
|
|
__u32 jpeg_markers; /* Which markers should go into the JPEG
|
|
* output. Unless you exactly know what
|
|
* you do, leave them untouched.
|
|
* Including less markers will make the
|
|
* resulting code smaller, but there will
|
|
* be fewer applications which can read it.
|
|
* The presence of the APP and COM marker
|
|
* is influenced by APP_len and COM_len
|
|
* ONLY, not by this property! */
|
|
|
|
#define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */
|
|
#define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */
|
|
#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */
|
|
#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */
|
|
#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will
|
|
* always use APP0 */
|
|
};
|
|
|
|
/*
|
|
* M E M O R Y - M A P P I N G B U F F E R S
|
|
*/
|
|
struct v4l2_requestbuffers {
|
|
__u32 count;
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
__u32 memory; /* enum v4l2_memory */
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
/**
|
|
* struct v4l2_plane - plane info for multi-planar buffers
|
|
* @bytesused: number of bytes occupied by data in the plane (payload)
|
|
* @length: size of this plane (NOT the payload) in bytes
|
|
* @mem_offset: when memory in the associated struct v4l2_buffer is
|
|
* V4L2_MEMORY_MMAP, equals the offset from the start of
|
|
* the device memory for this plane (or is a "cookie" that
|
|
* should be passed to mmap() called on the video node)
|
|
* @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
|
|
* pointing to this plane
|
|
* @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
|
|
* descriptor associated with this plane
|
|
* @data_offset: offset in the plane to the start of data; usually 0,
|
|
* unless there is a header in front of the data
|
|
*
|
|
* Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer
|
|
* with two planes can have one plane for Y, and another for interleaved CbCr
|
|
* components. Each plane can reside in a separate memory buffer, or even in
|
|
* a completely separate memory node (e.g. in embedded devices).
|
|
*/
|
|
struct v4l2_plane {
|
|
__u32 bytesused;
|
|
__u32 length;
|
|
union {
|
|
__u32 mem_offset;
|
|
unsigned long userptr;
|
|
__s32 fd;
|
|
} m;
|
|
__u32 data_offset;
|
|
__u32 reserved[11];
|
|
};
|
|
|
|
/**
|
|
* struct v4l2_buffer - video buffer info
|
|
* @index: id number of the buffer
|
|
* @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for
|
|
* multiplanar buffers);
|
|
* @bytesused: number of bytes occupied by data in the buffer (payload);
|
|
* unused (set to 0) for multiplanar buffers
|
|
* @flags: buffer informational flags
|
|
* @field: enum v4l2_field; field order of the image in the buffer
|
|
* @timestamp: frame timestamp
|
|
* @timecode: frame timecode
|
|
* @sequence: sequence count of this frame
|
|
* @memory: enum v4l2_memory; the method, in which the actual video data is
|
|
* passed
|
|
* @offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP;
|
|
* offset from the start of the device memory for this plane,
|
|
* (or a "cookie" that should be passed to mmap() as offset)
|
|
* @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
|
|
* a userspace pointer pointing to this buffer
|
|
* @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF;
|
|
* a userspace file descriptor associated with this buffer
|
|
* @planes: for multiplanar buffers; userspace pointer to the array of plane
|
|
* info structs for this buffer
|
|
* @length: size in bytes of the buffer (NOT its payload) for single-plane
|
|
* buffers (when type != *_MPLANE); number of elements in the
|
|
* planes array for multi-plane buffers
|
|
*
|
|
* Contains data exchanged by application and driver using one of the Streaming
|
|
* I/O methods.
|
|
*/
|
|
struct v4l2_buffer {
|
|
__u32 index;
|
|
__u32 type;
|
|
__u32 bytesused;
|
|
__u32 flags;
|
|
__u32 field;
|
|
struct timeval timestamp;
|
|
struct v4l2_timecode timecode;
|
|
__u32 sequence;
|
|
|
|
/* memory location */
|
|
__u32 memory;
|
|
union {
|
|
__u32 offset;
|
|
unsigned long userptr;
|
|
struct v4l2_plane *planes;
|
|
__s32 fd;
|
|
} m;
|
|
__u32 length;
|
|
__u32 reserved2;
|
|
__u32 reserved;
|
|
};
|
|
|
|
/* Flags for 'flags' field */
|
|
/* Buffer is mapped (flag) */
|
|
#define V4L2_BUF_FLAG_MAPPED 0x00000001
|
|
/* Buffer is queued for processing */
|
|
#define V4L2_BUF_FLAG_QUEUED 0x00000002
|
|
/* Buffer is ready */
|
|
#define V4L2_BUF_FLAG_DONE 0x00000004
|
|
/* Image is a keyframe (I-frame) */
|
|
#define V4L2_BUF_FLAG_KEYFRAME 0x00000008
|
|
/* Image is a P-frame */
|
|
#define V4L2_BUF_FLAG_PFRAME 0x00000010
|
|
/* Image is a B-frame */
|
|
#define V4L2_BUF_FLAG_BFRAME 0x00000020
|
|
/* Buffer is ready, but the data contained within is corrupted. */
|
|
#define V4L2_BUF_FLAG_ERROR 0x00000040
|
|
/* timecode field is valid */
|
|
#define V4L2_BUF_FLAG_TIMECODE 0x00000100
|
|
/* Buffer is prepared for queuing */
|
|
#define V4L2_BUF_FLAG_PREPARED 0x00000400
|
|
/* Cache handling flags */
|
|
#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x00000800
|
|
#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x00001000
|
|
/* Timestamp type */
|
|
#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0x0000e000
|
|
#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x00000000
|
|
#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x00002000
|
|
#define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x00004000
|
|
/* Timestamp sources. */
|
|
#define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000
|
|
#define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000
|
|
#define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000
|
|
/* mem2mem encoder/decoder */
|
|
#define V4L2_BUF_FLAG_LAST 0x00100000
|
|
/* Vendor extensions */
|
|
#define V4L2_BUF_FLAG_CODECCONFIG 0x00020000
|
|
#define V4L2_BUF_FLAG_END_OF_SUBFRAME 0x00000080
|
|
#define V4L2_BUF_FLAG_DATA_CORRUPT 0x00400000
|
|
#define V4L2_BUF_INPUT_UNSUPPORTED 0x01000000
|
|
#define V4L2_BUF_FLAG_EOS 0x02000000
|
|
#define V4L2_BUF_FLAG_READONLY 0x04000000
|
|
#define V4L2_BUF_FLAG_PERF_MODE 0x20000000
|
|
#define V4L2_BUF_FLAG_CVPMETADATA_SKIP 0x40000000
|
|
|
|
#define V4L2_QCOM_BUF_FLAG_EOSEQ 0x00040000
|
|
#define V4L2_QCOM_BUF_TIMESTAMP_INVALID 0x00080000
|
|
#define V4L2_MSM_BUF_FLAG_MBAFF 0x00000200
|
|
#define V4L2_QCOM_BUF_FLAG_DECODEONLY 0x00200000
|
|
#define V4L2_QCOM_BUF_DROP_FRAME 0x00800000
|
|
#define V4L2_MSM_VIDC_BUF_START_CODE_NOT_FOUND 0x08000000
|
|
#define V4L2_MSM_BUF_FLAG_YUV_601_709_CLAMP 0x10000000
|
|
#define V4L2_MSM_BUF_FLAG_DEFER 0x40000000
|
|
#define V4L2_QCOM_BUF_FLAG_IDRFRAME 0x80000000
|
|
#define V4L2_QCOM_BUF_END_OF_SUBFRAME V4L2_BUF_FLAG_END_OF_SUBFRAME
|
|
#define V4L2_QCOM_BUF_FLAG_CODECCONFIG V4L2_BUF_FLAG_CODECCONFIG
|
|
#define V4L2_QCOM_BUF_INPUT_UNSUPPORTED V4L2_BUF_INPUT_UNSUPPORTED
|
|
#define V4L2_QCOM_BUF_FLAG_EOS V4L2_BUF_FLAG_EOS
|
|
#define V4L2_QCOM_BUF_FLAG_READONLY V4L2_BUF_FLAG_READONLY
|
|
#define V4L2_QCOM_BUF_FLAG_PERF_MODE V4L2_BUF_FLAG_PERF_MODE
|
|
|
|
/**
|
|
* struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
|
|
*
|
|
* @index: id number of the buffer
|
|
* @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for
|
|
* multiplanar buffers);
|
|
* @plane: index of the plane to be exported, 0 for single plane queues
|
|
* @flags: flags for newly created file, currently only O_CLOEXEC is
|
|
* supported, refer to manual of open syscall for more details
|
|
* @fd: file descriptor associated with DMABUF (set by driver)
|
|
*
|
|
* Contains data used for exporting a video buffer as DMABUF file descriptor.
|
|
* The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
|
|
* (identical to the cookie used to mmap() the buffer to userspace). All
|
|
* reserved fields must be set to zero. The field reserved0 is expected to
|
|
* become a structure 'type' allowing an alternative layout of the structure
|
|
* content. Therefore this field should not be used for any other extensions.
|
|
*/
|
|
struct v4l2_exportbuffer {
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
__u32 index;
|
|
__u32 plane;
|
|
__u32 flags;
|
|
__s32 fd;
|
|
__u32 reserved[11];
|
|
};
|
|
|
|
/*
|
|
* O V E R L A Y P R E V I E W
|
|
*/
|
|
struct v4l2_framebuffer {
|
|
__u32 capability;
|
|
__u32 flags;
|
|
/* FIXME: in theory we should pass something like PCI device + memory
|
|
* region + offset instead of some physical address */
|
|
void *base;
|
|
struct {
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 pixelformat;
|
|
__u32 field; /* enum v4l2_field */
|
|
__u32 bytesperline; /* for padding, zero if unused */
|
|
__u32 sizeimage;
|
|
__u32 colorspace; /* enum v4l2_colorspace */
|
|
__u32 priv; /* reserved field, set to 0 */
|
|
} fmt;
|
|
};
|
|
/* Flags for the 'capability' field. Read only */
|
|
#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001
|
|
#define V4L2_FBUF_CAP_CHROMAKEY 0x0002
|
|
#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004
|
|
#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008
|
|
#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010
|
|
#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020
|
|
#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040
|
|
#define V4L2_FBUF_CAP_SRC_CHROMAKEY 0x0080
|
|
/* Flags for the 'flags' field. */
|
|
#define V4L2_FBUF_FLAG_PRIMARY 0x0001
|
|
#define V4L2_FBUF_FLAG_OVERLAY 0x0002
|
|
#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004
|
|
#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008
|
|
#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010
|
|
#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020
|
|
#define V4L2_FBUF_FLAG_SRC_CHROMAKEY 0x0040
|
|
|
|
struct v4l2_clip {
|
|
struct v4l2_rect c;
|
|
struct v4l2_clip __user *next;
|
|
};
|
|
|
|
struct v4l2_window {
|
|
struct v4l2_rect w;
|
|
__u32 field; /* enum v4l2_field */
|
|
__u32 chromakey;
|
|
struct v4l2_clip __user *clips;
|
|
__u32 clipcount;
|
|
void __user *bitmap;
|
|
__u8 global_alpha;
|
|
};
|
|
|
|
/*
|
|
* C A P T U R E P A R A M E T E R S
|
|
*/
|
|
struct v4l2_captureparm {
|
|
__u32 capability; /* Supported modes */
|
|
__u32 capturemode; /* Current mode */
|
|
struct v4l2_fract timeperframe; /* Time per frame in seconds */
|
|
__u32 extendedmode; /* Driver-specific extensions */
|
|
__u32 readbuffers; /* # of buffers for read */
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
/* Flags for 'capability' and 'capturemode' fields */
|
|
#define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */
|
|
#define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */
|
|
|
|
struct v4l2_outputparm {
|
|
__u32 capability; /* Supported modes */
|
|
__u32 outputmode; /* Current mode */
|
|
struct v4l2_fract timeperframe; /* Time per frame in seconds */
|
|
__u32 extendedmode; /* Driver-specific extensions */
|
|
__u32 writebuffers; /* # of buffers for write */
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
/*
|
|
* I N P U T I M A G E C R O P P I N G
|
|
*/
|
|
struct v4l2_cropcap {
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
struct v4l2_rect bounds;
|
|
struct v4l2_rect defrect;
|
|
struct v4l2_fract pixelaspect;
|
|
};
|
|
|
|
struct v4l2_crop {
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
struct v4l2_rect c;
|
|
};
|
|
|
|
/**
|
|
* struct v4l2_selection - selection info
|
|
* @type: buffer type (do not use *_MPLANE types)
|
|
* @target: Selection target, used to choose one of possible rectangles;
|
|
* defined in v4l2-common.h; V4L2_SEL_TGT_* .
|
|
* @flags: constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
|
|
* @r: coordinates of selection window
|
|
* @reserved: for future use, rounds structure size to 64 bytes, set to zero
|
|
*
|
|
* Hardware may use multiple helper windows to process a video stream.
|
|
* The structure is used to exchange this selection areas between
|
|
* an application and a driver.
|
|
*/
|
|
struct v4l2_selection {
|
|
__u32 type;
|
|
__u32 target;
|
|
__u32 flags;
|
|
struct v4l2_rect r;
|
|
__u32 reserved[9];
|
|
};
|
|
|
|
|
|
/*
|
|
* A N A L O G V I D E O S T A N D A R D
|
|
*/
|
|
|
|
typedef __u64 v4l2_std_id;
|
|
|
|
/* one bit for each */
|
|
#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
|
|
#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
|
|
#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004)
|
|
#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008)
|
|
#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010)
|
|
#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020)
|
|
#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040)
|
|
#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080)
|
|
|
|
#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100)
|
|
#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200)
|
|
#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400)
|
|
#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800)
|
|
|
|
#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) /* BTSC */
|
|
#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) /* EIA-J */
|
|
#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
|
|
#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) /* FM A2 */
|
|
|
|
#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
|
|
#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
|
|
#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000)
|
|
#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000)
|
|
#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000)
|
|
#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000)
|
|
#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000)
|
|
#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000)
|
|
|
|
/* ATSC/HDTV */
|
|
#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)
|
|
#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000)
|
|
|
|
/* FIXME:
|
|
Although std_id is 64 bits, there is an issue on PPC32 architecture that
|
|
makes switch(__u64) to break. So, there's a hack on v4l2-common.c rounding
|
|
this value to 32 bits.
|
|
As, currently, the max value is for V4L2_STD_ATSC_16_VSB (30 bits wide),
|
|
it should work fine. However, if needed to add more than two standards,
|
|
v4l2-common.c should be fixed.
|
|
*/
|
|
|
|
/*
|
|
* Some macros to merge video standards in order to make live easier for the
|
|
* drivers and V4L2 applications
|
|
*/
|
|
|
|
/*
|
|
* "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is
|
|
* Missing here.
|
|
*/
|
|
#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
|
|
V4L2_STD_NTSC_M_JP |\
|
|
V4L2_STD_NTSC_M_KR)
|
|
/* Secam macros */
|
|
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
|
|
V4L2_STD_SECAM_K |\
|
|
V4L2_STD_SECAM_K1)
|
|
/* All Secam Standards */
|
|
#define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\
|
|
V4L2_STD_SECAM_G |\
|
|
V4L2_STD_SECAM_H |\
|
|
V4L2_STD_SECAM_DK |\
|
|
V4L2_STD_SECAM_L |\
|
|
V4L2_STD_SECAM_LC)
|
|
/* PAL macros */
|
|
#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
|
|
V4L2_STD_PAL_B1 |\
|
|
V4L2_STD_PAL_G)
|
|
#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\
|
|
V4L2_STD_PAL_D1 |\
|
|
V4L2_STD_PAL_K)
|
|
/*
|
|
* "Common" PAL - This macro is there to be compatible with the old
|
|
* V4L1 concept of "PAL": /BGDKHI.
|
|
* Several PAL standards are missing here: /M, /N and /Nc
|
|
*/
|
|
#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\
|
|
V4L2_STD_PAL_DK |\
|
|
V4L2_STD_PAL_H |\
|
|
V4L2_STD_PAL_I)
|
|
/* Chroma "agnostic" standards */
|
|
#define V4L2_STD_B (V4L2_STD_PAL_B |\
|
|
V4L2_STD_PAL_B1 |\
|
|
V4L2_STD_SECAM_B)
|
|
#define V4L2_STD_G (V4L2_STD_PAL_G |\
|
|
V4L2_STD_SECAM_G)
|
|
#define V4L2_STD_H (V4L2_STD_PAL_H |\
|
|
V4L2_STD_SECAM_H)
|
|
#define V4L2_STD_L (V4L2_STD_SECAM_L |\
|
|
V4L2_STD_SECAM_LC)
|
|
#define V4L2_STD_GH (V4L2_STD_G |\
|
|
V4L2_STD_H)
|
|
#define V4L2_STD_DK (V4L2_STD_PAL_DK |\
|
|
V4L2_STD_SECAM_DK)
|
|
#define V4L2_STD_BG (V4L2_STD_B |\
|
|
V4L2_STD_G)
|
|
#define V4L2_STD_MN (V4L2_STD_PAL_M |\
|
|
V4L2_STD_PAL_N |\
|
|
V4L2_STD_PAL_Nc |\
|
|
V4L2_STD_NTSC)
|
|
|
|
/* Standards where MTS/BTSC stereo could be found */
|
|
#define V4L2_STD_MTS (V4L2_STD_NTSC_M |\
|
|
V4L2_STD_PAL_M |\
|
|
V4L2_STD_PAL_N |\
|
|
V4L2_STD_PAL_Nc)
|
|
|
|
/* Standards for Countries with 60Hz Line frequency */
|
|
#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
|
|
V4L2_STD_PAL_60 |\
|
|
V4L2_STD_NTSC |\
|
|
V4L2_STD_NTSC_443)
|
|
/* Standards for Countries with 50Hz Line frequency */
|
|
#define V4L2_STD_625_50 (V4L2_STD_PAL |\
|
|
V4L2_STD_PAL_N |\
|
|
V4L2_STD_PAL_Nc |\
|
|
V4L2_STD_SECAM)
|
|
|
|
#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\
|
|
V4L2_STD_ATSC_16_VSB)
|
|
/* Macros with none and all analog standards */
|
|
#define V4L2_STD_UNKNOWN 0
|
|
#define V4L2_STD_ALL (V4L2_STD_525_60 |\
|
|
V4L2_STD_625_50)
|
|
|
|
struct v4l2_standard {
|
|
__u32 index;
|
|
v4l2_std_id id;
|
|
__u8 name[24];
|
|
struct v4l2_fract frameperiod; /* Frames, not fields */
|
|
__u32 framelines;
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
/*
|
|
* D V B T T I M I N G S
|
|
*/
|
|
|
|
/** struct v4l2_bt_timings - BT.656/BT.1120 timing data
|
|
* @width: total width of the active video in pixels
|
|
* @height: total height of the active video in lines
|
|
* @interlaced: Interlaced or progressive
|
|
* @polarities: Positive or negative polarities
|
|
* @pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000
|
|
* @hfrontporch:Horizontal front porch in pixels
|
|
* @hsync: Horizontal Sync length in pixels
|
|
* @hbackporch: Horizontal back porch in pixels
|
|
* @vfrontporch:Vertical front porch in lines
|
|
* @vsync: Vertical Sync length in lines
|
|
* @vbackporch: Vertical back porch in lines
|
|
* @il_vfrontporch:Vertical front porch for the even field
|
|
* (aka field 2) of interlaced field formats
|
|
* @il_vsync: Vertical Sync length for the even field
|
|
* (aka field 2) of interlaced field formats
|
|
* @il_vbackporch:Vertical back porch for the even field
|
|
* (aka field 2) of interlaced field formats
|
|
* @standards: Standards the timing belongs to
|
|
* @flags: Flags
|
|
* @picture_aspect: The picture aspect ratio (hor/vert).
|
|
* @cea861_vic: VIC code as per the CEA-861 standard.
|
|
* @hdmi_vic: VIC code as per the HDMI standard.
|
|
* @reserved: Reserved fields, must be zeroed.
|
|
*
|
|
* A note regarding vertical interlaced timings: height refers to the total
|
|
* height of the active video frame (= two fields). The blanking timings refer
|
|
* to the blanking of each field. So the height of the total frame is
|
|
* calculated as follows:
|
|
*
|
|
* tot_height = height + vfrontporch + vsync + vbackporch +
|
|
* il_vfrontporch + il_vsync + il_vbackporch
|
|
*
|
|
* The active height of each field is height / 2.
|
|
*/
|
|
struct v4l2_bt_timings {
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 interlaced;
|
|
__u32 polarities;
|
|
__u64 pixelclock;
|
|
__u32 hfrontporch;
|
|
__u32 hsync;
|
|
__u32 hbackporch;
|
|
__u32 vfrontporch;
|
|
__u32 vsync;
|
|
__u32 vbackporch;
|
|
__u32 il_vfrontporch;
|
|
__u32 il_vsync;
|
|
__u32 il_vbackporch;
|
|
__u32 standards;
|
|
__u32 flags;
|
|
struct v4l2_fract picture_aspect;
|
|
__u8 cea861_vic;
|
|
__u8 hdmi_vic;
|
|
__u8 reserved[46];
|
|
} __attribute__ ((packed));
|
|
|
|
/* Interlaced or progressive format */
|
|
#define V4L2_DV_PROGRESSIVE 0
|
|
#define V4L2_DV_INTERLACED 1
|
|
|
|
/* Polarities. If bit is not set, it is assumed to be negative polarity */
|
|
#define V4L2_DV_VSYNC_POS_POL 0x00000001
|
|
#define V4L2_DV_HSYNC_POS_POL 0x00000002
|
|
|
|
/* Timings standards */
|
|
#define V4L2_DV_BT_STD_CEA861 (1 << 0) /* CEA-861 Digital TV Profile */
|
|
#define V4L2_DV_BT_STD_DMT (1 << 1) /* VESA Discrete Monitor Timings */
|
|
#define V4L2_DV_BT_STD_CVT (1 << 2) /* VESA Coordinated Video Timings */
|
|
#define V4L2_DV_BT_STD_GTF (1 << 3) /* VESA Generalized Timings Formula */
|
|
#define V4L2_DV_BT_STD_SDI (1 << 4) /* SDI Timings */
|
|
|
|
/* Flags */
|
|
|
|
/*
|
|
* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
|
|
* GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
|
|
* intervals are reduced, allowing a higher resolution over the same
|
|
* bandwidth. This is a read-only flag.
|
|
*/
|
|
#define V4L2_DV_FL_REDUCED_BLANKING (1 << 0)
|
|
/*
|
|
* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
|
|
* of six. These formats can be optionally played at 1 / 1.001 speed.
|
|
* This is a read-only flag.
|
|
*/
|
|
#define V4L2_DV_FL_CAN_REDUCE_FPS (1 << 1)
|
|
/*
|
|
* CEA-861 specific: only valid for video transmitters, the flag is cleared
|
|
* by receivers.
|
|
* If the framerate of the format is a multiple of six, then the pixelclock
|
|
* used to set up the transmitter is divided by 1.001 to make it compatible
|
|
* with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
|
|
* 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
|
|
* such frequencies, then the flag will also be cleared.
|
|
*/
|
|
#define V4L2_DV_FL_REDUCED_FPS (1 << 2)
|
|
/*
|
|
* Specific to interlaced formats: if set, then field 1 is really one half-line
|
|
* longer and field 2 is really one half-line shorter, so each field has
|
|
* exactly the same number of half-lines. Whether half-lines can be detected
|
|
* or used depends on the hardware.
|
|
*/
|
|
#define V4L2_DV_FL_HALF_LINE (1 << 3)
|
|
/*
|
|
* If set, then this is a Consumer Electronics (CE) video format. Such formats
|
|
* differ from other formats (commonly called IT formats) in that if RGB
|
|
* encoding is used then by default the RGB values use limited range (i.e.
|
|
* use the range 16-235) as opposed to 0-255. All formats defined in CEA-861
|
|
* except for the 640x480 format are CE formats.
|
|
*/
|
|
#define V4L2_DV_FL_IS_CE_VIDEO (1 << 4)
|
|
/* Some formats like SMPTE-125M have an interlaced signal with a odd
|
|
* total height. For these formats, if this flag is set, the first
|
|
* field has the extra line. If not, it is the second field.
|
|
*/
|
|
#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE (1 << 5)
|
|
/*
|
|
* If set, then the picture_aspect field is valid. Otherwise assume that the
|
|
* pixels are square, so the picture aspect ratio is the same as the width to
|
|
* height ratio.
|
|
*/
|
|
#define V4L2_DV_FL_HAS_PICTURE_ASPECT (1 << 6)
|
|
/*
|
|
* If set, then the cea861_vic field is valid and contains the Video
|
|
* Identification Code as per the CEA-861 standard.
|
|
*/
|
|
#define V4L2_DV_FL_HAS_CEA861_VIC (1 << 7)
|
|
/*
|
|
* If set, then the hdmi_vic field is valid and contains the Video
|
|
* Identification Code as per the HDMI standard (HDMI Vendor Specific
|
|
* InfoFrame).
|
|
*/
|
|
#define V4L2_DV_FL_HAS_HDMI_VIC (1 << 8)
|
|
|
|
/* A few useful defines to calculate the total blanking and frame sizes */
|
|
#define V4L2_DV_BT_BLANKING_WIDTH(bt) \
|
|
((bt)->hfrontporch + (bt)->hsync + (bt)->hbackporch)
|
|
#define V4L2_DV_BT_FRAME_WIDTH(bt) \
|
|
((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt))
|
|
#define V4L2_DV_BT_BLANKING_HEIGHT(bt) \
|
|
((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \
|
|
(bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch)
|
|
#define V4L2_DV_BT_FRAME_HEIGHT(bt) \
|
|
((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt))
|
|
|
|
/** struct v4l2_dv_timings - DV timings
|
|
* @type: the type of the timings
|
|
* @bt: BT656/1120 timings
|
|
*/
|
|
struct v4l2_dv_timings {
|
|
__u32 type;
|
|
union {
|
|
struct v4l2_bt_timings bt;
|
|
__u32 reserved[32];
|
|
};
|
|
} __attribute__ ((packed));
|
|
|
|
/* Values for the type field */
|
|
#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */
|
|
|
|
|
|
/** struct v4l2_enum_dv_timings - DV timings enumeration
|
|
* @index: enumeration index
|
|
* @pad: the pad number for which to enumerate timings (used with
|
|
* v4l-subdev nodes only)
|
|
* @reserved: must be zeroed
|
|
* @timings: the timings for the given index
|
|
*/
|
|
struct v4l2_enum_dv_timings {
|
|
__u32 index;
|
|
__u32 pad;
|
|
__u32 reserved[2];
|
|
struct v4l2_dv_timings timings;
|
|
};
|
|
|
|
/** struct v4l2_bt_timings_cap - BT.656/BT.1120 timing capabilities
|
|
* @min_width: width in pixels
|
|
* @max_width: width in pixels
|
|
* @min_height: height in lines
|
|
* @max_height: height in lines
|
|
* @min_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000
|
|
* @max_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000
|
|
* @standards: Supported standards
|
|
* @capabilities: Supported capabilities
|
|
* @reserved: Must be zeroed
|
|
*/
|
|
struct v4l2_bt_timings_cap {
|
|
__u32 min_width;
|
|
__u32 max_width;
|
|
__u32 min_height;
|
|
__u32 max_height;
|
|
__u64 min_pixelclock;
|
|
__u64 max_pixelclock;
|
|
__u32 standards;
|
|
__u32 capabilities;
|
|
__u32 reserved[16];
|
|
} __attribute__ ((packed));
|
|
|
|
/* Supports interlaced formats */
|
|
#define V4L2_DV_BT_CAP_INTERLACED (1 << 0)
|
|
/* Supports progressive formats */
|
|
#define V4L2_DV_BT_CAP_PROGRESSIVE (1 << 1)
|
|
/* Supports CVT/GTF reduced blanking */
|
|
#define V4L2_DV_BT_CAP_REDUCED_BLANKING (1 << 2)
|
|
/* Supports custom formats */
|
|
#define V4L2_DV_BT_CAP_CUSTOM (1 << 3)
|
|
|
|
/** struct v4l2_dv_timings_cap - DV timings capabilities
|
|
* @type: the type of the timings (same as in struct v4l2_dv_timings)
|
|
* @pad: the pad number for which to query capabilities (used with
|
|
* v4l-subdev nodes only)
|
|
* @bt: the BT656/1120 timings capabilities
|
|
*/
|
|
struct v4l2_dv_timings_cap {
|
|
__u32 type;
|
|
__u32 pad;
|
|
__u32 reserved[2];
|
|
union {
|
|
struct v4l2_bt_timings_cap bt;
|
|
__u32 raw_data[32];
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
* V I D E O I N P U T S
|
|
*/
|
|
struct v4l2_input {
|
|
__u32 index; /* Which input */
|
|
__u8 name[32]; /* Label */
|
|
__u32 type; /* Type of input */
|
|
__u32 audioset; /* Associated audios (bitfield) */
|
|
__u32 tuner; /* enum v4l2_tuner_type */
|
|
v4l2_std_id std;
|
|
__u32 status;
|
|
__u32 capabilities;
|
|
__u32 reserved[3];
|
|
};
|
|
|
|
/* Values for the 'type' field */
|
|
#define V4L2_INPUT_TYPE_TUNER 1
|
|
#define V4L2_INPUT_TYPE_CAMERA 2
|
|
#define V4L2_INPUT_TYPE_TOUCH 3
|
|
|
|
/* field 'status' - general */
|
|
#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */
|
|
#define V4L2_IN_ST_NO_SIGNAL 0x00000002
|
|
#define V4L2_IN_ST_NO_COLOR 0x00000004
|
|
|
|
/* field 'status' - sensor orientation */
|
|
/* If sensor is mounted upside down set both bits */
|
|
#define V4L2_IN_ST_HFLIP 0x00000010 /* Frames are flipped horizontally */
|
|
#define V4L2_IN_ST_VFLIP 0x00000020 /* Frames are flipped vertically */
|
|
|
|
/* field 'status' - analog */
|
|
#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */
|
|
#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */
|
|
#define V4L2_IN_ST_NO_V_LOCK 0x00000400 /* No vertical sync lock */
|
|
#define V4L2_IN_ST_NO_STD_LOCK 0x00000800 /* No standard format lock */
|
|
|
|
/* field 'status' - digital */
|
|
#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */
|
|
#define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */
|
|
#define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */
|
|
|
|
/* field 'status' - VCR and set-top box */
|
|
#define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */
|
|
#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */
|
|
#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */
|
|
|
|
/* capabilities flags */
|
|
#define V4L2_IN_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
|
|
#define V4L2_IN_CAP_CUSTOM_TIMINGS V4L2_IN_CAP_DV_TIMINGS /* For compatibility */
|
|
#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */
|
|
#define V4L2_IN_CAP_NATIVE_SIZE 0x00000008 /* Supports setting native size */
|
|
|
|
/*
|
|
* V I D E O O U T P U T S
|
|
*/
|
|
struct v4l2_output {
|
|
__u32 index; /* Which output */
|
|
__u8 name[32]; /* Label */
|
|
__u32 type; /* Type of output */
|
|
__u32 audioset; /* Associated audios (bitfield) */
|
|
__u32 modulator; /* Associated modulator */
|
|
v4l2_std_id std;
|
|
__u32 capabilities;
|
|
__u32 reserved[3];
|
|
};
|
|
/* Values for the 'type' field */
|
|
#define V4L2_OUTPUT_TYPE_MODULATOR 1
|
|
#define V4L2_OUTPUT_TYPE_ANALOG 2
|
|
#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
|
|
|
|
/* capabilities flags */
|
|
#define V4L2_OUT_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
|
|
#define V4L2_OUT_CAP_CUSTOM_TIMINGS V4L2_OUT_CAP_DV_TIMINGS /* For compatibility */
|
|
#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */
|
|
#define V4L2_OUT_CAP_NATIVE_SIZE 0x00000008 /* Supports setting native size */
|
|
|
|
/*
|
|
* C O N T R O L S
|
|
*/
|
|
struct v4l2_control {
|
|
__u32 id;
|
|
__s32 value;
|
|
};
|
|
|
|
struct v4l2_ext_control {
|
|
__u32 id;
|
|
__u32 size;
|
|
__u32 reserved2[1];
|
|
union {
|
|
__s32 value;
|
|
__s64 value64;
|
|
char __user *string;
|
|
__u8 __user *p_u8;
|
|
__u16 __user *p_u16;
|
|
__u32 __user *p_u32;
|
|
void __user *ptr;
|
|
};
|
|
} __attribute__ ((packed));
|
|
|
|
struct v4l2_ext_controls {
|
|
union {
|
|
#ifndef __KERNEL__
|
|
__u32 ctrl_class;
|
|
#endif
|
|
__u32 which;
|
|
};
|
|
__u32 count;
|
|
__u32 error_idx;
|
|
__u32 reserved[2];
|
|
struct v4l2_ext_control *controls;
|
|
};
|
|
|
|
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
|
#ifndef __KERNEL__
|
|
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
|
#endif
|
|
#define V4L2_CTRL_ID2WHICH(id) ((id) & 0x0fff0000UL)
|
|
#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
|
|
#define V4L2_CTRL_MAX_DIMS (4)
|
|
#define V4L2_CTRL_WHICH_CUR_VAL 0
|
|
#define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000
|
|
|
|
enum v4l2_ctrl_type {
|
|
V4L2_CTRL_TYPE_INTEGER = 1,
|
|
V4L2_CTRL_TYPE_BOOLEAN = 2,
|
|
V4L2_CTRL_TYPE_MENU = 3,
|
|
V4L2_CTRL_TYPE_BUTTON = 4,
|
|
V4L2_CTRL_TYPE_INTEGER64 = 5,
|
|
V4L2_CTRL_TYPE_CTRL_CLASS = 6,
|
|
V4L2_CTRL_TYPE_STRING = 7,
|
|
V4L2_CTRL_TYPE_BITMASK = 8,
|
|
V4L2_CTRL_TYPE_INTEGER_MENU = 9,
|
|
|
|
/* Compound types are >= 0x0100 */
|
|
V4L2_CTRL_COMPOUND_TYPES = 0x0100,
|
|
V4L2_CTRL_TYPE_U8 = 0x0100,
|
|
V4L2_CTRL_TYPE_U16 = 0x0101,
|
|
V4L2_CTRL_TYPE_U32 = 0x0102,
|
|
};
|
|
|
|
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
|
|
struct v4l2_queryctrl {
|
|
__u32 id;
|
|
__u32 type; /* enum v4l2_ctrl_type */
|
|
__u8 name[32]; /* Whatever */
|
|
__s32 minimum; /* Note signedness */
|
|
__s32 maximum;
|
|
__s32 step;
|
|
__s32 default_value;
|
|
__u32 flags;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
/* Used in the VIDIOC_QUERY_EXT_CTRL ioctl for querying extended controls */
|
|
struct v4l2_query_ext_ctrl {
|
|
__u32 id;
|
|
__u32 type;
|
|
char name[32];
|
|
__s64 minimum;
|
|
__s64 maximum;
|
|
__u64 step;
|
|
__s64 default_value;
|
|
__u32 flags;
|
|
__u32 elem_size;
|
|
__u32 elems;
|
|
__u32 nr_of_dims;
|
|
__u32 dims[V4L2_CTRL_MAX_DIMS];
|
|
__u32 reserved[32];
|
|
};
|
|
|
|
/* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
|
|
struct v4l2_querymenu {
|
|
__u32 id;
|
|
__u32 index;
|
|
union {
|
|
__u8 name[32]; /* Whatever */
|
|
__s64 value;
|
|
};
|
|
__u32 reserved;
|
|
} __attribute__ ((packed));
|
|
|
|
/* Control flags */
|
|
#define V4L2_CTRL_FLAG_DISABLED 0x0001
|
|
#define V4L2_CTRL_FLAG_GRABBED 0x0002
|
|
#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
|
|
#define V4L2_CTRL_FLAG_UPDATE 0x0008
|
|
#define V4L2_CTRL_FLAG_INACTIVE 0x0010
|
|
#define V4L2_CTRL_FLAG_SLIDER 0x0020
|
|
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
|
|
#define V4L2_CTRL_FLAG_VOLATILE 0x0080
|
|
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
|
|
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
|
#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
|
|
|
|
/* Query flags, to be ORed with the control ID */
|
|
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
|
|
#define V4L2_CTRL_FLAG_NEXT_COMPOUND 0x40000000
|
|
|
|
/* User-class control IDs defined by V4L2 */
|
|
#define V4L2_CID_MAX_CTRLS 1024
|
|
/* IDs reserved for driver specific controls */
|
|
#define V4L2_CID_PRIVATE_BASE 0x08000000
|
|
|
|
|
|
/*
|
|
* T U N I N G
|
|
*/
|
|
struct v4l2_tuner {
|
|
__u32 index;
|
|
__u8 name[32];
|
|
__u32 type; /* enum v4l2_tuner_type */
|
|
__u32 capability;
|
|
__u32 rangelow;
|
|
__u32 rangehigh;
|
|
__u32 rxsubchans;
|
|
__u32 audmode;
|
|
__s32 signal;
|
|
__s32 afc;
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
struct v4l2_modulator {
|
|
__u32 index;
|
|
__u8 name[32];
|
|
__u32 capability;
|
|
__u32 rangelow;
|
|
__u32 rangehigh;
|
|
__u32 txsubchans;
|
|
__u32 type; /* enum v4l2_tuner_type */
|
|
__u32 reserved[3];
|
|
};
|
|
|
|
/* Flags for the 'capability' field */
|
|
#define V4L2_TUNER_CAP_LOW 0x0001
|
|
#define V4L2_TUNER_CAP_NORM 0x0002
|
|
#define V4L2_TUNER_CAP_HWSEEK_BOUNDED 0x0004
|
|
#define V4L2_TUNER_CAP_HWSEEK_WRAP 0x0008
|
|
#define V4L2_TUNER_CAP_STEREO 0x0010
|
|
#define V4L2_TUNER_CAP_LANG2 0x0020
|
|
#define V4L2_TUNER_CAP_SAP 0x0020
|
|
#define V4L2_TUNER_CAP_LANG1 0x0040
|
|
#define V4L2_TUNER_CAP_RDS 0x0080
|
|
#define V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100
|
|
#define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200
|
|
#define V4L2_TUNER_CAP_FREQ_BANDS 0x0400
|
|
#define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800
|
|
#define V4L2_TUNER_CAP_1HZ 0x1000
|
|
|
|
/* Flags for the 'rxsubchans' field */
|
|
#define V4L2_TUNER_SUB_MONO 0x0001
|
|
#define V4L2_TUNER_SUB_STEREO 0x0002
|
|
#define V4L2_TUNER_SUB_LANG2 0x0004
|
|
#define V4L2_TUNER_SUB_SAP 0x0004
|
|
#define V4L2_TUNER_SUB_LANG1 0x0008
|
|
#define V4L2_TUNER_SUB_RDS 0x0010
|
|
|
|
/* Values for the 'audmode' field */
|
|
#define V4L2_TUNER_MODE_MONO 0x0000
|
|
#define V4L2_TUNER_MODE_STEREO 0x0001
|
|
#define V4L2_TUNER_MODE_LANG2 0x0002
|
|
#define V4L2_TUNER_MODE_SAP 0x0002
|
|
#define V4L2_TUNER_MODE_LANG1 0x0003
|
|
#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004
|
|
|
|
struct v4l2_frequency {
|
|
__u32 tuner;
|
|
__u32 type; /* enum v4l2_tuner_type */
|
|
__u32 frequency;
|
|
__u32 reserved[8];
|
|
};
|
|
|
|
#define V4L2_BAND_MODULATION_VSB (1 << 1)
|
|
#define V4L2_BAND_MODULATION_FM (1 << 2)
|
|
#define V4L2_BAND_MODULATION_AM (1 << 3)
|
|
|
|
struct v4l2_frequency_band {
|
|
__u32 tuner;
|
|
__u32 type; /* enum v4l2_tuner_type */
|
|
__u32 index;
|
|
__u32 capability;
|
|
__u32 rangelow;
|
|
__u32 rangehigh;
|
|
__u32 modulation;
|
|
__u32 reserved[9];
|
|
};
|
|
|
|
struct v4l2_hw_freq_seek {
|
|
__u32 tuner;
|
|
__u32 type; /* enum v4l2_tuner_type */
|
|
__u32 seek_upward;
|
|
__u32 wrap_around;
|
|
__u32 spacing;
|
|
__u32 rangelow;
|
|
__u32 rangehigh;
|
|
__u32 reserved[5];
|
|
};
|
|
|
|
/*
|
|
* R D S
|
|
*/
|
|
|
|
struct v4l2_rds_data {
|
|
__u8 lsb;
|
|
__u8 msb;
|
|
__u8 block;
|
|
} __attribute__ ((packed));
|
|
|
|
#define V4L2_RDS_BLOCK_MSK 0x7
|
|
#define V4L2_RDS_BLOCK_A 0
|
|
#define V4L2_RDS_BLOCK_B 1
|
|
#define V4L2_RDS_BLOCK_C 2
|
|
#define V4L2_RDS_BLOCK_D 3
|
|
#define V4L2_RDS_BLOCK_C_ALT 4
|
|
#define V4L2_RDS_BLOCK_INVALID 7
|
|
|
|
#define V4L2_RDS_BLOCK_CORRECTED 0x40
|
|
#define V4L2_RDS_BLOCK_ERROR 0x80
|
|
|
|
/*
|
|
* A U D I O
|
|
*/
|
|
struct v4l2_audio {
|
|
__u32 index;
|
|
__u8 name[32];
|
|
__u32 capability;
|
|
__u32 mode;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
/* Flags for the 'capability' field */
|
|
#define V4L2_AUDCAP_STEREO 0x00001
|
|
#define V4L2_AUDCAP_AVL 0x00002
|
|
|
|
/* Flags for the 'mode' field */
|
|
#define V4L2_AUDMODE_AVL 0x00001
|
|
|
|
struct v4l2_audioout {
|
|
__u32 index;
|
|
__u8 name[32];
|
|
__u32 capability;
|
|
__u32 mode;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
/*
|
|
* M P E G S E R V I C E S
|
|
*/
|
|
#define V4L2_ENC_IDX_FRAME_I (0)
|
|
#define V4L2_ENC_IDX_FRAME_P (1)
|
|
#define V4L2_ENC_IDX_FRAME_B (2)
|
|
#define V4L2_ENC_IDX_FRAME_MASK (0xf)
|
|
|
|
struct v4l2_enc_idx_entry {
|
|
__u64 offset;
|
|
__u64 pts;
|
|
__u32 length;
|
|
__u32 flags;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
#define V4L2_ENC_IDX_ENTRIES (64)
|
|
struct v4l2_enc_idx {
|
|
__u32 entries;
|
|
__u32 entries_cap;
|
|
__u32 reserved[4];
|
|
struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES];
|
|
};
|
|
|
|
|
|
#define V4L2_ENC_CMD_START (0)
|
|
#define V4L2_ENC_CMD_STOP (1)
|
|
#define V4L2_ENC_CMD_PAUSE (2)
|
|
#define V4L2_ENC_CMD_RESUME (3)
|
|
|
|
/* Flags for V4L2_ENC_CMD_STOP */
|
|
#define V4L2_ENC_CMD_STOP_AT_GOP_END (1 << 0)
|
|
|
|
struct v4l2_encoder_cmd {
|
|
__u32 cmd;
|
|
__u32 flags;
|
|
union {
|
|
struct {
|
|
__u32 data[8];
|
|
} raw;
|
|
};
|
|
};
|
|
|
|
/* Decoder commands */
|
|
#define V4L2_DEC_CMD_START (0)
|
|
#define V4L2_DEC_CMD_STOP (1)
|
|
#define V4L2_DEC_CMD_PAUSE (2)
|
|
#define V4L2_DEC_CMD_RESUME (3)
|
|
#define V4L2_CMD_FLUSH (4)
|
|
#define V4L2_CMD_SESSION_CONTINUE (5)
|
|
#define V4L2_DEC_QCOM_CMD_RECONFIG_HINT (6)
|
|
|
|
/* Flags for V4L2_DEC_CMD_START */
|
|
#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)
|
|
|
|
/* Flags for V4L2_DEC_CMD_PAUSE */
|
|
#define V4L2_DEC_CMD_PAUSE_TO_BLACK (1 << 0)
|
|
|
|
/* Flags for V4L2_DEC_CMD_STOP */
|
|
#define V4L2_DEC_CMD_STOP_TO_BLACK (1 << 0)
|
|
#define V4L2_DEC_CMD_STOP_IMMEDIATELY (1 << 1)
|
|
|
|
/* Flags for V4L2_CMD_FLUSH */
|
|
#define V4L2_CMD_FLUSH_OUTPUT (1 << 0)
|
|
#define V4L2_CMD_FLUSH_CAPTURE (1 << 1)
|
|
|
|
#define V4L2_QCOM_CMD_FLUSH V4L2_CMD_FLUSH
|
|
#define V4L2_QCOM_CMD_SESSION_CONTINUE V4L2_CMD_SESSION_CONTINUE
|
|
#define V4L2_QCOM_CMD_FLUSH_OUTPUT V4L2_CMD_FLUSH_OUTPUT
|
|
#define V4L2_QCOM_CMD_FLUSH_CAPTURE V4L2_CMD_FLUSH_CAPTURE
|
|
|
|
/* Play format requirements (returned by the driver): */
|
|
|
|
/* The decoder has no special format requirements */
|
|
#define V4L2_DEC_START_FMT_NONE (0)
|
|
/* The decoder requires full GOPs */
|
|
#define V4L2_DEC_START_FMT_GOP (1)
|
|
|
|
/* The structure must be zeroed before use by the application
|
|
This ensures it can be extended safely in the future. */
|
|
struct v4l2_decoder_cmd {
|
|
__u32 cmd;
|
|
__u32 flags;
|
|
union {
|
|
struct {
|
|
__u64 pts;
|
|
} stop;
|
|
|
|
struct {
|
|
/* 0 or 1000 specifies normal speed,
|
|
1 specifies forward single stepping,
|
|
-1 specifies backward single stepping,
|
|
>1: playback at speed/1000 of the normal speed,
|
|
<-1: reverse playback at (-speed/1000) of the normal speed. */
|
|
__s32 speed;
|
|
__u32 format;
|
|
} start;
|
|
|
|
struct {
|
|
__u32 data[16];
|
|
} raw;
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
* D A T A S E R V I C E S ( V B I )
|
|
*
|
|
* Data services API by Michael Schimek
|
|
*/
|
|
|
|
/* Raw VBI */
|
|
struct v4l2_vbi_format {
|
|
__u32 sampling_rate; /* in 1 Hz */
|
|
__u32 offset;
|
|
__u32 samples_per_line;
|
|
__u32 sample_format; /* V4L2_PIX_FMT_* */
|
|
__s32 start[2];
|
|
__u32 count[2];
|
|
__u32 flags; /* V4L2_VBI_* */
|
|
__u32 reserved[2]; /* must be zero */
|
|
};
|
|
|
|
/* VBI flags */
|
|
#define V4L2_VBI_UNSYNC (1 << 0)
|
|
#define V4L2_VBI_INTERLACED (1 << 1)
|
|
|
|
/* ITU-R start lines for each field */
|
|
#define V4L2_VBI_ITU_525_F1_START (1)
|
|
#define V4L2_VBI_ITU_525_F2_START (264)
|
|
#define V4L2_VBI_ITU_625_F1_START (1)
|
|
#define V4L2_VBI_ITU_625_F2_START (314)
|
|
|
|
/* Sliced VBI
|
|
*
|
|
* This implements is a proposal V4L2 API to allow SLICED VBI
|
|
* required for some hardware encoders. It should change without
|
|
* notice in the definitive implementation.
|
|
*/
|
|
|
|
struct v4l2_sliced_vbi_format {
|
|
__u16 service_set;
|
|
/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
|
|
service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
|
|
(equals frame lines 313-336 for 625 line video
|
|
standards, 263-286 for 525 line standards) */
|
|
__u16 service_lines[2][24];
|
|
__u32 io_size;
|
|
__u32 reserved[2]; /* must be zero */
|
|
};
|
|
|
|
/* Teletext World System Teletext
|
|
(WST), defined on ITU-R BT.653-2 */
|
|
#define V4L2_SLICED_TELETEXT_B (0x0001)
|
|
/* Video Program System, defined on ETS 300 231*/
|
|
#define V4L2_SLICED_VPS (0x0400)
|
|
/* Closed Caption, defined on EIA-608 */
|
|
#define V4L2_SLICED_CAPTION_525 (0x1000)
|
|
/* Wide Screen System, defined on ITU-R BT1119.1 */
|
|
#define V4L2_SLICED_WSS_625 (0x4000)
|
|
|
|
#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)
|
|
#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
|
|
|
|
struct v4l2_sliced_vbi_cap {
|
|
__u16 service_set;
|
|
/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
|
|
service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
|
|
(equals frame lines 313-336 for 625 line video
|
|
standards, 263-286 for 525 line standards) */
|
|
__u16 service_lines[2][24];
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
__u32 reserved[3]; /* must be 0 */
|
|
};
|
|
|
|
struct v4l2_sliced_vbi_data {
|
|
__u32 id;
|
|
__u32 field; /* 0: first field, 1: second field */
|
|
__u32 line; /* 1-23 */
|
|
__u32 reserved; /* must be 0 */
|
|
__u8 data[48];
|
|
};
|
|
|
|
/*
|
|
* Sliced VBI data inserted into MPEG Streams
|
|
*/
|
|
|
|
/*
|
|
* V4L2_MPEG_STREAM_VBI_FMT_IVTV:
|
|
*
|
|
* Structure of payload contained in an MPEG 2 Private Stream 1 PES Packet in an
|
|
* MPEG-2 Program Pack that contains V4L2_MPEG_STREAM_VBI_FMT_IVTV Sliced VBI
|
|
* data
|
|
*
|
|
* Note, the MPEG-2 Program Pack and Private Stream 1 PES packet header
|
|
* definitions are not included here. See the MPEG-2 specifications for details
|
|
* on these headers.
|
|
*/
|
|
|
|
/* Line type IDs */
|
|
#define V4L2_MPEG_VBI_IVTV_TELETEXT_B (1)
|
|
#define V4L2_MPEG_VBI_IVTV_CAPTION_525 (4)
|
|
#define V4L2_MPEG_VBI_IVTV_WSS_625 (5)
|
|
#define V4L2_MPEG_VBI_IVTV_VPS (7)
|
|
|
|
struct v4l2_mpeg_vbi_itv0_line {
|
|
__u8 id; /* One of V4L2_MPEG_VBI_IVTV_* above */
|
|
__u8 data[42]; /* Sliced VBI data for the line */
|
|
} __attribute__ ((packed));
|
|
|
|
struct v4l2_mpeg_vbi_itv0 {
|
|
__le32 linemask[2]; /* Bitmasks of VBI service lines present */
|
|
struct v4l2_mpeg_vbi_itv0_line line[35];
|
|
} __attribute__ ((packed));
|
|
|
|
struct v4l2_mpeg_vbi_ITV0 {
|
|
struct v4l2_mpeg_vbi_itv0_line line[36];
|
|
} __attribute__ ((packed));
|
|
|
|
#define V4L2_MPEG_VBI_IVTV_MAGIC0 "itv0"
|
|
#define V4L2_MPEG_VBI_IVTV_MAGIC1 "ITV0"
|
|
|
|
struct v4l2_mpeg_vbi_fmt_ivtv {
|
|
__u8 magic[4];
|
|
union {
|
|
struct v4l2_mpeg_vbi_itv0 itv0;
|
|
struct v4l2_mpeg_vbi_ITV0 ITV0;
|
|
};
|
|
} __attribute__ ((packed));
|
|
|
|
/*
|
|
* A G G R E G A T E S T R U C T U R E S
|
|
*/
|
|
|
|
/**
|
|
* struct v4l2_plane_pix_format - additional, per-plane format definition
|
|
* @sizeimage: maximum size in bytes required for data, for which
|
|
* this plane will be used
|
|
* @bytesperline: distance in bytes between the leftmost pixels in two
|
|
* adjacent lines
|
|
*/
|
|
struct v4l2_plane_pix_format {
|
|
__u32 sizeimage;
|
|
__u32 bytesperline;
|
|
__u16 reserved[6];
|
|
} __attribute__ ((packed));
|
|
|
|
/**
|
|
* struct v4l2_pix_format_mplane - multiplanar format definition
|
|
* @width: image width in pixels
|
|
* @height: image height in pixels
|
|
* @pixelformat: little endian four character code (fourcc)
|
|
* @field: enum v4l2_field; field order (for interlaced video)
|
|
* @colorspace: enum v4l2_colorspace; supplemental to pixelformat
|
|
* @plane_fmt: per-plane information
|
|
* @num_planes: number of planes for this format
|
|
* @flags: format flags (V4L2_PIX_FMT_FLAG_*)
|
|
* @ycbcr_enc: enum v4l2_ycbcr_encoding, Y'CbCr encoding
|
|
* @quantization: enum v4l2_quantization, colorspace quantization
|
|
* @xfer_func: enum v4l2_xfer_func, colorspace transfer function
|
|
*/
|
|
struct v4l2_pix_format_mplane {
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 pixelformat;
|
|
__u32 field;
|
|
__u32 colorspace;
|
|
|
|
struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES];
|
|
__u8 num_planes;
|
|
__u8 flags;
|
|
union {
|
|
__u8 ycbcr_enc;
|
|
__u8 hsv_enc;
|
|
};
|
|
__u8 quantization;
|
|
__u8 xfer_func;
|
|
__u8 reserved[7];
|
|
} __attribute__ ((packed));
|
|
|
|
/**
|
|
* struct v4l2_sdr_format - SDR format definition
|
|
* @pixelformat: little endian four character code (fourcc)
|
|
* @buffersize: maximum size in bytes required for data
|
|
*/
|
|
struct v4l2_sdr_format {
|
|
__u32 pixelformat;
|
|
__u32 buffersize;
|
|
__u8 reserved[24];
|
|
} __attribute__ ((packed));
|
|
|
|
/**
|
|
* struct v4l2_meta_format - metadata format definition
|
|
* @dataformat: little endian four character code (fourcc)
|
|
* @buffersize: maximum size in bytes required for data
|
|
*/
|
|
struct v4l2_meta_format {
|
|
__u32 dataformat;
|
|
__u32 buffersize;
|
|
} __attribute__ ((packed));
|
|
|
|
/**
|
|
* struct v4l2_format - stream data format
|
|
* @type: enum v4l2_buf_type; type of the data stream
|
|
* @pix: definition of an image format
|
|
* @pix_mp: definition of a multiplanar image format
|
|
* @win: definition of an overlaid image
|
|
* @vbi: raw VBI capture or output parameters
|
|
* @sliced: sliced VBI capture or output parameters
|
|
* @raw_data: placeholder for future extensions and custom formats
|
|
*/
|
|
struct v4l2_format {
|
|
__u32 type;
|
|
union {
|
|
struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */
|
|
struct v4l2_pix_format_mplane pix_mp; /* V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE */
|
|
struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */
|
|
struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */
|
|
struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
|
|
struct v4l2_sdr_format sdr; /* V4L2_BUF_TYPE_SDR_CAPTURE */
|
|
struct v4l2_meta_format meta; /* V4L2_BUF_TYPE_META_CAPTURE */
|
|
__u8 raw_data[200]; /* user-defined */
|
|
} fmt;
|
|
};
|
|
|
|
/* Stream type-dependent parameters
|
|
*/
|
|
struct v4l2_streamparm {
|
|
__u32 type; /* enum v4l2_buf_type */
|
|
union {
|
|
struct v4l2_captureparm capture;
|
|
struct v4l2_outputparm output;
|
|
__u8 raw_data[200]; /* user-defined */
|
|
} parm;
|
|
};
|
|
|
|
/*
|
|
* E V E N T S
|
|
*/
|
|
|
|
#define V4L2_EVENT_ALL 0
|
|
#define V4L2_EVENT_VSYNC 1
|
|
#define V4L2_EVENT_EOS 2
|
|
#define V4L2_EVENT_CTRL 3
|
|
#define V4L2_EVENT_FRAME_SYNC 4
|
|
#define V4L2_EVENT_SOURCE_CHANGE 5
|
|
#define V4L2_EVENT_MOTION_DET 6
|
|
#define V4L2_EVENT_PRIVATE_START 0x08000000
|
|
|
|
#define V4L2_EVENT_BITDEPTH_FLAG 0x1
|
|
#define V4L2_EVENT_PICSTRUCT_FLAG 0x2
|
|
#define V4L2_EVENT_COLOUR_SPACE_FLAG 0x4
|
|
|
|
#define V4L2_EVENT_MSM_VIDC_START (V4L2_EVENT_PRIVATE_START + 0x00001000)
|
|
#define V4L2_EVENT_MSM_VIDC_FLUSH_DONE (V4L2_EVENT_MSM_VIDC_START + 1)
|
|
#define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT \
|
|
(V4L2_EVENT_MSM_VIDC_START + 2)
|
|
#define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT \
|
|
(V4L2_EVENT_MSM_VIDC_START + 3)
|
|
|
|
/*
|
|
* Bitdepth changed insufficient is deprecated now, however retaining
|
|
* to prevent changing the values of the other macros after bitdepth
|
|
*/
|
|
#define V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_BITDEPTH_CHANGED_INSUFFICIENT \
|
|
(V4L2_EVENT_MSM_VIDC_START + 4)
|
|
|
|
#define V4L2_EVENT_MSM_VIDC_SYS_ERROR (V4L2_EVENT_MSM_VIDC_START + 5)
|
|
#define V4L2_EVENT_MSM_VIDC_RELEASE_BUFFER_REFERENCE \
|
|
(V4L2_EVENT_MSM_VIDC_START + 6)
|
|
#define V4L2_EVENT_MSM_VIDC_RELEASE_UNQUEUED_BUFFER \
|
|
(V4L2_EVENT_MSM_VIDC_START + 7)
|
|
#define V4L2_EVENT_MSM_VIDC_HW_OVERLOAD (V4L2_EVENT_MSM_VIDC_START + 8)
|
|
#define V4L2_EVENT_MSM_VIDC_MAX_CLIENTS (V4L2_EVENT_MSM_VIDC_START + 9)
|
|
#define V4L2_EVENT_MSM_VIDC_HW_UNSUPPORTED (V4L2_EVENT_MSM_VIDC_START + 10)
|
|
#define V4L2_EVENT_MSM_VIDC_REGISTER_BUFFER_DONE \
|
|
(V4L2_EVENT_MSM_VIDC_START + 11)
|
|
#define V4L2_EVENT_MSM_VIDC_UNREGISTER_BUFFER_DONE \
|
|
(V4L2_EVENT_MSM_VIDC_START + 12)
|
|
|
|
/*
|
|
* CVP Events
|
|
*/
|
|
#define V4L2_EVENT_MSM_CVP_START (V4L2_EVENT_PRIVATE_START + 0x00001000)
|
|
#define V4L2_EVENT_MSM_CVP_FLUSH_DONE (V4L2_EVENT_MSM_CVP_START + 1)
|
|
#define V4L2_EVENT_MSM_CVP_PORT_SETTINGS_CHANGED_SUFFICIENT \
|
|
(V4L2_EVENT_MSM_CVP_START + 2)
|
|
#define V4L2_EVENT_MSM_CVP_PORT_SETTINGS_CHANGED_INSUFFICIENT \
|
|
(V4L2_EVENT_MSM_CVP_START + 3)
|
|
|
|
#define V4L2_EVENT_MSM_CVP_SYS_ERROR (V4L2_EVENT_MSM_CVP_START + 5)
|
|
#define V4L2_EVENT_MSM_CVP_RELEASE_BUFFER_REFERENCE \
|
|
(V4L2_EVENT_MSM_CVP_START + 6)
|
|
#define V4L2_EVENT_MSM_CVP_RELEASE_UNQUEUED_BUFFER \
|
|
(V4L2_EVENT_MSM_CVP_START + 7)
|
|
#define V4L2_EVENT_MSM_CVP_HW_OVERLOAD (V4L2_EVENT_MSM_CVP_START + 8)
|
|
#define V4L2_EVENT_MSM_CVP_MAX_CLIENTS (V4L2_EVENT_MSM_CVP_START + 9)
|
|
#define V4L2_EVENT_MSM_CVP_HW_UNSUPPORTED (V4L2_EVENT_MSM_CVP_START + 10)
|
|
#define V4L2_EVENT_MSM_CVP_REGISTER_BUFFER_DONE \
|
|
(V4L2_EVENT_MSM_CVP_START + 11)
|
|
#define V4L2_EVENT_MSM_CVP_UNREGISTER_BUFFER_DONE \
|
|
(V4L2_EVENT_MSM_CVP_START + 12)
|
|
|
|
/* Payload for V4L2_EVENT_VSYNC */
|
|
struct v4l2_event_vsync {
|
|
/* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */
|
|
__u8 field;
|
|
} __attribute__ ((packed));
|
|
|
|
/* Payload for V4L2_EVENT_CTRL */
|
|
#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0)
|
|
#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1)
|
|
#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2)
|
|
|
|
struct v4l2_event_ctrl {
|
|
__u32 changes;
|
|
__u32 type;
|
|
union {
|
|
__s32 value;
|
|
__s64 value64;
|
|
};
|
|
__u32 flags;
|
|
__s32 minimum;
|
|
__s32 maximum;
|
|
__s32 step;
|
|
__s32 default_value;
|
|
};
|
|
|
|
struct v4l2_event_frame_sync {
|
|
__u32 frame_sequence;
|
|
};
|
|
|
|
#define V4L2_EVENT_SRC_CH_RESOLUTION (1 << 0)
|
|
|
|
struct v4l2_event_src_change {
|
|
__u32 changes;
|
|
};
|
|
|
|
#define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ (1 << 0)
|
|
|
|
/**
|
|
* struct v4l2_event_motion_det - motion detection event
|
|
* @flags: if V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ is set, then the
|
|
* frame_sequence field is valid.
|
|
* @frame_sequence: the frame sequence number associated with this event.
|
|
* @region_mask: which regions detected motion.
|
|
*/
|
|
struct v4l2_event_motion_det {
|
|
__u32 flags;
|
|
__u32 frame_sequence;
|
|
__u32 region_mask;
|
|
};
|
|
|
|
struct v4l2_event {
|
|
__u32 type;
|
|
union {
|
|
struct v4l2_event_vsync vsync;
|
|
struct v4l2_event_ctrl ctrl;
|
|
struct v4l2_event_frame_sync frame_sync;
|
|
struct v4l2_event_src_change src_change;
|
|
struct v4l2_event_motion_det motion_det;
|
|
__u8 data[64];
|
|
} u;
|
|
__u32 pending;
|
|
__u32 sequence;
|
|
struct timespec timestamp;
|
|
__u32 id;
|
|
__u32 reserved[8];
|
|
};
|
|
|
|
#define V4L2_EVENT_SUB_FL_SEND_INITIAL (1 << 0)
|
|
#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK (1 << 1)
|
|
|
|
struct v4l2_event_subscription {
|
|
__u32 type;
|
|
__u32 id;
|
|
__u32 flags;
|
|
__u32 reserved[5];
|
|
};
|
|
|
|
/*
|
|
* A D V A N C E D D E B U G G I N G
|
|
*
|
|
* NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS!
|
|
* FOR DEBUGGING, TESTING AND INTERNAL USE ONLY!
|
|
*/
|
|
|
|
/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
|
|
|
|
#define V4L2_CHIP_MATCH_BRIDGE 0 /* Match against chip ID on the bridge (0 for the bridge) */
|
|
#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */
|
|
|
|
/* The following four defines are no longer in use */
|
|
#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE
|
|
#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */
|
|
#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
|
|
#define V4L2_CHIP_MATCH_AC97 3 /* Match against ancillary AC97 chip */
|
|
|
|
struct v4l2_dbg_match {
|
|
__u32 type; /* Match type */
|
|
union { /* Match this chip, meaning determined by type */
|
|
__u32 addr;
|
|
char name[32];
|
|
};
|
|
} __attribute__ ((packed));
|
|
|
|
struct v4l2_dbg_register {
|
|
struct v4l2_dbg_match match;
|
|
__u32 size; /* register size in bytes */
|
|
__u64 reg;
|
|
__u64 val;
|
|
} __attribute__ ((packed));
|
|
|
|
#define V4L2_CHIP_FL_READABLE (1 << 0)
|
|
#define V4L2_CHIP_FL_WRITABLE (1 << 1)
|
|
|
|
/* VIDIOC_DBG_G_CHIP_INFO */
|
|
struct v4l2_dbg_chip_info {
|
|
struct v4l2_dbg_match match;
|
|
char name[32];
|
|
__u32 flags;
|
|
__u32 reserved[32];
|
|
} __attribute__ ((packed));
|
|
|
|
/**
|
|
* struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument
|
|
* @index: on return, index of the first created buffer
|
|
* @count: entry: number of requested buffers,
|
|
* return: number of created buffers
|
|
* @memory: enum v4l2_memory; buffer memory type
|
|
* @format: frame format, for which buffers are requested
|
|
* @reserved: future extensions
|
|
*/
|
|
struct v4l2_create_buffers {
|
|
__u32 index;
|
|
__u32 count;
|
|
__u32 memory;
|
|
struct v4l2_format format;
|
|
__u32 reserved[8];
|
|
};
|
|
|
|
/*
|
|
* I O C T L C O D E S F O R V I D E O D E V I C E S
|
|
*
|
|
*/
|
|
#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
|
|
#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
|
|
#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
|
|
#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format)
|
|
#define VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers)
|
|
#define VIDIOC_QUERYBUF _IOWR('V', 9, struct v4l2_buffer)
|
|
#define VIDIOC_G_FBUF _IOR('V', 10, struct v4l2_framebuffer)
|
|
#define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer)
|
|
#define VIDIOC_OVERLAY _IOW('V', 14, int)
|
|
#define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer)
|
|
#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer)
|
|
#define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer)
|
|
#define VIDIOC_STREAMON _IOW('V', 18, int)
|
|
#define VIDIOC_STREAMOFF _IOW('V', 19, int)
|
|
#define VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm)
|
|
#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm)
|
|
#define VIDIOC_G_STD _IOR('V', 23, v4l2_std_id)
|
|
#define VIDIOC_S_STD _IOW('V', 24, v4l2_std_id)
|
|
#define VIDIOC_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
|
|
#define VIDIOC_ENUMINPUT _IOWR('V', 26, struct v4l2_input)
|
|
#define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control)
|
|
#define VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control)
|
|
#define VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner)
|
|
#define VIDIOC_S_TUNER _IOW('V', 30, struct v4l2_tuner)
|
|
#define VIDIOC_G_AUDIO _IOR('V', 33, struct v4l2_audio)
|
|
#define VIDIOC_S_AUDIO _IOW('V', 34, struct v4l2_audio)
|
|
#define VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl)
|
|
#define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu)
|
|
#define VIDIOC_G_INPUT _IOR('V', 38, int)
|
|
#define VIDIOC_S_INPUT _IOWR('V', 39, int)
|
|
#define VIDIOC_G_EDID _IOWR('V', 40, struct v4l2_edid)
|
|
#define VIDIOC_S_EDID _IOWR('V', 41, struct v4l2_edid)
|
|
#define VIDIOC_G_OUTPUT _IOR('V', 46, int)
|
|
#define VIDIOC_S_OUTPUT _IOWR('V', 47, int)
|
|
#define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output)
|
|
#define VIDIOC_G_AUDOUT _IOR('V', 49, struct v4l2_audioout)
|
|
#define VIDIOC_S_AUDOUT _IOW('V', 50, struct v4l2_audioout)
|
|
#define VIDIOC_G_MODULATOR _IOWR('V', 54, struct v4l2_modulator)
|
|
#define VIDIOC_S_MODULATOR _IOW('V', 55, struct v4l2_modulator)
|
|
#define VIDIOC_G_FREQUENCY _IOWR('V', 56, struct v4l2_frequency)
|
|
#define VIDIOC_S_FREQUENCY _IOW('V', 57, struct v4l2_frequency)
|
|
#define VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap)
|
|
#define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop)
|
|
#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop)
|
|
#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression)
|
|
#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression)
|
|
#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
|
#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
|
|
#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio)
|
|
#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout)
|
|
#define VIDIOC_G_PRIORITY _IOR('V', 67, __u32) /* enum v4l2_priority */
|
|
#define VIDIOC_S_PRIORITY _IOW('V', 68, __u32) /* enum v4l2_priority */
|
|
#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap)
|
|
#define VIDIOC_LOG_STATUS _IO('V', 70)
|
|
#define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls)
|
|
#define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls)
|
|
#define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls)
|
|
#define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum)
|
|
#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum)
|
|
#define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx)
|
|
#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)
|
|
#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)
|
|
|
|
/*
|
|
* Experimental, meant for debugging, testing and internal use.
|
|
* Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
|
* You must be root to use these ioctls. Never use these in applications!
|
|
*/
|
|
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
|
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
|
|
|
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
|
|
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
|
#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
|
|
#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
|
|
#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
|
|
#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
|
|
#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
|
|
#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
|
|
#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
|
|
#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection)
|
|
#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd)
|
|
#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd)
|
|
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
|
|
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings)
|
|
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap)
|
|
#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
|
|
|
|
/*
|
|
* Experimental, meant for debugging, testing and internal use.
|
|
* Never use this in applications!
|
|
*/
|
|
#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
|
|
|
|
#define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
|
|
|
|
/* Reminder: when adding new ioctls please add support for them to
|
|
drivers/media/v4l2-core/v4l2-compat-ioctl32.c as well! */
|
|
|
|
#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */
|
|
|
|
/* (BASE_VIDIOC_PRIVATE + 0) is private ioctl code for video module */
|
|
#define BASE_VIDIOC_PRIVATE_VIDEO (BASE_VIDIOC_PRIVATE + 0)
|
|
|
|
/* (BASE_VIDIOC_PRIVATE + 1) is private ioctl code for cvp module */
|
|
#define BASE_VIDIOC_PRIVATE_CVP (BASE_VIDIOC_PRIVATE + 1)
|
|
|
|
#endif /* _UAPI__LINUX_VIDEODEV2_H */
|