mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
c50ebbb88d6a78c2fae0de0c2f56f1a51c928892
Leaf changes summary: 424 artifacts changed (25 filtered out) Changed leaf types summary: 0 (25 filtered out) leaf types changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 376 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 48 Added variables 376 Added functions: [A] 'function void* __alloc_percpu_gfp(size_t, size_t, gfp_t)' [A] 'function int __clocksource_register_scale(clocksource*, u32, u32)' [A] 'function void* __devm_alloc_percpu(device*, size_t, size_t)' [A] 'function void* __devm_drm_dev_alloc(device*, drm_driver*, size_t, size_t)' [A] 'function regmap* __devm_regmap_init_spi(spi_device*, const regmap_config*, lock_class_key*, const char*)' [A] 'function int __irq_alloc_descs(int, unsigned int, unsigned int, int, module*, const irq_affinity_desc*)' [A] 'function int __kfifo_init(__kfifo*, void*, unsigned int, size_t)' [A] 'function void* __seq_open_private(file*, const seq_operations*, int)' [A] 'function int __traceiter_clock_set_rate(void*, const char*, unsigned int, unsigned int)' [A] 'function int __traceiter_dwc3_readl(void*, void*, u32, u32)' [A] 'function int __traceiter_dwc3_writel(void*, void*, u32, u32)' [A] 'function int __traceiter_sched_util_est_se_tp(void*, sched_entity*)' [A] 'function int __update_load_avg_blocked_se(u64, sched_entity*)' [A] 'function void __wake_up_sync(wait_queue_head*, unsigned int)' [A] 'function void __xfrm_state_destroy(xfrm_state*, bool)' [A] 'function size_t _copy_from_iter(void*, size_t, iov_iter*)' [A] 'function int alarm_try_to_cancel(alarm*)' [A] 'function rtc_device* alarmtimer_get_rtcdev()' [A] 'function void* alloc_pages_exact(size_t, gfp_t)' [A] 'function async_cookie_t async_schedule_node_domain(async_func_t, void*, int, async_domain*)' [A] 'function void async_synchronize_full_domain(async_domain*)' [A] 'function void bitmap_from_arr32(unsigned long int*, const u32*, unsigned int)' [A] 'function int bitmap_parse(const char*, unsigned int, unsigned long int*, int)' [A] 'function void bitmap_to_arr32(u32*, const unsigned long int*, unsigned int)' [A] 'function int bus_for_each_drv(bus_type*, device_driver*, void*, int (device_driver*, void*)*)' [A] 'function void cfg80211_ibss_joined(net_device*, const u8*, ieee80211_channel*, gfp_t)' [A] 'function void cfg80211_port_authorized(net_device*, const u8*, gfp_t)' [A] 'function void cfg80211_sched_scan_stopped(wiphy*, u64)' [A] 'function void cfg80211_sched_scan_stopped_rtnl(wiphy*, u64)' [A] 'function void cfg80211_unregister_wdev(wireless_dev*)' [A] 'function int clk_register_clkdev(clk*, const char*, const char*)' [A] 'function clk* clk_register_fixed_factor(device*, const char*, const char*, unsigned long int, unsigned int, unsigned int)' [A] 'function clk* clk_register_fixed_rate(device*, const char*, const char*, unsigned long int, unsigned long int)' [A] 'function clk* clk_register_gate(device*, const char*, const char*, unsigned long int, void*, u8, u8, spinlock_t*)' [A] 'function void clockevents_config_and_register(clock_event_device*, u32, unsigned long int, unsigned long int)' [A] 'function void clocks_calc_mult_shift(u32*, u32*, u32, u32, u32)' [A] 'function int cma_for_each_area(int (cma*, void*)*, void*)' [A] 'function int console_trylock()' [A] 'function void console_unlock()' [A] 'function void cpufreq_add_update_util_hook(int, update_util_data*, void (update_util_data*, typedef u64, unsigned int)*)' [A] 'function void cpufreq_freq_transition_begin(cpufreq_policy*, cpufreq_freqs*)' [A] 'function void cpufreq_freq_transition_end(cpufreq_policy*, cpufreq_freqs*, int)' [A] 'function int cpufreq_frequency_table_verify(cpufreq_policy_data*, cpufreq_frequency_table*)' [A] 'function unsigned int cpufreq_policy_transition_delay_us(cpufreq_policy*)' [A] 'function void cpufreq_remove_update_util_hook(int)' [A] 'function int cpufreq_table_index_unsorted(cpufreq_policy*, unsigned int, unsigned int)' [A] 'function bool cpufreq_this_cpu_can_update(cpufreq_policy*)' [A] 'function int cpumask_any_but(const cpumask*, unsigned int)' [A] 'function int crypto_shash_digest(shash_desc*, const u8*, unsigned int, u8*)' [A] 'function int dev_printk_emit(int, const device*, const char*, ...)' [A] 'function dev_dma_attr device_get_dma_attr(device*)' [A] 'function void devm_backlight_device_unregister(device*, backlight_device*)' [A] 'function int devm_clk_hw_register_clkdev(device*, clk_hw*, const char*, const char*)' [A] 'function drm_bridge* devm_drm_panel_bridge_add_typed(device*, drm_panel*, u32)' [A] 'function void devm_free_percpu(device*, void*)' [A] 'function gen_pool* devm_gen_pool_create(device*, int, int, const char*)' [A] 'function void devm_gpio_free(device*, unsigned int)' [A] 'function gpio_descs* devm_gpiod_get_array(device*, const char*, gpiod_flags)' [A] 'function void devm_gpiod_put_array(device*, gpio_descs*)' [A] 'function i2c_client* devm_i2c_new_dummy_device(device*, i2c_adapter*, u16)' [A] 'function const char* devm_kstrdup_const(device*, const char*, gfp_t)' [A] 'function void devm_phy_put(device*, phy*)' [A] 'function int devm_pinctrl_register_and_init(device*, pinctrl_desc*, void*, pinctrl_dev**)' [A] 'function void devm_thermal_zone_of_sensor_unregister(device*, thermal_zone_device*)' [A] 'function int dma_get_slave_caps(dma_chan*, dma_slave_caps*)' [A] 'function void dma_heap_put(dma_heap*)' [A] 'function void dmaengine_unmap_put(dmaengine_unmap_data*)' [A] 'function int down_interruptible(semaphore*)' [A] 'function int down_timeout(semaphore*, long int)' [A] 'function int driver_create_file(device_driver*, const driver_attribute*)' [A] 'function void driver_remove_file(device_driver*, const driver_attribute*)' [A] 'function int drm_atomic_add_affected_connectors(drm_atomic_state*, drm_crtc*)' [A] 'function int drm_atomic_add_affected_planes(drm_atomic_state*, drm_crtc*)' [A] 'function drm_connector* drm_atomic_get_new_connector_for_encoder(drm_atomic_state*, drm_encoder*)' [A] 'function void drm_atomic_helper_bridge_destroy_state(drm_bridge*, drm_bridge_state*)' [A] 'function drm_bridge_state* drm_atomic_helper_bridge_duplicate_state(drm_bridge*)' [A] 'function drm_bridge_state* drm_atomic_helper_bridge_reset(drm_bridge*)' [A] 'function int drm_atomic_helper_check_modeset(drm_device*, drm_atomic_state*)' [A] 'function int drm_atomic_helper_check_planes(drm_device*, drm_atomic_state*)' [A] 'function void drm_atomic_helper_commit_cleanup_done(drm_atomic_state*)' [A] 'function void drm_atomic_helper_commit_tail(drm_atomic_state*)' [A] 'function void drm_atomic_helper_fake_vblank(drm_atomic_state*)' [A] 'function int drm_atomic_helper_setup_commit(drm_atomic_state*, bool)' [A] 'function void drm_atomic_helper_wait_for_dependencies(drm_atomic_state*)' [A] 'function void drm_atomic_helper_wait_for_flip_done(drm_device*, drm_atomic_state*)' [A] 'function int drm_atomic_normalize_zpos(drm_device*, drm_atomic_state*)' [A] 'function int drm_atomic_set_crtc_for_plane(drm_plane_state*, drm_crtc*)' [A] 'function void drm_atomic_set_fb_for_plane(drm_plane_state*, drm_framebuffer*)' [A] 'function u64 drm_crtc_vblank_count_and_time(drm_crtc*, ktime_t*)' [A] 'function void drm_display_mode_to_videomode(const drm_display_mode*, videomode*)' [A] 'function void drm_event_cancel_free(drm_device*, drm_pending_event*)' [A] 'function int drm_event_reserve_init(drm_device*, drm_file*, drm_pending_event*, drm_event*)' [A] 'function drm_gem_object* drm_gem_prime_import_dev(drm_device*, dma_buf*, device*)' [A] 'function void drm_mode_convert_to_umode(drm_mode_modeinfo*, const drm_display_mode*)' [A] 'function bool drm_mode_equal_no_clocks(const drm_display_mode*, const drm_display_mode*)' [A] 'function int drm_plane_create_alpha_property(drm_plane*)' [A] 'function int drm_plane_create_blend_mode_property(drm_plane*, unsigned int)' [A] 'function drm_property* drm_property_create_bool(drm_device*, u32, const char*)' [A] 'function bool drm_property_replace_blob(drm_property_blob**, drm_property_blob*)' [A] 'function bool drm_rect_clip_scaled(drm_rect*, drm_rect*, const drm_rect*)' [A] 'function void drm_send_event(drm_device*, drm_pending_event*)' [A] 'function int drm_writeback_connector_init(drm_device*, drm_writeback_connector*, const drm_connector_funcs*, const drm_encoder_helper_funcs*, const u32*, int)' [A] 'function void drm_writeback_queue_job(drm_writeback_connector*, drm_connector_state*)' [A] 'function void drm_writeback_signal_completion(drm_writeback_connector*, int)' [A] 'function void* drmm_kmalloc(drm_device*, size_t, gfp_t)' [A] 'function void dump_backtrace(pt_regs*, task_struct*, const char*)' [A] 'function irqreturn_t dw_handle_msi_irq(pcie_port*)' [A] 'function int dw_pcie_host_init(pcie_port*)' [A] 'function void dw_pcie_msi_init(pcie_port*)' [A] 'function int dw_pcie_read(void*, int, u32*)' [A] 'function void dw_pcie_setup_rc(pcie_port*)' [A] 'function int dw_pcie_write(void*, int, u32)' [A] 'function int dwc3_send_gadget_ep_cmd(dwc3_ep*, unsigned int, dwc3_gadget_ep_cmd_params*)' [A] 'function void dwc3_stop_active_transfer(dwc3_ep*, bool, bool)' [A] 'function void emergency_restart()' [A] 'function int extcon_set_property(extcon_dev*, unsigned int, unsigned int, extcon_property_value)' [A] 'function int extcon_set_property_capability(extcon_dev*, unsigned int, unsigned int)' [A] 'function int filp_close(file*, fl_owner_t)' [A] 'function file* filp_open_block(const char*, int, umode_t)' [A] 'function frame_vector* frame_vector_create(unsigned int)' [A] 'function void frame_vector_destroy(frame_vector*)' [A] 'function int frame_vector_to_pages(frame_vector*)' [A] 'function unsigned int full_name_hash(void*, const char*, unsigned int)' [A] 'function gpio_desc* fwnode_gpiod_get_index(fwnode_handle*, const char*, int, gpiod_flags, const char*)' [A] 'function unsigned long int gen_pool_first_fit_align(unsigned long int*, unsigned long int, unsigned long int, unsigned int, void*, gen_pool*, unsigned long int)' [A] 'function u64 get_cpu_idle_time(unsigned int, u64*, int)' [A] 'function u64 get_cpu_idle_time_us(int, u64*)' [A] 'function u64 get_cpu_iowait_time_us(int, u64*)' [A] 'function int get_random_bytes_arch(void*, int)' [A] 'function thermal_instance* get_thermal_instance(thermal_zone_device*, thermal_cooling_device*, int)' [A] 'function int get_vaddr_frames(unsigned long int, unsigned int, unsigned int, frame_vector*)' [A] 'function bool glob_match(const char*, const char*)' [A] 'function void gov_attr_set_get(gov_attr_set*, list_head*)' [A] 'function int gpiochip_generic_config(gpio_chip*, unsigned int, unsigned long int)' [A] 'function int gserial_alloc_line(unsigned char*)' [A] 'function int gserial_connect(gserial*, u8)' [A] 'function void gserial_disconnect(gserial*)' [A] 'function bool have_governor_per_policy()' [A] 'function void hrtimer_init_sleeper(hrtimer_sleeper*, clockid_t, hrtimer_mode)' [A] 'function void hrtimer_sleeper_start_expires(hrtimer_sleeper*, hrtimer_mode)' [A] 'function const i2c_device_id* i2c_match_id(const i2c_device_id*, const i2c_client*)' [A] 'function i2c_client* i2c_new_client_device(i2c_adapter*, const i2c_board_info*)' [A] 'function i2c_client* i2c_new_dummy_device(i2c_adapter*, u16)' [A] 'function s32 i2c_smbus_read_byte_data(const i2c_client*, u8)' [A] 'function s32 i2c_smbus_write_byte_data(const i2c_client*, u8, u8)' [A] 'function void iio_device_unregister(iio_dev*)' [A] 'function __be32 in_aton(const char*)' [A] 'function void input_mt_destroy_slots(input_dev*)' [A] 'function void input_set_timestamp(input_dev*, ktime_t)' [A] 'function long int io_schedule_timeout(long int)' [A] 'function int iommu_aux_attach_device(iommu_domain*, device*)' [A] 'function void iommu_aux_detach_device(iommu_domain*, device*)' [A] 'function int iommu_aux_get_pasid(iommu_domain*, device*)' [A] 'function int iommu_dev_enable_feature(device*, iommu_dev_features)' [A] 'function bool iommu_dev_feature_enabled(device*, iommu_dev_features)' [A] 'function void iommu_device_unlink(iommu_device*, device*)' [A] 'function iommu_group* iommu_group_alloc()' [A] 'function int iommu_group_set_name(iommu_group*, const char*)' [A] 'function int iommu_register_device_fault_handler(device*, iommu_dev_fault_handler_t, void*)' [A] 'function int iommu_report_device_fault(device*, iommu_fault_event*)' [A] 'function int iommu_unregister_device_fault_handler(device*)' [A] 'function void ip_send_check(iphdr*)' [A] 'function unsigned int irq_create_of_mapping(of_phandle_args*)' [A] 'function u64 jiffies64_to_msecs(const u64)' [A] 'function ssize_t kernel_read(file*, void*, size_t, loff_t*)' [A] 'function void* kmalloc_order(size_t, gfp_t, unsigned int)' [A] 'function int kstrtol_from_user(const char*, size_t, unsigned int, long int*)' [A] 'function ktime_t ktime_get_raw()' [A] 'function int led_classdev_register_ext(device*, led_classdev*, led_init_data*)' [A] 'function void log_abnormal_wakeup_reason(const char*, ...)' [A] 'function void log_threaded_irq_wakeup_reason(int, int)' [A] 'function ssize_t mipi_dsi_compression_mode(mipi_dsi_device*, bool)' [A] 'function ssize_t mipi_dsi_dcs_read(mipi_dsi_device*, u8, void*, size_t)' [A] 'function int mipi_dsi_dcs_set_column_address(mipi_dsi_device*, u16, u16)' [A] 'function int mipi_dsi_dcs_set_page_address(mipi_dsi_device*, u16, u16)' [A] 'function ssize_t mipi_dsi_dcs_write_buffer(mipi_dsi_device*, void*, size_t)' [A] 'function ssize_t mipi_dsi_picture_parameter_set(mipi_dsi_device*, const drm_dsc_picture_parameter_set*)' [A] 'function time64_t mktime64(const unsigned int, const unsigned int, const unsigned int, const unsigned int, const unsigned int, const unsigned int)' [A] 'function void netdev_state_change(net_device*)' [A] 'function int nla_append(sk_buff*, int, void*)' [A] 'function int nla_put_nohdr(sk_buff*, int, void*)' [A] 'function size_t nla_strlcpy(char*, const nlattr*, size_t)' [A] 'function u64 nsec_to_clock_t(u64)' [A] 'function void nvmem_device_put(nvmem_device*)' [A] 'function i2c_adapter* of_find_i2c_adapter_by_node(device_node*)' [A] 'function device_node* of_find_node_by_type(device_node*, const char*)' [A] 'function int of_get_dma_window(device_node*, const char*, int, unsigned long int*, dma_addr_t*, size_t*)' [A] 'function nvmem_device* of_nvmem_device_get(device_node*, const char*)' [A] 'function int of_property_read_variable_u64_array(const device_node*, const char*, u64*, size_t, size_t)' [A] 'function int pci_enable_wake(pci_dev*, pci_power_t, bool)' [A] 'function pci_bus* pci_find_bus(int, int)' [A] 'function unsigned int pci_rescan_bus(pci_bus*)' [A] 'function void pci_restore_msi_state(pci_dev*)' [A] 'function int pci_wake_from_d3(pci_dev*, bool)' [A] 'function u64 perf_event_pause(perf_event*, bool)' [A] 'function void perf_event_update_userpage(perf_event*)' [A] 'function void perf_pmu_migrate_context(pmu*, int, int)' [A] 'function const char* pin_get_name(pinctrl_dev*, const unsigned int)' [A] 'function int pin_user_pages_fast(unsigned long int, int, unsigned int, page**)' [A] 'function long int pin_user_pages_remote(mm_struct*, unsigned long int, unsigned long int, unsigned int, page**, vm_area_struct**, int*)' [A] 'function void pinconf_generic_dt_free_map(pinctrl_dev*, pinctrl_map*, unsigned int)' [A] 'function void pinctrl_add_gpio_range(pinctrl_dev*, pinctrl_gpio_range*)' [A] 'function int pinctrl_enable(pinctrl_dev*)' [A] 'function void pinctrl_remove_gpio_range(pinctrl_dev*, pinctrl_gpio_range*)' [A] 'function int pktgen_xfrm_outer_mode_output(xfrm_state*, sk_buff*)' [A] 'function device* platform_find_device_by_driver(device*, const device_driver*)' [A] 'function int power_supply_get_by_phandle_array(device_node*, const char*, power_supply**, ssize_t)' [A] 'function void prandom_bytes(void*, size_t)' [A] 'function proc_dir_entry* proc_mkdir_data(const char*, umode_t, proc_dir_entry*, void*)' [A] 'function void put_vaddr_frames(frame_vector*)' [A] 'function int rdev_get_id(regulator_dev*)' [A] 'function int regcache_drop_region(regmap*, unsigned int, unsigned int)' [A] 'function void register_kernel_break_hook(break_hook*)' [A] 'function int register_pernet_subsys(pernet_operations*)' [A] 'function int regmap_async_complete(regmap*)' [A] 'function device* regmap_get_device(regmap*)' [A] 'function int regmap_multi_reg_write_bypassed(regmap*, const reg_sequence*, int)' [A] 'function int regmap_raw_write_async(regmap*, unsigned int, void*, size_t)' [A] 'function int regulator_map_voltage_linear(regulator_dev*, int, int)' [A] 'function regulator_dev* regulator_register(const regulator_desc*, const regulator_config*)' [A] 'function void regulator_unregister(regulator_dev*)' [A] 'function void rtc_class_close(rtc_device*)' [A] 'function rtc_device* rtc_class_open(const char*)' [A] 'function int rtc_read_time(rtc_device*, rtc_time*)' [A] 'function int sched_setattr_nocheck(task_struct*, const sched_attr*)' [A] 'function const sched_avg* sched_trace_cfs_rq_avg(cfs_rq*)' [A] 'function int sched_trace_cfs_rq_cpu(cfs_rq*)' [A] 'function char* sched_trace_cfs_rq_path(cfs_rq*, char*, int)' [A] 'function const cpumask* sched_trace_rd_span(root_domain*)' [A] 'function const sched_avg* sched_trace_rq_avg_dl(rq*)' [A] 'function const sched_avg* sched_trace_rq_avg_irq(rq*)' [A] 'function const sched_avg* sched_trace_rq_avg_rt(rq*)' [A] 'function int sched_trace_rq_cpu(rq*)' [A] 'function void scsi_block_requests(Scsi_Host*)' [A] 'function void scsi_unblock_requests(Scsi_Host*)' [A] 'function int seq_release_private(inode*, file*)' [A] 'function int set_blocksize(block_device*, int)' [A] 'function bool set_freezable()' [A] 'function long int simple_strtol(const char*, char**, unsigned int)' [A] 'function long long int simple_strtoll(const char*, char**, unsigned int)' [A] 'function long long unsigned int simple_strtoull(const char*, char**, unsigned int)' [A] 'function int single_open_size(file*, int (seq_file*, void*)*, void*, size_t)' [A] 'function int smp_call_on_cpu(unsigned int, int (void*)*, void*, bool)' [A] 'function int snd_compr_stop_error(snd_compr_stream*, snd_pcm_state_t)' [A] 'function void snd_ctl_notify(snd_card*, unsigned int, snd_ctl_elem_id*)' [A] 'function int snd_pcm_format_physical_width(snd_pcm_format_t)' [A] 'function int snd_pcm_lib_free_pages(snd_pcm_substream*)' [A] 'function int snd_pcm_lib_ioctl(snd_pcm_substream*, unsigned int, void*)' [A] 'function int snd_pcm_lib_malloc_pages(snd_pcm_substream*, size_t)' [A] 'function void snd_pcm_lib_preallocate_pages(snd_pcm_substream*, int, device*, size_t, size_t)' [A] 'function int snd_soc_add_dai_controls(snd_soc_dai*, const snd_kcontrol_new*, int)' [A] 'function int snd_soc_bytes_tlv_callback(snd_kcontrol*, int, unsigned int, unsigned int*)' [A] 'function int snd_soc_component_disable_pin(snd_soc_component*, const char*)' [A] 'function int snd_soc_component_force_enable_pin(snd_soc_component*, const char*)' [A] 'function int snd_soc_component_set_pll(snd_soc_component*, int, int, unsigned int, unsigned int)' [A] 'function int snd_soc_component_set_sysclk(snd_soc_component*, int, int, unsigned int, int)' [A] 'function int snd_soc_dai_set_pll(snd_soc_dai*, int, int, unsigned int, unsigned int)' [A] 'function int snd_soc_dapm_disable_pin_unlocked(snd_soc_dapm_context*, const char*)' [A] 'function int snd_soc_dapm_force_enable_pin_unlocked(snd_soc_dapm_context*, const char*)' [A] 'function int snd_soc_dapm_get_pin_status(snd_soc_dapm_context*, const char*)' [A] 'function int snd_soc_dapm_sync_unlocked(snd_soc_dapm_context*)' [A] 'function int snd_soc_get_volsw_range(snd_kcontrol*, snd_ctl_elem_value*)' [A] 'function int snd_soc_info_volsw_range(snd_kcontrol*, snd_ctl_elem_info*)' [A] 'function int snd_soc_params_to_frame_size(snd_pcm_hw_params*)' [A] 'function int snd_soc_put_volsw_range(snd_kcontrol*, snd_ctl_elem_value*)' [A] 'function int snd_soc_register_card(snd_soc_card*)' [A] 'function int snd_soc_runtime_set_dai_fmt(snd_soc_pcm_runtime*, unsigned int)' [A] 'function void sock_wfree(sk_buff*)' [A] 'function void static_key_slow_dec(static_key*)' [A] 'function void static_key_slow_inc(static_key*)' [A] 'function char* strndup_user(const char*, long int)' [A] 'function __kernel_size_t strspn(const char*, const char*)' [A] 'function int subsys_system_register(bus_type*, const attribute_group**)' [A] 'function int sysfs_emit_at(char*, int, const char*, ...)' [A] 'function int sysfs_update_group(kobject*, const attribute_group*)' [A] 'function tcpm_port* tcpci_get_tcpm_port(tcpci*)' [A] 'function void tcpm_cc_change(tcpm_port*)' [A] 'function bool tcpm_is_toggling(tcpm_port*)' [A] 'function void tcpm_pd_hard_reset(tcpm_port*)' [A] 'function void tcpm_pd_receive(tcpm_port*, const pd_message*)' [A] 'function void tcpm_pd_transmit_complete(tcpm_port*, tcpm_transmit_status)' [A] 'function void tcpm_sink_frs(tcpm_port*)' [A] 'function void tcpm_sourcing_vbus(tcpm_port*)' [A] 'function int tcpm_update_sink_capabilities(tcpm_port*, const u32*, unsigned int, unsigned int)' [A] 'function void tcpm_vbus_change(tcpm_port*)' [A] 'function void thermal_cdev_update(thermal_cooling_device*)' [A] 'function int thermal_zone_device_is_enabled(thermal_zone_device*)' [A] 'function void thermal_zone_device_unregister(thermal_zone_device*)' [A] 'function void thread_group_cputime_adjusted(task_struct*, u64*, u64*)' [A] 'function unsigned long int tick_nohz_get_idle_calls_cpu(int)' [A] 'function int trace_output_call(trace_iterator*, char*, char*, ...)' [A] 'function int try_to_del_timer_sync(timer_list*)' [A] 'function void tty_kref_put(tty_struct*)' [A] 'function tty_struct* tty_port_tty_get(tty_port*)' [A] 'function void* typec_switch_get_drvdata(typec_switch*)' [A] 'function typec_switch* typec_switch_register(device*, const typec_switch_desc*)' [A] 'function void typec_switch_unregister(typec_switch*)' [A] 'function void udp4_hwcsum(sk_buff*, __be32, __be32)' [A] 'function int ufshcd_bkops_ctrl(ufs_hba*, bkops_status)' [A] 'function int ufshcd_query_attr_retry(ufs_hba*, query_opcode, attr_idn, u8, u8, u32*)' [A] 'function int ufshcd_query_flag_retry(ufs_hba*, query_opcode, flag_idn, u8, bool*)' [A] 'function int ufshcd_read_desc_param(ufs_hba*, desc_idn, int, u8, u8*, u8)' [A] 'function int ufshcd_system_resume(ufs_hba*)' [A] 'function int ufshcd_system_suspend(ufs_hba*)' [A] 'function void unpin_user_page(page*)' [A] 'function void unregister_pernet_subsys(pernet_operations*)' [A] 'function int usb_add_function(usb_configuration*, usb_function*)' [A] 'function usb_descriptor_header** usb_copy_descriptors(usb_descriptor_header**)' [A] 'function int usb_hcd_is_primary_hcd(usb_hcd*)' [A] 'function const char* usb_otg_state_string(usb_otg_state)' [A] 'function int v4l2_ctrl_log_status(file*, void*)' [A] 'function void v4l2_m2m_buf_queue(v4l2_m2m_ctx*, vb2_v4l2_buffer*)' [A] 'function vb2_v4l2_buffer* v4l2_m2m_buf_remove(v4l2_m2m_queue_ctx*)' [A] 'function v4l2_m2m_ctx* v4l2_m2m_ctx_init(v4l2_m2m_dev*, void*, int (void*, vb2_queue*, vb2_queue*)*)' [A] 'function void v4l2_m2m_ctx_release(v4l2_m2m_ctx*)' [A] 'function int v4l2_m2m_fop_mmap(file*, vm_area_struct*)' [A] 'function __poll_t v4l2_m2m_fop_poll(file*, poll_table*)' [A] 'function void* v4l2_m2m_get_curr_priv(v4l2_m2m_dev*)' [A] 'function vb2_queue* v4l2_m2m_get_vq(v4l2_m2m_ctx*, v4l2_buf_type)' [A] 'function v4l2_m2m_dev* v4l2_m2m_init(const v4l2_m2m_ops*)' [A] 'function int v4l2_m2m_ioctl_dqbuf(file*, void*, v4l2_buffer*)' [A] 'function int v4l2_m2m_ioctl_querybuf(file*, void*, v4l2_buffer*)' [A] 'function int v4l2_m2m_ioctl_reqbufs(file*, void*, v4l2_requestbuffers*)' [A] 'function int v4l2_m2m_ioctl_streamoff(file*, void*, v4l2_buf_type)' [A] 'function int v4l2_m2m_ioctl_streamon(file*, void*, v4l2_buf_type)' [A] 'function void v4l2_m2m_job_finish(v4l2_m2m_dev*, v4l2_m2m_ctx*)' [A] 'function vb2_v4l2_buffer* v4l2_m2m_next_buf(v4l2_m2m_queue_ctx*)' [A] 'function int v4l2_m2m_qbuf(file*, v4l2_m2m_ctx*, v4l2_buffer*)' [A] 'function void v4l2_m2m_release(v4l2_m2m_dev*)' [A] 'function frame_vector* vb2_create_framevec(unsigned long int, unsigned long int)' [A] 'function void vb2_destroy_framevec(frame_vector*)' [A] 'function int vb2_fop_mmap(file*, vm_area_struct*)' [A] 'function __poll_t vb2_fop_poll(file*, poll_table*)' [A] 'function ssize_t vb2_fop_read(file*, char*, size_t, loff_t*)' [A] 'function int vb2_fop_release(file*)' [A] 'function int vb2_ioctl_create_bufs(file*, void*, v4l2_create_buffers*)' [A] 'function int vb2_ioctl_dqbuf(file*, void*, v4l2_buffer*)' [A] 'function int vb2_ioctl_expbuf(file*, void*, v4l2_exportbuffer*)' [A] 'function int vb2_ioctl_qbuf(file*, void*, v4l2_buffer*)' [A] 'function int vb2_ioctl_querybuf(file*, void*, v4l2_buffer*)' [A] 'function int vb2_ioctl_reqbufs(file*, void*, v4l2_requestbuffers*)' [A] 'function int vb2_ioctl_streamoff(file*, void*, v4l2_buf_type)' [A] 'function int vb2_ioctl_streamon(file*, void*, v4l2_buf_type)' [A] 'function int vb2_mmap(vb2_queue*, vm_area_struct*)' [A] 'function void vb2_ops_wait_finish(vb2_queue*)' [A] 'function void vb2_ops_wait_prepare(vb2_queue*)' [A] 'function void* vb2_plane_cookie(vb2_buffer*, unsigned int)' [A] 'function void* vb2_plane_vaddr(vb2_buffer*, unsigned int)' [A] 'function __poll_t vb2_poll(vb2_queue*, file*, poll_table*)' [A] 'function int vb2_querybuf(vb2_queue*, v4l2_buffer*)' [A] 'function int vb2_wait_for_all_buffers(vb2_queue*)' [A] 'function void* vm_map_ram(page**, unsigned int, int)' [A] 'function void vm_unmap_ram(void*, unsigned int)' [A] 'function vm_fault_t vmf_insert_pfn_prot(vm_area_struct*, unsigned long int, unsigned long int, pgprot_t)' [A] 'function virtqueue* vring_new_virtqueue(unsigned int, unsigned int, unsigned int, virtio_device*, bool, bool, void*, typedef bool (virtqueue*)*, void (virtqueue*)*, const char*)' [A] 'function void* vzalloc_node(unsigned long int, int)' [A] 'function long int wait_for_completion_killable_timeout(completion*, unsigned long int)' [A] 'function void wakeup_source_add(wakeup_source*)' [A] 'function wakeup_source* wakeup_source_create(const char*)' [A] 'function void wakeup_source_destroy(wakeup_source*)' [A] 'function void wakeup_source_remove(wakeup_source*)' [A] 'function int watchdog_register_device(watchdog_device*)' [A] 'function void watchdog_set_restart_priority(watchdog_device*, int)' [A] 'function void watchdog_unregister_device(watchdog_device*)' [A] 'function xfrm_state* xfrm_state_lookup_byspi(net*, __be32, unsigned short int)' [A] 'function xfrm_state* xfrm_stateonly_find(net*, u32, u32, xfrm_address_t*, xfrm_address_t*, unsigned short int, u8, u8, u32)' [A] 'function int xhci_gen_setup(usb_hcd*, xhci_get_quirks_t)' [A] 'function xhci_ep_ctx* xhci_get_ep_ctx(xhci_hcd*, xhci_container_ctx*, unsigned int)' [A] 'function xhci_slot_ctx* xhci_get_slot_ctx(xhci_hcd*, xhci_container_ctx*)' [A] 'function int xhci_handle_event(xhci_hcd*)' [A] 'function void xhci_init_driver(hc_driver*, const xhci_driver_overrides*)' [A] 'function int xhci_resume(xhci_hcd*, bool)' [A] 'function int xhci_run(usb_hcd*)' [A] 'function int xhci_suspend(xhci_hcd*, bool)' [A] 'function void xhci_update_erst_dequeue(xhci_hcd*, xhci_trb*)' [A] 'function xhci_vendor_ops* xhci_vendor_get_ops(xhci_hcd*)' 48 Added variables: [A] 'tracepoint __tracepoint_android_rvh_cpu_overutilized' [A] 'tracepoint __tracepoint_android_rvh_find_energy_efficient_cpu' [A] 'tracepoint __tracepoint_android_rvh_set_iowait' [A] 'tracepoint __tracepoint_android_rvh_typec_tcpci_chk_contaminant' [A] 'tracepoint __tracepoint_android_rvh_typec_tcpci_get_vbus' [A] 'tracepoint __tracepoint_android_rvh_uclamp_eff_get' [A] 'tracepoint __tracepoint_android_rvh_util_est_update' [A] 'tracepoint __tracepoint_android_vh_arch_set_freq_scale' [A] 'tracepoint __tracepoint_android_vh_cma_alloc_finish' [A] 'tracepoint __tracepoint_android_vh_cma_alloc_start' [A] 'tracepoint __tracepoint_android_vh_enable_thermal_genl_check' [A] 'tracepoint __tracepoint_android_vh_ep_create_wakeup_source' [A] 'tracepoint __tracepoint_android_vh_pagecache_get_page' [A] 'tracepoint __tracepoint_android_vh_rmqueue' [A] 'tracepoint __tracepoint_android_vh_timerfd_create' [A] 'tracepoint __tracepoint_android_vh_typec_store_partner_src_caps' [A] 'tracepoint __tracepoint_android_vh_typec_tcpci_override_toggling' [A] 'tracepoint __tracepoint_android_vh_typec_tcpm_adj_current_limit' [A] 'tracepoint __tracepoint_android_vh_typec_tcpm_get_timer' [A] 'tracepoint __tracepoint_android_vh_ufs_check_int_errors' [A] 'tracepoint __tracepoint_android_vh_ufs_compl_command' [A] 'tracepoint __tracepoint_android_vh_ufs_fill_prdt' [A] 'tracepoint __tracepoint_android_vh_ufs_prepare_command' [A] 'tracepoint __tracepoint_android_vh_ufs_send_command' [A] 'tracepoint __tracepoint_android_vh_ufs_send_tm_command' [A] 'tracepoint __tracepoint_android_vh_ufs_send_uic_command' [A] 'tracepoint __tracepoint_android_vh_ufs_update_sysfs' [A] 'tracepoint __tracepoint_clock_set_rate' [A] 'tracepoint __tracepoint_device_pm_callback_end' [A] 'tracepoint __tracepoint_device_pm_callback_start' [A] 'tracepoint __tracepoint_dwc3_readl' [A] 'tracepoint __tracepoint_dwc3_writel' [A] 'tracepoint __tracepoint_pelt_cfs_tp' [A] 'tracepoint __tracepoint_pelt_dl_tp' [A] 'tracepoint __tracepoint_pelt_irq_tp' [A] 'tracepoint __tracepoint_pelt_rt_tp' [A] 'tracepoint __tracepoint_pelt_se_tp' [A] 'tracepoint __tracepoint_sched_cpu_capacity_tp' [A] 'tracepoint __tracepoint_sched_overutilized_tp' [A] 'tracepoint __tracepoint_sched_util_est_cfs_tp' [A] 'tracepoint __tracepoint_sched_util_est_se_tp' [A] 'const unsigned long int cpu_all_bits[1]' [A] 'bool cpuhp_tasks_frozen' [A] 'kernel_cpustat kernel_cpustat' [A] 'const kernel_param_ops param_ops_short' [A] 'static_key_false rps_needed' [A] 'const vm_operations_struct vb2_common_vm_ops' [A] 'const vb2_mem_ops vb2_vmalloc_memops' Bug: 182844240 Signed-off-by: Will McVicker <willmcvicker@google.com> Change-Id: Ifd8109f54da3a57b09645692a30e34ef01b9815c
How do I submit patches to Android Common Kernels
-
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.
- Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux,
additions of
-
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
script/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:, orANDROID:. - 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
- tag the patch subject with
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 ofUPSTREAM:.- use the same tags as
UPSTREAM: - add comments about the changes under the
(cherry picked from commit ...)line - Example:
- use the same tags as
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 uselinux-nextfor example). - if changes were required, use
BACKPORT: FROMGIT: - Example:
- if the commit message in the maintainer tree is
- tag the patch subject with
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:
- tag the patch subject with
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:
- tag the patch subject with
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)
- tag the patch subject with
Description
Languages
C
97.7%
Assembly
1.6%
Makefile
0.3%
Perl
0.1%