From mboxrd@z Thu Jan 1 00:00:00 1970 From: kbuild test robot Subject: Re: [rfd] saving old mice -- button glitching/debouncing Date: Tue, 18 Dec 2018 23:26:53 +0800 Message-ID: <201812182305.ZaErClGA%fengguang.wu@intel.com> References: <20181214232437.GA8310@amd> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="opJtzjQTFsWo+cga" Return-path: Content-Disposition: inline In-Reply-To: <20181214232437.GA8310@amd> Sender: linux-kernel-owner@vger.kernel.org To: Pavel Machek Cc: kbuild-all@01.org, kernel list , jikos@suse.cz, vojtech@suse.cz, linux-input@vger.kernel.org, dmitry.torokhov@gmail.com List-Id: linux-input@vger.kernel.org --opJtzjQTFsWo+cga Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Pavel, I love your patch! Perhaps something to improve: [auto build test WARNING on input/next] [also build test WARNING on v4.20-rc7 next-20181218] [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/Pavel-Machek/saving-old-mice-button-glitching-debouncing/20181216-025214 base: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next reproduce: make htmldocs All warnings (new ones prefixed by >>): WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org) include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.ibss' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.connect' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.keys' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.ie' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.ie_len' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.bssid' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.ssid' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.default_key' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.default_mgmt_key' not described in 'wireless_dev' include/net/cfg80211.h:4216: warning: Function parameter or member 'wext.prev_bssid_valid' not described in 'wireless_dev' include/net/mac80211.h:2282: warning: Function parameter or member 'radiotap_timestamp.units_pos' not described in 'ieee80211_hw' include/net/mac80211.h:2282: warning: Function parameter or member 'radiotap_timestamp.accuracy' not described in 'ieee80211_hw' include/net/mac80211.h:955: warning: Function parameter or member 'control.rates' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.rts_cts_rate_idx' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.use_rts' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.use_cts_prot' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.short_preamble' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.skip_table' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.jiffies' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.vif' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.hw_key' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.flags' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'control.enqueue_time' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'ack' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'ack.cookie' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.rates' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.ack_signal' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.ampdu_ack_len' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.ampdu_len' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.antenna' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.tx_time' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.is_valid_ack_signal' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'status.status_driver_data' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'driver_rates' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'pad' not described in 'ieee80211_tx_info' include/net/mac80211.h:955: warning: Function parameter or member 'rate_driver_data' not described in 'ieee80211_tx_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'rx_stats_avg' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'rx_stats_avg.signal' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'rx_stats_avg.chain_signal' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.filtered' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.retry_failed' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.retry_count' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.lost_packets' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.last_tdls_pkt_time' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.msdu_retries' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.msdu_failed' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.last_ack' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.last_ack_signal' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'status_stats.ack_signal_filled' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'tx_stats.packets' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'tx_stats.bytes' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'tx_stats.last_rate' not described in 'sta_info' net/mac80211/sta_info.h:586: warning: Function parameter or member 'tx_stats.msdu' not described in 'sta_info' kernel/sched/fair.c:3719: warning: Function parameter or member 'flags' not described in 'attach_entity_load_avg' include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.cb' not described in 'dma_buf' include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.poll' not described in 'dma_buf' include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.active' not described in 'dma_buf' include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_shared.cb' not described in 'dma_buf' include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_shared.poll' not described in 'dma_buf' include/linux/dma-buf.h:307: 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/iio.h:270: warning: Function parameter or member 'scan_type.sign' not described in 'iio_chan_spec' include/linux/iio/iio.h:270: warning: Function parameter or member 'scan_type.realbits' not described in 'iio_chan_spec' include/linux/iio/iio.h:270: warning: Function parameter or member 'scan_type.storagebits' not described in 'iio_chan_spec' include/linux/iio/iio.h:270: warning: Function parameter or member 'scan_type.shift' not described in 'iio_chan_spec' include/linux/iio/iio.h:270: warning: Function parameter or member 'scan_type.repeat' not described in 'iio_chan_spec' include/linux/iio/iio.h:270: warning: Function parameter or member 'scan_type.endianness' not described in 'iio_chan_spec' include/linux/iio/hw-consumer.h:1: warning: no structured comments found >> include/linux/input.h:192: warning: Function parameter or member 'debounce_key' not described in 'input_dev' include/linux/input/sparse-keymap.h:46: warning: Function parameter or member 'sw' not described in 'key_entry' include/linux/mtd/rawnand.h:752: warning: Function parameter or member 'timings.sdr' not described in 'nand_data_interface' include/linux/mtd/rawnand.h:817: warning: Function parameter or member 'buf' not described in 'nand_op_data_instr' include/linux/mtd/rawnand.h:817: warning: Function parameter or member 'buf.in' not described in 'nand_op_data_instr' include/linux/mtd/rawnand.h:817: warning: Function parameter or member 'buf.out' not described in 'nand_op_data_instr' include/linux/mtd/rawnand.h:863: warning: Function parameter or member 'ctx' not described in 'nand_op_instr' include/linux/mtd/rawnand.h:863: warning: Function parameter or member 'ctx.cmd' not described in 'nand_op_instr' include/linux/mtd/rawnand.h:863: warning: Function parameter or member 'ctx.addr' not described in 'nand_op_instr' include/linux/mtd/rawnand.h:863: warning: Function parameter or member 'ctx.data' not described in 'nand_op_instr' include/linux/mtd/rawnand.h:863: warning: Function parameter or member 'ctx.waitrdy' not described in 'nand_op_instr' include/linux/mtd/rawnand.h:1016: warning: Function parameter or member 'ctx' not described in 'nand_op_parser_pattern_elem' include/linux/mtd/rawnand.h:1016: warning: Function parameter or member 'ctx.addr' not described in 'nand_op_parser_pattern_elem' include/linux/mtd/rawnand.h:1016: warning: Function parameter or member 'ctx.data' not described in 'nand_op_parser_pattern_elem' include/linux/mtd/rawnand.h:1319: warning: Function parameter or member 'manufacturer.desc' not described in 'nand_chip' include/linux/mtd/rawnand.h:1319: warning: Function parameter or member 'manufacturer.priv' not described in 'nand_chip' include/linux/regulator/driver.h:222: warning: Function parameter or member 'resume_early' not described in 'regulator_ops' drivers/regulator/core.c:4306: warning: Excess function parameter 'state' description in 'regulator_suspend_late' 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/usb/typec/mux.c:186: warning: Function parameter or member 'mux' not described in 'typec_mux_unregister' drivers/usb/typec/mux.c:186: warning: Excess function parameter 'sw' description in 'typec_mux_unregister' 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' drivers/gpu/drm/drm_prime.c:342: warning: Function parameter or member 'attach' not described in 'drm_gem_unmap_dma_buf' drivers/gpu/drm/drm_prime.c:342: warning: Function parameter or member 'sgt' not described in 'drm_gem_unmap_dma_buf' drivers/gpu/drm/drm_prime.c:342: warning: Function parameter or member 'dir' not described in 'drm_gem_unmap_dma_buf' drivers/gpu/drm/drm_prime.c:438: warning: Function parameter or member 'dma_buf' not described in 'drm_gem_dmabuf_kmap_atomic' drivers/gpu/drm/drm_prime.c:438: warning: Function parameter or member 'page_num' not described in 'drm_gem_dmabuf_kmap_atomic' drivers/gpu/drm/drm_prime.c:450: warning: Function parameter or member 'dma_buf' not described in 'drm_gem_dmabuf_kunmap_atomic' drivers/gpu/drm/drm_prime.c:450: warning: Function parameter or member 'page_num' not described in 'drm_gem_dmabuf_kunmap_atomic' drivers/gpu/drm/drm_prime.c:450: warning: Function parameter or member 'addr' not described in 'drm_gem_dmabuf_kunmap_atomic' drivers/gpu/drm/drm_prime.c:461: warning: Function parameter or member 'dma_buf' not described in 'drm_gem_dmabuf_kmap' drivers/gpu/drm/drm_prime.c:461: warning: Function parameter or member 'page_num' not described in 'drm_gem_dmabuf_kmap' drivers/gpu/drm/drm_prime.c:473: warning: Function parameter or member 'dma_buf' not described in 'drm_gem_dmabuf_kunmap' drivers/gpu/drm/drm_prime.c:473: warning: Function parameter or member 'page_num' not described in 'drm_gem_dmabuf_kunmap' drivers/gpu/drm/drm_prime.c:473: warning: Function parameter or member 'addr' not described in 'drm_gem_dmabuf_kunmap' include/media/v4l2-dev.h:42: warning: Enum value 'VFL_TYPE_MAX' not described in enum 'vfl_devnode_type' include/linux/skbuff.h:850: warning: Function parameter or member 'dev_scratch' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'ip_defrag_offset' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'skb_mstamp' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member '__cloned_offset' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'head_frag' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member '__unused' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member '__pkt_type_offset' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'pfmemalloc' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'encapsulation' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'encap_hdr_csum' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'csum_valid' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'csum_complete_sw' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'csum_level' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'inner_protocol_type' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'remcsum_offload' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'offload_fwd_mark' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'offload_mr_fwd_mark' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'sender_cpu' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'reserved_tailroom' not described in 'sk_buff' include/linux/skbuff.h:850: warning: Function parameter or member 'inner_ipproto' not described in 'sk_buff' include/net/sock.h:234: warning: Function parameter or member 'skc_addrpair' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_portpair' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_ipv6only' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_net_refcnt' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_v6_daddr' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_v6_rcv_saddr' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_cookie' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_listener' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_tw_dr' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_rcv_wnd' not described in 'sock_common' include/net/sock.h:234: warning: Function parameter or member 'skc_tw_rcv_nxt' not described in 'sock_common' include/net/sock.h:488: warning: Function parameter or member 'sk_backlog.rmem_alloc' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'sk_backlog.len' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'sk_backlog.head' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'sk_backlog.tail' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'sk_wq_raw' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'tcp_rtx_queue' not described in 'sock' include/net/sock.h:488: warning: Function parameter or member 'sk_route_forced_caps' not described in 'sock' include/linux/netdevice.h:1955: warning: Function parameter or member 'adj_list.upper' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'adj_list.lower' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'gso_partial_features' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'switchdev_ops' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'l3mdev_ops' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'xfrmdev_ops' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'name_assign_type' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'ieee802154_ptr' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'mpls_ptr' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'xdp_prog' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'gro_flush_timeout' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'nf_hooks_ingress' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member '____cacheline_aligned_in_smp' not described in 'net_device' include/linux/netdevice.h:1955: warning: Function parameter or member 'qdisc_hash' 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' vim +192 include/linux/input.h 4369c64c7 Henrik Rydberg 2012-09-15 38 4369c64c7 Henrik Rydberg 2012-09-15 39 /** 8006479c9 Dmitry Torokhov 2007-08-30 40 * struct input_dev - represents an input device 8006479c9 Dmitry Torokhov 2007-08-30 41 * @name: name of the device 8006479c9 Dmitry Torokhov 2007-08-30 42 * @phys: physical path to the device in the system hierarchy 8006479c9 Dmitry Torokhov 2007-08-30 43 * @uniq: unique identification code for the device (if device has it) 8006479c9 Dmitry Torokhov 2007-08-30 44 * @id: id of the device (struct input_id) 85b772003 Henrik Rydberg 2010-12-18 45 * @propbit: bitmap of device properties and quirks 8006479c9 Dmitry Torokhov 2007-08-30 46 * @evbit: bitmap of types of events supported by the device (EV_KEY, 8006479c9 Dmitry Torokhov 2007-08-30 47 * EV_REL, etc.) 8006479c9 Dmitry Torokhov 2007-08-30 48 * @keybit: bitmap of keys/buttons this device has 8006479c9 Dmitry Torokhov 2007-08-30 49 * @relbit: bitmap of relative axes for the device 8006479c9 Dmitry Torokhov 2007-08-30 50 * @absbit: bitmap of absolute axes for the device 8006479c9 Dmitry Torokhov 2007-08-30 51 * @mscbit: bitmap of miscellaneous events supported by the device 8006479c9 Dmitry Torokhov 2007-08-30 52 * @ledbit: bitmap of leds present on the device 8006479c9 Dmitry Torokhov 2007-08-30 53 * @sndbit: bitmap of sound effects supported by the device 8006479c9 Dmitry Torokhov 2007-08-30 54 * @ffbit: bitmap of force feedback effects supported by the device 8006479c9 Dmitry Torokhov 2007-08-30 55 * @swbit: bitmap of switches present on the device 63a6404d8 Henrik Rydberg 2010-06-10 56 * @hint_events_per_packet: average number of events generated by the 63a6404d8 Henrik Rydberg 2010-06-10 57 * device in a packet (between EV_SYN/SYN_REPORT events). Used by 63a6404d8 Henrik Rydberg 2010-06-10 58 * event handlers to estimate size of the buffer needed to hold 63a6404d8 Henrik Rydberg 2010-06-10 59 * events. 8006479c9 Dmitry Torokhov 2007-08-30 60 * @keycodemax: size of keycode table 8006479c9 Dmitry Torokhov 2007-08-30 61 * @keycodesize: size of elements in keycode table 8006479c9 Dmitry Torokhov 2007-08-30 62 * @keycode: map of scancodes to keycodes for this device 8613e4c28 Mauro Carvalho Chehab 2010-09-09 63 * @getkeycode: optional legacy method to retrieve current keymap. 8006479c9 Dmitry Torokhov 2007-08-30 64 * @setkeycode: optional method to alter current keymap, used to implement 66d2a5952 Dmitry Torokhov 2009-12-01 65 * sparse keymaps. If not supplied default mechanism will be used. 66d2a5952 Dmitry Torokhov 2009-12-01 66 * The method is being called while holding event_lock and thus must 66d2a5952 Dmitry Torokhov 2009-12-01 67 * not sleep 8006479c9 Dmitry Torokhov 2007-08-30 68 * @ff: force feedback structure associated with the device if device 8006479c9 Dmitry Torokhov 2007-08-30 69 * supports force feedback effects 8006479c9 Dmitry Torokhov 2007-08-30 70 * @repeat_key: stores key code of the last key pressed; used to implement 8006479c9 Dmitry Torokhov 2007-08-30 71 * software autorepeat 8006479c9 Dmitry Torokhov 2007-08-30 72 * @timer: timer for software autorepeat 8006479c9 Dmitry Torokhov 2007-08-30 73 * @rep: current values for autorepeat parameters (delay, rate) 8d18fba28 Henrik Rydberg 2012-09-15 74 * @mt: pointer to multitouch state 86b17f76f Dmitry Torokhov 2010-11-29 75 * @absinfo: array of &struct input_absinfo elements holding information d31b2865a Daniel Mack 2010-08-02 76 * about absolute axes (current value, min, max, flat, fuzz, d31b2865a Daniel Mack 2010-08-02 77 * resolution) 8006479c9 Dmitry Torokhov 2007-08-30 78 * @key: reflects current state of device's keys/buttons 8006479c9 Dmitry Torokhov 2007-08-30 79 * @led: reflects current state of device's LEDs 8006479c9 Dmitry Torokhov 2007-08-30 80 * @snd: reflects current state of sound effects 8006479c9 Dmitry Torokhov 2007-08-30 81 * @sw: reflects current state of device's switches 8006479c9 Dmitry Torokhov 2007-08-30 82 * @open: this method is called when the very first user calls 8006479c9 Dmitry Torokhov 2007-08-30 83 * input_open_device(). The driver must prepare the device 8006479c9 Dmitry Torokhov 2007-08-30 84 * to start generating events (start polling thread, 8006479c9 Dmitry Torokhov 2007-08-30 85 * request an IRQ, submit URB, etc.) 8006479c9 Dmitry Torokhov 2007-08-30 86 * @close: this method is called when the very last user calls 8006479c9 Dmitry Torokhov 2007-08-30 87 * input_close_device(). 8006479c9 Dmitry Torokhov 2007-08-30 88 * @flush: purges the device. Most commonly used to get rid of force 8006479c9 Dmitry Torokhov 2007-08-30 89 * feedback effects loaded into the device when disconnecting 8006479c9 Dmitry Torokhov 2007-08-30 90 * from it 8006479c9 Dmitry Torokhov 2007-08-30 91 * @event: event handler for events sent _to_ the device, like EV_LED 8006479c9 Dmitry Torokhov 2007-08-30 92 * or EV_SND. The device is expected to carry out the requested 8006479c9 Dmitry Torokhov 2007-08-30 93 * action (turn on a LED, play sound, etc.) The call is protected 8006479c9 Dmitry Torokhov 2007-08-30 94 * by @event_lock and must not sleep 8006479c9 Dmitry Torokhov 2007-08-30 95 * @grab: input handle that currently has the device grabbed (via 8006479c9 Dmitry Torokhov 2007-08-30 96 * EVIOCGRAB ioctl). When a handle grabs a device it becomes sole 8006479c9 Dmitry Torokhov 2007-08-30 97 * recipient for all input events coming from the device 83510e5f5 Masanari Iida 2016-07-13 98 * @event_lock: this spinlock is taken when input core receives 8006479c9 Dmitry Torokhov 2007-08-30 99 * and processes a new event for the device (in input_event()). 8006479c9 Dmitry Torokhov 2007-08-30 100 * Code that accesses and/or modifies parameters of a device 8006479c9 Dmitry Torokhov 2007-08-30 101 * (such as keymap or absmin, absmax, absfuzz, etc.) after device 8006479c9 Dmitry Torokhov 2007-08-30 102 * has been registered with input core must take this lock. 8006479c9 Dmitry Torokhov 2007-08-30 103 * @mutex: serializes calls to open(), close() and flush() methods 8006479c9 Dmitry Torokhov 2007-08-30 104 * @users: stores number of users (input handlers) that opened this 8006479c9 Dmitry Torokhov 2007-08-30 105 * device. It is used by input_open_device() and input_close_device() 8006479c9 Dmitry Torokhov 2007-08-30 106 * to make sure that dev->open() is only called when the first 8006479c9 Dmitry Torokhov 2007-08-30 107 * user opens device and dev->close() is called when the very 8006479c9 Dmitry Torokhov 2007-08-30 108 * last user closes the device 8006479c9 Dmitry Torokhov 2007-08-30 109 * @going_away: marks devices that are in a middle of unregistering and 8006479c9 Dmitry Torokhov 2007-08-30 110 * causes input_open_device*() fail with -ENODEV. 8006479c9 Dmitry Torokhov 2007-08-30 111 * @dev: driver model's view of this device 8006479c9 Dmitry Torokhov 2007-08-30 112 * @h_list: list of input handles associated with the device. When 8006479c9 Dmitry Torokhov 2007-08-30 113 * accessing the list dev->mutex must be held 8006479c9 Dmitry Torokhov 2007-08-30 114 * @node: used to place the device onto input_dev_list 800963fd5 Henrik Rydberg 2012-11-10 115 * @num_vals: number of values queued in the current frame 800963fd5 Henrik Rydberg 2012-11-10 116 * @max_vals: maximum number of values queued in a frame 800963fd5 Henrik Rydberg 2012-11-10 117 * @vals: array of values queued in the current frame 2be975c6d Dmitry Torokhov 2012-11-03 118 * @devres_managed: indicates that devices is managed with devres framework 2be975c6d Dmitry Torokhov 2012-11-03 119 * and needs not be explicitly unregistered or freed. 8006479c9 Dmitry Torokhov 2007-08-30 120 */ ^1da177e4 Linus Torvalds 2005-04-16 121 struct input_dev { 5b6271bda Dmitry Torokhov 2005-06-30 122 const char *name; 5b6271bda Dmitry Torokhov 2005-06-30 123 const char *phys; 5b6271bda Dmitry Torokhov 2005-06-30 124 const char *uniq; ^1da177e4 Linus Torvalds 2005-04-16 125 struct input_id id; ^1da177e4 Linus Torvalds 2005-04-16 126 85b772003 Henrik Rydberg 2010-12-18 127 unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)]; 85b772003 Henrik Rydberg 2010-12-18 128 7b19ada2e Jiri Slaby 2007-10-18 129 unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 130 unsigned long keybit[BITS_TO_LONGS(KEY_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 131 unsigned long relbit[BITS_TO_LONGS(REL_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 132 unsigned long absbit[BITS_TO_LONGS(ABS_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 133 unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 134 unsigned long ledbit[BITS_TO_LONGS(LED_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 135 unsigned long sndbit[BITS_TO_LONGS(SND_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 136 unsigned long ffbit[BITS_TO_LONGS(FF_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 137 unsigned long swbit[BITS_TO_LONGS(SW_CNT)]; ^1da177e4 Linus Torvalds 2005-04-16 138 63a6404d8 Henrik Rydberg 2010-06-10 139 unsigned int hint_events_per_packet; 63a6404d8 Henrik Rydberg 2010-06-10 140 ^1da177e4 Linus Torvalds 2005-04-16 141 unsigned int keycodemax; ^1da177e4 Linus Torvalds 2005-04-16 142 unsigned int keycodesize; ^1da177e4 Linus Torvalds 2005-04-16 143 void *keycode; 8613e4c28 Mauro Carvalho Chehab 2010-09-09 144 58b939959 Dmitry Torokhov 2010-03-08 145 int (*setkeycode)(struct input_dev *dev, 8613e4c28 Mauro Carvalho Chehab 2010-09-09 146 const struct input_keymap_entry *ke, 8613e4c28 Mauro Carvalho Chehab 2010-09-09 147 unsigned int *old_keycode); aebd636bd Dmitry Torokhov 2011-01-31 148 int (*getkeycode)(struct input_dev *dev, 8613e4c28 Mauro Carvalho Chehab 2010-09-09 149 struct input_keymap_entry *ke); ^1da177e4 Linus Torvalds 2005-04-16 150 509ca1a93 Anssi Hannula 2006-07-19 151 struct ff_device *ff; 509ca1a93 Anssi Hannula 2006-07-19 152 507fbe1d7 Pavel Machek 2018-12-15 153 int debounce_key; ^1da177e4 Linus Torvalds 2005-04-16 154 unsigned int repeat_key; ^1da177e4 Linus Torvalds 2005-04-16 155 struct timer_list timer; ^1da177e4 Linus Torvalds 2005-04-16 156 d31b2865a Daniel Mack 2010-08-02 157 int rep[REP_CNT]; ^1da177e4 Linus Torvalds 2005-04-16 158 8d18fba28 Henrik Rydberg 2012-09-15 159 struct input_mt *mt; 40d007e7d Henrik Rydberg 2010-07-15 160 d31b2865a Daniel Mack 2010-08-02 161 struct input_absinfo *absinfo; d31b2865a Daniel Mack 2010-08-02 162 7b19ada2e Jiri Slaby 2007-10-18 163 unsigned long key[BITS_TO_LONGS(KEY_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 164 unsigned long led[BITS_TO_LONGS(LED_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 165 unsigned long snd[BITS_TO_LONGS(SND_CNT)]; 7b19ada2e Jiri Slaby 2007-10-18 166 unsigned long sw[BITS_TO_LONGS(SW_CNT)]; ^1da177e4 Linus Torvalds 2005-04-16 167 ^1da177e4 Linus Torvalds 2005-04-16 168 int (*open)(struct input_dev *dev); ^1da177e4 Linus Torvalds 2005-04-16 169 void (*close)(struct input_dev *dev); ^1da177e4 Linus Torvalds 2005-04-16 170 int (*flush)(struct input_dev *dev, struct file *file); ^1da177e4 Linus Torvalds 2005-04-16 171 int (*event)(struct input_dev *dev, unsigned int type, unsigned int code, int value); ^1da177e4 Linus Torvalds 2005-04-16 172 2be852792 Arnd Bergmann 2010-03-04 173 struct input_handle __rcu *grab; 0fbf87caf Dmitry Torokhov 2005-05-29 174 8006479c9 Dmitry Torokhov 2007-08-30 175 spinlock_t event_lock; 8006479c9 Dmitry Torokhov 2007-08-30 176 struct mutex mutex; 8006479c9 Dmitry Torokhov 2007-08-30 177 0fbf87caf Dmitry Torokhov 2005-05-29 178 unsigned int users; ffd0db971 Dmitry Torokhov 2009-09-16 179 bool going_away; 0fbf87caf Dmitry Torokhov 2005-05-29 180 9657d75c5 Dmitry Torokhov 2007-06-14 181 struct device dev; ^1da177e4 Linus Torvalds 2005-04-16 182 ^1da177e4 Linus Torvalds 2005-04-16 183 struct list_head h_list; ^1da177e4 Linus Torvalds 2005-04-16 184 struct list_head node; 4369c64c7 Henrik Rydberg 2012-09-15 185 4369c64c7 Henrik Rydberg 2012-09-15 186 unsigned int num_vals; 4369c64c7 Henrik Rydberg 2012-09-15 187 unsigned int max_vals; 4369c64c7 Henrik Rydberg 2012-09-15 188 struct input_value *vals; 2be975c6d Dmitry Torokhov 2012-11-03 189 2be975c6d Dmitry Torokhov 2012-11-03 190 bool devres_managed; ^1da177e4 Linus Torvalds 2005-04-16 191 }; 9657d75c5 Dmitry Torokhov 2007-06-14 @192 #define to_input_dev(d) container_of(d, struct input_dev, dev) ^1da177e4 Linus Torvalds 2005-04-16 193 :::::: The code at line 192 was first introduced by commit :::::: 9657d75c5f0f7d0a9cb507521d3ad1436aea28c9 Input: convert from class devices to standard devices :::::: TO: Dmitry Torokhov :::::: CC: Dmitry Torokhov --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --opJtzjQTFsWo+cga Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --opJtzjQTFsWo+cga--