Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:0a7cdb7fe4
ANDROID: Update symbol list for mtkdccb021dc4
ANDROID: iommu: Add vendor hook to tracing iova alloc & free in iova_domainbefb2a75ab
ANDROID: iommu: vendor_hook: remove the obsolete codeb01ae5f1b4
ANDROID: GKI: rockchip: Enable dummy_irq_chip for pciefc90aa522f
ANDROID: tracing: fix register tracing spam on memcpyd5aea3dbfb
BACKPORT: FROMGIT: scsi: ufs: core: Stop clearing unit attentions2b411f1257
BACKPORT: FROMGIT: scsi: ufs: core: Retry START_STOP on UNIT_ATTENTIONf0ad57ddd7
ANDROID: GKI: rockchip: Enable symbols for rockchip-drmdfdc93d7c4
ANDROID: GKI: rockchip: Enable symbols for iommu8846927a02
ANDROID: GKI: rockchip: Enable symbols for dwc2 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Id8f7ecf3628ab237b74bc176f4e9e8f3b33ae3b3
This commit is contained in:
commit
3cce4e4a1b
@ -1928,7 +1928,9 @@
|
||||
__traceiter_android_vh_freq_qos_update_request
|
||||
__traceiter_android_vh_freq_qos_remove_request
|
||||
__traceiter_android_vh_iommu_alloc_iova
|
||||
__traceiter_android_vh_iommu_iovad_alloc_iova
|
||||
__traceiter_android_vh_iommu_free_iova
|
||||
__traceiter_android_vh_iommu_iovad_free_iova
|
||||
__traceiter_android_vh_ipv6_gen_linklocal_addr
|
||||
__traceiter_android_vh_logbuf
|
||||
__traceiter_android_vh_override_creds
|
||||
@ -2004,7 +2006,9 @@
|
||||
__tracepoint_android_vh_freq_qos_update_request
|
||||
__tracepoint_android_vh_freq_qos_remove_request
|
||||
__tracepoint_android_vh_iommu_alloc_iova
|
||||
__tracepoint_android_vh_iommu_iovad_alloc_iova
|
||||
__tracepoint_android_vh_iommu_free_iova
|
||||
__tracepoint_android_vh_iommu_iovad_free_iova
|
||||
__tracepoint_android_vh_ipv6_gen_linklocal_addr
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_override_creds
|
||||
|
@ -139,9 +139,11 @@
|
||||
devm_of_clk_add_hw_provider
|
||||
__devm_of_phy_provider_register
|
||||
devm_phy_create
|
||||
devm_phy_get
|
||||
devm_pinctrl_get
|
||||
devm_platform_get_and_ioremap_resource
|
||||
devm_platform_ioremap_resource
|
||||
devm_platform_ioremap_resource_byname
|
||||
devm_power_supply_register
|
||||
devm_pwm_get
|
||||
__devm_regmap_init_i2c
|
||||
@ -188,6 +190,7 @@
|
||||
drm_display_info_set_bus_formats
|
||||
drm_get_edid
|
||||
drm_mode_vrefresh
|
||||
dummy_irq_chip
|
||||
enable_irq
|
||||
extcon_get_edev_by_phandle
|
||||
extcon_get_state
|
||||
@ -205,6 +208,7 @@
|
||||
fwnode_property_present
|
||||
fwnode_property_read_string
|
||||
fwnode_property_read_u32_array
|
||||
generic_handle_irq
|
||||
get_device
|
||||
gic_nonsecure_priorities
|
||||
gpiochip_add_pin_range
|
||||
@ -219,6 +223,7 @@
|
||||
gpiod_set_consumer_name
|
||||
gpiod_set_value
|
||||
gpiod_set_value_cansleep
|
||||
handle_simple_irq
|
||||
hid_debug
|
||||
hid_hw_close
|
||||
hid_hw_open
|
||||
@ -258,10 +263,17 @@
|
||||
input_set_abs_params
|
||||
__ioremap
|
||||
iounmap
|
||||
__irq_domain_add
|
||||
irq_domain_remove
|
||||
irq_find_mapping
|
||||
irq_get_irq_data
|
||||
irq_set_chained_handler_and_data
|
||||
irq_set_chip_and_handler_name
|
||||
irq_set_chip_data
|
||||
irq_set_irq_wake
|
||||
jiffies
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
kernel_neon_begin
|
||||
kernel_neon_end
|
||||
kfree
|
||||
@ -308,6 +320,7 @@
|
||||
nr_cpu_ids
|
||||
nvmem_cell_put
|
||||
nvmem_cell_read
|
||||
of_address_to_resource
|
||||
of_alias_get_id
|
||||
of_clk_add_provider
|
||||
of_clk_del_provider
|
||||
@ -349,6 +362,10 @@
|
||||
param_ops_uint
|
||||
__per_cpu_offset
|
||||
pfn_valid
|
||||
phy_exit
|
||||
phy_init
|
||||
phy_power_off
|
||||
phy_power_on
|
||||
pinctrl_dev_get_drvdata
|
||||
pinctrl_lookup_state
|
||||
pinctrl_select_state
|
||||
@ -356,6 +373,7 @@
|
||||
__platform_driver_register
|
||||
platform_driver_unregister
|
||||
platform_get_irq
|
||||
platform_get_irq_byname
|
||||
platform_get_resource
|
||||
platform_get_resource_byname
|
||||
pm_power_off
|
||||
@ -687,6 +705,52 @@
|
||||
watchdog_set_restart_priority
|
||||
watchdog_unregister_device
|
||||
|
||||
# required by dwc2.ko
|
||||
__bitmap_clear
|
||||
bitmap_find_next_zero_area_off
|
||||
dev_driver_string
|
||||
device_set_wakeup_capable
|
||||
device_wakeup_enable
|
||||
devm_usb_get_phy
|
||||
dma_sync_single_for_cpu
|
||||
dma_sync_single_for_device
|
||||
hrtimer_cancel
|
||||
hrtimer_init
|
||||
hrtimer_start_range_ns
|
||||
is_vmalloc_addr
|
||||
phy_reset
|
||||
_raw_spin_trylock
|
||||
synchronize_irq
|
||||
usb_add_gadget_udc
|
||||
usb_add_hcd
|
||||
usb_calc_bus_time
|
||||
usb_create_hcd
|
||||
usb_debug_root
|
||||
usb_del_gadget_udc
|
||||
usb_disabled
|
||||
usb_ep_set_maxpacket_limit
|
||||
usb_gadget_giveback_request
|
||||
usb_gadget_map_request
|
||||
usb_gadget_set_state
|
||||
usb_gadget_unmap_request
|
||||
usb_get_dr_mode
|
||||
usb_hcd_check_unlink_urb
|
||||
usb_hcd_giveback_urb
|
||||
usb_hcd_link_urb_to_ep
|
||||
usb_hcd_map_urb_for_dma
|
||||
usb_hcd_resume_root_hub
|
||||
usb_hcd_unlink_urb_from_ep
|
||||
usb_hcd_unmap_urb_for_dma
|
||||
usb_hub_clear_tt_buffer
|
||||
usb_phy_set_charger_current
|
||||
usb_put_hcd
|
||||
usb_remove_hcd
|
||||
usb_role_switch_get_drvdata
|
||||
usb_role_switch_register
|
||||
usb_role_switch_unregister
|
||||
usb_speed_string
|
||||
usb_wakeup_enabled_descendants
|
||||
|
||||
# required by fan53555.ko
|
||||
gpiod_get_raw_value
|
||||
gpiod_set_raw_value
|
||||
@ -700,16 +764,12 @@
|
||||
gpiod_count
|
||||
|
||||
# required by gpio-rockchip.ko
|
||||
generic_handle_irq
|
||||
gpiochip_add_data_with_key
|
||||
gpiochip_remove
|
||||
handle_edge_irq
|
||||
handle_level_irq
|
||||
__irq_alloc_domain_generic_chips
|
||||
irq_create_mapping_affinity
|
||||
__irq_domain_add
|
||||
irq_domain_remove
|
||||
irq_find_mapping
|
||||
irq_gc_ack_set_bit
|
||||
irq_gc_mask_clr_bit
|
||||
irq_gc_mask_set_bit
|
||||
@ -717,8 +777,6 @@
|
||||
irq_generic_chip_ops
|
||||
irq_get_domain_generic_chip
|
||||
irq_of_parse_and_map
|
||||
irq_set_chained_handler_and_data
|
||||
of_address_to_resource
|
||||
of_pinctrl_get
|
||||
|
||||
# required by grf.ko
|
||||
@ -857,7 +915,6 @@
|
||||
ida_destroy
|
||||
ida_free
|
||||
init_srcu_struct
|
||||
kasprintf
|
||||
kobject_uevent_env
|
||||
ktime_get_with_offset
|
||||
list_sort
|
||||
@ -1042,7 +1099,6 @@
|
||||
v4l2_subdev_init
|
||||
|
||||
# required by phy-rockchip-inno-dsidphy.ko
|
||||
devm_platform_ioremap_resource_byname
|
||||
phy_mipi_dphy_config_validate
|
||||
|
||||
# required by phy-rockchip-inno-hdmi-phy.ko
|
||||
@ -1142,6 +1198,24 @@
|
||||
regmap_del_irq_chip
|
||||
regmap_irq_get_domain
|
||||
|
||||
# required by rockchip-iommu.ko
|
||||
bus_set_iommu
|
||||
device_link_add
|
||||
device_link_del
|
||||
get_zeroed_page
|
||||
iommu_device_register
|
||||
iommu_device_sysfs_add
|
||||
iommu_device_sysfs_remove
|
||||
iommu_get_dma_cookie
|
||||
iommu_group_alloc
|
||||
iommu_group_put
|
||||
iommu_group_ref_get
|
||||
iommu_put_dma_cookie
|
||||
platform_bus_type
|
||||
platform_irq_count
|
||||
report_iommu_fault
|
||||
strstr
|
||||
|
||||
# required by rockchip-rng.ko
|
||||
devm_hwrng_register
|
||||
devm_of_iomap
|
||||
@ -1190,7 +1264,6 @@
|
||||
input_unregister_handle
|
||||
__memset_io
|
||||
of_devfreq_cooling_register_power
|
||||
platform_get_irq_byname
|
||||
|
||||
# required by rockchip_dmc_common.ko
|
||||
down_write_trylock
|
||||
@ -1221,6 +1294,226 @@
|
||||
thermal_zone_device_enable
|
||||
thermal_zone_device_update
|
||||
|
||||
# required by rockchipdrm.ko
|
||||
adjust_managed_page_count
|
||||
clk_is_match
|
||||
clk_set_parent
|
||||
component_add
|
||||
component_bind_all
|
||||
component_del
|
||||
component_master_add_with_match
|
||||
component_master_del
|
||||
component_match_add_release
|
||||
component_unbind_all
|
||||
devm_of_phy_get_by_index
|
||||
dma_buf_attach
|
||||
dma_buf_detach
|
||||
dma_buf_map_attachment
|
||||
dma_buf_unmap_attachment
|
||||
dma_get_sgtable_attrs
|
||||
dma_mmap_attrs
|
||||
drm_add_modes_noedid
|
||||
drm_atomic_commit
|
||||
drm_atomic_get_connector_state
|
||||
drm_atomic_get_crtc_state
|
||||
drm_atomic_get_plane_state
|
||||
drm_atomic_helper_check
|
||||
drm_atomic_helper_check_plane_state
|
||||
drm_atomic_helper_cleanup_planes
|
||||
drm_atomic_helper_commit
|
||||
drm_atomic_helper_commit_hw_done
|
||||
drm_atomic_helper_commit_modeset_disables
|
||||
drm_atomic_helper_commit_modeset_enables
|
||||
drm_atomic_helper_commit_planes
|
||||
__drm_atomic_helper_connector_destroy_state
|
||||
__drm_atomic_helper_connector_duplicate_state
|
||||
__drm_atomic_helper_connector_reset
|
||||
__drm_atomic_helper_crtc_destroy_state
|
||||
__drm_atomic_helper_crtc_duplicate_state
|
||||
drm_atomic_helper_dirtyfb
|
||||
__drm_atomic_helper_disable_plane
|
||||
drm_atomic_helper_duplicate_state
|
||||
drm_atomic_helper_fake_vblank
|
||||
drm_atomic_helper_page_flip
|
||||
__drm_atomic_helper_plane_destroy_state
|
||||
__drm_atomic_helper_plane_duplicate_state
|
||||
drm_atomic_helper_set_config
|
||||
drm_atomic_helper_shutdown
|
||||
drm_atomic_helper_swap_state
|
||||
drm_atomic_helper_wait_for_vblanks
|
||||
drm_atomic_set_crtc_for_connector
|
||||
drm_atomic_set_crtc_for_plane
|
||||
drm_atomic_set_fb_for_plane
|
||||
drm_atomic_set_mode_for_crtc
|
||||
drm_atomic_state_alloc
|
||||
__drm_atomic_state_free
|
||||
drm_bridge_attach
|
||||
drm_compat_ioctl
|
||||
drm_connector_init_with_ddc
|
||||
drm_connector_list_iter_begin
|
||||
drm_connector_list_iter_end
|
||||
drm_connector_list_iter_next
|
||||
drm_connector_list_update
|
||||
drm_connector_unregister
|
||||
drm_crtc_cleanup
|
||||
drm_crtc_enable_color_mgmt
|
||||
drm_crtc_from_index
|
||||
drm_crtc_handle_vblank
|
||||
drm_crtc_init_with_planes
|
||||
drm_crtc_send_vblank_event
|
||||
drm_crtc_vblank_get
|
||||
drm_crtc_vblank_off
|
||||
drm_crtc_vblank_on
|
||||
drm_crtc_vblank_put
|
||||
__drm_dbg
|
||||
drm_debugfs_create_files
|
||||
drm_detect_monitor_audio
|
||||
drm_dev_alloc
|
||||
drm_dev_dbg
|
||||
drm_dev_printk
|
||||
drm_dev_put
|
||||
drm_dev_register
|
||||
drm_dev_unregister
|
||||
drm_do_get_edid
|
||||
drm_dp_bw_code_to_link_rate
|
||||
drm_dp_channel_eq_ok
|
||||
drm_encoder_cleanup
|
||||
drm_encoder_init
|
||||
drm_event_reserve_init_locked
|
||||
drm_flip_work_cleanup
|
||||
drm_flip_work_commit
|
||||
drm_flip_work_init
|
||||
drm_flip_work_queue
|
||||
drm_format_info
|
||||
drm_framebuffer_cleanup
|
||||
drm_framebuffer_init
|
||||
drm_gem_cma_vm_ops
|
||||
drm_gem_dmabuf_export
|
||||
drm_gem_dmabuf_get_uuid
|
||||
drm_gem_dmabuf_mmap
|
||||
drm_gem_dmabuf_release
|
||||
drm_gem_dmabuf_vmap
|
||||
drm_gem_dmabuf_vunmap
|
||||
drm_gem_dumb_map_offset
|
||||
drm_gem_fb_afbc_init
|
||||
drm_gem_fb_create_handle
|
||||
drm_gem_fb_init_with_funcs
|
||||
drm_gem_get_pages
|
||||
drm_gem_handle_create
|
||||
drm_gem_map_attach
|
||||
drm_gem_map_detach
|
||||
drm_gem_map_dma_buf
|
||||
drm_gem_mmap
|
||||
drm_gem_mmap_obj
|
||||
drm_gem_object_free
|
||||
drm_gem_object_init
|
||||
drm_gem_object_lookup
|
||||
drm_gem_object_put_locked
|
||||
drm_gem_object_release
|
||||
drm_gem_prime_fd_to_handle
|
||||
drm_gem_prime_handle_to_fd
|
||||
drm_gem_put_pages
|
||||
drm_gem_unmap_dma_buf
|
||||
drm_gem_vm_close
|
||||
drm_get_format_info
|
||||
drm_get_format_name
|
||||
drm_hdmi_vendor_infoframe_from_display_mode
|
||||
drm_helper_mode_fill_fb_struct
|
||||
drm_ioctl
|
||||
drm_kms_helper_hotplug_event
|
||||
drm_kms_helper_poll_enable
|
||||
drm_kms_helper_poll_fini
|
||||
drm_kms_helper_poll_init
|
||||
drm_match_cea_mode
|
||||
drm_mm_init
|
||||
drm_mm_insert_node_in_range
|
||||
drmm_mode_config_init
|
||||
drm_mm_print
|
||||
drm_mm_remove_node
|
||||
drm_mm_takedown
|
||||
drm_mode_config_cleanup
|
||||
drm_mode_config_helper_resume
|
||||
drm_mode_config_helper_suspend
|
||||
drm_mode_config_reset
|
||||
drm_mode_copy
|
||||
drm_mode_create_tv_properties
|
||||
drm_mode_crtc_set_gamma_size
|
||||
drm_mode_debug_printmodeline
|
||||
drm_mode_object_get
|
||||
drm_mode_object_put
|
||||
drm_mode_prune_invalid
|
||||
drm_mode_set_crtcinfo
|
||||
drm_modeset_lock_all
|
||||
drm_modeset_unlock_all
|
||||
drm_mode_sort
|
||||
drm_mode_validate_driver
|
||||
drm_mode_validate_size
|
||||
drm_mode_validate_ycbcr420
|
||||
drm_object_attach_property
|
||||
drm_of_crtc_port_mask
|
||||
drm_of_encoder_active_endpoint
|
||||
drm_of_find_panel_or_bridge
|
||||
drm_open
|
||||
drm_panel_bridge_add_typed
|
||||
drm_panel_bridge_remove
|
||||
drm_panel_enable
|
||||
drm_panel_get_modes
|
||||
drm_panel_prepare
|
||||
drm_plane_cleanup
|
||||
drm_plane_create_alpha_property
|
||||
drm_plane_create_blend_mode_property
|
||||
drm_plane_create_rotation_property
|
||||
drm_plane_create_zpos_property
|
||||
drm_poll
|
||||
drm_prime_gem_destroy
|
||||
drm_prime_get_contiguous_size
|
||||
drm_prime_pages_to_sg
|
||||
drm_prime_sg_to_page_addr_arrays
|
||||
__drm_printfn_seq_file
|
||||
drm_property_create_bitmask
|
||||
drm_property_create_object
|
||||
drm_property_create_range
|
||||
__drm_puts_seq_file
|
||||
drm_read
|
||||
drm_release
|
||||
drm_send_event_locked
|
||||
drm_simple_encoder_init
|
||||
drm_universal_plane_init
|
||||
drm_vblank_init
|
||||
drm_writeback_connector_init
|
||||
drm_writeback_queue_job
|
||||
drm_writeback_signal_completion
|
||||
hdmi_infoframe_pack
|
||||
iommu_attach_device
|
||||
iommu_detach_device
|
||||
iommu_domain_alloc
|
||||
iommu_domain_free
|
||||
iommu_map
|
||||
iommu_map_sg
|
||||
iommu_set_fault_handler
|
||||
iommu_unmap
|
||||
memblock_free
|
||||
ns_to_timespec64
|
||||
of_graph_get_next_endpoint
|
||||
of_graph_get_port_by_id
|
||||
of_graph_get_remote_port
|
||||
of_graph_get_remote_port_parent
|
||||
of_property_match_string
|
||||
of_reserved_mem_device_init_by_idx
|
||||
platform_device_unregister
|
||||
platform_find_device_by_driver
|
||||
__platform_register_drivers
|
||||
platform_unregister_drivers
|
||||
release_firmware
|
||||
request_firmware
|
||||
sort
|
||||
__sw_hweight32
|
||||
__sw_hweight8
|
||||
system_unbound_wq
|
||||
__vmalloc
|
||||
vm_get_page_prot
|
||||
vm_map_pages
|
||||
|
||||
# required by rtc-rk808.ko
|
||||
_bcd2bin
|
||||
_bin2bcd
|
||||
@ -1231,11 +1524,6 @@
|
||||
rtc_update_irq
|
||||
|
||||
# required by sdhci-of-arasan.ko
|
||||
devm_phy_get
|
||||
phy_exit
|
||||
phy_init
|
||||
phy_power_off
|
||||
phy_power_on
|
||||
__sdhci_add_host
|
||||
sdhci_cleanup_host
|
||||
sdhci_cqe_disable
|
||||
|
@ -8,6 +8,7 @@ CFLAGS_armv8_deprecated.o := -I$(src)
|
||||
CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
|
||||
CFLAGS_REMOVE_insn.o = $(CC_FLAGS_FTRACE)
|
||||
CFLAGS_REMOVE_return_address.o = $(CC_FLAGS_FTRACE)
|
||||
CFLAGS_io.o := -D__DISABLE_TRACE_MMIO__
|
||||
|
||||
# Object file lists.
|
||||
obj-y := debug-monitors.o entry.o irq.o fpsimd.o \
|
||||
|
@ -202,7 +202,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_mem_abort);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sp_pc_abort);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_setup_dma_ops);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_alloc_iova);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_alloc_iova);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_free_iova);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_free_iova);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_alloc_start);
|
||||
|
@ -490,6 +490,7 @@ static dma_addr_t iommu_dma_alloc_iova(struct iommu_domain *domain,
|
||||
true);
|
||||
|
||||
trace_android_vh_iommu_alloc_iova(dev, (dma_addr_t)iova << shift, size);
|
||||
trace_android_vh_iommu_iovad_alloc_iova(dev, iovad, (dma_addr_t)iova << shift, size);
|
||||
|
||||
return (dma_addr_t)iova << shift;
|
||||
}
|
||||
@ -510,6 +511,7 @@ static void iommu_dma_free_iova(struct iommu_dma_cookie *cookie,
|
||||
size >> iova_shift(iovad));
|
||||
|
||||
trace_android_vh_iommu_free_iova(iova, size);
|
||||
trace_android_vh_iommu_iovad_free_iova(iovad, iova, size);
|
||||
}
|
||||
|
||||
static void __iommu_dma_unmap(struct device *dev, dma_addr_t dma_addr,
|
||||
|
@ -226,7 +226,6 @@ static int ufshcd_reset_and_restore(struct ufs_hba *hba);
|
||||
static int ufshcd_eh_host_reset_handler(struct scsi_cmnd *cmd);
|
||||
static int ufshcd_clear_tm_cmd(struct ufs_hba *hba, int tag);
|
||||
static void ufshcd_hba_exit(struct ufs_hba *hba);
|
||||
static int ufshcd_clear_ua_wluns(struct ufs_hba *hba);
|
||||
static int ufshcd_probe_hba(struct ufs_hba *hba, bool async);
|
||||
static int ufshcd_setup_clocks(struct ufs_hba *hba, bool on);
|
||||
static inline void ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba);
|
||||
@ -4086,8 +4085,6 @@ int ufshcd_link_recovery(struct ufs_hba *hba)
|
||||
if (ret)
|
||||
dev_err(hba->dev, "%s: link recovery failed, err %d",
|
||||
__func__, ret);
|
||||
else
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -5949,7 +5946,6 @@ static void ufshcd_err_handling_unprepare(struct ufs_hba *hba)
|
||||
ufshcd_release(hba);
|
||||
if (ufshcd_is_clkscaling_supported(hba))
|
||||
ufshcd_clk_scaling_suspend(hba, false);
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
pm_runtime_put(hba->dev);
|
||||
}
|
||||
|
||||
@ -7861,8 +7857,6 @@ static int ufshcd_add_lus(struct ufs_hba *hba)
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
|
||||
/* Initialize devfreq after UFS device is detected */
|
||||
if (ufshcd_is_clkscaling_supported(hba)) {
|
||||
memcpy(&hba->clk_scaling.saved_pwr_info.info,
|
||||
@ -7888,63 +7882,6 @@ static int ufshcd_add_lus(struct ufs_hba *hba)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
ufshcd_send_request_sense(struct ufs_hba *hba, struct scsi_device *sdp);
|
||||
|
||||
static int ufshcd_clear_ua_wlun(struct ufs_hba *hba, u8 wlun)
|
||||
{
|
||||
struct scsi_device *sdp;
|
||||
unsigned long flags;
|
||||
int ret = 0;
|
||||
|
||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||
if (wlun == UFS_UPIU_UFS_DEVICE_WLUN)
|
||||
sdp = hba->sdev_ufs_device;
|
||||
else if (wlun == UFS_UPIU_RPMB_WLUN)
|
||||
sdp = hba->sdev_rpmb;
|
||||
else
|
||||
BUG();
|
||||
if (sdp) {
|
||||
ret = scsi_device_get(sdp);
|
||||
if (!ret && !scsi_device_online(sdp)) {
|
||||
ret = -ENODEV;
|
||||
scsi_device_put(sdp);
|
||||
}
|
||||
} else {
|
||||
ret = -ENODEV;
|
||||
}
|
||||
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||
if (ret)
|
||||
goto out_err;
|
||||
|
||||
ret = ufshcd_send_request_sense(hba, sdp);
|
||||
scsi_device_put(sdp);
|
||||
out_err:
|
||||
if (ret)
|
||||
dev_err(hba->dev, "%s: UAC clear LU=%x ret = %d\n",
|
||||
__func__, wlun, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ufshcd_clear_ua_wluns(struct ufs_hba *hba)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!hba->wlun_dev_clr_ua)
|
||||
goto out;
|
||||
|
||||
ret = ufshcd_clear_ua_wlun(hba, UFS_UPIU_UFS_DEVICE_WLUN);
|
||||
if (!ret)
|
||||
ret = ufshcd_clear_ua_wlun(hba, UFS_UPIU_RPMB_WLUN);
|
||||
if (!ret)
|
||||
hba->wlun_dev_clr_ua = false;
|
||||
out:
|
||||
if (ret)
|
||||
dev_err(hba->dev, "%s: Failed to clear UAC WLUNS ret = %d\n",
|
||||
__func__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* ufshcd_probe_hba - probe hba to detect device and initialize
|
||||
* @hba: per-adapter instance
|
||||
@ -7998,7 +7935,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool async)
|
||||
/* UFS device is also active now */
|
||||
ufshcd_set_ufs_dev_active(hba);
|
||||
ufshcd_force_reset_auto_bkops(hba);
|
||||
hba->wlun_dev_clr_ua = true;
|
||||
|
||||
/* Gear up to HS gear if supported */
|
||||
if (hba->max_pwr_info.is_valid) {
|
||||
@ -8527,35 +8463,6 @@ static void ufshcd_hba_exit(struct ufs_hba *hba)
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
ufshcd_send_request_sense(struct ufs_hba *hba, struct scsi_device *sdp)
|
||||
{
|
||||
unsigned char cmd[6] = {REQUEST_SENSE,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
UFS_SENSE_SIZE,
|
||||
0};
|
||||
char *buffer;
|
||||
int ret;
|
||||
|
||||
buffer = kzalloc(UFS_SENSE_SIZE, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = scsi_execute(sdp, cmd, DMA_FROM_DEVICE, buffer,
|
||||
UFS_SENSE_SIZE, NULL, NULL,
|
||||
msecs_to_jiffies(1000), 3, 0, RQF_PM, NULL);
|
||||
if (ret)
|
||||
pr_err("%s: failed with err %d\n", __func__, ret);
|
||||
|
||||
kfree(buffer);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* ufshcd_set_dev_pwr_mode - sends START STOP UNIT command to set device
|
||||
* power mode
|
||||
@ -8572,7 +8479,7 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba,
|
||||
struct scsi_sense_hdr sshdr;
|
||||
struct scsi_device *sdp;
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
int ret, retries;
|
||||
|
||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||
sdp = hba->sdev_ufs_device;
|
||||
@ -8597,7 +8504,6 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba,
|
||||
* handling context.
|
||||
*/
|
||||
hba->host->eh_noresume = 1;
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
|
||||
cmd[4] = pwr_mode << 4;
|
||||
|
||||
@ -8606,8 +8512,14 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba,
|
||||
* callbacks hence set the RQF_PM flag so that it doesn't resume the
|
||||
* already suspended childs.
|
||||
*/
|
||||
ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
|
||||
START_STOP_TIMEOUT, 0, 0, RQF_PM, NULL);
|
||||
for (retries = 3; retries > 0; --retries) {
|
||||
ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
|
||||
START_STOP_TIMEOUT, 0, 0, RQF_PM, NULL);
|
||||
if (!scsi_status_is_check_condition(ret) ||
|
||||
!scsi_sense_valid(&sshdr) ||
|
||||
sshdr.sense_key != UNIT_ATTENTION)
|
||||
break;
|
||||
}
|
||||
if (ret) {
|
||||
sdev_printk(KERN_WARNING, sdp,
|
||||
"START_STOP failed for power mode: %d, result %x\n",
|
||||
@ -8920,7 +8832,6 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
|
||||
|
||||
hba->clk_gating.is_suspended = false;
|
||||
hba->dev_info.b_rpm_dev_flush_capable = false;
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
ufshcd_release(hba);
|
||||
ufshpb_resume(hba);
|
||||
out:
|
||||
@ -9029,8 +8940,6 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op)
|
||||
cancel_delayed_work(&hba->rpm_dev_flush_recheck_work);
|
||||
}
|
||||
|
||||
ufshcd_clear_ua_wluns(hba);
|
||||
|
||||
/* Schedule clock gating in case of no access to UFS device yet */
|
||||
ufshcd_release(hba);
|
||||
|
||||
|
@ -88,6 +88,21 @@ static inline int scsi_is_wlun(u64 lun)
|
||||
return (lun & 0xff00) == SCSI_W_LUN_BASE;
|
||||
}
|
||||
|
||||
/**
|
||||
* scsi_status_is_check_condition - check the status return.
|
||||
*
|
||||
* @status: the status passed up from the driver (including host and
|
||||
* driver components)
|
||||
*
|
||||
* This returns true if the status code is SAM_STAT_CHECK_CONDITION.
|
||||
*/
|
||||
static inline int scsi_status_is_check_condition(int status)
|
||||
{
|
||||
if (status < 0)
|
||||
return false;
|
||||
status &= 0xfe;
|
||||
return status == SAM_STAT_CHECK_CONDITION;
|
||||
}
|
||||
|
||||
/*
|
||||
* MESSAGE CODES
|
||||
|
@ -12,8 +12,6 @@
|
||||
#include <linux/tracepoint.h>
|
||||
#include <trace/hooks/vendor_hooks.h>
|
||||
|
||||
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
|
||||
|
||||
DECLARE_HOOK(android_vh_iommu_setup_dma_ops,
|
||||
TP_PROTO(struct device *dev, u64 dma_base, u64 size),
|
||||
TP_ARGS(dev, dma_base, size));
|
||||
@ -22,16 +20,20 @@ DECLARE_HOOK(android_vh_iommu_alloc_iova,
|
||||
TP_PROTO(struct device *dev, dma_addr_t iova, size_t size),
|
||||
TP_ARGS(dev, iova, size));
|
||||
|
||||
struct iova_domain;
|
||||
|
||||
DECLARE_HOOK(android_vh_iommu_iovad_alloc_iova,
|
||||
TP_PROTO(struct device *dev, struct iova_domain *iovad, dma_addr_t iova, size_t size),
|
||||
TP_ARGS(dev, iovad, iova, size));
|
||||
|
||||
DECLARE_HOOK(android_vh_iommu_free_iova,
|
||||
TP_PROTO(dma_addr_t iova, size_t size),
|
||||
TP_ARGS(iova, size));
|
||||
#else
|
||||
|
||||
#define trace_android_vh_iommu_setup_dma_ops(dev, dma_base, size)
|
||||
#define trace_android_vh_iommu_alloc_iova(dev, iova, size)
|
||||
#define trace_android_vh_iommu_free_iova(iova, size)
|
||||
DECLARE_HOOK(android_vh_iommu_iovad_free_iova,
|
||||
TP_PROTO(struct iova_domain *iovad, dma_addr_t iova, size_t size),
|
||||
TP_ARGS(iovad, iova, size));
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _TRACE_HOOK_IOMMU_H */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user