Zhipeng Wang 96e0181952 ANDROID: GKI: Add initial symbol list for imx
Update imx symbol list and abi.xml, and add imx entry in build.config.gki.aarch64.

Leaf changes summary: 326 artifacts changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 321 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 5 Added variables

321 Added functions:

  [A] 'function int __bitmap_and(unsigned long int*, const unsigned long int*, const unsigned long int*, unsigned int)'
  [A] 'function void __bitmap_complement(unsigned long int*, const unsigned long int*, unsigned int)'
  [A] 'function void __bitmap_replace(unsigned long int*, const unsigned long int*, const unsigned long int*, const unsigned long int*, unsigned int)'
  [A] 'function void __bitmap_xor(unsigned long int*, const unsigned long int*, const unsigned long int*, unsigned int)'
  [A] 'function clk_hw* __clk_hw_register_divider(device*, device_node*, const char*, const char*, const clk_hw*, const clk_parent_data*, unsigned long int, void*, u8, u8, u8, const clk_div_table*, spinlock_t*)'
  [A] 'function clk_hw* __clk_hw_register_fixed_rate(device*, device_node*, const char*, const char*, const clk_hw*, const clk_parent_data*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)'
  [A] 'function clk_hw* __clk_hw_register_gate(device*, device_node*, const char*, const char*, const clk_hw*, const clk_parent_data*, unsigned long int, void*, u8, u8, spinlock_t*)'
  [A] 'function clk_hw* __clk_hw_register_mux(device*, device_node*, const char*, u8, const char* const*, const clk_hw**, const clk_parent_data*, unsigned long int, void*, u8, u32, u8, u32*, spinlock_t*)'
  [A] 'function int __device_reset(device*, bool)'
  [A] 'function int __devm_irq_alloc_descs(device*, int, unsigned int, unsigned int, int, module*, const irq_affinity_desc*)'
  [A] 'function void* __drmm_simple_encoder_alloc(drm_device*, size_t, size_t, int)'
  [A] 'function int __genphy_config_aneg(phy_device*, bool)'
  [A] 'function void __irq_set_handler(unsigned int, irq_flow_handler_t, int, const char*)'
  [A] 'function int __mdiobus_read(mii_bus*, int, u32)'
  [A] 'function int __mdiobus_write(mii_bus*, int, u32, u16)'
  [A] 'function int __phy_modify(phy_device*, u32, u16, u16)'
  [A] 'function regmap* __regmap_init_mmio_clk(device*, const char*, void*, const regmap_config*, lock_class_key*, const char*)'
  [A] 'function int __v4l2_ctrl_s_ctrl_int64(v4l2_ctrl*, s64)'
  [A] 'function int _vb2_fop_release(file*, mutex*)'
  [A] 'function backing_dev_info* bdi_alloc(int)'
  [A] 'function void bdi_put(backing_dev_info*)'
  [A] 'function int bdi_register(backing_dev_info*, const char*, ...)'
  [A] 'function unsigned long int* bitmap_alloc(unsigned int, gfp_t)'
  [A] 'function void cec_fill_conn_info_from_drm(cec_connector_info*, const drm_connector*)'
  [A] 'function cec_notifier* cec_notifier_cec_adap_register(device*, const char*, cec_adapter*)'
  [A] 'function void cec_notifier_cec_adap_unregister(cec_notifier*, cec_adapter*)'
  [A] 'function cec_notifier* cec_notifier_conn_register(device*, const char*, const cec_connector_info*)'
  [A] 'function void cec_notifier_conn_unregister(cec_notifier*)'
  [A] 'function void cec_notifier_set_phys_addr(cec_notifier*, u16)'
  [A] 'function void cec_notifier_set_phys_addr_from_edid(cec_notifier*, const edid*)'
  [A] 'function void cec_s_phys_addr_from_edid(cec_adapter*, const edid*)'
  [A] 'function void cfg80211_report_wowlan_wakeup(wireless_dev*, cfg80211_wowlan_wakeup*, gfp_t)'
  [A] 'function void clk_bulk_put(int, clk_bulk_data*)'
  [A] 'function clk_hw* clk_hw_register_composite(device*, const char*, const char* const*, int, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, unsigned long int)'
  [A] 'function clk_hw* clk_hw_register_fixed_factor(device*, const char*, const char*, unsigned long int, unsigned int, unsigned int)'
  [A] 'function bool clk_is_match(const clk*, const clk*)'
  [A] 'function unsigned int clk_mux_index_to_val(u32*, unsigned int, u8)'
  [A] 'function void clk_unregister(clk*)'
  [A] 'function void deactivate_locked_super(super_block*)'
  [A] 'function unsigned long int dev_pm_opp_get_max_transition_latency(device*)'
  [A] 'function int dev_pm_opp_get_sharing_cpus(device*, cpumask*)'
  [A] 'function unsigned long int dev_pm_opp_get_suspend_opp_freq(device*)'
  [A] 'function void dev_pm_opp_put_supported_hw(opp_table*)'
  [A] 'function opp_table* dev_pm_opp_set_supported_hw(device*, const u32*, unsigned int)'
  [A] 'function int dev_pm_set_wake_irq(device*, int)'
  [A] 'function i3c_device* dev_to_i3cdev(device*)'
  [A] 'function int device_for_each_child_reverse(device*, void*, int (device*, void*)*)'
  [A] 'function drm_bridge* devm_drm_panel_bridge_add(device*, drm_panel*)'
  [A] 'function clk* devm_get_clk_from_child(device*, device_node*, const char*)'
  [A] 'function irq_chip_generic* devm_irq_alloc_generic_chip(device*, const char*, int, unsigned int, void*, irq_flow_handler_t)'
  [A] 'function int devm_irq_setup_generic_chip(device*, irq_chip_generic*, u32, irq_gc_flags, unsigned int, unsigned int)'
  [A] 'function char* devm_kvasprintf(device*, gfp_t, const char*, va_list)'
  [A] 'function phy* devm_of_phy_get(device*, device_node*, const char*)'
  [A] 'function phy* devm_phy_optional_get(device*, const char*)'
  [A] 'function int devm_pwmchip_add(device*, pwm_chip*)'
  [A] 'function void devm_remove_action(device*, void (void*)*, void*)'
  [A] 'function int devm_snd_dmaengine_pcm_register(device*, const snd_dmaengine_pcm_config*, unsigned int)'
  [A] 'function spi_mem_dirmap_desc* devm_spi_mem_dirmap_create(device*, spi_mem*, const spi_mem_dirmap_info*)'
  [A] 'function int dmaenginem_async_device_register(dma_device*)'
  [A] 'function int down_killable(semaphore*)'
  [A] 'function drm_bridge_state* drm_atomic_get_new_bridge_state(drm_atomic_state*, drm_bridge*)'
  [A] 'function u32* drm_atomic_helper_bridge_propagate_bus_fmt(drm_bridge*, drm_bridge_state*, drm_crtc_state*, drm_connector_state*, u32, unsigned int*)'
  [A] 'function void drm_atomic_helper_disable_planes_on_crtc(drm_crtc_state*, bool)'
  [A] 'function void drm_bridge_chain_enable(drm_bridge*)'
  [A] 'function void drm_bridge_connector_disable_hpd(drm_connector*)'
  [A] 'function void drm_bridge_connector_enable_hpd(drm_connector*)'
  [A] 'function drm_connector* drm_bridge_connector_init(drm_device*, drm_encoder*)'
  [A] 'function void drm_bus_flags_from_videomode(const videomode*, u32*)'
  [A] 'function bool drm_connector_atomic_hdr_metadata_equal(drm_connector_state*, drm_connector_state*)'
  [A] 'function int drm_connector_attach_hdr_output_metadata_property(drm_connector*)'
  [A] 'function int drm_connector_attach_max_bpc_property(drm_connector*, int, int)'
  [A] 'function int drm_connector_set_panel_orientation(drm_connector*, drm_panel_orientation)'
  [A] 'function hdmi_quantization_range drm_default_rgb_quant_range(const drm_display_mode*)'
  [A] 'function int drm_display_info_set_bus_formats(drm_display_info*, const u32*, unsigned int)'
  [A] 'function drm_gem_cma_object* drm_fb_cma_get_gem_obj(drm_framebuffer*, unsigned int)'
  [A] 'function const char* drm_get_connector_status_name(drm_connector_status)'
  [A] 'function void drm_hdmi_avi_infoframe_colorspace(hdmi_avi_infoframe*, const drm_connector_state*)'
  [A] 'function void drm_hdmi_avi_infoframe_quant_range(hdmi_avi_infoframe*, const drm_connector*, const drm_display_mode*, hdmi_quantization_range)'
  [A] 'function int drm_hdmi_infoframe_set_hdr_metadata(hdmi_drm_infoframe*, const drm_connector_state*)'
  [A] 'function int drm_hdmi_vendor_infoframe_from_display_mode(hdmi_vendor_infoframe*, const drm_connector*, const drm_display_mode*)'
  [A] 'function int drm_mode_create_hdmi_colorspace_property(drm_connector*)'
  [A] 'function drm_display_mode* drm_mode_find_dmt(drm_device*, int, int, int, bool)'
  [A] 'function bool drm_mode_is_420_also(const drm_display_info*, const drm_display_mode*)'
  [A] 'function bool drm_mode_is_420_only(const drm_display_info*, const drm_display_mode*)'
  [A] 'function int drm_of_encoder_active_endpoint(device_node*, drm_encoder*, of_endpoint*)'
  [A] 'function uint32_t drm_of_find_possible_crtcs(drm_device*, device_node*)'
  [A] 'function int drm_panel_dp_aux_backlight(drm_panel*, drm_dp_aux*)'
  [A] 'function int drm_panel_of_backlight(drm_panel*)'
  [A] 'function int drm_plane_create_scaling_filter_property(drm_plane*, unsigned int)'
  [A] 'function void drm_property_destroy(drm_device*, drm_property*)'
  [A] 'function ssize_t drm_scdc_read(i2c_adapter*, u8, void*, size_t)'
  [A] 'function bool drm_scdc_set_high_tmds_clock_ratio(i2c_adapter*, bool)'
  [A] 'function bool drm_scdc_set_scrambling(i2c_adapter*, bool)'
  [A] 'function ssize_t drm_scdc_write(i2c_adapter*, u8, void*, size_t)'
  [A] 'function void drm_self_refresh_helper_cleanup(drm_crtc*)'
  [A] 'function int drm_self_refresh_helper_init(drm_crtc*)'
  [A] 'function u8 dw_pcie_find_capability(dw_pcie*, u8)'
  [A] 'function u16 dw_pcie_find_ext_capability(dw_pcie*, u8)'
  [A] 'function int dw_pcie_link_up(dw_pcie*)'
  [A] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)'
  [A] 'function int ehci_hub_control(usb_hcd*, u16, u16, u16, char*, u16)'
  [A] 'function void ehci_init_driver(hc_driver*, const ehci_driver_overrides*)'
  [A] 'function int ehci_setup(usb_hcd*)'
  [A] 'function int ethnl_cable_test_fault_length(phy_device*, u8, u32)'
  [A] 'function int ethnl_cable_test_result(phy_device*, u8, u8)'
  [A] 'function int fb_get_options(const char*, char**)'
  [A] 'function loff_t fixed_size_llseek(file*, loff_t, int, loff_t)'
  [A] 'function void generic_shutdown_super(super_block*)'
  [A] 'function irqreturn_t genphy_handle_interrupt_no_ack(phy_device*)'
  [A] 'function int genphy_read_abilities(phy_device*)'
  [A] 'function int genphy_read_lpa(phy_device*)'
  [A] 'function int genphy_read_mmd_unsupported(phy_device*, int, u16)'
  [A] 'function int genphy_read_status(phy_device*)'
  [A] 'function int genphy_restart_aneg(phy_device*)'
  [A] 'function int genphy_soft_reset(phy_device*)'
  [A] 'function int genphy_suspend(phy_device*)'
  [A] 'function int genphy_update_link(phy_device*)'
  [A] 'function int genphy_write_mmd_unsupported(phy_device*, int, u16, u16)'
  [A] 'function int gpiod_set_array_value_cansleep(unsigned int, gpio_desc**, gpio_array*, unsigned long int*)'
  [A] 'function int hdmi_avi_infoframe_check(hdmi_avi_infoframe*)'
  [A] 'function void hdmi_avi_infoframe_init(hdmi_avi_infoframe*)'
  [A] 'function ssize_t hdmi_avi_infoframe_pack(hdmi_avi_infoframe*, void*, size_t)'
  [A] 'function ssize_t hdmi_drm_infoframe_pack(hdmi_drm_infoframe*, void*, size_t)'
  [A] 'function ssize_t hdmi_vendor_infoframe_pack(hdmi_vendor_infoframe*, void*, size_t)'
  [A] 'function int i3c_device_do_priv_xfers(i3c_device*, i3c_priv_xfer*, int)'
  [A] 'function const i3c_device_id* i3c_device_match_id(i3c_device*, const i3c_device_id*)'
  [A] 'function int i3c_driver_register_with_owner(i3c_driver*, module*)'
  [A] 'function void i3c_driver_unregister(i3c_driver*)'
  [A] 'function int iio_device_claim_direct_mode(iio_dev*)'
  [A] 'function void iio_device_release_direct_mode(iio_dev*)'
  [A] 'function int iio_push_event(iio_dev*, u64, s64)'
  [A] 'function int iio_read_mount_matrix(device*, iio_mount_matrix*)'
  [A] 'function ssize_t iio_show_mount_matrix(iio_dev*, uintptr_t, const iio_chan_spec*, char*)'
  [A] 'function int ir_raw_event_store_edge(rc_dev*, bool)'
  [A] 'function irq_domain* irq_domain_add_legacy(device_node*, unsigned int, unsigned int, irq_hw_number_t, const irq_domain_ops*, void*)'
  [A] 'function void irq_gc_ack_set_bit(irq_data*)'
  [A] 'function void irq_gc_mask_clr_bit(irq_data*)'
  [A] 'function void irq_gc_mask_set_bit(irq_data*)'
  [A] 'function int iw_handler_get_spy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_get_thrspy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_set_spy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_set_thrspy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function char* iwe_stream_add_event(iw_request_info*, char*, char*, iw_event*, int)'
  [A] 'function char* iwe_stream_add_point(iw_request_info*, char*, char*, iw_event*, char*)'
  [A] 'function char* iwe_stream_add_value(iw_request_info*, char*, char*, char*, iw_event*, int)'
  [A] 'function void lockref_get(lockref*)'
  [A] 'function void logfc(fc_log*, const char*, char, const char*, ...)'
  [A] 'function int lookup_bdev(const char*, dev_t*)'
  [A] 'function void mctrl_gpio_disable_ms(mctrl_gpios*)'
  [A] 'function void mctrl_gpio_enable_ms(mctrl_gpios*)'
  [A] 'function unsigned int mctrl_gpio_get(mctrl_gpios*, unsigned int*)'
  [A] 'function mctrl_gpios* mctrl_gpio_init(uart_port*, unsigned int)'
  [A] 'function void mctrl_gpio_set(mctrl_gpios*, unsigned int)'
  [A] 'function void mdio_device_reset(mdio_device*, int)'
  [A] 'function bool mdiobus_is_registered_device(mii_bus*, int)'
  [A] 'function int mdiobus_read(mii_bus*, int, u32)'
  [A] 'function int mdiobus_write(mii_bus*, int, u32, u16)'
  [A] 'function void media_graph_walk_cleanup(media_graph*)'
  [A] 'function int media_graph_walk_init(media_graph*, media_device*)'
  [A] 'function int mipi_dsi_dcs_enter_sleep_mode(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_exit_sleep_mode(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_get_display_brightness(mipi_dsi_device*, u16*)'
  [A] 'function int mipi_dsi_dcs_set_display_off(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_set_display_on(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_set_pixel_format(mipi_dsi_device*, u8)'
  [A] 'function int mipi_dsi_dcs_set_tear_on(mipi_dsi_device*, mipi_dsi_dcs_tear_mode)'
  [A] 'function int mipi_dsi_dcs_set_tear_scanline(mipi_dsi_device*, u16)'
  [A] 'function int mipi_dsi_dcs_soft_reset(mipi_dsi_device*)'
  [A] 'function int mmc_gpio_set_cd_wake(mmc_host*, bool)'
  [A] 'function int mmc_hw_reset(mmc_host*)'
  [A] 'function int mmc_of_parse_voltage(mmc_host*, u32*)'
  [A] 'function int mmc_pwrseq_register(mmc_pwrseq*)'
  [A] 'function void mmc_pwrseq_unregister(mmc_pwrseq*)'
  [A] 'function void mmc_retune_timer_stop(mmc_host*)'
  [A] 'function nvmem_device* nvmem_register(const nvmem_config*)'
  [A] 'function void nvmem_unregister(nvmem_device*)'
  [A] 'function int of_drm_get_panel_orientation(const device_node*, drm_panel_orientation*)'
  [A] 'function gen_pool* of_gen_pool_get(device_node*, const char*, int)'
  [A] 'function int of_get_display_timing(const device_node*, const char*, display_timing*)'
  [A] 'function int of_get_phy_mode(device_node*, phy_interface_t*)'
  [A] 'function int of_get_videomode(device_node*, videomode*, int)'
  [A] 'function device_node* of_graph_get_port_by_id(device_node*, u32)'
  [A] 'function int of_mdiobus_register(mii_bus*, device_node*)'
  [A] 'function phy_device* of_phy_connect(net_device*, device_node*, void (net_device*)*, u32, phy_interface_t)'
  [A] 'function void of_phy_deregister_fixed_link(device_node*)'
  [A] 'function phy_device* of_phy_find_device(device_node*)'
  [A] 'function bool of_phy_is_fixed_link(device_node*)'
  [A] 'function int of_phy_register_fixed_link(device_node*)'
  [A] 'function pwm_device* of_pwm_xlate_with_flags(pwm_chip*, const of_phandle_args*)'
  [A] 'function int of_regulator_match(device*, device_node*, of_regulator_match*, unsigned int)'
  [A] 'function usb_phy_interface of_usb_get_phy_mode(device_node*)'
  [A] 'function int of_usb_update_otg_caps(device_node*, usb_otg_caps*)'
  [A] 'function int pci_msi_enabled()'
  [A] 'function int phy_drivers_register(phy_driver*, int, module*)'
  [A] 'function void phy_drivers_unregister(phy_driver*, int)'
  [A] 'function void phy_error(phy_device*)'
  [A] 'function int phy_ethtool_get_eee(phy_device*, ethtool_eee*)'
  [A] 'function int phy_ethtool_set_eee(phy_device*, ethtool_eee*)'
  [A] 'function int phy_init_eee(phy_device*, bool)'
  [A] 'function int phy_init_hw(phy_device*)'
  [A] 'function int phy_mipi_dphy_get_default_config(unsigned long int, unsigned int, unsigned int, phy_configure_opts_mipi_dphy*)'
  [A] 'function int phy_modify(phy_device*, u32, u16, u16)'
  [A] 'function int phy_modify_changed(phy_device*, u32, u16, u16)'
  [A] 'function int phy_modify_mmd(phy_device*, int, u32, u16, u16)'
  [A] 'function int phy_modify_paged(phy_device*, int, u32, u16, u16)'
  [A] 'function int phy_modify_paged_changed(phy_device*, int, u32, u16, u16)'
  [A] 'function int phy_read_mmd(phy_device*, int, u32)'
  [A] 'function int phy_read_paged(phy_device*, int, u32)'
  [A] 'function void phy_remove_link_mode(phy_device*, u32)'
  [A] 'function int phy_reset_after_clk_enable(phy_device*)'
  [A] 'function void phy_resolve_aneg_pause(phy_device*)'
  [A] 'function int phy_restore_page(phy_device*, int, int)'
  [A] 'function int phy_select_page(phy_device*, int)'
  [A] 'function int phy_set_max_speed(phy_device*, u32)'
  [A] 'function void phy_set_sym_pause(phy_device*, bool, bool, bool)'
  [A] 'function int phy_start_aneg(phy_device*)'
  [A] 'function void phy_support_sym_pause(phy_device*)'
  [A] 'function void phy_trigger_machine(phy_device*)'
  [A] 'function int phy_validate(phy*, phy_mode, int, phy_configure_opts*)'
  [A] 'function int phy_write_mmd(phy_device*, int, u32, u16)'
  [A] 'function int phy_write_paged(phy_device*, int, u32, u16)'
  [A] 'function group_desc* pinctrl_generic_get_group(pinctrl_dev*, unsigned int)'
  [A] 'function power_supply* power_supply_get_by_phandle(device_node*, const char*)'
  [A] 'function void ptp_clock_event(ptp_clock*, ptp_clock_event*)'
  [A] 'function int ptp_clock_index(ptp_clock*)'
  [A] 'function ptp_clock* ptp_clock_register(ptp_clock_info*, device*)'
  [A] 'function int ptp_clock_unregister(ptp_clock*)'
  [A] 'function int regmap_add_irq_chip(regmap*, int, int, int, const regmap_irq_chip*, regmap_irq_chip_data**)'
  [A] 'function int regmap_attach_dev(device*, regmap*, const regmap_config*)'
  [A] 'function void regmap_del_irq_chip(int, regmap_irq_chip_data*)'
  [A] 'function int regmap_reinit_cache(regmap*, const regmap_config*)'
  [A] 'function void regulator_bulk_free(int, regulator_bulk_data*)'
  [A] 'function int regulator_desc_list_voltage_linear_range(const regulator_desc*, unsigned int)'
  [A] 'function int regulator_map_voltage_ascend(regulator_dev*, int, int)'
  [A] 'function int regulator_set_ramp_delay_regmap(regulator_dev*, int)'
  [A] 'function void reset_controller_unregister(reset_controller_dev*)'
  [A] 'function void* rproc_da_to_va(rproc*, u64, size_t, bool*)'
  [A] 'function resource_table* rproc_elf_find_loaded_rsc_table(rproc*, const firmware*)'
  [A] 'function int rproc_elf_load_rsc_table(rproc*, const firmware*)'
  [A] 'function int rproc_elf_load_segments(rproc*, const firmware*)'
  [A] 'function int rproc_elf_sanity_check(rproc*, const firmware*)'
  [A] 'function int rproc_of_parse_firmware(device*, int, const char**)'
  [A] 'function void sdhci_dumpregs(sdhci_host*)'
  [A] 'function int sdhci_execute_tuning(mmc_host*, u32)'
  [A] 'function int sdhci_resume_host(sdhci_host*)'
  [A] 'function int sdhci_suspend_host(sdhci_host*)'
  [A] 'function scatterlist* sg_last(scatterlist*, unsigned int)'
  [A] 'function super_block* sget_fc(fs_context*, int (super_block*, fs_context*)*, int (super_block*, fs_context*)*)'
  [A] 'function int snd_compr_malloc_pages(snd_compr_stream*, size_t)'
  [A] 'function int snd_dmaengine_pcm_prepare_slave_config(snd_pcm_substream*, snd_pcm_hw_params*, dma_slave_config*)'
  [A] 'function int snd_dmaengine_pcm_refine_runtime_hwparams(snd_pcm_substream*, snd_dmaengine_dai_dma_data*, snd_pcm_hardware*, dma_chan*)'
  [A] 'function void snd_dmaengine_pcm_set_config_from_dai_data(const snd_pcm_substream*, const snd_dmaengine_dai_dma_data*, dma_slave_config*)'
  [A] 'function int snd_hwparams_to_dma_slave_config(const snd_pcm_substream*, const snd_pcm_hw_params*, dma_slave_config*)'
  [A] 'function int snd_interval_ranges(snd_interval*, unsigned int, const snd_interval*, unsigned int)'
  [A] 'function int snd_pcm_format_big_endian(snd_pcm_format_t)'
  [A] 'function int snd_pcm_format_linear(snd_pcm_format_t)'
  [A] 'function int snd_pcm_format_unsigned(snd_pcm_format_t)'
  [A] 'function int snd_pcm_hw_constraint_ratnums(snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t, const snd_pcm_hw_constraint_ratnums*)'
  [A] 'function int snd_pcm_set_managed_buffer(snd_pcm_substream*, int, device*, size_t, size_t)'
  [A] 'function int snd_soc_bytes_get(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_bytes_info(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function int snd_soc_bytes_put(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_dai_active(snd_soc_dai*)'
  [A] 'function int snd_soc_dai_set_bclk_ratio(snd_soc_dai*, unsigned int)'
  [A] 'function int snd_soc_dapm_disable_pin_unlocked(snd_soc_dapm_context*, const char*)'
  [A] 'function int snd_soc_dapm_force_bias_level(snd_soc_dapm_context*, snd_soc_bias_level)'
  [A] 'function int snd_soc_dapm_force_enable_pin_unlocked(snd_soc_dapm_context*, const char*)'
  [A] 'function int snd_soc_dapm_sync_unlocked(snd_soc_dapm_context*)'
  [A] 'function snd_pcm_substream* snd_soc_dpcm_get_substream(snd_soc_pcm_runtime*, int)'
  [A] 'function snd_soc_dai* snd_soc_find_dai(const snd_soc_dai_link_component*)'
  [A] 'function int snd_soc_get_dai_name(const of_phandle_args*, const char**)'
  [A] 'function snd_soc_pcm_runtime* snd_soc_get_pcm_runtime(snd_soc_card*, snd_soc_dai_link*)'
  [A] 'function int snd_soc_info_xr_sx(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function int snd_soc_jack_add_gpios(snd_soc_jack*, int, snd_soc_jack_gpio*)'
  [A] 'function void snd_soc_jack_notifier_register(snd_soc_jack*, notifier_block*)'
  [A] 'function int snd_soc_limit_volume(snd_soc_card*, const char*, int)'
  [A] 'function snd_soc_component* snd_soc_lookup_component(device*, const char*)'
  [A] 'function snd_soc_component* snd_soc_lookup_component_nolocked(device*, const char*)'
  [A] 'function void snd_soc_of_parse_node_prefix(device_node*, snd_soc_codec_conf*, device_node*, const char*)'
  [A] 'function int snd_soc_params_to_frame_size(snd_pcm_hw_params*)'
  [A] 'function int snd_soc_runtime_calc_hw(snd_soc_pcm_runtime*, snd_pcm_hardware*, int)'
  [A] 'function int snd_soc_tplg_component_load(snd_soc_component*, snd_soc_tplg_ops*, const firmware*)'
  [A] 'function int snd_soc_tplg_component_remove(snd_soc_component*)'
  [A] 'function int snd_soc_tplg_widget_bind_event(snd_soc_dapm_widget*, const snd_soc_tplg_widget_events*, int, u16)'
  [A] 'function const soc_device_attribute* soc_device_match(const soc_device_attribute*)'
  [A] 'function int spi_mem_adjust_op_size(spi_mem*, spi_mem_op*)'
  [A] 'function bool spi_mem_default_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function ssize_t spi_mem_dirmap_read(spi_mem_dirmap_desc*, u64, size_t, void*)'
  [A] 'function ssize_t spi_mem_dirmap_write(spi_mem_dirmap_desc*, u64, size_t, void*)'
  [A] 'function int spi_mem_driver_register_with_owner(spi_mem_driver*, module*)'
  [A] 'function void spi_mem_driver_unregister(spi_mem_driver*)'
  [A] 'function bool spi_mem_dtr_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function int spi_mem_exec_op(spi_mem*, const spi_mem_op*)'
  [A] 'function const char* spi_mem_get_name(spi_mem*)'
  [A] 'function bool spi_mem_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function int thermal_zone_bind_cooling_device(thermal_zone_device*, int, thermal_cooling_device*, unsigned long int, unsigned long int, unsigned int)'
  [A] 'function void touchscreen_parse_properties(input_dev*, bool, touchscreen_properties*)'
  [A] 'function void touchscreen_report_pos(input_dev*, const touchscreen_properties*, unsigned int, unsigned int, bool)'
  [A] 'function void tso_build_data(const sk_buff*, tso_t*, int)'
  [A] 'function void tso_build_hdr(const sk_buff*, char*, tso_t*, int, bool)'
  [A] 'function int tso_count_descs(const sk_buff*)'
  [A] 'function int tso_start(sk_buff*, tso_t*)'
  [A] 'function int uart_get_rs485_mode(uart_port*)'
  [A] 'function void uart_handle_cts_change(uart_port*, unsigned int)'
  [A] 'function void uart_handle_dcd_change(uart_port*, unsigned int)'
  [A] 'function int usb_ep_clear_halt(usb_ep*)'
  [A] 'function void usb_ep_fifo_flush(usb_ep*)'
  [A] 'function void usb_gadget_unmap_request_by_dev(device*, usb_request*, int)'
  [A] 'function int usb_gadget_vbus_connect(usb_gadget*)'
  [A] 'function int usb_gadget_vbus_disconnect(usb_gadget*)'
  [A] 'function irqreturn_t usb_hcd_irq(int, void*)'
  [A] 'function void usb_phy_set_event(usb_phy*, unsigned long int)'
  [A] 'function void usb_udc_vbus_handler(usb_gadget*, bool)'
  [A] 'function int v4l2_event_dequeue(v4l2_fh*, v4l2_event*, int)'
  [A] 'function int v4l2_event_pending(v4l2_fh*)'
  [A] 'function int v4l2_g_parm_cap(video_device*, v4l2_subdev*, v4l2_streamparm*)'
  [A] 'function int v4l2_s_parm_cap(video_device*, v4l2_subdev*, v4l2_streamparm*)'
  [A] 'function int vb2_create_bufs(vb2_queue*, v4l2_create_buffers*)'
  [A] 'function int vb2_expbuf(vb2_queue*, v4l2_exportbuffer*)'
  [A] 'function int vb2_prepare_buf(vb2_queue*, media_device*, v4l2_buffer*)'
  [A] 'function size_t vb2_read(vb2_queue*, char*, size_t, loff_t*, int)'

5 Added variables:

  [A] 'const clk_ops clk_fractional_divider_ops'
  [A] 'unsigned int hrtimer_resolution'
  [A] 'const kernel_param_ops param_ops_ullong'
  [A] 'unsigned long int phy_basic_t1_features[2]'
  [A] 'void ()* pm_power_off_prepare'

Bug: 229646648
Signed-off-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
Change-Id: Ib810e197c441525349d41027bf1ee43805b2c10a
2022-04-21 16:36:05 -07:00
2022-04-20 08:18:54 +02:00
2022-04-20 08:18:54 +02:00
2022-04-20 08:18:54 +02:00
2022-04-20 08:18:54 +02:00
2022-04-20 08:18:54 +02:00
2022-04-20 08:18:54 +02:00
2021-10-18 20:22:03 -10:00
2022-03-17 14:02:09 +01:00
2022-04-20 08:18:54 +02: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%