Merge branch 'android11-5.4' into 'android11-5.4-lts'
Sync up with android11-5.4 for the following commits:2385b6cc59
ANDROID: ABI: Update allowed list for QCOMa151ec4843
FROMGIT: binder: make sure fd closes completead2e92f9cd
FROMLIST: HID: Support Microsoft SPI touch digitizer driver Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I793dbccd0029effbe6acfe92445dfcfc87c0ab46
This commit is contained in:
commit
4076dc42c4
@ -6,12 +6,12 @@
|
||||
add_wait_queue
|
||||
adjust_managed_page_count
|
||||
alarm_cancel
|
||||
alarm_expires_remaining
|
||||
alarm_init
|
||||
alarm_start_relative
|
||||
alarm_expires_remaining
|
||||
alarmtimer_get_rtcdev
|
||||
alloc_chrdev_region
|
||||
__alloc_disk_node
|
||||
alarmtimer_get_rtcdev
|
||||
alloc_etherdev_mqs
|
||||
alloc_io_pgtable_ops
|
||||
alloc_netdev_mqs
|
||||
@ -44,6 +44,7 @@
|
||||
backlight_device_set_brightness
|
||||
backlight_device_unregister
|
||||
bin2hex
|
||||
bio_crypt_should_process
|
||||
__bitmap_clear
|
||||
bitmap_find_free_region
|
||||
bitmap_find_next_zero_area_off
|
||||
@ -109,10 +110,10 @@
|
||||
bpf_prog_put
|
||||
bpf_prog_sub
|
||||
bpf_stats_enabled_key
|
||||
bpf_trace_run1
|
||||
bpf_trace_run10
|
||||
bpf_trace_run11
|
||||
bpf_trace_run12
|
||||
bpf_trace_run1
|
||||
bpf_trace_run2
|
||||
bpf_trace_run3
|
||||
bpf_trace_run4
|
||||
@ -127,8 +128,10 @@
|
||||
bus_find_device
|
||||
bus_for_each_dev
|
||||
bus_register
|
||||
bus_register_notifier
|
||||
bus_set_iommu
|
||||
bus_unregister
|
||||
bus_unregister_notifier
|
||||
call_netdevice_notifiers
|
||||
cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
@ -318,8 +321,8 @@
|
||||
csum_tcpudp_nofold
|
||||
_ctype
|
||||
current_time
|
||||
datagram_poll
|
||||
d_add
|
||||
datagram_poll
|
||||
d_drop
|
||||
deactivate_locked_super
|
||||
default_llseek
|
||||
@ -570,14 +573,15 @@
|
||||
dma_get_slave_channel
|
||||
d_make_root
|
||||
dmam_alloc_attrs
|
||||
dmam_free_coherent
|
||||
dma_max_mapping_size
|
||||
dmam_free_coherent
|
||||
dma_mmap_attrs
|
||||
dma_pool_alloc
|
||||
dma_pool_create
|
||||
dma_pool_destroy
|
||||
dma_pool_free
|
||||
dma_release_channel
|
||||
__dma_request_channel
|
||||
dma_request_slave_channel
|
||||
dma_resv_add_excl_fence
|
||||
dma_resv_add_shared_fence
|
||||
@ -588,7 +592,6 @@
|
||||
dma_resv_test_signaled_rcu
|
||||
dma_resv_wait_timeout_rcu
|
||||
dma_set_coherent_mask
|
||||
__dma_request_channel
|
||||
dma_set_mask
|
||||
do_exit
|
||||
do_wait_intr
|
||||
@ -882,8 +885,8 @@
|
||||
drm_vma_offset_manager_destroy
|
||||
drm_vma_offset_manager_init
|
||||
drm_vma_offset_remove
|
||||
drop_nlink
|
||||
drm_wait_one_vblank
|
||||
drop_nlink
|
||||
dump_stack
|
||||
enable_irq
|
||||
enable_percpu_irq
|
||||
@ -943,8 +946,8 @@
|
||||
freq_qos_add_request
|
||||
freq_qos_remove_request
|
||||
freq_qos_update_request
|
||||
fsl8250_handle_irq
|
||||
fs_kobj
|
||||
fsl8250_handle_irq
|
||||
fsstack_copy_attr_all
|
||||
ftrace_set_clr_event
|
||||
full_name_hash
|
||||
@ -1027,6 +1030,7 @@
|
||||
gpiochip_line_is_irq
|
||||
gpiochip_line_is_valid
|
||||
gpiochip_remove
|
||||
gpiochip_set_nested_irqchip
|
||||
gpiod_cansleep
|
||||
gpiod_direction_input
|
||||
gpiod_direction_output
|
||||
@ -1038,7 +1042,6 @@
|
||||
gpiod_get_value_cansleep
|
||||
gpiod_is_active_low
|
||||
gpiod_set_debounce
|
||||
gpiochip_set_nested_irqchip
|
||||
gpiod_set_raw_value
|
||||
gpiod_set_raw_value_cansleep
|
||||
gpiod_set_value
|
||||
@ -1065,9 +1068,9 @@
|
||||
hrtimer_forward
|
||||
__hrtimer_get_remaining
|
||||
hrtimer_init
|
||||
hrtimer_init_sleeper
|
||||
hrtimer_start_range_ns
|
||||
hrtimer_try_to_cancel
|
||||
hrtimer_init_sleeper
|
||||
hvc_alloc
|
||||
hvc_instantiate
|
||||
hvc_kick
|
||||
@ -1086,25 +1089,30 @@
|
||||
i2c_adapter_type
|
||||
i2c_add_adapter
|
||||
i2c_add_numbered_adapter
|
||||
i2c_bus_type
|
||||
i2c_del_adapter
|
||||
i2c_del_driver
|
||||
i2c_for_each_dev
|
||||
i2c_get_adapter
|
||||
i2c_get_device_id
|
||||
i2c_get_dma_safe_msg_buf
|
||||
i2c_put_adapter
|
||||
i2c_put_dma_safe_msg_buf
|
||||
i2c_register_driver
|
||||
i2c_smbus_read_byte
|
||||
i2c_smbus_write_byte
|
||||
i2c_smbus_read_byte_data
|
||||
i2c_smbus_read_byte_data
|
||||
i2c_smbus_read_i2c_block_data
|
||||
i2c_smbus_write_byte
|
||||
i2c_smbus_write_byte_data
|
||||
i2c_smbus_write_byte_data
|
||||
i2c_smbus_write_i2c_block_data
|
||||
__i2c_smbus_xfer
|
||||
i2c_smbus_xfer
|
||||
__i2c_transfer
|
||||
i2c_smbus_read_i2c_block_data
|
||||
i2c_smbus_read_byte_data
|
||||
i2c_smbus_write_i2c_block_data
|
||||
i2c_smbus_write_byte_data
|
||||
i2c_transfer
|
||||
i2c_transfer_buffer_flags
|
||||
i2c_verify_client
|
||||
icc_get
|
||||
icc_link_create
|
||||
icc_node_add
|
||||
@ -1256,7 +1264,6 @@
|
||||
irq_get_irq_data
|
||||
irq_modify_status
|
||||
irq_of_parse_and_map
|
||||
irq_work_queue
|
||||
irq_set_affinity_hint
|
||||
irq_set_affinity_notifier
|
||||
irq_set_chained_handler_and_data
|
||||
@ -1269,6 +1276,7 @@
|
||||
irq_set_irq_wake
|
||||
irq_set_parent
|
||||
irq_to_desc
|
||||
irq_work_queue
|
||||
iterate_dir
|
||||
iterate_fd
|
||||
jiffies
|
||||
@ -1291,11 +1299,10 @@
|
||||
kernfs_put
|
||||
kern_path
|
||||
keyslot_manager_create
|
||||
keyslot_manager_private
|
||||
keyslot_manager_set_max_dun_bytes
|
||||
keyslot_manager_reprogram_all_keys
|
||||
keyslot_manager_destroy
|
||||
bio_crypt_should_process
|
||||
keyslot_manager_private
|
||||
keyslot_manager_reprogram_all_keys
|
||||
keyslot_manager_set_max_dun_bytes
|
||||
__kfifo_in
|
||||
__kfifo_out
|
||||
kfree
|
||||
@ -1410,8 +1417,8 @@
|
||||
mdiobus_free
|
||||
__mdiobus_register
|
||||
mdiobus_unregister
|
||||
media_create_pad_link
|
||||
media_create_intf_link
|
||||
media_create_pad_link
|
||||
media_device_cleanup
|
||||
media_device_init
|
||||
__media_device_register
|
||||
@ -1528,8 +1535,8 @@
|
||||
nf_conntrack_destroy
|
||||
nla_memcpy
|
||||
__nla_parse
|
||||
nla_put_64bit
|
||||
nla_put
|
||||
nla_put_64bit
|
||||
__nlmsg_put
|
||||
no_llseek
|
||||
nonseekable_open
|
||||
@ -1539,8 +1546,8 @@
|
||||
nr_swap_pages
|
||||
ns_capable
|
||||
nsecs_to_jiffies
|
||||
ns_to_timespec64
|
||||
ns_to_timespec
|
||||
ns_to_timespec64
|
||||
__num_online_cpus
|
||||
nvmem_cell_get
|
||||
nvmem_cell_put
|
||||
@ -1598,11 +1605,11 @@
|
||||
of_get_parent
|
||||
of_get_property
|
||||
of_get_regulator_init_data
|
||||
of_graph_get_endpoint_by_regs
|
||||
of_graph_get_next_endpoint
|
||||
of_graph_get_remote_node
|
||||
of_graph_get_remote_port_parent
|
||||
of_graph_get_remote_port
|
||||
of_graph_get_endpoint_by_regs
|
||||
of_graph_get_remote_port_parent
|
||||
of_graph_parse_endpoint
|
||||
of_hwspin_lock_get_id
|
||||
of_icc_get
|
||||
@ -1685,17 +1692,22 @@
|
||||
pci_common_swizzle
|
||||
pci_d3cold_disable
|
||||
pci_device_group
|
||||
pci_device_is_present
|
||||
pci_dev_present
|
||||
pci_disable_device
|
||||
pci_disable_msi
|
||||
pcie_bus_configure_settings
|
||||
pcie_capability_clear_and_set_word
|
||||
pcie_capability_read_word
|
||||
pci_enable_device
|
||||
pci_find_bus
|
||||
pci_find_capability
|
||||
pci_find_ext_capability
|
||||
pci_find_next_capability
|
||||
pci_find_pcie_root_port
|
||||
pci_free_irq_vectors
|
||||
pci_get_device
|
||||
pci_get_slot
|
||||
pci_iomap
|
||||
pci_iomap_range
|
||||
pci_irq_get_affinity
|
||||
@ -1725,7 +1737,6 @@
|
||||
pci_walk_bus
|
||||
pci_write_config_dword
|
||||
pci_write_config_word
|
||||
pci_dev_present
|
||||
PDE_DATA
|
||||
__per_cpu_offset
|
||||
perf_trace_buf_alloc
|
||||
@ -1930,8 +1941,8 @@
|
||||
refcount_inc_checked
|
||||
refcount_inc_not_zero_checked
|
||||
__refrigerator
|
||||
regcache_cache_only
|
||||
regcache_cache_bypass
|
||||
regcache_cache_only
|
||||
regcache_mark_dirty
|
||||
regcache_sync
|
||||
regcache_sync_region
|
||||
@ -2107,10 +2118,10 @@
|
||||
sdev_prefix_printk
|
||||
__sdhci_add_host
|
||||
sdhci_add_host
|
||||
sdhci_cleanup_host
|
||||
sdhci_cqe_disable
|
||||
sdhci_cqe_enable
|
||||
sdhci_cqe_irq
|
||||
sdhci_cleanup_host
|
||||
sdhci_dumpregs
|
||||
sdhci_enable_clk
|
||||
sdhci_get_property
|
||||
@ -2158,6 +2169,7 @@
|
||||
sg_alloc_table_from_pages
|
||||
sg_copy_from_buffer
|
||||
sg_copy_to_buffer
|
||||
sget
|
||||
sg_free_table
|
||||
sg_init_one
|
||||
sg_init_table
|
||||
@ -2173,7 +2185,6 @@
|
||||
sg_pcopy_from_buffer
|
||||
sg_pcopy_to_buffer
|
||||
sg_scsi_ioctl
|
||||
sget
|
||||
shmem_file_setup
|
||||
shmem_read_mapping_page_gfp
|
||||
shmem_truncate_range
|
||||
@ -2382,6 +2393,7 @@
|
||||
strcmp
|
||||
strcpy
|
||||
strcspn
|
||||
stream_open
|
||||
strim
|
||||
string_get_size
|
||||
string_unescape
|
||||
@ -2791,8 +2803,8 @@
|
||||
vb2_ops_wait_prepare
|
||||
vb2_plane_cookie
|
||||
vb2_plane_vaddr
|
||||
vb2_prepare_buf
|
||||
vb2_poll
|
||||
vb2_prepare_buf
|
||||
vb2_qbuf
|
||||
vb2_querybuf
|
||||
vb2_queue_error
|
||||
@ -2907,7 +2919,3 @@
|
||||
xdp_rxq_info_reg
|
||||
xdp_rxq_info_reg_mem_model
|
||||
xdp_rxq_info_unreg
|
||||
pci_get_slot
|
||||
pcie_capability_clear_and_set_word
|
||||
pci_device_is_present
|
||||
pci_find_bus
|
||||
|
@ -1965,6 +1965,7 @@ static void binder_deferred_fd_close(int fd)
|
||||
}
|
||||
|
||||
static void binder_transaction_buffer_release(struct binder_proc *proc,
|
||||
struct binder_thread *thread,
|
||||
struct binder_buffer *buffer,
|
||||
binder_size_t failed_at,
|
||||
bool is_failure)
|
||||
@ -2124,8 +2125,16 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
|
||||
&proc->alloc, &fd, buffer,
|
||||
offset, sizeof(fd));
|
||||
WARN_ON(err);
|
||||
if (!err)
|
||||
if (!err) {
|
||||
binder_deferred_fd_close(fd);
|
||||
/*
|
||||
* Need to make sure the thread goes
|
||||
* back to userspace to complete the
|
||||
* deferred close
|
||||
*/
|
||||
if (thread)
|
||||
thread->looper_need_return = true;
|
||||
}
|
||||
}
|
||||
} break;
|
||||
default:
|
||||
@ -3206,7 +3215,7 @@ static void binder_transaction(struct binder_proc *proc,
|
||||
err_copy_data_failed:
|
||||
binder_free_txn_fixups(t);
|
||||
trace_binder_transaction_failed_buffer_release(t->buffer);
|
||||
binder_transaction_buffer_release(target_proc, t->buffer,
|
||||
binder_transaction_buffer_release(target_proc, NULL, t->buffer,
|
||||
buffer_offset, true);
|
||||
if (target_node)
|
||||
binder_dec_node_tmpref(target_node);
|
||||
@ -3285,7 +3294,9 @@ static void binder_transaction(struct binder_proc *proc,
|
||||
* Cleanup buffer and free it.
|
||||
*/
|
||||
static void
|
||||
binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
|
||||
binder_free_buf(struct binder_proc *proc,
|
||||
struct binder_thread *thread,
|
||||
struct binder_buffer *buffer)
|
||||
{
|
||||
binder_inner_proc_lock(proc);
|
||||
if (buffer->transaction) {
|
||||
@ -3313,7 +3324,7 @@ binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
|
||||
binder_node_inner_unlock(buf_node);
|
||||
}
|
||||
trace_binder_transaction_buffer_release(buffer);
|
||||
binder_transaction_buffer_release(proc, buffer, 0, false);
|
||||
binder_transaction_buffer_release(proc, thread, buffer, 0, false);
|
||||
binder_alloc_free_buf(&proc->alloc, buffer);
|
||||
}
|
||||
|
||||
@ -3507,7 +3518,7 @@ static int binder_thread_write(struct binder_proc *proc,
|
||||
proc->pid, thread->pid, (u64)data_ptr,
|
||||
buffer->debug_id,
|
||||
buffer->transaction ? "active" : "finished");
|
||||
binder_free_buf(proc, buffer);
|
||||
binder_free_buf(proc, thread, buffer);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4194,7 +4205,7 @@ static int binder_thread_read(struct binder_proc *proc,
|
||||
buffer->transaction = NULL;
|
||||
binder_cleanup_transaction(t, "fd fixups failed",
|
||||
BR_FAILED_REPLY);
|
||||
binder_free_buf(proc, buffer);
|
||||
binder_free_buf(proc, thread, buffer);
|
||||
binder_debug(BINDER_DEBUG_FAILED_TRANSACTION,
|
||||
"%d:%d %stransaction %d fd fixups failed %d/%d, line %d\n",
|
||||
proc->pid, thread->pid,
|
||||
|
@ -1998,6 +1998,9 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
||||
case BUS_I2C:
|
||||
bus = "I2C";
|
||||
break;
|
||||
case BUS_SPI:
|
||||
bus = "SPI";
|
||||
break;
|
||||
case BUS_VIRTUAL:
|
||||
bus = "VIRTUAL";
|
||||
break;
|
||||
|
@ -860,6 +860,8 @@
|
||||
#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
|
||||
#define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER 0x02fd
|
||||
#define USB_DEVICE_ID_MS_PIXART_MOUSE 0x00cb
|
||||
#define SPI_DEVICE_ID_MS_SURFACE_D6_0 0x0c1d
|
||||
#define SPI_DEVICE_ID_MS_SURFACE_D6_1 0x0c42
|
||||
#define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS 0x02e0
|
||||
|
||||
#define USB_VENDOR_ID_MOJO 0x8282
|
||||
|
@ -27,6 +27,7 @@
|
||||
#define MS_DUPLICATE_USAGES BIT(5)
|
||||
#define MS_SURFACE_DIAL BIT(6)
|
||||
#define MS_QUIRK_FF BIT(7)
|
||||
#define MS_NOHIDINPUT BIT(8)
|
||||
|
||||
struct ms_data {
|
||||
unsigned long quirks;
|
||||
@ -370,6 +371,7 @@ static int ms_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
unsigned long quirks = id->driver_data;
|
||||
struct ms_data *ms;
|
||||
int ret;
|
||||
unsigned int connect_mask;
|
||||
|
||||
ms = devm_kzalloc(&hdev->dev, sizeof(*ms), GFP_KERNEL);
|
||||
if (ms == NULL)
|
||||
@ -379,20 +381,25 @@ static int ms_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
hid_set_drvdata(hdev, ms);
|
||||
|
||||
connect_mask = HID_CONNECT_DEFAULT | ((quirks & MS_HIDINPUT) ?
|
||||
HID_CONNECT_HIDINPUT_FORCE : 0);
|
||||
|
||||
if (quirks & MS_NOGET)
|
||||
hdev->quirks |= HID_QUIRK_NOGET;
|
||||
|
||||
if (quirks & MS_SURFACE_DIAL)
|
||||
hdev->quirks |= HID_QUIRK_INPUT_PER_APP;
|
||||
|
||||
if (quirks & MS_NOHIDINPUT)
|
||||
connect_mask &= ~HID_CONNECT_HIDINPUT;
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT | ((quirks & MS_HIDINPUT) ?
|
||||
HID_CONNECT_HIDINPUT_FORCE : 0));
|
||||
ret = hid_hw_start(hdev, connect_mask);
|
||||
if (ret) {
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
@ -451,6 +458,10 @@ static const struct hid_device_id ms_devices[] = {
|
||||
.driver_data = MS_SURFACE_DIAL },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER),
|
||||
.driver_data = MS_QUIRK_FF },
|
||||
{ HID_SPI_DEVICE(USB_VENDOR_ID_MICROSOFT, SPI_DEVICE_ID_MS_SURFACE_D6_0),
|
||||
.driver_data = MS_NOHIDINPUT },
|
||||
{ HID_SPI_DEVICE(USB_VENDOR_ID_MICROSOFT, SPI_DEVICE_ID_MS_SURFACE_D6_1),
|
||||
.driver_data = MS_NOHIDINPUT },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS),
|
||||
.driver_data = MS_QUIRK_FF },
|
||||
{ }
|
||||
|
@ -513,6 +513,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) },
|
||||
{ HID_SPI_DEVICE(USB_VENDOR_ID_MICROSOFT, SPI_DEVICE_ID_MS_SURFACE_D6_0) },
|
||||
{ HID_SPI_DEVICE(USB_VENDOR_ID_MICROSOFT, SPI_DEVICE_ID_MS_SURFACE_D6_1) },
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_HID_MONTEREY)
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E) },
|
||||
|
@ -681,6 +681,8 @@ struct hid_descriptor {
|
||||
.bus = BUS_BLUETOOTH, .vendor = (ven), .product = (prod)
|
||||
#define HID_I2C_DEVICE(ven, prod) \
|
||||
.bus = BUS_I2C, .vendor = (ven), .product = (prod)
|
||||
#define HID_SPI_DEVICE(ven, prod) \
|
||||
.bus = BUS_SPI, .vendor = (ven), .product = (prod)
|
||||
|
||||
#define HID_REPORT_ID(rep) \
|
||||
.report_type = (rep)
|
||||
|
Loading…
Reference in New Issue
Block a user