Commit graph

874,499 commits

Author SHA1 Message Date
Alistair Delva
167420966b ANDROID: update ABI for db845c changes
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct pci_dev at pci.h:291:1' changed:
  type size changed from 15744 to 15808 (in bits)
  2 data member insertions:
    'unsigned int pci_dev::ltr_path', at offset 31 (in bits) at pci.h:363:1
    'pcie_link_state* pci_dev::link_state', at offset 1216 (in bits) at pci.h:362:1
  there are data member changes:
   'unsigned int pci_dev::eetlp_prefix_path' offset changed from 31 to 30 (in bits) (by -1 bits)
   'pci_channel_state_t pci_dev::error_state' offset changed from 1216 to 1312 (in bits) (by +96 bits)
   'device pci_dev::dev' offset changed from 1280 to 1344 (in bits) (by +64 bits)
   'int pci_dev::cfg_size' offset changed from 7424 to 7488 (in bits) (by +64 bits)
   'unsigned int pci_dev::irq' offset changed from 7456 to 7520 (in bits) (by +64 bits)
   'resource pci_dev::resource[11]' offset changed from 7488 to 7552 (in bits) (by +64 bits)
   'bool pci_dev::match_driver' offset changed from 13120 to 13184 (in bits) (by +64 bits)
   'unsigned int pci_dev::reset_fn' offset changed from 13120 to 13184 (in bits) (by +64 bits)
   'pci_dev_flags_t pci_dev::dev_flags' offset changed from 13168 to 13232 (in bits) (by +64 bits)
   'atomic_t pci_dev::enable_cnt' offset changed from 13184 to 13248 (in bits) (by +64 bits)
   'u32 pci_dev::saved_config_space[16]' offset changed from 13216 to 13280 (in bits) (by +64 bits)
   'hlist_head pci_dev::saved_cap_space' offset changed from 13760 to 13824 (in bits) (by +64 bits)
   'bin_attribute* pci_dev::rom_attr' offset changed from 13824 to 13888 (in bits) (by +64 bits)
   'int pci_dev::rom_attr_enabled' offset changed from 13888 to 13952 (in bits) (by +64 bits)
   'bin_attribute* pci_dev::res_attr[11]' offset changed from 13952 to 14016 (in bits) (by +64 bits)
   'bin_attribute* pci_dev::res_attr_wc[11]' offset changed from 14656 to 14720 (in bits) (by +64 bits)
   'const attribute_group** pci_dev::msi_irq_groups' offset changed from 15360 to 15424 (in bits) (by +64 bits)
   'pci_vpd* pci_dev::vpd' offset changed from 15424 to 15488 (in bits) (by +64 bits)
   'phys_addr_t pci_dev::rom' offset changed from 15488 to 15552 (in bits) (by +64 bits)
   'size_t pci_dev::romlen' offset changed from 15552 to 15616 (in bits) (by +64 bits)
   'char* pci_dev::driver_override' offset changed from 15616 to 15680 (in bits) (by +64 bits)
   'unsigned long int pci_dev::priv_flags' offset changed from 15680 to 15744 (in bits) (by +64 bits)

  17 impacted interfaces:
    function int __pci_register_driver(pci_driver*, module*, const char*)
    function int pci_alloc_irq_vectors_affinity(pci_dev*, unsigned int, unsigned int, unsigned int, irq_affinity*)
    function void pci_disable_device(pci_dev*)
    function int pci_enable_device(pci_dev*)
    function int pci_find_capability(pci_dev*, int)
    function int pci_find_ext_capability(pci_dev*, int)
    function int pci_find_next_capability(pci_dev*, u8, int)
    function void pci_free_irq_vectors(pci_dev*)
    function void* pci_iomap_range(pci_dev*, int, unsigned long int, unsigned long int)
    function const cpumask* pci_irq_get_affinity(pci_dev*, int)
    function int pci_irq_vector(pci_dev*, unsigned int)
    function int pci_read_config_byte(const pci_dev*, int, u8*)
    function int pci_read_config_dword(const pci_dev*, int, u32*)
    function void pci_release_selected_regions(pci_dev*, int)
    function int pci_request_selected_regions(pci_dev*, int, const char*)
    function void pci_set_master(pci_dev*)
    function void pci_unregister_driver(pci_driver*)

'struct pm_subsys_data at pm.h:530:1' changed:
  type size changed from 192 to 256 (in bits)
  1 data member insertion:
    'pm_domain_data* pm_subsys_data::domain_data', at offset 192 (in bits) at pm.h:537:1

  478 impacted interfaces:
    function void* PDE_DATA(const inode*)
    function gendisk* __alloc_disk_node(int, int)
    function void __blk_mq_end_request(request*, blk_status_t)
    function class* __class_create(module*, const char*, lock_class_key*)
    function int __class_register(class*, lock_class_key*)
    function net_device* __dev_get_by_index(net*, int)
    function resource* __devm_request_region(device*, resource*, resource_size_t, resource_size_t, const char*)
    function reset_control* __devm_reset_control_get(device*, const char*, int, bool, bool, bool)
    function void* __devres_alloc_node(dr_release_t, size_t, gfp_t, int, const char*)
    function int __ethtool_get_link_ksettings(net_device*, ethtool_link_ksettings*)
    function char* __get_task_comm(char*, size_t, task_struct*)
    function void __hvc_resize(hvc_struct*, winsize)
    function sk_buff* __napi_alloc_skb(napi_struct*, unsigned int, gfp_t)
    function void __napi_schedule(napi_struct*)
    function sk_buff* __netdev_alloc_skb(net_device*, unsigned int, gfp_t)
    function int __netif_set_xps_queue(net_device*, const unsigned long int*, u16, bool)
    function int __netlink_dump_start(sock*, sk_buff*, const nlmsghdr*, netlink_dump_control*)
    function int __pci_register_driver(pci_driver*, module*, const char*)
    function int __platform_driver_register(platform_driver*, module*)
    function void __pm_runtime_disable(device*, bool)
    function int __pm_runtime_idle(device*, int)
    function int __pm_runtime_resume(device*, int)
    function int __pm_runtime_set_status(device*, unsigned int)
    function int __pm_runtime_suspend(device*, int)
    function void __pm_runtime_use_autosuspend(device*, bool)
    function int __register_chrdev(unsigned int, unsigned int, unsigned int, const char*, const file_operations*)
    function int __rtc_register_device(module*, rtc_device*)
    function bool __skb_flow_dissect(const net*, const sk_buff*, flow_dissector*, void*, void*, __be16, int, int, unsigned int)
    function void __sock_recv_ts_and_drops(msghdr*, sock*, sk_buff*)
    function ssize_t __splice_from_pipe(pipe_inode_info*, splice_desc*, splice_actor*)
    function void _dev_err(const device*, const char*, ...)
    function void _dev_info(const device*, const char*, ...)
    function void _dev_notice(const device*, const char*, ...)
    function void _dev_warn(const device*, const char*, ...)
    function net_device* alloc_etherdev_mqs(int, unsigned int, unsigned int)
    function net_device* alloc_netdev_mqs(int, const char*, unsigned char, void ()*, unsigned int, unsigned int)
    function void blk_cleanup_queue(request_queue*)
    function void blk_execute_rq(request_queue*, gendisk*, request*, int)
    function bool blk_get_queue(request_queue*)
    function request* blk_get_request(request_queue*, unsigned int, blk_mq_req_flags_t)
    function bool blk_mq_complete_request(request*)
    function void blk_mq_end_request(request*, blk_status_t)
    function request_queue* blk_mq_init_queue(blk_mq_tag_set*)
    function void blk_mq_quiesce_queue(request_queue*)
    function void blk_mq_requeue_request(request*, bool)
    function void blk_mq_run_hw_queues(request_queue*, bool)
    function void blk_mq_start_request(request*)
    function void blk_mq_start_stopped_hw_queues(request_queue*, bool)
    function void blk_mq_unquiesce_queue(request_queue*)
    function int blk_mq_virtio_map_queues(blk_mq_queue_map*, virtio_device*, int)
    function void blk_put_queue(request_queue*)
    function void blk_put_request(request*)
    function void blk_queue_alignment_offset(request_queue*, unsigned int)
    function void blk_queue_bounce_limit(request_queue*, u64)
    function bool blk_queue_can_use_dma_map_merging(request_queue*, device*)
    function void blk_queue_flag_clear(unsigned int, request_queue*)
    function void blk_queue_flag_set(unsigned int, request_queue*)
    function void blk_queue_io_min(request_queue*, unsigned int)
    function void blk_queue_io_opt(request_queue*, unsigned int)
    function void blk_queue_logical_block_size(request_queue*, unsigned short int)
    function void blk_queue_max_discard_sectors(request_queue*, unsigned int)
    function void blk_queue_max_discard_segments(request_queue*, unsigned short int)
    function void blk_queue_max_hw_sectors(request_queue*, unsigned int)
    function void blk_queue_max_segment_size(request_queue*, unsigned int)
    function void blk_queue_max_segments(request_queue*, unsigned short int)
    function void blk_queue_max_write_zeroes_sectors(request_queue*, unsigned int)
    function void blk_queue_physical_block_size(request_queue*, unsigned int)
    function void blk_queue_rq_timeout(request_queue*, unsigned int)
    function void blk_queue_write_cache(request_queue*, bool, bool)
    function int blk_rq_map_kern(request_queue*, request*, void*, unsigned int, gfp_t)
    function int blk_rq_map_sg(request_queue*, request*, scatterlist*)
    function bool blk_update_request(request*, blk_status_t, unsigned int)
    function int call_netdevice_notifiers(unsigned long int, net_device*)
    function int cdev_add(cdev*, dev_t, unsigned int)
    function cdev* cdev_alloc()
    function void cdev_del(cdev*)
    function int cdev_device_add(cdev*, device*)
    function void cdev_device_del(cdev*, device*)
    function void cdev_init(cdev*, const file_operations*)
    function void cfg80211_connect_done(net_device*, cfg80211_connect_resp_params*, gfp_t)
    function void cfg80211_disconnected(net_device*, u16, const u8*, size_t, bool, gfp_t)
    function cfg80211_bss* cfg80211_inform_bss_data(wiphy*, cfg80211_inform_bss*, cfg80211_bss_frame_type, const u8*, u64, u16, u16, const u8*, size_t, gfp_t)
    function void cfg80211_put_bss(wiphy*, cfg80211_bss*)
    function void cfg80211_scan_done(cfg80211_scan_request*, cfg80211_scan_info*)
    function int check_disk_change(block_device*)
    function void class_destroy(class*)
    function void class_unregister(class*)
    function int cpufreq_register_driver(cpufreq_driver*)
    function int cpufreq_unregister_driver(cpufreq_driver*)
    function int crypto_register_alg(crypto_alg*)
    function int crypto_unregister_alg(crypto_alg*)
    function __poll_t datagram_poll(file*, socket*, poll_table*)
    function ssize_t debugfs_attr_read(file*, char*, size_t, loff_t*)
    function ssize_t debugfs_attr_write(file*, const char*, size_t, loff_t*)
    function dentry* debugfs_create_dir(const char*, dentry*)
    function dentry* debugfs_create_file(const char*, umode_t, dentry*, void*, const file_operations*)
    function dentry* debugfs_create_file_unsafe(const char*, umode_t, dentry*, void*, const file_operations*)
    function dentry* debugfs_create_x32(const char*, umode_t, dentry*, u32*)
    function void debugfs_remove(dentry*)
    function void debugfs_remove_recursive(dentry*)
    function loff_t default_llseek(file*, loff_t, int)
    function void del_gendisk(gendisk*)
    function void dev_add_pack(packet_type*)
    function void dev_close(net_device*)
    function const char* dev_driver_string(const device*)
    function fwnode_handle* dev_fwnode(device*)
    function net_device* dev_get_by_index(net*, int)
    function net_device* dev_get_by_index_rcu(net*, int)
    function rtnl_link_stats64* dev_get_stats(net_device*, rtnl_link_stats64*)
    function int dev_mc_sync_multiple(net_device*, net_device*)
    function void dev_mc_unsync(net_device*, net_device*)
    function int dev_open(net_device*, netlink_ext_ack*)
    function int dev_pm_domain_attach(device*, bool)
    function void dev_pm_domain_detach(device*, bool)
    function void dev_printk(const char*, const device*, const char*, ...)
    function void dev_remove_pack(packet_type*)
    function int dev_set_mtu(net_device*, int)
    function int dev_set_name(device*, const char*, ...)
    function int dev_uc_sync_multiple(net_device*, net_device*)
    function void dev_uc_unsync(net_device*, net_device*)
    function int device_add(device*)
    function void device_add_disk(device*, gendisk*, const attribute_group**)
    function device* device_create(class*, device*, dev_t, void*, const char*, ...)
    function int device_create_file(device*, const device_attribute*)
    function void device_del(device*)
    function void device_destroy(class*, dev_t)
    function int device_for_each_child(device*, void*, void ()*)
    function int device_init_wakeup(device*, bool)
    function void device_initialize(device*)
    function bool device_property_present(device*, const char*)
    function int device_property_read_u32_array(device*, const char*, u32*, size_t)
    function int device_register(device*)
    function void device_remove_file(device*, const device_attribute*)
    function void device_unregister(device*)
    function clk* devm_clk_get(device*, const char*)
    function gpio_desc* devm_gpiod_get_index(device*, const char*, unsigned int, gpiod_flags)
    function void* devm_ioremap(device*, resource_size_t, resource_size_t)
    function char* devm_kasprintf(device*, gfp_t, const char*, ...)
    function void devm_kfree(device*, void*)
    function void* devm_kmalloc(device*, size_t, gfp_t)
    function void* devm_platform_ioremap_resource(platform_device*, unsigned int)
    function regulator* devm_regulator_get_optional(device*, const char*)
    function int devm_request_threaded_irq(device*, unsigned int, irq_handler_t, irq_handler_t, unsigned long int, const char*, void*)
    function rtc_device* devm_rtc_allocate_device(device*)
    function void devres_add(device*, void*)
    function int devres_destroy(device*, dr_release_t, dr_match_t, void*)
    function void* dma_alloc_attrs(device*, size_t, dma_addr_t*, gfp_t, unsigned long int)
    function dma_addr_t dma_direct_map_page(device*, page*, unsigned long int, size_t, dma_data_direction, unsigned long int)
    function int dma_direct_map_sg(device*, scatterlist*, int, dma_data_direction, unsigned long int)
    function void dma_direct_sync_sg_for_cpu(device*, scatterlist*, int, dma_data_direction)
    function void dma_direct_sync_sg_for_device(device*, scatterlist*, int, dma_data_direction)
    function void dma_direct_sync_single_for_cpu(device*, dma_addr_t, size_t, dma_data_direction)
    function void dma_direct_sync_single_for_device(device*, dma_addr_t, size_t, dma_data_direction)
    function void dma_direct_unmap_page(device*, dma_addr_t, size_t, dma_data_direction, unsigned long int)
    function void dma_direct_unmap_sg(device*, scatterlist*, int, dma_data_direction, unsigned long int)
    function void dma_free_attrs(device*, size_t, void*, dma_addr_t, unsigned long int)
    function unsigned long int dma_get_merge_boundary(device*)
    function size_t dma_max_mapping_size(device*)
    function void dma_resv_add_excl_fence(dma_resv*, dma_fence*)
    function void dma_resv_add_shared_fence(dma_resv*, dma_fence*)
    function int dma_resv_copy_fences(dma_resv*, dma_resv*)
    function void dma_resv_fini(dma_resv*)
    function void dma_resv_init(dma_resv*)
    function int dma_resv_reserve_shared(dma_resv*, unsigned int)
    function bool dma_resv_test_signaled_rcu(dma_resv*, bool)
    function long int dma_resv_wait_timeout_rcu(dma_resv*, bool, bool, unsigned long int)
    function int dma_set_coherent_mask(device*, u64)
    function int dma_set_mask(device*, u64)
    function int drm_add_edid_modes(drm_connector*, edid*)
    function int drm_add_modes_noedid(drm_connector*, int, int)
    function int drm_atomic_helper_check(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_cleanup_planes(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_commit(drm_device*, drm_atomic_state*, bool)
    function void drm_atomic_helper_commit_hw_done(drm_atomic_state*)
    function void drm_atomic_helper_commit_modeset_disables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_modeset_enables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_planes(drm_device*, drm_atomic_state*, uint32_t)
    function void drm_atomic_helper_connector_destroy_state(drm_connector*, drm_connector_state*)
    function drm_connector_state* drm_atomic_helper_connector_duplicate_state(drm_connector*)
    function void drm_atomic_helper_connector_reset(drm_connector*)
    function void drm_atomic_helper_crtc_destroy_state(drm_crtc*, drm_crtc_state*)
    function drm_crtc_state* drm_atomic_helper_crtc_duplicate_state(drm_crtc*)
    function void drm_atomic_helper_crtc_reset(drm_crtc*)
    function int drm_atomic_helper_dirtyfb(drm_framebuffer*, drm_file*, unsigned int, unsigned int, drm_clip_rect*, unsigned int)
    function int drm_atomic_helper_disable_plane(drm_plane*, drm_modeset_acquire_ctx*)
    function int drm_atomic_helper_page_flip(drm_crtc*, drm_framebuffer*, drm_pending_vblank_event*, uint32_t, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_plane_destroy_state(drm_plane*, drm_plane_state*)
    function drm_plane_state* drm_atomic_helper_plane_duplicate_state(drm_plane*)
    function void drm_atomic_helper_plane_reset(drm_plane*)
    function int drm_atomic_helper_set_config(drm_mode_set*, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_shutdown(drm_device*)
    function int drm_atomic_helper_update_plane(drm_plane*, drm_crtc*, drm_framebuffer*, int, int, unsigned int, unsigned int, uint32_t, uint32_t, uint32_t, uint32_t, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_wait_for_vblanks(drm_device*, drm_atomic_state*)
    function int drm_class_device_register(device*)
    function void drm_class_device_unregister(device*)
    function long int drm_compat_ioctl(file*, unsigned int, unsigned long int)
    function void drm_connector_attach_edid_property(drm_connector*)
    function int drm_connector_attach_encoder(drm_connector*, drm_encoder*)
    function void drm_connector_cleanup(drm_connector*)
    function int drm_connector_init(drm_device*, drm_connector*, const drm_connector_funcs*, int)
    function int drm_connector_register(drm_connector*)
    function void drm_connector_unregister(drm_connector*)
    function int drm_connector_update_edid_property(drm_connector*, const edid*)
    function void drm_crtc_cleanup(drm_crtc*)
    function int drm_crtc_init_with_planes(drm_device*, drm_crtc*, drm_plane*, drm_plane*, const drm_crtc_funcs*, const char*, ...)
    function void drm_crtc_send_vblank_event(drm_crtc*, drm_pending_vblank_event*)
    function drm_display_mode* drm_cvt_mode(drm_device*, int, int, int, bool, bool, bool)
    function int drm_debugfs_create_files(const drm_info_list*, int, dentry*, drm_minor*)
    function drm_device* drm_dev_alloc(drm_driver*, device*)
    function void drm_dev_put(drm_device*)
    function int drm_dev_register(drm_device*, unsigned long int)
    function int drm_dev_set_unique(drm_device*, const char*)
    function void drm_dev_unregister(drm_device*)
    function edid* drm_do_get_edid(drm_connector*, void ()*, void*)
    function void drm_encoder_cleanup(drm_encoder*)
    function int drm_encoder_init(drm_device*, drm_encoder*, const drm_encoder_funcs*, int, const char*, ...)
    function int drm_framebuffer_init(drm_device*, drm_framebuffer*, const drm_framebuffer_funcs*)
    function int drm_gem_fb_create_handle(drm_framebuffer*, drm_file*, unsigned int*)
    function void drm_gem_fb_destroy(drm_framebuffer*)
    function int drm_gem_handle_create(drm_file*, drm_gem_object*, u32*)
    function int drm_gem_object_init(drm_device*, drm_gem_object*, size_t)
    function drm_gem_object* drm_gem_object_lookup(drm_file*, u32)
    function void drm_gem_object_put_unlocked(drm_gem_object*)
    function void drm_gem_object_release(drm_gem_object*)
    function int drm_gem_prime_fd_to_handle(drm_device*, drm_file*, int, uint32_t*)
    function int drm_gem_prime_handle_to_fd(drm_device*, drm_file*, uint32_t, uint32_t, int*)
    function int drm_gem_prime_mmap(drm_gem_object*, vm_area_struct*)
    function bool drm_helper_hpd_irq_event(drm_device*)
    function void drm_helper_mode_fill_fb_struct(drm_device*, drm_framebuffer*, const drm_mode_fb_cmd2*)
    function int drm_helper_probe_single_connector_modes(drm_connector*, uint32_t, uint32_t)
    function long int drm_ioctl(file*, unsigned int, unsigned long int)
    function void drm_kms_helper_hotplug_event(drm_device*)
    function void drm_mode_config_cleanup(drm_device*)
    function void drm_mode_config_init(drm_device*)
    function void drm_mode_config_reset(drm_device*)
    function void drm_mode_probed_add(drm_connector*, drm_display_mode*)
    function int drm_open(inode*, file*)
    function void drm_plane_cleanup(drm_plane*)
    function __poll_t drm_poll(file*, poll_table_struct*)
    function void drm_put_dev(drm_device*)
    function ssize_t drm_read(file*, char*, size_t, loff_t*)
    function int drm_release(inode*, file*)
    function void drm_set_preferred_mode(drm_connector*, int, int)
    function int drm_universal_plane_init(drm_device*, drm_plane*, uint32_t, const drm_plane_funcs*, const uint32_t*, unsigned int, const uint64_t*, drm_plane_type, const char*, ...)
    function void eth_commit_mac_addr_change(net_device*, void*)
    function int eth_prepare_mac_addr_change(net_device*, void*)
    function __be16 eth_type_trans(sk_buff*, net_device*)
    function int eth_validate_addr(net_device*)
    function void ether_setup(net_device*)
    function u32 ethtool_op_get_link(net_device*)
    function int ethtool_op_get_ts_info(net_device*, ethtool_ts_info*)
    function event_trigger_type event_triggers_call(trace_event_file*, void*, ring_buffer_event*)
    function int fasync_helper(int, file*, int, fasync_struct**)
    function void fd_install(unsigned int, file*)
    function void fput(file*)
    function void free_netdev(net_device*)
    function bool freezing_slow_path(task_struct*)
    function int fsl8250_handle_irq(uart_port*)
    function loff_t generic_file_llseek(file*, loff_t, int)
    function device* get_device(device*)
    function int gpiod_cansleep(const gpio_desc*)
    function int gpiod_get_raw_value(const gpio_desc*)
    function int gpiod_get_raw_value_cansleep(const gpio_desc*)
    function int gpiod_get_value(const gpio_desc*)
    function int gpiod_get_value_cansleep(const gpio_desc*)
    function int gpiod_is_active_low(const gpio_desc*)
    function int gpiod_set_debounce(gpio_desc*, unsigned int)
    function int gpiod_to_irq(const gpio_desc*)
    function hvc_struct* hvc_alloc(uint32_t, int, const hv_ops*, int)
    function int hvc_instantiate(uint32_t, int, const hv_ops*)
    function int hvc_poll(hvc_struct*)
    function int hvc_remove(hvc_struct*)
    function void input_alloc_absinfo(input_dev*)
    function input_dev* input_allocate_device()
    function void input_event(input_dev*, unsigned int, unsigned int, int)
    function void input_free_device(input_dev*)
    function int input_mt_init_slots(input_dev*, unsigned int, unsigned int)
    function int input_register_device(input_dev*)
    function void input_set_abs_params(input_dev*, unsigned int, int, int, int, int)
    function void input_unregister_device(input_dev*)
    function void kobject_del(kobject*)
    function int kobject_init_and_add(kobject*, kobj_type*, kobject*, const char*, ...)
    function void kobject_put(kobject*)
    function int kobject_uevent(kobject*, kobject_action)
    function int kobject_uevent_env(kobject*, kobject_action, char**)
    function task_struct* kthread_create_on_node(void ()*, void*, int, const char*, ...)
    function kthread_worker* kthread_create_worker(unsigned int, const char*, ...)
    function void kthread_destroy_worker(kthread_worker*)
    function bool kthread_queue_work(kthread_worker*, kthread_work*)
    function int kthread_stop(task_struct*)
    function int led_classdev_register_ext(device*, led_classdev*, led_init_data*)
    function void led_classdev_unregister(led_classdev*)
    function void led_trigger_event(led_trigger*, led_brightness)
    function void led_trigger_register_simple(const char*, led_trigger**)
    function void led_trigger_unregister_simple(led_trigger*)
    function void lock_sock_nested(sock*, int)
    function void misc_deregister(miscdevice*)
    function int misc_register(miscdevice*)
    function bool napi_complete_done(napi_struct*, int)
    function void napi_disable(napi_struct*)
    function gro_result_t napi_gro_receive(napi_struct*, sk_buff*)
    function bool napi_hash_del(napi_struct*)
    function bool napi_schedule_prep(napi_struct*)
    function void netdev_change_features(net_device*)
    function void netdev_err(const net_device*, const char*, ...)
    function void netdev_info(const net_device*, const char*, ...)
    function void netdev_lower_state_changed(net_device*, void*)
    function int netdev_master_upper_dev_link(net_device*, net_device*, void*, void*, netlink_ext_ack*)
    function void netdev_notify_peers(net_device*)
    function u16 netdev_pick_tx(net_device*, sk_buff*, net_device*)
    function int netdev_rx_handler_register(net_device*, rx_handler_func_t*, void*)
    function void netdev_rx_handler_unregister(net_device*)
    function int netdev_upper_dev_link(net_device*, net_device*, netlink_ext_ack*)
    function void netdev_upper_dev_unlink(net_device*, net_device*)
    function void netdev_warn(const net_device*, const char*, ...)
    function void netif_carrier_off(net_device*)
    function void netif_carrier_on(net_device*)
    function void netif_device_attach(net_device*)
    function void netif_device_detach(net_device*)
    function void netif_napi_add(net_device*, napi_struct*, void ()*, int)
    function void netif_napi_del(napi_struct*)
    function int netif_set_real_num_rx_queues(net_device*, unsigned int)
    function int netif_set_real_num_tx_queues(net_device*, unsigned int)
    function void netif_stacked_transfer_operstate(const net_device*, net_device*)
    function void netif_tx_stop_all_queues(net_device*)
    function loff_t no_llseek(file*, loff_t, int)
    function int nonseekable_open(inode*, file*)
    function loff_t noop_llseek(file*, loff_t, int)
    function int of_address_to_resource(device_node*, int, resource*)
    function int of_alias_get_id(device_node*, const char*)
    function void* of_device_get_match_data(const device*)
    function bool of_device_is_big_endian(const device_node*)
    function int of_device_is_compatible(const device_node*, const char*)
    function property* of_find_property(const device_node*, const char*, int*)
    function device_node* of_get_child_by_name(const device_node*, const char*)
    function device_node* of_get_next_child(const device_node*, device_node*)
    function void* of_get_property(const device_node*, const char*, int*)
    function int of_irq_get(device_node*, int)
    function device_node* of_parse_phandle(const device_node*, const char*, int)
    function int of_property_read_u64(const device_node*, const char*, u64*)
    function int of_property_read_variable_u32_array(const device_node*, const char*, u32*, size_t, size_t)
    function netdev_features_t passthru_features_check(sk_buff*, net_device*, netdev_features_t)
    function int pci_alloc_irq_vectors_affinity(pci_dev*, unsigned int, unsigned int, unsigned int, irq_affinity*)
    function void pci_disable_device(pci_dev*)
    function int pci_enable_device(pci_dev*)
    function int pci_find_capability(pci_dev*, int)
    function int pci_find_ext_capability(pci_dev*, int)
    function int pci_find_next_capability(pci_dev*, u8, int)
    function void pci_free_irq_vectors(pci_dev*)
    function void* pci_iomap_range(pci_dev*, int, unsigned long int, unsigned long int)
    function const cpumask* pci_irq_get_affinity(pci_dev*, int)
    function int pci_irq_vector(pci_dev*, unsigned int)
    function int pci_read_config_byte(const pci_dev*, int, u8*)
    function int pci_read_config_dword(const pci_dev*, int, u32*)
    function void pci_release_selected_regions(pci_dev*, int)
    function int pci_request_selected_regions(pci_dev*, int, const char*)
    function void pci_set_master(pci_dev*)
    function void pci_unregister_driver(pci_driver*)
    function void perf_trace_run_bpf_submit(void*, int, int, trace_event_call*, u64, pt_regs*, hlist_head*, task_struct*)
    function int platform_device_add(platform_device*)
    function int platform_device_add_data(platform_device*, void*, size_t)
    function platform_device* platform_device_alloc(const char*, int)
    function void platform_device_del(platform_device*)
    function void platform_device_put(platform_device*)
    function platform_device* platform_device_register_full(const platform_device_info*)
    function void platform_device_unregister(platform_device*)
    function void platform_driver_unregister(platform_driver*)
    function int platform_get_irq(platform_device*, unsigned int)
    function resource* platform_get_resource(platform_device*, unsigned int, unsigned int)
    function int pm_generic_resume(device*)
    function int pm_generic_runtime_resume(device*)
    function int pm_generic_runtime_suspend(device*)
    function int pm_generic_suspend(device*)
    function void pm_runtime_enable(device*)
    function void pm_runtime_set_autosuspend_delay(device*, int)
    function void pm_wakeup_dev_event(device*, unsigned int, bool)
    function void put_device(device*)
    function void put_disk(gendisk*)
    function int register_netdev(net_device*)
    function int register_netdevice(net_device*)
    function int register_pernet_subsys(pernet_operations*)
    function int regulator_count_voltages(regulator*)
    function int regulator_disable(regulator*)
    function int regulator_enable(regulator*)
    function int regulator_get_current_limit(regulator*)
    function int regulator_get_voltage(regulator*)
    function int regulator_is_supported_voltage(regulator*, int, int)
    function int regulator_list_voltage(regulator*, unsigned int)
    function int regulator_set_voltage(regulator*, int, int)
    function void release_sock(sock*)
    function int reset_control_assert(reset_control*)
    function int reset_control_deassert(reset_control*)
    function int revalidate_disk(gendisk*)
    function void rtc_update_irq(rtc_device*, unsigned long int, unsigned long int)
    function int rtnl_link_register(rtnl_link_ops*)
    function void rtnl_link_unregister(rtnl_link_ops*)
    function int sched_setscheduler(task_struct*, int, const sched_param*)
    function loff_t seq_lseek(file*, loff_t, int)
    function void seq_printf(seq_file*, const char*, ...)
    function void seq_putc(seq_file*, char)
    function void seq_puts(seq_file*, const char*)
    function ssize_t seq_read(file*, char*, size_t, loff_t*)
    function uart_8250_port* serial8250_get_port(int)
    function int serial8250_register_8250_port(uart_8250_port*)
    function void set_disk_ro(gendisk*, int)
    function file* shmem_file_setup(const char*, loff_t, unsigned long int)
    function int simple_attr_open(inode*, file*, void ()*, void ()*, const char*)
    function ssize_t simple_attr_read(file*, char*, size_t, loff_t*)
    function int simple_attr_release(inode*, file*)
    function ssize_t simple_attr_write(file*, const char*, size_t, loff_t*)
    function int single_open(file*, void ()*, void*)
    function int single_release(inode*, file*)
    function sock* sk_alloc(net*, int, gfp_t, proto*, int)
    function void sk_free(sock*)
    function void skb_free_datagram(sock*, sk_buff*)
    function sk_buff* skb_recv_datagram(sock*, unsigned int, int, int*)
    function sk_buff* sock_alloc_send_skb(sock*, unsigned long int, int, int*)
    function int sock_diag_register(const sock_diag_handler*)
    function void sock_diag_save_cookie(sock*, __u32*)
    function void sock_diag_unregister(const sock_diag_handler*)
    function int sock_gettstamp(socket*, void*, bool, bool)
    function unsigned long int sock_i_ino(sock*)
    function void sock_init_data(socket*, sock*)
    function int sock_no_accept(socket*, socket*, int, bool)
    function int sock_no_bind(socket*, sockaddr*, int)
    function int sock_no_connect(socket*, sockaddr*, int, int)
    function int sock_no_getname(socket*, sockaddr*, int)
    function int sock_no_getsockopt(socket*, int, int, char*, int*)
    function int sock_no_ioctl(socket*, unsigned int, unsigned long int)
    function int sock_no_listen(socket*, int)
    function int sock_no_mmap(file*, socket*, vm_area_struct*)
    function ssize_t sock_no_sendpage(socket*, page*, int, size_t, int)
    function int sock_no_setsockopt(socket*, int, int, char*, unsigned int)
    function int sock_no_shutdown(socket*, int)
    function int sock_no_socketpair(socket*, socket*)
    function int sock_queue_rcv_skb(sock*, sk_buff*)
    function int sock_register(const net_proto_family*)
    function sync_file* sync_file_create(dma_fence*)
    function int sysfs_create_bin_file(kobject*, const bin_attribute*)
    function int sysfs_create_group(kobject*, const attribute_group*)
    function void sysfs_remove_bin_file(kobject*, const bin_attribute*)
    function void sysfs_remove_group(kobject*, const attribute_group*)
    function int trace_define_field(trace_event_call*, const char*, const char*, int, int, int, int)
    function void trace_event_buffer_commit(trace_event_buffer*)
    function void* trace_event_buffer_reserve(trace_event_buffer*, trace_event_file*, unsigned long int)
    function bool trace_event_ignore_this_pid(trace_event_file*)
    function int trace_event_raw_init(trace_event_call*)
    function int trace_event_reg(trace_event_call*, trace_reg, void*)
    function void unregister_netdev(net_device*)
    function void unregister_netdevice_queue(net_device*, list_head*)
    function void unregister_pernet_subsys(pernet_operations*)
    function int usb_add_gadget_udc(device*, usb_gadget*)
    function int usb_add_hcd(usb_hcd*, unsigned int, unsigned long int)
    function usb_hcd* usb_create_hcd(const hc_driver*, device*, const char*)
    function usb_hcd* usb_create_shared_hcd(const hc_driver*, device*, const char*, usb_hcd*)
    function usb_device* usb_get_dev(usb_device*)
    function int usb_hcd_check_unlink_urb(usb_hcd*, urb*, int)
    function void usb_hcd_giveback_urb(usb_hcd*, urb*, int)
    function int usb_hcd_is_primary_hcd(usb_hcd*)
    function int usb_hcd_link_urb_to_ep(usb_hcd*, urb*)
    function void usb_hcd_poll_rh_status(usb_hcd*)
    function void usb_hcd_resume_root_hub(usb_hcd*)
    function void usb_hcd_unlink_urb_from_ep(usb_hcd*, urb*)
    function void usb_put_dev(usb_device*)
    function void usb_put_hcd(usb_hcd*)
    function void usb_remove_hcd(usb_hcd*)
    function vm_fault_t vmf_insert_mixed(vm_area_struct*, unsigned long int, pfn_t)
    function vm_fault_t vmf_insert_pfn(vm_area_struct*, unsigned long int, unsigned long int)
    function int wake_up_process(task_struct*)
    function void wiphy_free(wiphy*)
    function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)
    function int wiphy_register(wiphy*)
    function void wiphy_unregister(wiphy*)
    function int ww_mutex_lock(ww_mutex*, ww_acquire_ctx*)
    function int ww_mutex_lock_interruptible(ww_mutex*, ww_acquire_ctx*)
    function void ww_mutex_unlock(ww_mutex*)
    function int xdp_do_redirect(net_device*, xdp_buff*, bpf_prog*)
    function int xdp_rxq_info_reg(xdp_rxq_info*, net_device*, u32)

Bug: 146449535
Change-Id: I27bdc96f7ebd9891eb41562b4db18d691308496d
Signed-off-by: Alistair Delva <adelva@google.com>
2019-12-20 10:25:41 -08:00
Vivek Gautam
614d15f302 BACKPORT: iommu: arm-smmu-impl: Add sdm845 implementation hook
Add reset hook for sdm845 based platforms to turn off
the wait-for-safe sequence.

Understanding how wait-for-safe logic affects USB and UFS performance
on MTP845 and DB845 boards:

Qcom's implementation of arm,mmu-500 adds a WAIT-FOR-SAFE logic
to address under-performance issues in real-time clients, such as
Display, and Camera.
On receiving an invalidation requests, the SMMU forwards SAFE request
to these clients and waits for SAFE ack signal from real-time clients.
The SAFE signal from such clients is used to qualify the start of
invalidation.
This logic is controlled by chicken bits, one for each - MDP (display),
IFE0, and IFE1 (camera), that can be accessed only from secure software
on sdm845.

This configuration, however, degrades the performance of non-real time
clients, such as USB, and UFS etc. This happens because, with wait-for-safe
logic enabled the hardware tries to throttle non-real time clients while
waiting for SAFE ack signals from real-time clients.

On mtp845 and db845 devices, with wait-for-safe logic enabled by the
bootloaders we see degraded performance of USB and UFS when kernel
enables the smmu stage-1 translations for these clients.
Turn off this wait-for-safe logic from the kernel gets us back the perf
of USB and UFS devices until we re-visit this when we start seeing perf
issues on display/camera on upstream supported SDM845 platforms.
The bootloaders on these boards implement secure monitor callbacks to
handle a specific command - QCOM_SCM_SVC_SMMU_PROGRAM with which the
logic can be toggled.

There are other boards such as cheza whose bootloaders don't enable this
logic. Such boards don't implement callbacks to handle the specific SCM
call so disabling this logic for such boards will be a no-op.

This change is inspired by the downstream change from Patrick Daly
to address performance issues with display and camera by handling
this wait-for-safe within separte io-pagetable ops to do TLB
maintenance. So a big thanks to him for the change and for all the
offline discussions.

Without this change the UFS reads are pretty slow:
$ time dd if=/dev/sda of=/dev/zero bs=1048576 count=10 conv=sync
10+0 records in
10+0 records out
10485760 bytes (10.0MB) copied, 22.394903 seconds, 457.2KB/s
real    0m 22.39s
user    0m 0.00s
sys     0m 0.01s

With this change they are back to rock!
$ time dd if=/dev/sda of=/dev/zero bs=1048576 count=300 conv=sync
300+0 records in
300+0 records out
314572800 bytes (300.0MB) copied, 1.030541 seconds, 291.1MB/s
real    0m 1.03s
user    0m 0.00s
sys     0m 0.54s

Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 759aaa10c76cbaaefc0670410fb2d54cf4ec10cc)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: I19992dad55516fa0444c79d7f50363ef57633c97
2019-12-20 09:57:41 -08:00
Vivek Gautam
5362320ee3 UPSTREAM: firmware/qcom_scm: Add scm call to handle smmu errata
Qcom's smmu-500 needs to toggle wait-for-safe sequence to
handle TLB invalidation sync's.
Few firmwares allow doing that through SCM interface.
Add API to toggle wait for safe from firmware through a
SCM call.

Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Andy Gross <agross@kernel.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 5eb0e0e4f90addc6b79ebf1cb4b06b56b09f09de)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: I1e6ef0d2391be1ea9508eb44329a7a70de1b1481
2019-12-20 09:57:41 -08:00
Vivek Gautam
b869aae883 UPSTREAM: firmware: qcom_scm-64: Add atomic version of qcom_scm_call
There are scnenarios where drivers are required to make a
scm call in atomic context, such as in one of the qcom's
arm-smmu-500 errata [1].

[1] ("https://source.codeaurora.org/quic/la/kernel/msm-4.9/
      tree/drivers/iommu/arm-smmu.c?h=msm-4.9#n4842")

Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Andy Gross <agross@kernel.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 1a5ea3b7a6ac6c133660b9aeda95b2087c8eec47)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: Ic9c14f2334271d23b04293e1cebdaaf6a1fbbe9d
2019-12-20 09:57:41 -08:00
Amit Kucheria
9df826d676 UPSTREAM: cpufreq: qcom-hw: Move driver initialization earlier
Allow qcom-hw driver to initialize right after the cpufreq and thermal
subsystems are initialised in core_initcall so we get earlier access to
thermal mitigation.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Taniya Das <tdas@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/eacce8d08388b0bdfc908d2701fe7c2b78d90441.1571656015.git.amit.kucheria@linaro.org
(cherry picked from commit 11ff4bdd1ab4a6c75d49fbd752a1d9b79e8ca8cb)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: I27f281e4634139a18c86bfa889b97c77cfc6ddd0
2019-12-20 09:57:40 -08:00
Amit Kucheria
d3e7f43a9f UPSTREAM: cpufreq: Initialize cpufreq-dt driver earlier
This allows HW drivers that depend on cpufreq-dt to initialize earlier.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/353c745d4ca1feff600bd44154c01c013f185ca4.1571656015.git.amit.kucheria@linaro.org
(cherry picked from commit 57db08f41b2a8f6c22036290400a59a2b3ff3390)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: I129f901aa517f4b6ce6619ef24c291c71d7610e7
2019-12-20 09:57:40 -08:00
Amit Kucheria
98117f2abf UPSTREAM: cpufreq: Initialize the governors in core_initcall
Initialize the cpufreq governors earlier to allow for earlier
performance control during the boot process.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/b98eae9b44eb2f034d7f5d12a161f5f831be1eb7.1571656015.git.amit.kucheria@linaro.org
(cherry picked from commit 3f6ec871e1c2b360aaf022e90bb99dcc016b3874)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Bug: 146449535
Change-Id: Ib5599ade3811fb44a15cda6ee3791d997207cad5
2019-12-20 09:57:40 -08:00
John Stultz
1fc7351d13 ANDROID: tty: serial_core: Export uart_console_device so it can be used by modules
In order to support serial console w/ SERIAL_QCOM_GENI=m,
we need to export the uart_console_device() symbol so things
will build

Change-Id: I3067c3aaadf84f46ede3162aa8cee4028a3e42d8
Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-20 09:57:39 -08:00
John Stultz
2eb9ebfdf6 ANDROID: gki_defconfig: Add qcom pcie options to gki_defconfig
The qcom PCIE support isn't able to be added as a module, so I
propose enabling CONFIG_PCIE_QCOM and CONFIG_PCIEPORTBUS in
the gki_defconfig.

For consistency, this also adds CONFIG_PCIEPORTBUS=y and RAS=y
(previously missing) to the x86 gki_defconfig

Change-Id: I04941e17f660dd13b2ef2ab3150acae3ce670b19
Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-20 09:57:39 -08:00
John Stultz
9b09257521 ANDROID: Kconfig.gki: Add entries for qcom clk drivers
Add a Kconfig.gki option to enable qcom clk drivers.

This is needed as the qcom clk drivers are also used as power
domain sources. Unfortunately the powerdomain logic stops
returning EPROBE_DEFER when initcall_done is true (after
initcalls, but before modules load). This results in the drivers
(in our case, the smmu which is built in) that depend on the clk
provided power-domain to fail to load.

This issue seems to be due to the following commit, which when
reverted resolve the problem and allows dependent drivers to
still load once the clk modules are loaded:
 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e01afc32502555beb2057ddd74401be38475d851

I'm working with the patch author and Bjorn to try to find
a good upstream solution, but in the meantime, set the qcom
clks to =y for now.

Bug: 146449535
Change-Id: Iaf6655a22243335083c0f7b3a673e795cea68021
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-20 09:57:38 -08:00
John Stultz
33931f4741 ANDROID: Kconfig.gki: Add PINCTRL_MSM to QCOM Hidden configs
This allows pinctrl drivers to work as a module on qcom hardware

Change-Id: I6df13dd45985751afcdaa7c27c3674f06bbbc083
Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-20 09:57:37 -08:00
John Stultz
a379092513 ANDROID: Kconfig.gki: Add hidden CONFIG_WANT_DEV_COREDUMP for DRM_MSM driver
In order to work with the modularized DRM_MSM driver, we
need to enable CONFIG_WANT_DEV_COREDUMP

Change-Id: Ieeab292a0aad851edd49d368156fc18fe78fccb7
Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-20 09:57:37 -08:00
Bjorn Andersson
21ccb4de91 ANDROID: PCI: qcom: Add support for SDM845 PCIe controller
The SDM845 has one Gen2 and one Gen3 controller, add support for these.

Due to lack of hardware only the Gen2 controller has been verified.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit ff885cfa19c77f4e16b797c3aa9a5f588fecf50c
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I76e60cca47c9b6cab5252a28a9748e5f8fe4b51b
2019-12-20 09:57:36 -08:00
Bjorn Andersson
ff69e44c1b ANDROID: PCI: qcom: Fix the fixup of PCI_VENDOR_ID_QCOM
There exists non-bridge PCIe devices with PCI_VENDOR_ID_QCOM, so limit
the fixup to only affect the PCIe 2.0 (0x106) and PCIe 3.0 (0x107)
bridges.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit 5ed49c7a1ca12470415229233a3e6b4216a76c62
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ibfd2b2dd41f6a22c832afb3d8e805c3602acba95
2019-12-20 09:57:36 -08:00
Bjorn Andersson
2a8fed9ac3 ANDROID: phy: qcom: qmp: Add SDM845 QHP PCIe PHY
Add the GEN3 QHP PCIe PHY found in SDM845.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit a130c83138d047998fef41b659d58749983cec5a
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I9c85d21d1557a6cf17af57022d9ca31913acbec8
2019-12-20 09:57:35 -08:00
Bjorn Andersson
fdd437cdd7 ANDROID: phy: qcom: qmp: Add SDM845 PCIe QMP PHY support
qcom_qmp_phy_init() is extended to support the additional register
writes needed in PCS MISC and the appropriate sequences and resources
are defined for the GEN2 PCIe QMP PHY found in SDM845.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit ea22de53ffeb5c9a8b725b471e8ed4935ac3aaf5
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ia763ff19382898dcbecf538cf001a7402ad7a934
2019-12-20 09:57:35 -08:00
Bjorn Andersson
10de10131f ANDROID: phy: qcom: qmp: Use power_on/off ops for PCIe
The PCIe PHY needs to be initialized as part of the PCI initialization
and should therefore implement the power_on/power_off ops, rather than
init/exit.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit 49020f887a7ee8da2271e0e3f3eeb83925f80fb8
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I90bec4df92abb86984ef617a65d0ed98e8702545
2019-12-20 09:57:34 -08:00
Bjorn Andersson
43782e30b8 ANDROID: phy: qcom-qmp: Increase PHY ready timeout
It's typical for the QHP PHY to take slightly above 1ms to initialize,
so increase the timeout of the PHY ready check to 10ms - as already done
in the downstream PCIe driver.

Bug: 146449535
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(cherry picked from commit d62d7294de98c504a345b0750ad4d0f53587f516
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
qclt/integration-linux-qcomlt  - An unstable rebased branch)
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I5b1c06406a97b4a2592549bcf668796c141bcccb
2019-12-20 09:57:34 -08:00
Alistair Delva
de90777010 ANDROID: gki_defconfig: Enable CONFIG_GNSS_CMDLINE_SERIAL
Enables a GNSS serial driver for cuttlefish.

Bug: 146517987
Change-Id: Ife42306a3052e49365e3f0004f220424f0be7782
Signed-off-by: Alistair Delva <adelva@google.com>
2019-12-19 15:35:48 -08:00
Alistair Delva
51e81764d9 ANDROID: gnss: Add command line test driver
This driver enables the "takeover" of a serdev bus device by the GNSS
subsystem. It can be used to test the GNSS subsystem without needing to
write a specific hardware backend.

The new module supports the following parameters:

  gnss_cmdline.serdev=driver/port/serdev
  gnss_cmdline.type=<protocol number>

An example which allows GNSS to wrap a platform serial8250 port and
advertise NMEA-0183 data is:

  gnss_cmdline.serdev=serial8250/serial0/serial0-0
                        ^          ^       ^
                       driver     port    serdev
  gnss_cmdline.type=0
                    ^
                    GNSS_TYPE_NMEA

Bug: 146517987
Change-Id: I421386ee4f2ba8f1f0832d9c56a067a600892d3c
Signed-off-by: Alistair Delva <adelva@google.com>
2019-12-19 15:35:47 -08:00
Alistair Delva
4070d32e75 ANDROID: serdev: add platform device support
Enables devices on a platform bus, such as serial8250 on the ISA bus, to
be enumerated by the serdev subsystem. This enables further layering by
e.g. the gnss subsystem.

With this in change, these devices can now register with the serdev core
and show up as serdev tty ports (serialX) and child devices (serialX-Y).

serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a U6_16550A
serial serial0: tty port ttyS0 registered
serial8250: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a U6_16550A
serial serial1: tty port ttyS1 registered
serial8250: ttyS2 at I/O 0x3e8 (irq = 4, base_baud = 115200) is a U6_16550A
serial serial2: tty port ttyS2 registered
serial8250: ttyS3 at I/O 0x2e8 (irq = 3, base_baud = 115200) is a U6_16550A
serial serial3: tty port ttyS3 registered

The modalias shows up like this:

  # cat /sys/bus/serial/devices/serial0-0/modalias
  platform:serial8250

Bug: 146517987
Change-Id: I3711c9d9ecd66fad638a45a8745e97569ae01791
Signed-off-by: Alistair Delva <adelva@google.com>
2019-12-19 15:35:46 -08:00
Yu Chen
8a880b68c5 ANDROID: usb: gadget: Add configfs attribuite for controling match_existing_only
Currently the "match_existing_only" of usb_gadget_driver in configfs is
set to one which is not flexible.
Dwc3 udc will be removed when usb core switch to host mode. This causes
failure of writing name of dwc3 udc to configfs's UDC attribuite.
To fix this we need to add a way to change the config of
"match_existing_only".
There are systems like Android do not support udev, so adding
"match_existing_only" attribute to allow configuration by user is cost little.
This patch adds a configfs attribuite for controling match_existing_only
which allow user to config "match_existing_only".

Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Binghui Wang <wangbinghui@hisilicon.com>
Bug: 146450171
Signed-off-by: Yu Chen <chenyu56@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I7c61a45cd4d22a188838659d4cc3f0fbe0ac1bcf
2019-12-19 21:04:38 +00:00
Ram Muthiah
5527e65c43 ANDROID: gki_defconfig: enable ARM64_SW_TTBR0_PAN
Bug: 146537847
Bug: 143710295
Test: Treehugger
Change-Id: I1e64095a563a8b7a3f3ced160cec72ca5d1e8a8d
Signed-off-by: Ram Muthiah <rammuthiah@google.com>
2019-12-19 11:28:48 -08:00
Ram Muthiah
e060d9b6f1 ANDROID: gki_defconfig: Set BINFMT_MISC as =m
Bug: 145774383
Test: Treehugger
Change-Id: I7a3c395875504c455e4e720c807f52d083d35f9b
Signed-off-by: Ram Muthiah <rammuthiah@google.com>
2019-12-19 11:23:33 -08:00
Guenter Roeck
8dd35aa435 FROMLIST: ARM: Remove arm_pm_restart()
All users of arm_pm_restart() have been converted to use the kernel
restart handler.

Bug: 146512338
Change-Id: I32c19f5c730bb7b02c4e474bb2292c25483d6900
Link: https://lore.kernel.org/patchwork/patch/1139631/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-12-18 15:49:14 -08:00
Guenter Roeck
953287c407 FROMLIST: ARM64: Remove arm_pm_restart()
All users of arm_pm_restart() have been converted to use the kernel
restart handler.

Bug: 146512338
Change-Id: I7d3ab4bef10559a28e38cb50ee02698ce939824c
Link: https://lore.kernel.org/patchwork/patch/1139630/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-12-18 15:48:47 -08:00
Guenter Roeck
8efc26b4c1 FROMLIST: ARM: Register with kernel restart handler
By making use of the kernel restart handler, board specific restart
handlers can be prioritized amongst available mechanisms for a particular
board or system.

Select the default priority of 128 to indicate that the restart callback
in the machine description is the default restart mechanism.

Bug: 146512338
Change-Id: I9253eab4b521d8b39196909cb0780aa0aaa041db
Link: https://lore.kernel.org/patchwork/patch/1139629/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-12-18 15:48:19 -08:00
Guenter Roeck
1704a701e1 FROMLIST: drivers: firmware: psci: Register with kernel restart handler
Register with kernel restart handler instead of setting arm_pm_restart
directly. This enables support for replacing the PSCI restart handler
with a different handler if necessary for a specific board.

Select a priority of 129 to indicate a higher than default priority, but
keep it as low as possible since PSCI reset is known to fail on some
boards.

Bug: 146512338
Change-Id: I15bf41931fa8301e141b4b5d22b6bcede5fd726d
Link: https://lore.kernel.org/patchwork/patch/1139628/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>
2019-12-18 15:47:58 -08:00
Guenter Roeck
390baafa19 FROMLIST: ARM: xen: Register with kernel restart handler
Register with kernel restart handler instead of setting arm_pm_restart
directly.

Select a high priority of 192 to ensure that default restart handlers
are replaced if Xen is running.

Bug: 146512338
Change-Id: I1bfa30771cb3d1289177ba86b3378e3f6cd01e1c
Link: https://lore.kernel.org/patchwork/patch/1139627/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-12-18 15:47:34 -08:00
Guenter Roeck
b0ac347088 FROMLIST: ARM: prima2: Register with kernel restart handler
Register with kernel restart handler instead of setting arm_pm_restart
directly. By doing this, the prima2 reset handler can be prioritized
among other restart methods available on a particular board.

Select a high priority of 192 since the original code overwrites the
default arm restart handler.

Bug: 146512338
Change-Id: I7b1f295a8a68c75d502ce050429297c2644233fb
Link: https://lore.kernel.org/patchwork/patch/1139626/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-12-18 15:44:33 -08:00
Youlin Wang
183905b9fd ANDROID: ASoC: add hikey960-i2s DT bindings
Adds DT bindings documentation for
the hikey960-i2s driver and audio card device.

Bug: 146450171
Signed-off-by: Youlin Wang <wangyoulin1@hisilicon.com>
Signed-off-by: Tanglei Han <hantanglei@huawei.com>
Signed-off-by: Guangke Ji <jiguangke@huawei.com>
Signed-off-by: Feng Chen <puck.chen@hisilicon.com>
Signed-off-by: Kaihua Zhong <zhongkaihua@huawei.com>
Signed-off-by: Jun Chen <chenjun14@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Yiping Xu <xuyiping@hisilicon.com>
Signed-off-by: Pengcheng Li <lipengcheng8@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: If9f8ce65c78e1e1e6b2e0439b590e7558763d631
2019-12-18 18:07:51 +00:00
Youlin Wang
6e7f3a3fda ANDROID: sound: Add hikey960 i2s audio driver
Add i2s driver for hisi3660 soc found on the hikey960 board.
Add conpile line in make file.
Technical support by Guangke Ji.

Bug: 146450171
Signed-off-by: Youlin Wang <wangyoulin1@hisilicon.com>
Signed-off-by: Tanglei Han <hantanglei@huawei.com>
Signed-off-by: Guangke Ji <jiguangke@huawei.com>
Signed-off-by: Feng Chen <puck.chen@hisilicon.com>
Signed-off-by: Kaihua Zhong <zhongkaihua@huawei.com>
Signed-off-by: Jun Chen <chenjun14@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Yiping Xu <xuyiping@hisilicon.com>
Signed-off-by: Pengcheng Li <lipengcheng8@huawei.com>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I90e66ff47ebd2cd42fa233a4c4dbac6e74cd01d3
2019-12-18 18:07:51 +00:00
John Stultz
59ed578ff8 ANDROID: HACK: adv7511: Add poweron delay to allow for EDID probing to work
For some reason on HiKey960 the edid probing doesn't work
properly unless we delay a bit at poweron.

Bug: 146450171
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Id8bcf9158d3060e065a6a9ec06bbe0323b73dc8e
2019-12-18 18:07:51 +00:00
John Stultz
5dc9892e95 ANDROID: drm: kirin: Fix Makefile to correct for module builds
Fix kirin driver module builds

Bug: 146450171
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I01f4054b49bd5fe41311ac11f51f6d3f56162df3
2019-12-18 18:07:51 +00:00
John Stultz
5e895b756f ANDROID: drm: kirin960: Remove one mode-line that seems to be causing trouble
Alessio Balsini reported issues with his GeeekPi 7" monitor
after we added the wider mode support.

While this mode may work ok on HiKey, I suspect its just a bit
too far off for HiKey960.

So lets remove it for now.

Bug: 146450171
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I54221c44f2ee6af16d3772831a24c2872a6f738c
2019-12-18 18:07:51 +00:00
Vincent Donnefort
baebfbe17b ANDROID: drm: kirin: remove wait for VACTIVE IRQ
For each display cycle, the Kirin960 display IP will generate a VACTIVE
interrupt followed by a VBLANK. During a FBIOPAN ioctl, the driver will then
wait for the first one to then wait for the second one. This is an issue when
the CPU load is too low: the wait_event() function might trigger a transition
to a deep sleep state and then, waking up from that state will take too much
time to catch the VBLANK interrupt on time, the difference between those two
interrupts being only 60 us.

  * Ideal case:                   ACT                VBL
                                   +                  +
                                   v                  v
                    ---> wait(ACT) +------> wait(VBL) +-->

  * Our case:                     ACT VBL        ACT VBL
                                   +   +          +   +
                                   v   v          v   v
                    ---> wait(ACT) +------> wait(VBL) +-->

The wait for VACTIVE IRQ can safely be removed: there is no hardware access
performed between the VACTIVE and the VBLANK IRQs.

This behavior has been introduced from 4.11 with the following patch:

    a3fbb53f4 drm/atomic: Wait for vblank whenever a plane is added to state.

Bug: 146450171
Signed-off-by: Vincent Donnefort <vincent.donnefort@arm.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I66e276c08f04257135c3d05483ce70c58d5070b6
2019-12-18 18:07:51 +00:00
Xu YiPing
dc4dcb4749 ANDROID: drm: kirin: Add kirin960 dpe driver support
add kirin960 dpe driver support

Bug: 146450171
Signed-off-by: Xu YiPing <xuyiping@hisilicon.com>
[jstultz: includes fixes folded in to remove LDI enable
 call, fix rdma_stride calculation, and fix hdmi hotplug
 crashes]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ifdf3ef522f929c23f7da49b3c692550a3b3d6c49
2019-12-18 18:07:51 +00:00
John Stultz
711b81c4a6 ANDROID: drm: kirin: Introduce kirin960
Add initial kirin960 support files.

Bug: 146450171
Signed-off-by: Xu YiPing <xuyiping@hisilicon.com>
[jstultz: fold in some other changes, this patch really needs to be
 split up into some cleaner steps]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I934004f4a15e1bba341807f6c63c13bf6c661698
2019-12-18 18:07:51 +00:00
Yu Chen
1794dc2e49 ANDROID: arm64: dts: hi3660: Add support for usb on Hikey960
This patch adds support for usb on Hikey960.

Bug: 146450171
Cc: Chunfeng Yun <chunfeng.yun@mediatek.com>
Cc: Wei Xu <xuwei5@hisilicon.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: John Stultz <john.stultz@linaro.org>
Cc: Binghui Wang <wangbinghui@hisilicon.com>
Signed-off-by: Yu Chen <chenyu56@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I3325fbdaf6eea8cd1facb3d64bf0bf7f1c81fb23
2019-12-18 18:07:51 +00:00
John Stultz
b12a34dcf2 ANDROID: arm64: dts: hikey960: Fix bootwarning on mapping reboot reason syscon
Avoid bootwarning mapping reboot reason syscon

Bug: 146450171
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I2f79450c0be8bb19f547159992ee6b54d897f8c5
2019-12-18 18:07:51 +00:00
Chen Jun
6defa0d59d ANDROID: arm64: dts: hi3660: adb reboot node
Add "hisilicon,hi3660-reboot" node for hi3660.

Eventually when we've transitioned to UEFI this can be dropped.
As we can then use syscon-reboot-mode.

Bug: 146450171
Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
Signed-off-by: Chen Jun <chenjun14@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I5612ec7f58af38d6d06cee8f5adbf285660ce21a
2019-12-18 18:07:51 +00:00
Shihui Zhao
d00b1a418a ANDROID: arm64: dts: hi3660: enable gpu
enable gpu in the hi3660/hikey960 dts

Bug: 146450171
Signed-off-by: Shihui Zhao <zhaoshihui3@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I5e72a7dc14e760f442db5b9e55b0df26597cfbcd
2019-12-18 18:07:51 +00:00
Youlin Wang
08e75f3872 ANDROID: arm64: dts: hi3660-hikey960: Add i2s & sound device
Bug: 146450171
Signed-off-by: Youlin Wang <wangyoulin1@hisilicon.com>
Signed-off-by: Tanglei Han <hantanglei@huawei.com>
Signed-off-by: Guangke Ji <jiguangke@huawei.com>
Signed-off-by: Feng Chen <puck.chen@hisilicon.com>
Signed-off-by: Kaihua Zhong <zhongkaihua@huawei.com>
Signed-off-by: Jun Chen <chenjun14@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Yiping Xu <xuyiping@hisilicon.com>
Signed-off-by: Pengcheng Li <lipengcheng8@huawei.com>
Cc: Wei Xu <xuwei5@hisilicon.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I746999c06398779a5380c043a1fc7349f373694c
2019-12-18 18:07:51 +00:00
cailiwei
33d8879c11 ANDROID: arm64: dts: hi3660: add display driver dts
Bug: 146450171
Signed-off-by: Liwei Cai <cailiwei@hisilicon.com>
Signed-off-by: Xiubin Zhang <zhangxiubin1@huawei.com>
[jstultz: Cleanup unused hisifb bits]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: If9df111ad81475caec22fe75168544b010477e04
2019-12-18 18:05:06 +00:00
John Stultz
114e6d48b8 ANDROID: arm64: dts: hikey960: Add CMA entry for ION/framebuffers
Add CMA entry, as the DRM driver requires phys contig
memory for framebuffers. These are normally allocated
out of ION by gralloc for the graphics framebuffer.

NOTE: On the 4gb boards, if we don't specify the address,
the cma region we use for the framebuffer and ion heap
may be placed in memory mapped above 32bits.

Due to addresses being masked to 32bits for DMA, this
resulted in crashes on newer 4gb boards.

Thus this patch forces CMA address to be lower in memory.

I've picked an address just past a previous CMA reserved
chunk, so we shouldn't be adding to any fragmentation.

Extra thanks to Ryan Grachek <ryan@edited.us> who
helped isolate the issue with the CMA buffers being over
the 32bit barrier.

Bug: 146450171
Change-Id: Ibb7ff1d85a9b93e41c440ffacf6a1ccf6aecb1ca
Signed-off-by: John Stultz <john.stultz@linaro.org>
2019-12-18 18:04:34 +00:00
Yongqin Liu
d139b82ae2 ANDROID: mm/memory.c: export mm_trace_rss_stat
to workaround following error:
    ERROR: "mm_trace_rss_stat" [drivers/gpu/arm_gpu/mali_kbase.ko] undefined!
reported when make modules

Test: test 5.5.0-rc1-mainline with hikey960 with GKI method

Change-Id: Icb56b0c760780c3f9081f82d921406d17f4f1c08
[adelva: workaround for Mali driver on hikey960]
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Signed-off-by: Alistair Delva <adelva@google.com>
2019-12-18 18:02:56 +00:00
Greg Kroah-Hartman
45d92463d4 ANDROID: update ABI for 5.4.5
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct flow_dissector at flow_dissector.h:267:1' changed:
  type size changed from 448 to 480 (in bits)
  there are data member changes:
   type 'unsigned short int[26]' of 'flow_dissector::offset' changed:
     type name changed from 'unsigned short int[26]' to 'unsigned short int[27]'
     array type size changed from 416 to 432
     array type subrange 1 changed length from 26 to 27
, size changed from 416 to 432 (in bits) (by +16 bits)

  one impacted interface:
    function bool __skb_flow_dissect(const net*, const sk_buff*, flow_dissector*, void*, void*, __be16, int, int, unsigned int)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1a4277b8bc5bada6444c914f76d80b24fec94aac
2019-12-18 17:48:28 +01:00
Greg Kroah-Hartman
09cdc723de This is the 5.4.5 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAl36QR4ACgkQONu9yGCS
 aT4prg/9Eiypkpf0V1QtxGLmE1M0ylsXhwwvl8YfED2ku/zqzFxm3ht+IQkGBFl9
 x7Y4LMkPJenfbQYV3iMk5hgjPJ4CNJiqXI+uD6le2SSp+vRi7U9DzH/JPNgd80qp
 JSSuAeK43l3dTUx+zNOfziLnnczf8X1gT4V00LArIFQHF+kATZKAaKcRx7Wqouw8
 mCt+UoJgGa9Et+yKjDbBIlmALs9e2xPR0ltwxBNCgJO99KE+qDZAXeLAOsPppA7K
 h2zWpMSczbq9X4MejN2Jbj3aGZueHoXwmtlbXiSglMefAJF1vEt7NmJzdZ4TCWCw
 ajVOhiW7+PGqmV46nMuSLxDef2osITHR+x8TOUlLMYsqNywUluHnf44GHmzqurzY
 6vI1y+nCWKes6Xb2nV5XofphOUNJEMcHXmwntKWicnuexTeBiWWS06UYdxn+ECEY
 VRwt4rsWmTGwNQpKHG8Kwyi+OLy85JC7iWJORKhpRKrHd1mTNRFNkUtH1BKpkd9b
 QokoL3YIeyA8pCWYFzCjT5WJy+YvDKI2pp3edByKilg3z2pRPr5c6VYU5mERSIuw
 EKDuVYHfo/m6mKHfdoBW8LugOB33bbe2Y446b8J+ELwwlv/SnRVIadzzZeQcHudg
 +FG7jwN+vTBSD1TuPSKg6WzbirM6R4HnGaMyYOdAd6Bzlkg0/CU=
 =MihI
 -----END PGP SIGNATURE-----

Merge 5.4.5 into android-5.4

Changes in 5.4.5
	inet: protect against too small mtu values.
	mqprio: Fix out-of-bounds access in mqprio_dump
	net: bridge: deny dev_set_mac_address() when unregistering
	net: dsa: fix flow dissection on Tx path
	net: ethernet: ti: cpsw: fix extra rx interrupt
	net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
	net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
	net: thunderx: start phy before starting autonegotiation
	net/tls: Fix return values to avoid ENOTSUPP
	openvswitch: support asymmetric conntrack
	tcp: md5: fix potential overestimation of TCP option space
	tipc: fix ordering of tipc module init and exit routine
	net/mlx5e: Query global pause state before setting prio2buffer
	net: ipv6: add net argument to ip6_dst_lookup_flow
	net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
	tcp: fix rejected syncookies due to stale timestamps
	tcp: tighten acceptance of ACKs not matching a child socket
	tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
	net: core: rename indirect block ingress cb function
	net: sched: allow indirect blocks to bind to clsact in TC
	cls_flower: Fix the behavior using port ranges with hw-offload
	gre: refetch erspan header from skb->data after pskb_may_pull()
	Fixed updating of ethertype in function skb_mpls_pop
	hsr: fix a NULL pointer dereference in hsr_dev_xmit()
	net: Fixed updating of ethertype in skb_mpls_push()
	net/mlx5e: Fix TXQ indices to be sequential
	act_ct: support asymmetric conntrack
	net/mlx5e: Fix SFF 8472 eeprom length
	net/mlx5e: Fix freeing flow with kfree() and not kvfree()
	net/mlx5e: Fix translation of link mode into speed
	net/mlx5e: ethtool, Fix analysis of speed setting
	page_pool: do not release pool until inflight == 0.
	xdp: obtain the mem_id mutex before trying to remove an entry.
	ionic: keep users rss hash across lif reset
	net: mscc: ocelot: unregister the PTP clock on deinit
	r8169: add missing RX enabling for WoL on RTL8125
	Linux 5.4.5

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I65207949c27553e0bdc8d10740c9f11d97ff8ebf
2019-12-18 16:54:08 +01:00
Greg Kroah-Hartman
9a08897100 Linux 5.4.5 2019-12-18 16:09:17 +01:00
Heiner Kallweit
68159412b2 r8169: add missing RX enabling for WoL on RTL8125
[ Upstream commit 00222d1394104f0fd6c01ca9f578afec9e0f148b ]

RTL8125 also requires to enable RX for WoL.

v2: add missing Fixes tag

Fixes: f1bce4ad2f ("r8169: add support for RTL8125")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-18 16:09:17 +01:00