Hi Sakari, I love your patch! Perhaps something to improve: [auto build test WARNING on linuxtv-media/master] [also build test WARNING on v4.19-rc5 next-20180926] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Sakari-Ailus/Add-units-to-controls/20180925-183703 base: git://linuxtv.org/media_tree.git master reproduce: make htmldocs All warnings (new ones prefixed by >>): include/net/mac80211.h:977: warning: Function parameter or member 'status.ampdu_ack_len' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'status.ampdu_len' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'status.antenna' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'status.tx_time' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'status.is_valid_ack_signal' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'status.status_driver_data' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'driver_rates' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'pad' not described in 'ieee80211_tx_info' include/net/mac80211.h:977: warning: Function parameter or member 'rate_driver_data' not described in 'ieee80211_tx_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg.signal' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg.chain_signal' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.filtered' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.retry_failed' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.retry_count' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.lost_packets' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_tdls_pkt_time' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.msdu_retries' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.msdu_failed' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_ack' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_ack_signal' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.ack_signal_filled' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.avg_ack_signal' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.packets' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.bytes' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.last_rate' not described in 'sta_info' net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.msdu' not described in 'sta_info' include/linux/mod_devicetable.h:763: warning: Function parameter or member 'driver_data' not described in 'typec_device_id' kernel/sched/fair.c:3371: warning: Function parameter or member 'flags' not described in 'attach_entity_load_avg' arch/x86/include/asm/atomic.h:84: warning: Excess function parameter 'i' description in 'arch_atomic_sub_and_test' arch/x86/include/asm/atomic.h:84: warning: Excess function parameter 'v' description in 'arch_atomic_sub_and_test' arch/x86/include/asm/atomic.h:96: warning: Excess function parameter 'v' description in 'arch_atomic_inc' arch/x86/include/asm/atomic.h:109: warning: Excess function parameter 'v' description in 'arch_atomic_dec' arch/x86/include/asm/atomic.h:124: warning: Excess function parameter 'v' description in 'arch_atomic_dec_and_test' arch/x86/include/asm/atomic.h:138: warning: Excess function parameter 'v' description in 'arch_atomic_inc_and_test' arch/x86/include/asm/atomic.h:153: warning: Excess function parameter 'i' description in 'arch_atomic_add_negative' arch/x86/include/asm/atomic.h:153: warning: Excess function parameter 'v' description in 'arch_atomic_add_negative' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_excl.cb' not described in 'dma_buf' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_excl.poll' not described in 'dma_buf' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_excl.active' not described in 'dma_buf' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_shared.cb' not described in 'dma_buf' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_shared.poll' not described in 'dma_buf' include/linux/dma-buf.h:304: warning: Function parameter or member 'cb_shared.active' not described in 'dma_buf' include/linux/dma-fence-array.h:54: warning: Function parameter or member 'work' not described in 'dma_fence_array' include/linux/gpio/driver.h:142: warning: Function parameter or member 'request_key' not described in 'gpio_irq_chip' include/linux/iio/hw-consumer.h:1: warning: no structured comments found include/linux/input/sparse-keymap.h:46: warning: Function parameter or member 'sw' not described in 'key_entry' drivers/pci/pci.c:218: warning: Excess function parameter 'p' description in 'pci_dev_str_match_path' include/linux/regulator/driver.h:227: warning: Function parameter or member 'resume' not described in 'regulator_ops' drivers/regulator/core.c:4479: warning: Excess function parameter 'state' description in 'regulator_suspend' arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw0' not described in 'irb' arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw1' not described in 'irb' arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw2' not described in 'irb' arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw3' not described in 'irb' arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.eadm' not described in 'irb' drivers/slimbus/stream.c:1: warning: no structured comments found drivers/target/target_core_device.c:1: warning: no structured comments found drivers/usb/dwc3/gadget.c:510: warning: Excess function parameter 'dwc' description in 'dwc3_gadget_start_config' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/bus.c:1: warning: no structured comments found drivers/usb/typec/bus.c:268: warning: Function parameter or member 'mode' not described in 'typec_match_altmode' drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' description in 'typec_port_register_altmode' drivers/usb/typec/class.c:1: warning: no structured comments found include/linux/w1.h:281: warning: Function parameter or member 'of_match_table' not described in 'w1_family' fs/direct-io.c:257: warning: Excess function parameter 'offset' description in 'dio_complete' fs/file_table.c:1: warning: no structured comments found fs/libfs.c:477: warning: Excess function parameter 'available' description in 'simple_write_end' fs/posix_acl.c:646: warning: Function parameter or member 'inode' not described in 'posix_acl_update_mode' fs/posix_acl.c:646: warning: Function parameter or member 'mode_p' not described in 'posix_acl_update_mode' fs/posix_acl.c:646: warning: Function parameter or member 'acl' not described in 'posix_acl_update_mode' drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:183: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_read_lock' drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:254: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_invalidate_range_start_gfx' drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:302: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_invalidate_range_start_hsa' drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:2986: warning: Excess function parameter 'dev' description in 'amdgpu_vm_get_task_info' drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:2987: warning: Function parameter or member 'adev' not described in 'amdgpu_vm_get_task_info' drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:2987: warning: Excess function parameter 'dev' description in 'amdgpu_vm_get_task_info' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_pin' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_unpin' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_res_obj' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_get_sg_table' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_import_sg_table' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_vmap' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_vunmap' not described in 'drm_driver' include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_mmap' not described in 'drm_driver' include/drm/drm_panel.h:98: warning: Function parameter or member 'link' not described in 'drm_panel' drivers/gpu/drm/i915/i915_vma.h:49: warning: cannot understand function prototype: 'struct i915_vma ' drivers/gpu/drm/i915/i915_vma.h:1: warning: no structured comments found drivers/gpu/drm/i915/intel_guc_fwif.h:553: warning: cannot understand function prototype: 'struct guc_log_buffer_state ' drivers/gpu/drm/i915/i915_trace.h:1: warning: no structured comments found >> include/media/v4l2-ctrls.h:242: warning: Function parameter or member 'base' not described in 'v4l2_ctrl' >> include/media/v4l2-ctrls.h:242: warning: Function parameter or member 'unit' not described in 'v4l2_ctrl' >> include/media/v4l2-ctrls.h:242: warning: Function parameter or member 'prefix' not described in 'v4l2_ctrl' include/linux/skbuff.h:860: warning: Function parameter or member 'dev_scratch' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'list' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'ip_defrag_offset' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'skb_mstamp' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member '__cloned_offset' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'head_frag' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member '__pkt_type_offset' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'encapsulation' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'encap_hdr_csum' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'csum_valid' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'csum_complete_sw' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'csum_level' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'inner_protocol_type' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'remcsum_offload' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'offload_fwd_mark' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'offload_mr_fwd_mark' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'sender_cpu' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'reserved_tailroom' not described in 'sk_buff' include/linux/skbuff.h:860: warning: Function parameter or member 'inner_ipproto' not described in 'sk_buff' include/net/sock.h:238: warning: Function parameter or member 'skc_addrpair' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_portpair' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_ipv6only' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_net_refcnt' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_v6_daddr' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_v6_rcv_saddr' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_cookie' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_listener' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_tw_dr' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_rcv_wnd' not described in 'sock_common' include/net/sock.h:238: warning: Function parameter or member 'skc_tw_rcv_nxt' not described in 'sock_common' include/net/sock.h:509: warning: Function parameter or member 'sk_backlog.rmem_alloc' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_backlog.len' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_backlog.head' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_backlog.tail' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_wq_raw' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'tcp_rtx_queue' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_route_forced_caps' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_txtime_report_errors' not described in 'sock' include/net/sock.h:509: warning: Function parameter or member 'sk_validate_xmit_skb' not described in 'sock' include/linux/netdevice.h:2018: warning: Function parameter or member 'adj_list.upper' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'adj_list.lower' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'gso_partial_features' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'switchdev_ops' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'l3mdev_ops' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'xfrmdev_ops' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'tlsdev_ops' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'name_assign_type' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'ieee802154_ptr' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'mpls_ptr' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'xdp_prog' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'gro_flush_timeout' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'nf_hooks_ingress' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member '____cacheline_aligned_in_smp' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'qdisc_hash' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'xps_cpus_map' not described in 'net_device' include/linux/netdevice.h:2018: warning: Function parameter or member 'xps_rxqs_map' not described in 'net_device' include/linux/phylink.h:56: warning: Function parameter or member '__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising' not described in 'phylink_link_state' include/linux/phylink.h:56: warning: Function parameter or member '__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising' not described in 'phylink_link_state' sound/soc/soc-core.c:2918: warning: Excess function parameter 'legacy_dai_naming' description in 'snd_soc_register_dais' Documentation/admin-guide/cgroup-v2.rst:1485: WARNING: Block quote ends without a blank line; unexpected unindent. Documentation/admin-guide/cgroup-v2.rst:1487: WARNING: Block quote ends without a blank line; unexpected unindent. Documentation/admin-guide/cgroup-v2.rst:1488: WARNING: Block quote ends without a blank line; unexpected unindent. Documentation/core-api/boot-time-mm.rst:78: ERROR: Error in "kernel-doc" directive: unknown option: "nodocs". vim +242 include/media/v4l2-ctrls.h 8ac7a9493 Hans Verkuil 2012-09-07 107 8c2721d57 Mauro Carvalho Chehab 2015-08-22 108 /** 8c2721d57 Mauro Carvalho Chehab 2015-08-22 109 * struct v4l2_ctrl - The control structure. 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 110 * 0996517cf Hans Verkuil 2010-08-01 111 * @node: The list node. 77068d36d Hans Verkuil 2011-06-13 112 * @ev_subs: The list of control event subscriptions. 0996517cf Hans Verkuil 2010-08-01 113 * @handler: The handler that owns the control. 0996517cf Hans Verkuil 2010-08-01 114 * @cluster: Point to start of cluster array. 0996517cf Hans Verkuil 2010-08-01 115 * @ncontrols: Number of controls in cluster array. 0996517cf Hans Verkuil 2010-08-01 116 * @done: Internal flag: set for each processed control. 2a863793b Hans Verkuil 2011-01-11 117 * @is_new: Set when the user specified a new value for this control. It 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 118 * is also set when called from v4l2_ctrl_handler_setup(). Drivers 2a863793b Hans Verkuil 2011-01-11 119 * should never set this flag. 9ea1b7a4b Hans Verkuil 2014-01-17 120 * @has_changed: Set when the current value differs from the new value. Drivers 9ea1b7a4b Hans Verkuil 2014-01-17 121 * should never use this flag. 0996517cf Hans Verkuil 2010-08-01 122 * @is_private: If set, then this control is private to its handler and it 0996517cf Hans Verkuil 2010-08-01 123 * will not be added to any other handlers. Drivers can set 0996517cf Hans Verkuil 2010-08-01 124 * this flag. 72d877cac Hans Verkuil 2011-06-10 125 * @is_auto: If set, then this control selects whether the other cluster 72d877cac Hans Verkuil 2011-06-10 126 * members are in 'automatic' mode or 'manual' mode. This is 72d877cac Hans Verkuil 2011-06-10 127 * used for autogain/gain type clusters. Drivers should never 72d877cac Hans Verkuil 2011-06-10 128 * set this flag directly. d9a254715 Hans Verkuil 2014-06-12 129 * @is_int: If set, then this control has a simple integer value (i.e. it d9a254715 Hans Verkuil 2014-06-12 130 * uses ctrl->val). 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 131 * @is_string: If set, then this control has type %V4L2_CTRL_TYPE_STRING. 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 132 * @is_ptr: If set, then this control is an array and/or has type >= 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 133 * %V4L2_CTRL_COMPOUND_TYPES 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 134 * and/or has type %V4L2_CTRL_TYPE_STRING. In other words, &struct d9a254715 Hans Verkuil 2014-06-12 135 * v4l2_ext_control uses field p to point to the data. 998e76591 Hans Verkuil 2014-06-10 136 * @is_array: If set, then this control contains an N-dimensional array. 5626b8c75 Hans Verkuil 2011-08-26 137 * @has_volatiles: If set, then one or more members of the cluster are volatile. 5626b8c75 Hans Verkuil 2011-08-26 138 * Drivers should never touch this flag. 8ac7a9493 Hans Verkuil 2012-09-07 139 * @call_notify: If set, then call the handler's notify function whenever the 8ac7a9493 Hans Verkuil 2012-09-07 140 * control's value changes. 72d877cac Hans Verkuil 2011-06-10 141 * @manual_mode_value: If the is_auto flag is set, then this is the value 72d877cac Hans Verkuil 2011-06-10 142 * of the auto control that determines if that control is in 72d877cac Hans Verkuil 2011-06-10 143 * manual mode. So if the value of the auto control equals this 72d877cac Hans Verkuil 2011-06-10 144 * value, then the whole cluster is in manual mode. Drivers should 72d877cac Hans Verkuil 2011-06-10 145 * never set this flag directly. 0996517cf Hans Verkuil 2010-08-01 146 * @ops: The control ops. 0176077a8 Hans Verkuil 2014-04-27 147 * @type_ops: The control type ops. 0996517cf Hans Verkuil 2010-08-01 148 * @id: The control ID. 0996517cf Hans Verkuil 2010-08-01 149 * @name: The control name. 0996517cf Hans Verkuil 2010-08-01 150 * @type: The control type. 0996517cf Hans Verkuil 2010-08-01 151 * @minimum: The control's minimum value. 0996517cf Hans Verkuil 2010-08-01 152 * @maximum: The control's maximum value. 0996517cf Hans Verkuil 2010-08-01 153 * @default_value: The control's default value. 0996517cf Hans Verkuil 2010-08-01 154 * @step: The control's step value for non-menu controls. 20d88eef6 Hans Verkuil 2014-06-12 155 * @elems: The number of elements in the N-dimensional array. d9a254715 Hans Verkuil 2014-06-12 156 * @elem_size: The size in bytes of the control. 20d88eef6 Hans Verkuil 2014-06-12 157 * @dims: The size of each dimension. 20d88eef6 Hans Verkuil 2014-06-12 158 * @nr_of_dims:The number of dimensions in @dims. 0996517cf Hans Verkuil 2010-08-01 159 * @menu_skip_mask: The control's skip mask for menu controls. This makes it 0996517cf Hans Verkuil 2010-08-01 160 * easy to skip menu items that are not valid. If bit X is set, 0996517cf Hans Verkuil 2010-08-01 161 * then menu item X is skipped. Of course, this only works for 0996517cf Hans Verkuil 2010-08-01 162 * menus with <= 32 menu items. There are no menus that come 0996517cf Hans Verkuil 2010-08-01 163 * close to that number, so this is OK. Should we ever need more, 0996517cf Hans Verkuil 2010-08-01 164 * then this will have to be extended to a u64 or a bit array. 0996517cf Hans Verkuil 2010-08-01 165 * @qmenu: A const char * array for all menu items. Array entries that are 0996517cf Hans Verkuil 2010-08-01 166 * empty strings ("") correspond to non-existing menu items (this 0996517cf Hans Verkuil 2010-08-01 167 * is in addition to the menu_skip_mask above). The last entry 0996517cf Hans Verkuil 2010-08-01 168 * must be NULL. 20139f185 Mauro Carvalho Chehab 2017-09-27 169 * Used only if the @type is %V4L2_CTRL_TYPE_MENU. 20139f185 Mauro Carvalho Chehab 2017-09-27 170 * @qmenu_int: A 64-bit integer array for with integer menu items. 20139f185 Mauro Carvalho Chehab 2017-09-27 171 * The size of array must be equal to the menu size, e. g.: 20139f185 Mauro Carvalho Chehab 2017-09-27 172 * :math:`ceil(\frac{maximum - minimum}{step}) + 1`. 20139f185 Mauro Carvalho Chehab 2017-09-27 173 * Used only if the @type is %V4L2_CTRL_TYPE_INTEGER_MENU. 0996517cf Hans Verkuil 2010-08-01 174 * @flags: The control's flags. 20139f185 Mauro Carvalho Chehab 2017-09-27 175 * @cur: Structure to store the current value. 20139f185 Mauro Carvalho Chehab 2017-09-27 176 * @cur.val: The control's current value, if the @type is represented via 20139f185 Mauro Carvalho Chehab 2017-09-27 177 * a u32 integer (see &enum v4l2_ctrl_type). 0996517cf Hans Verkuil 2010-08-01 178 * @val: The control's new s32 value. 0996517cf Hans Verkuil 2010-08-01 179 * @priv: The control's private pointer. For use by the driver. It is 0996517cf Hans Verkuil 2010-08-01 180 * untouched by the control framework. Note that this pointer is 0996517cf Hans Verkuil 2010-08-01 181 * not freed when the control is deleted. Should this be needed 0996517cf Hans Verkuil 2010-08-01 182 * then a new internal bitfield can be added to tell the framework 0996517cf Hans Verkuil 2010-08-01 183 * to free this pointer. bf7b70482 Baruch Siach 2018-07-05 184 * @p_cur: The control's current value represented via a union which 7dc879190 Mauro Carvalho Chehab 2015-08-22 185 * provides a standard way of accessing control types 7dc879190 Mauro Carvalho Chehab 2015-08-22 186 * through a pointer. bf7b70482 Baruch Siach 2018-07-05 187 * @p_new: The control's new value represented via a union which provides 7dc879190 Mauro Carvalho Chehab 2015-08-22 188 * a standard way of accessing control types 7dc879190 Mauro Carvalho Chehab 2015-08-22 189 * through a pointer. 0996517cf Hans Verkuil 2010-08-01 190 */ 0996517cf Hans Verkuil 2010-08-01 191 struct v4l2_ctrl { 0996517cf Hans Verkuil 2010-08-01 192 /* Administrative fields */ 0996517cf Hans Verkuil 2010-08-01 193 struct list_head node; 77068d36d Hans Verkuil 2011-06-13 194 struct list_head ev_subs; 0996517cf Hans Verkuil 2010-08-01 195 struct v4l2_ctrl_handler *handler; 0996517cf Hans Verkuil 2010-08-01 196 struct v4l2_ctrl **cluster; 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 197 unsigned int ncontrols; 8ec4bee7c Mauro Carvalho Chehab 2016-07-22 198 0996517cf Hans Verkuil 2010-08-01 199 unsigned int done:1; 0996517cf Hans Verkuil 2010-08-01 200 2a863793b Hans Verkuil 2011-01-11 201 unsigned int is_new:1; 9ea1b7a4b Hans Verkuil 2014-01-17 202 unsigned int has_changed:1; 0996517cf Hans Verkuil 2010-08-01 203 unsigned int is_private:1; 72d877cac Hans Verkuil 2011-06-10 204 unsigned int is_auto:1; d9a254715 Hans Verkuil 2014-06-12 205 unsigned int is_int:1; d9a254715 Hans Verkuil 2014-06-12 206 unsigned int is_string:1; d9a254715 Hans Verkuil 2014-06-12 207 unsigned int is_ptr:1; 998e76591 Hans Verkuil 2014-06-10 208 unsigned int is_array:1; 5626b8c75 Hans Verkuil 2011-08-26 209 unsigned int has_volatiles:1; 8ac7a9493 Hans Verkuil 2012-09-07 210 unsigned int call_notify:1; 82a7c0494 Hans Verkuil 2011-06-28 211 unsigned int manual_mode_value:8; 0996517cf Hans Verkuil 2010-08-01 212 0996517cf Hans Verkuil 2010-08-01 213 const struct v4l2_ctrl_ops *ops; 0176077a8 Hans Verkuil 2014-04-27 214 const struct v4l2_ctrl_type_ops *type_ops; 0996517cf Hans Verkuil 2010-08-01 215 u32 id; 0996517cf Hans Verkuil 2010-08-01 216 const char *name; 0996517cf Hans Verkuil 2010-08-01 217 enum v4l2_ctrl_type type; 0ba2aeb6d Hans Verkuil 2014-04-16 218 s64 minimum, maximum, default_value; 20d88eef6 Hans Verkuil 2014-06-12 219 u32 elems; d9a254715 Hans Verkuil 2014-06-12 220 u32 elem_size; 20d88eef6 Hans Verkuil 2014-06-12 221 u32 dims[V4L2_CTRL_MAX_DIMS]; 20d88eef6 Hans Verkuil 2014-06-12 222 u32 nr_of_dims; 569dc4a72 Sakari Ailus 2018-09-25 223 u8 base, unit; 569dc4a72 Sakari Ailus 2018-09-25 224 u16 prefix; 0996517cf Hans Verkuil 2010-08-01 225 union { 0ba2aeb6d Hans Verkuil 2014-04-16 226 u64 step; 0ba2aeb6d Hans Verkuil 2014-04-16 227 u64 menu_skip_mask; 0996517cf Hans Verkuil 2010-08-01 228 }; ce580fe51 Sakari Ailus 2011-08-04 229 union { 513521eae Hans Verkuil 2010-12-29 230 const char * const *qmenu; ce580fe51 Sakari Ailus 2011-08-04 231 const s64 *qmenu_int; ce580fe51 Sakari Ailus 2011-08-04 232 }; 0996517cf Hans Verkuil 2010-08-01 233 unsigned long flags; d9a254715 Hans Verkuil 2014-06-12 234 void *priv; 0996517cf Hans Verkuil 2010-08-01 235 s32 val; 2a9ec3731 Hans Verkuil 2014-04-27 236 struct { 0996517cf Hans Verkuil 2010-08-01 237 s32 val; d9a254715 Hans Verkuil 2014-06-12 238 } cur; 0176077a8 Hans Verkuil 2014-04-27 239 0176077a8 Hans Verkuil 2014-04-27 240 union v4l2_ctrl_ptr p_new; 0176077a8 Hans Verkuil 2014-04-27 241 union v4l2_ctrl_ptr p_cur; 0996517cf Hans Verkuil 2010-08-01 @242 }; 0996517cf Hans Verkuil 2010-08-01 243 :::::: The code at line 242 was first introduced by commit :::::: 0996517cf8eaded69b8502c8f5abeb8cec62b6d4 V4L/DVB: v4l2: Add new control handling framework :::::: TO: Hans Verkuil :::::: CC: Mauro Carvalho Chehab --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation