Chun-Hung Wu df1c3fcbc9 ANDROID: Update symbol list for mtk
363 function symbol(s) added
  '__arm_smccc_hvc'
  'int __device_reset(struct device*, bool)'
  'int __iio_device_register(struct iio_dev*, struct module*)'
  'void* __kmalloc_node(size_t, gfp_t, int)'
  'struct media_link* __media_entity_next_link(struct media_entity*, struct media_link*, unsigned long)'
  'void __napi_schedule_irqoff(struct napi_struct*)'
  'void* __netdev_alloc_frag_align(unsigned int, unsigned int)'
  'int __platform_register_drivers(struct platform_driver* const*, unsigned int, struct module*)'
  'void __put_cred(struct cred*)'
  'int __traceiter_android_rvh_find_energy_efficient_cpu(void*, struct task_struct*, int, int, int*)'
  'int __traceiter_android_rvh_find_new_ilb(void*, struct cpumask*, int*)'
  'int __traceiter_android_vh_alter_futex_plist_add(void*, struct plist_node*, struct plist_head*, bool*)'
  'int __traceiter_android_vh_alter_rwsem_list_add(void*, struct rwsem_waiter*, struct rw_semaphore*, bool*)'
  'int __traceiter_android_vh_arch_set_freq_scale(void*, const struct cpumask*, unsigned long, unsigned long, unsigned long*)'
  'int __traceiter_android_vh_cgroup_attach(void*, struct cgroup_subsys*, struct cgroup_taskset*)'
  'int __traceiter_android_vh_cgroup_set_task(void*, int, struct task_struct*)'
  'int __traceiter_android_vh_iommu_iovad_alloc_iova(void*, struct device*, struct iova_domain*, dma_addr_t, size_t)'
  'int __traceiter_android_vh_iommu_iovad_free_iova(void*, struct iova_domain*, dma_addr_t, size_t)'
  'int __traceiter_android_vh_rwsem_init(void*, struct rw_semaphore*)'
  'int __traceiter_android_vh_rwsem_wake(void*, struct rw_semaphore*)'
  'int __traceiter_android_vh_rwsem_write_finished(void*, struct rw_semaphore*)'
  'int __traceiter_android_vh_sched_pelt_multiplier(void*, unsigned int, unsigned int, int*)'
  'int __traceiter_android_vh_set_wake_flags(void*, int*, unsigned int*)'
  'int __traceiter_android_vh_syscall_prctl_finished(void*, int, struct task_struct*)'
  'int __traceiter_cpu_frequency(void*, unsigned int, unsigned int)'
  'int __traceiter_pelt_rt_tp(void*, struct rq*)'
  'int __traceiter_pelt_se_tp(void*, struct sched_entity*)'
  'int __traceiter_sched_update_nr_running_tp(void*, struct rq*, int)'
  'int __traceiter_task_newtask(void*, struct task_struct*, unsigned long)'
  'int __v4l2_ctrl_s_ctrl_compound(struct v4l2_ctrl*, enum v4l2_ctrl_type, const void*)'
  'const void* __v4l2_find_nearest_size(const void*, size_t, size_t, size_t, size_t, s32, s32)'
  'void __write_overflow_field(size_t, size_t)'
  'int _raw_read_trylock(rwlock_t*)'
  'enum arm_smccc_conduit arm_smccc_1_1_get_conduit()'
  'arm_smccc_1_2_hvc'
  'arm_smccc_1_2_smc'
  'u32 arm_smccc_get_version()'
  'void bio_init(struct bio*, struct block_device*, struct bio_vec*, unsigned short, blk_opf_t)'
  'int bitmap_find_free_region(unsigned long*, unsigned int, int)'
  'u32 blk_mq_unique_tag(struct request*)'
  'void clk_bulk_put(int, struct clk_bulk_data*)'
  'int clk_hw_get_parent_index(struct clk_hw*)'
  'int clk_hw_set_parent(struct clk_hw*, struct clk_hw*)'
  'struct clk* clk_register_composite(struct device*, const char*, const char* const*, int, struct clk_hw*, const struct clk_ops*, struct clk_hw*, const struct clk_ops*, struct clk_hw*, const struct clk_ops*, unsigned long)'
  'struct clk* clk_register_divider_table(struct device*, const char*, const char*, unsigned long, void*, u8, u8, u8, const struct clk_div_table*, spinlock_t*)'
  'int component_add_typed(struct device*, const struct component_ops*, int)'
  'void component_match_add_typed(struct device*, struct component_match**, int(*)(struct device*, int, void*), void*)'
  'void cpu_hotplug_disable()'
  'void cpu_hotplug_enable()'
  'void cpufreq_add_update_util_hook(int, struct update_util_data*, void(*)(struct update_util_data*, u64, unsigned int))'
  'void cpufreq_remove_update_util_hook(int)'
  'bool cpufreq_this_cpu_can_update(struct cpufreq_policy*)'
  'void cpufreq_update_limits(unsigned int)'
  'void cpuidle_driver_state_disabled(struct cpuidle_driver*, int, bool)'
  'struct cpuidle_driver* cpuidle_get_driver()'
  'void cpuidle_pause_and_lock()'
  'void cpuidle_resume_and_unlock()'
  'void ct_idle_enter()'
  'void ct_idle_exit()'
  'int dapm_clock_event(struct snd_soc_dapm_widget*, struct snd_kcontrol*, int)'
  'unsigned int dapm_kcontrol_get_value(const struct snd_kcontrol*)'
  'void debugfs_create_regset32(const char*, umode_t, struct dentry*, struct debugfs_regset32*)'
  'struct device* dev_pm_domain_attach_by_id(struct device*, unsigned int)'
  'struct opp_table* dev_pm_opp_get_opp_table(struct device*)'
  'int dev_pm_opp_of_add_table_indexed(struct device*, int)'
  'void dev_pm_opp_put_opp_table(struct opp_table*)'
  'int dev_pm_set_dedicated_wake_irq_reverse(struct device*, int)'
  'struct devfreq* devfreq_get_devfreq_by_phandle(struct device*, const char*, int)'
  'int device_attach(struct device*)'
  'int device_match_any(struct device*, const void*)'
  'struct regmap* device_node_to_regmap(struct device_node*)'
  'void device_set_of_node_from_dev(struct device*, const struct device*)'
  'ssize_t device_show_bool(struct device*, struct device_attribute*, char*)'
  'ssize_t device_store_bool(struct device*, struct device_attribute*, const char*, size_t)'
  'int devm_devfreq_register_notifier(struct device*, struct devfreq*, struct notifier_block*, unsigned int)'
  'void devm_devfreq_remove_device(struct device*, struct devfreq*)'
  'void devm_devfreq_unregister_notifier(struct device*, struct devfreq*, struct notifier_block*, unsigned int)'
  'int devm_extcon_register_notifier(struct device*, struct extcon_dev*, unsigned int, struct notifier_block*)'
  'struct iio_channel* devm_iio_channel_get_all(struct device*)'
  'void devm_led_classdev_unregister(struct device*, struct led_classdev*)'
  'struct phy* devm_of_phy_get_by_index(struct device*, struct device_node*, int)'
  'struct phy* devm_phy_optional_get(struct device*, const char*)'
  'struct power_supply* devm_power_supply_get_by_phandle(struct device*, const char*)'
  'struct rc_dev* devm_rc_allocate_device(struct device*, enum rc_driver_type)'
  'int devm_rc_register_device(struct device*, struct rc_dev*)'
  'int devm_regmap_field_bulk_alloc(struct device*, struct regmap*, struct regmap_field**, const struct reg_field*, int)'
  'void devm_regulator_unregister_notifier(struct regulator*, struct notifier_block*)'
  'int devm_rtc_nvmem_register(struct rtc_device*, struct nvmem_config*)'
  'void devm_thermal_of_zone_unregister(struct device*, struct thermal_zone_device*)'
  'int dma_heap_bufferfd_alloc(struct dma_heap*, size_t, unsigned int, unsigned int)'
  'struct dma_fence* dma_resv_iter_first_unlocked(struct dma_resv_iter*)'
  'struct dma_fence* dma_resv_iter_next_unlocked(struct dma_resv_iter*)'
  'void dma_run_dependencies(struct dma_async_tx_descriptor*)'
  'int down_killable(struct semaphore*)'
  'int down_read_killable(struct rw_semaphore*)'
  'int down_write_killable(struct rw_semaphore*)'
  'int driver_create_file(struct device_driver*, const struct driver_attribute*)'
  'void driver_remove_file(struct device_driver*, const struct driver_attribute*)'
  'int drm_atomic_helper_resume(struct drm_device*, struct drm_atomic_state*)'
  'struct drm_atomic_state* drm_atomic_helper_suspend(struct drm_device*)'
  'int drm_edid_to_sad(const struct edid*, struct cea_sad**)'
  'void drm_framebuffer_cleanup(struct drm_framebuffer*)'
  'int drm_mode_crtc_set_gamma_size(struct drm_crtc*, int)'
  'int em_dev_register_perf_domain(struct device*, unsigned int, struct em_data_callback*, cpumask_t*, bool)'
  'int eth_header(struct sk_buff*, struct net_device*, unsigned short, const void*, const void*, unsigned int)'
  'int eth_header_cache(const struct neighbour*, struct hh_cache*, __be16)'
  'void eth_header_cache_update(struct hh_cache*, const struct net_device*, const unsigned char*)'
  'void eventfd_ctx_do_read(struct eventfd_ctx*, __u64*)'
  'char* file_path(struct file*, char*, int)'
  'int follow_pfn(struct vm_area_struct*, unsigned long, unsigned long*)'
  'void frame_vector_to_pfns(struct frame_vector*)'
  'int fsg_common_create_luns(struct fsg_common*, struct fsg_config*)'
  'int fsg_common_set_cdev(struct fsg_common*, struct usb_composite_dev*, bool)'
  'void fsg_common_set_inquiry_string(struct fsg_common*, const char*, const char*)'
  'void fsg_common_set_sysfs(struct fsg_common*, bool)'
  'void fsg_config_from_params(struct fsg_config*, const struct fsg_module_parameters*, unsigned int)'
  'bool fwnode_device_is_available(const struct fwnode_handle*)'
  'struct fwnode_handle* fwnode_graph_get_next_endpoint(const struct fwnode_handle*, struct fwnode_handle*)'
  'struct fwnode_handle* fwnode_graph_get_port_parent(const struct fwnode_handle*)'
  'struct fwnode_handle* fwnode_graph_get_remote_endpoint(const struct fwnode_handle*)'
  'struct fwnode_handle* fwnode_graph_get_remote_port_parent(const struct fwnode_handle*)'
  'int fwnode_graph_parse_endpoint(const struct fwnode_handle*, struct fwnode_endpoint*)'
  'int fwnode_property_get_reference_args(const struct fwnode_handle*, const char*, const char*, unsigned int, unsigned int, struct fwnode_reference_args*)'
  'int fwnode_property_read_u64_array(const struct fwnode_handle*, const char*, u64*, size_t)'
  'struct typec_mux* fwnode_typec_mux_get(struct fwnode_handle*, const struct typec_altmode_desc*)'
  'void* gen_pool_dma_zalloc(struct gen_pool*, size_t, dma_addr_t*)'
  'void gen_pool_for_each_chunk(struct gen_pool*, void(*)(struct gen_pool*, struct gen_pool_chunk*, void*), void*)'
  'int get_kernel_pages(const struct kvec*, int, int, struct page**)'
  'const struct cred* get_task_cred(struct task_struct*)'
  'long get_user_pages_remote(struct mm_struct*, unsigned long, unsigned long, unsigned int, struct page**, struct vm_area_struct**, int*)'
  'kvm_pfn_t gfn_to_pfn_memslot(const struct kvm_memory_slot*, gfn_t)'
  'void icc_node_del(struct icc_node*)'
  'void icc_node_destroy(int)'
  'struct iio_poll_func* iio_alloc_pollfunc(irqreturn_t(*)(int, void*), irqreturn_t(*)(int, void*), int, struct iio_dev*, const char*, ...)'
  'void iio_dealloc_pollfunc(struct iio_poll_func*)'
  'int iio_device_id(struct iio_dev*)'
  's64 iio_get_time_ns(const struct iio_dev*)'
  'int iio_read_channel_attribute(struct iio_channel*, int*, int*, enum iio_chan_info_enum)'
  'int iio_read_channel_raw(struct iio_channel*, int*)'
  'void iio_trigger_notify_done(struct iio_trigger*)'
  'void input_reset_device(struct input_dev*)'
  'int irq_domain_xlate_onetwocell(struct irq_domain*, struct device_node*, const u32*, unsigned int, unsigned long*, unsigned int*)'
  'int irq_set_chip(unsigned int, const struct irq_chip*)'
  'void irq_work_run()'
  'int iterate_dir(struct file*, struct dir_context*)'
  'u64 jiffies64_to_nsecs(u64)'
  'void kernel_sigaction(int, __sighandler_t)'
  'int kernfs_path_from_node(struct kernfs_node*, struct kernfs_node*, char*, size_t)'
  'const char* kmsg_dump_reason_str(enum kmsg_dump_reason)'
  'void ksys_sync_helper()'
  'int led_get_flash_fault(struct led_classdev_flash*, u32*)'
  'enum led_default_state led_init_default_state_get(struct fwnode_handle*)'
  'int led_set_brightness_sync(struct led_classdev*, unsigned int)'
  'int led_set_flash_brightness(struct led_classdev_flash*, u32)'
  'int led_set_flash_timeout(struct led_classdev_flash*, u32)'
  'void led_sysfs_disable(struct led_classdev*)'
  'void led_sysfs_enable(struct led_classdev*)'
  'void led_trigger_remove(struct led_classdev*)'
  'int led_update_brightness(struct led_classdev*)'
  'int led_update_flash_brightness(struct led_classdev_flash*)'
  'void linear_range_get_selector_within(const struct linear_range*, unsigned int, unsigned int*)'
  'int linear_range_get_value(const struct linear_range*, unsigned int, unsigned int*)'
  'int match_hex(substring_t*, int*)'
  'int match_int(substring_t*, int*)'
  'int match_token(char*, const struct match_token*, substring_t*)'
  'struct media_link* media_create_ancillary_link(struct media_entity*, struct media_entity*)'
  'struct media_link* media_create_intf_link(struct media_entity*, struct media_interface*, u32)'
  'int media_create_pad_link(struct media_entity*, u16, struct media_entity*, u16, u32)'
  'struct media_intf_devnode* media_devnode_create(struct media_device*, u32, u32, u32, u32)'
  'void media_devnode_remove(struct media_intf_devnode*)'
  'struct media_pipeline* media_entity_pipeline(struct media_entity*)'
  'void media_entity_remove_links(struct media_entity*)'
  'struct media_pad* media_pad_remote_pad_first(const struct media_pad*)'
  'struct media_pad* media_pad_remote_pad_unique(const struct media_pad*)'
  'int media_pipeline_start(struct media_pad*, struct media_pipeline*)'
  'void media_pipeline_stop(struct media_pad*)'
  'struct media_request* media_request_get_by_fd(struct media_device*, int)'
  'void media_request_object_complete(struct media_request_object*)'
  'void media_request_put(struct media_request*)'
  'ssize_t mipi_dsi_dcs_write(struct mipi_dsi_device*, u8, const void*, size_t)'
  'ssize_t mipi_dsi_generic_read(struct mipi_dsi_device*, const void*, size_t, void*, size_t)'
  'time64_t mktime64(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)'
  'bool mmc_can_gpio_cd(struct mmc_host*)'
  'int mmc_cmdq_disable(struct mmc_card*)'
  'int mmc_cmdq_enable(struct mmc_card*)'
  'void mmc_detect_change(struct mmc_host*, unsigned long)'
  'void mmc_get_card(struct mmc_card*, struct mmc_ctx*)'
  'int mmc_get_ext_csd(struct mmc_card*, u8**)'
  'int mmc_hw_reset(struct mmc_card*)'
  'void mmc_put_card(struct mmc_card*, struct mmc_ctx*)'
  'void mmc_set_data_timeout(struct mmc_data*, const struct mmc_card*)'
  'int mmc_switch(struct mmc_card*, u8, u8, u8, unsigned int)'
  'void mmc_wait_for_req(struct mmc_host*, struct mmc_request*)'
  'int mod_timer_pending(struct timer_list*, unsigned long)'
  'u64 mul_u64_u64_div_u64(u64, u64, u64)'
  'int mutex_lock_killable(struct mutex*)'
  'struct nvmem_device* nvmem_device_get(struct device*, const char*)'
  'unsigned int of_clk_get_parent_count(const struct device_node*)'
  'struct thermal_cooling_device* of_devfreq_cooling_register_power(struct device_node*, struct devfreq*, struct devfreq_cooling_power*)'
  'struct dma_chan* of_dma_xlate_by_chan_id(struct of_phandle_args*, struct of_dma*)'
  'int of_genpd_add_device(struct of_phandle_args*, struct device*)'
  'int of_get_pci_domain_nr(struct device_node*)'
  'int of_irq_to_resource_table(struct device_node*, struct resource*, int)'
  'int of_remove_property(struct device_node*, struct property*)'
  'int param_get_bool(char*, const struct kernel_param*)'
  'int param_get_charp(char*, const struct kernel_param*)'
  'int param_get_ulong(char*, const struct kernel_param*)'
  'int param_set_charp(const char*, const struct kernel_param*)'
  'int param_set_ulong(const char*, const struct kernel_param*)'
  'bool pci_ats_supported(struct pci_dev*)'
  'void pci_disable_ats(struct pci_dev*)'
  'int pci_enable_ats(struct pci_dev*, int)'
  'int pci_generic_config_read32(struct pci_bus*, unsigned int, int, int, u32*)'
  'int pci_generic_config_write32(struct pci_bus*, unsigned int, int, int, u32)'
  'void pci_lock_rescan_remove()'
  'phys_addr_t pci_pio_to_address(unsigned long)'
  'void pci_remove_root_bus(struct pci_bus*)'
  'void pci_stop_root_bus(struct pci_bus*)'
  'void pci_unlock_rescan_remove()'
  'int pcim_enable_device(struct pci_dev*)'
  'int pcim_iomap_regions(struct pci_dev*, int, const char*)'
  'void* const* pcim_iomap_table(struct pci_dev*)'
  'void pcim_iounmap_regions(struct pci_dev*, int)'
  'struct phy* phy_get(struct device*, const char*)'
  'void phy_put(struct device*, struct phy*)'
  'int pinconf_generic_parse_dt_config(struct device_node*, struct pinctrl_dev*, unsigned long**, unsigned int*)'
  'int pinctrl_gpio_direction_input(unsigned int)'
  'int pinctrl_gpio_direction_output(unsigned int)'
  'int pinctrl_utils_add_map_configs(struct pinctrl_dev*, struct pinctrl_map**, unsigned int*, unsigned int*, const char*, unsigned long*, unsigned int, enum pinctrl_map_type)'
  'int pinctrl_utils_reserve_map(struct pinctrl_dev*, struct pinctrl_map**, unsigned int*, unsigned int*, unsigned int)'
  'void platform_unregister_drivers(struct platform_driver* const*, unsigned int)'
  'int pm_genpd_add_device(struct generic_pm_domain*, struct device*)'
  'int pm_genpd_remove_device(struct device*)'
  'bool pm_suspend_default_s2idle()'
  'int power_supply_is_system_supplied()'
  'const char* pstore_type_to_name(enum pstore_type_id)'
  'int radix_tree_maybe_preload(gfp_t)'
  'struct device* rdev_get_dev(struct regulator_dev*)'
  'struct regmap* rdev_get_regmap(struct regulator_dev*)'
  'struct irq_domain* regmap_irq_get_domain(struct regmap_irq_chip_data*)'
  'int regulator_list_voltage(struct regulator*, unsigned int)'
  'int regulator_list_voltage_table(struct regulator_dev*, unsigned int)'
  'int regulator_map_voltage_iterate(struct regulator_dev*, int, int)'
  'int regulator_set_voltage_time(struct regulator*, int, int)'
  'int regulator_set_voltage_time_sel(struct regulator_dev*, unsigned int, unsigned int)'
  'int regulator_sync_voltage(struct regulator*)'
  'void release_pages(struct page**, int)'
  'int reset_controller_register(struct reset_controller_dev*)'
  'void rpmsg_destroy_ept(struct rpmsg_endpoint*)'
  'struct device* rpmsg_find_device(struct device*, struct rpmsg_channel_info*)'
  'int rpmsg_sendto(struct rpmsg_endpoint*, void*, int, u32)'
  'struct rtc_time rtc_ktime_to_tm(ktime_t)'
  'ktime_t rtc_tm_to_ktime(struct rtc_time)'
  'int scsi_execute_cmd(struct scsi_device*, const unsigned char*, blk_opf_t, void*, unsigned int, int, int, const struct scsi_exec_args*)'
  'void scsi_print_sense_hdr(const struct scsi_device*, const char*, const struct scsi_sense_hdr*)'
  'unsigned char sdio_f0_readb(struct sdio_func*, unsigned int, int*)'
  'void sdio_f0_writeb(struct sdio_func*, unsigned char, unsigned int, int*)'
  'mmc_pm_flag_t sdio_get_host_pm_caps(struct sdio_func*)'
  'u32 sdio_readl(struct sdio_func*, unsigned int, int*)'
  'int sdio_set_host_pm_flags(struct sdio_func*, mmc_pm_flag_t)'
  'void sdio_signal_irq(struct mmc_host*)'
  'void sdio_writel(struct sdio_func*, u32, unsigned int, int*)'
  'int security_file_ioctl(struct file*, unsigned int, unsigned long)'
  'int seq_open_private(struct file*, const struct seq_operations*, int)'
  'void serial8250_do_set_termios(struct uart_port*, struct ktermios*, const struct ktermios*)'
  'void serial8250_do_shutdown(struct uart_port*)'
  'int serial8250_do_startup(struct uart_port*)'
  'struct uart_8250_port* serial8250_get_port(int)'
  'int serial8250_register_8250_port(const struct uart_8250_port*)'
  'void serial8250_resume_port(int)'
  'void serial8250_rpm_get(struct uart_8250_port*)'
  'void serial8250_rpm_put(struct uart_8250_port*)'
  'void serial8250_suspend_port(int)'
  'void serial8250_unregister_port(int)'
  'size_t sg_pcopy_from_buffer(struct scatterlist*, unsigned int, const void*, size_t, off_t)'
  'size_t sg_pcopy_to_buffer(struct scatterlist*, unsigned int, void*, size_t, off_t)'
  'void skb_split(struct sk_buff*, struct sk_buff*, u32)'
  'int snd_card_add_dev_attr(struct snd_card*, const struct attribute_group*)'
  'void snd_pcm_lib_preallocate_free_for_all(struct snd_pcm*)'
  'void snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm*, int, void*, size_t, size_t)'
  'int snd_soc_bytes_info_ext(struct snd_kcontrol*, struct snd_ctl_elem_info*)'
  'int snd_soc_dapm_enable_pin(struct snd_soc_dapm_context*, const char*)'
  'int snd_soc_dapm_get_pin_switch(struct snd_kcontrol*, struct snd_ctl_elem_value*)'
  'int snd_soc_dapm_info_pin_switch(struct snd_kcontrol*, struct snd_ctl_elem_info*)'
  'int snd_soc_dapm_put_pin_switch(struct snd_kcontrol*, struct snd_ctl_elem_value*)'
  'int snd_soc_poweroff(struct device*)'
  'int snd_soc_resume(struct device*)'
  'int spi_add_device(struct spi_device*)'
  'struct spi_device* spi_alloc_device(struct spi_controller*)'
  'int spi_delay_to_ns(struct spi_delay*, struct spi_transfer*)'
  'int sprint_symbol_no_offset(char*, unsigned long)'
  'int submit_bio_wait(struct bio*)'
  'struct regmap* syscon_regmap_lookup_by_compatible(const char*)'
  'struct regmap* syscon_regmap_lookup_by_phandle_optional(struct device_node*, const char*)'
  'int sysfs_merge_group(struct kobject*, const struct attribute_group*)'
  'int sysrq_toggle_support(int)'
  'void task_cputime_adjusted(struct task_struct*, u64*, u64*)'
  'int trace_set_clr_event(const char*, const char*, int)'
  'unsigned int tty_chars_in_buffer(struct tty_struct*)'
  'unsigned int tty_write_room(struct tty_struct*)'
  'void typec_mux_put(struct typec_mux*)'
  'int typec_mux_set(struct typec_mux*, struct typec_mux_state*)'
  'void typec_mux_unregister(struct typec_mux_dev*)'
  'int typec_partner_set_identity(struct typec_partner*)'
  'void typec_partner_set_pd_revision(struct typec_partner*, u16)'
  'void typec_partner_set_svdm_version(struct typec_partner*, enum usb_pd_svdm_ver)'
  'void typec_set_vconn_role(struct typec_port*, enum typec_role)'
  'unsigned int uart_get_divisor(struct uart_port*, unsigned int)'
  'void ufshcd_delay_us(unsigned long, unsigned long)'
  'int ufshcd_link_recovery(struct ufs_hba*)'
  'int ufshcd_uic_change_pwr_mode(struct ufs_hba*, u8)'
  'void unpin_user_pages(struct page**, unsigned long)'
  'int unregister_module_notifier(struct notifier_block*)'
  'int usb_add_config(struct usb_composite_dev*, struct usb_configuration*, int(*)(struct usb_configuration*))'
  'int usb_composite_probe(struct usb_composite_driver*)'
  'void usb_composite_unregister(struct usb_composite_driver*)'
  'const char* usb_ep_type_string(int)'
  'int usb_gadget_connect(struct usb_gadget*)'
  'int usb_gadget_disconnect(struct usb_gadget*)'
  'int usb_gadget_map_request(struct usb_gadget*, struct usb_request*, int)'
  'int usb_gadget_register_driver_owner(struct usb_gadget_driver*, struct module*, const char*)'
  'int usb_gadget_set_selfpowered(struct usb_gadget*)'
  'void usb_gadget_unmap_request(struct usb_gadget*, struct usb_request*, int)'
  'enum usb_dr_mode usb_get_dr_mode(struct device*)'
  'struct usb_function* usb_get_function(struct usb_function_instance*)'
  'struct usb_function_instance* usb_get_function_instance(const char*)'
  'enum usb_device_speed usb_get_maximum_speed(struct device*)'
  'enum usb_dr_mode usb_get_role_switch_default_mode(struct device*)'
  'void usb_hcd_end_port_resume(struct usb_bus*, int)'
  'irqreturn_t usb_hcd_irq(int, void*)'
  'int usb_hcd_map_urb_for_dma(struct usb_hcd*, struct urb*, gfp_t)'
  'void usb_hcd_start_port_resume(struct usb_bus*, int)'
  'void usb_hcd_unmap_urb_for_dma(struct usb_hcd*, struct urb*)'
  'int usb_hub_clear_tt_buffer(struct urb*)'
  'struct config_group* usb_os_desc_prepare_interf_dir(struct config_group*, int, struct usb_os_desc**, char**, struct module*)'
  'void usb_put_function(struct usb_function*)'
  'void usb_remove_function(struct usb_configuration*, struct usb_function*)'
  'const char* usb_role_string(enum usb_role)'
  'struct usb_role_switch* usb_role_switch_get(struct device*)'
  'void usb_wakeup_notification(struct usb_device*, unsigned int)'
  'void uuid_gen(uuid_t*)'
  's32 v4l2_ctrl_g_ctrl(struct v4l2_ctrl*)'
  's64 v4l2_ctrl_g_ctrl_int64(struct v4l2_ctrl*)'
  'struct v4l2_ctrl* v4l2_ctrl_new_std_menu_items(struct v4l2_ctrl_handler*, const struct v4l2_ctrl_ops*, u32, u8, u64, u8, const char* const*)'
  'int v4l2_ctrl_subdev_subscribe_event(struct v4l2_subdev*, struct v4l2_fh*, struct v4l2_event_subscription*)'
  'int v4l2_event_subdev_unsubscribe(struct v4l2_subdev*, struct v4l2_fh*, struct v4l2_event_subscription*)'
  'const struct v4l2_format_info* v4l2_format_info(u32)'
  'void v4l2_m2m_buf_copy_metadata(const struct vb2_v4l2_buffer*, struct vb2_v4l2_buffer*, bool)'
  'int v4l2_m2m_dqbuf(struct file*, struct v4l2_m2m_ctx*, struct v4l2_buffer*)'
  'int v4l2_m2m_streamoff(struct file*, struct v4l2_m2m_ctx*, enum v4l2_buf_type)'
  'void v4l2_m2m_try_schedule(struct v4l2_m2m_ctx*)'
  'int v4l2_pipeline_link_notify(struct media_link*, u32, unsigned int)'
  'int v4l2_subdev_link_validate(struct media_link*)'
  'int v4l2_subdev_link_validate_default(struct v4l2_subdev*, struct media_link*, struct v4l2_subdev_format*, struct v4l2_subdev_format*)'
  'void v4l_bound_align_image(u32*, unsigned int, unsigned int, unsigned int, u32*, unsigned int, unsigned int, unsigned int, unsigned int)'
  'struct frame_vector* vb2_create_framevec(unsigned long, unsigned long)'
  'void vb2_destroy_framevec(struct frame_vector*)'
  'int vb2_ioctl_prepare_buf(struct file*, void*, struct v4l2_buffer*)'
  'bool vb2_request_object_is_buffer(struct media_request_object*)'
  'void vb2_request_queue(struct media_request*)'
  'loff_t vfs_llseek(struct file*, loff_t, int)'
  'int wait_for_completion_state(struct completion*, unsigned int)'
  'long work_on_cpu(int, long(*)(void*), void*)'

33 variable symbol(s) added
  'struct tracepoint __tracepoint_android_rvh_find_energy_efficient_cpu'
  'struct tracepoint __tracepoint_android_rvh_find_new_ilb'
  'struct tracepoint __tracepoint_android_vh_alter_futex_plist_add'
  'struct tracepoint __tracepoint_android_vh_alter_rwsem_list_add'
  'struct tracepoint __tracepoint_android_vh_arch_set_freq_scale'
  'struct tracepoint __tracepoint_android_vh_cgroup_attach'
  'struct tracepoint __tracepoint_android_vh_cgroup_set_task'
  'struct tracepoint __tracepoint_android_vh_iommu_iovad_alloc_iova'
  'struct tracepoint __tracepoint_android_vh_iommu_iovad_free_iova'
  'struct tracepoint __tracepoint_android_vh_rwsem_init'
  'struct tracepoint __tracepoint_android_vh_rwsem_wake'
  'struct tracepoint __tracepoint_android_vh_rwsem_write_finished'
  'struct tracepoint __tracepoint_android_vh_sched_pelt_multiplier'
  'struct tracepoint __tracepoint_android_vh_set_wake_flags'
  'struct tracepoint __tracepoint_android_vh_syscall_prctl_finished'
  'struct tracepoint __tracepoint_cpu_frequency'
  'struct tracepoint __tracepoint_pelt_rt_tp'
  'struct tracepoint __tracepoint_pelt_se_tp'
  'struct tracepoint __tracepoint_sched_update_nr_running_tp'
  'struct tracepoint __tracepoint_task_newtask'
  'struct neigh_table arp_tbl'
  'const struct clk_ops clk_divider_ops'
  'const struct clk_ops clk_gate_ops'
  'const struct clk_ops clk_mux_ops'
  'struct console* console_drivers'
  'rwlock_t dev_base_lock'
  'const struct font_desc font_vga_8x16'
  'const char hex_asc[17]'
  'void* high_memory'
  'struct workqueue_struct* pm_wq'
  'struct srcu_struct tracepoint_srcu'
  'const uuid_t uuid_null'
  'const struct vm_operations_struct vb2_common_vm_ops'

Bug: 279225438
Change-Id: I859bec8e385ad2ed9271868608a5e587d35c87e5
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
2023-04-25 11:27:24 +00:00
2023-02-09 13:29:55 +00:00
2023-03-13 15:45:34 +00:00
2023-01-18 18:50:42 +00:00
2023-04-18 19:28:00 +00:00
2023-04-06 14:14:07 +00:00
2023-04-06 14:14:07 +00:00
2023-03-31 08:15:39 +00:00
2023-04-06 14:14:07 +00:00
2023-04-06 14:14:07 +00:00
2022-09-28 09:02:20 +02:00
2022-09-28 09:02:20 +02:00
2023-04-06 14:14:07 +00:00
2022-12-01 13:06:20 +00:00
2022-06-18 10:41:40 -07:00
2022-08-22 16:34:52 +00:00

How do I submit patches to Android Common Kernels

  1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.

    • Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux, additions of EXPORT_SYMBOL_GPL() require an in-tree modular driver that uses the symbol -- so include the new driver or changes to an existing driver in the same patchset as the export.
    • When sending patches upstream, the commit message must contain a clear case for why the patch is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not not a persuasive case.
  2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.

Common Kernel patch requirements

  • All patches must conform to the Linux kernel coding standards and pass scripts/checkpatch.pl
  • Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures (see https://source.android.com/setup/build/building-kernels)
  • If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: UPSTREAM:, BACKPORT:, FROMGIT:, FROMLIST:, or ANDROID:.
  • All patches must have a Change-Id: tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
  • If an Android bug has been assigned, there must be a Bug: tag.
  • All patches must have a Signed-off-by: tag by the author and the submitter

Additional requirements are listed below based on patch type

Requirements for backports from mainline Linux: UPSTREAM:, BACKPORT:

  • If the patch is a cherry-pick from Linux mainline with no changes at all
    • tag the patch subject with UPSTREAM:.
    • add upstream commit information with a (cherry picked from commit ...) line
    • Example:
      • if the upstream commit message is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        UPSTREAM: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch requires any changes from the upstream version, tag the patch with BACKPORT: instead of UPSTREAM:.
    • use the same tags as UPSTREAM:
    • add comments about the changes under the (cherry picked from commit ...) line
    • Example:
        BACKPORT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        [joe: Resolved minor conflict in drivers/foo/bar.c ]
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for other backports: FROMGIT:, FROMLIST:,

  • If the patch has been merged into an upstream maintainer tree, but has not yet been merged into Linux mainline
    • tag the patch subject with FROMGIT:
    • add info on where the patch came from as (cherry picked from commit <sha1> <repo> <branch>). This must be a stable maintainer branch (not rebased, so don't use linux-next for example).
    • if changes were required, use BACKPORT: FROMGIT:
    • Example:
      • if the commit message in the maintainer tree is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        FROMGIT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch has been submitted to LKML, but not accepted into any maintainer tree
    • tag the patch subject with FROMLIST:
    • add a Link: tag with a link to the submittal on lore.kernel.org
    • add a Bug: tag with the Android bug (required for patches not accepted into a maintainer tree)
    • if changes were required, use BACKPORT: FROMLIST:
    • Example:
        FROMLIST: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for Android-specific patches: ANDROID:

  • If the patch is fixing a bug to Android-specific code
    • tag the patch subject with ANDROID:
    • add a Fixes: tag that cites the patch with the bug
    • Example:
        ANDROID: fix android-specific bug in foobar.c

        This is the detailed description of the important fix

        Fixes: 1234abcd2468 ("foobar: add cool feature")
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch is a new feature
    • tag the patch subject with ANDROID:
    • add a Bug: tag with the Android bug (required for android-specific features)
Description
No description provided
Readme 7.9 GiB
Languages
C 97.7%
Assembly 1.6%
Makefile 0.3%
Perl 0.1%