tree:   git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next
head:   bc29281af131ae8c02e05322e7fc72829ec555f0
commit: df744ae533131fcb53c15eac7bb3933925eb22b3 [329/336] drm/amdgpu: meld 
together VM fragment and huge page handling
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

   include/net/mac80211.h:977: warning: Function parameter or member 
'rate_driver_data' not described in 'ieee80211_tx_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'rx_stats_avg' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'rx_stats_avg.signal' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'rx_stats_avg.chain_signal' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.filtered' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.retry_failed' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.retry_count' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.lost_packets' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.last_tdls_pkt_time' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.msdu_retries' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.msdu_failed' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.last_ack' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.last_ack_signal' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.ack_signal_filled' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'status_stats.avg_ack_signal' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'tx_stats.packets' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'tx_stats.bytes' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'tx_stats.last_rate' not described in 'sta_info'
   net/mac80211/sta_info.h:588: warning: Function parameter or member 
'tx_stats.msdu' not described in 'sta_info'
   include/linux/mod_devicetable.h:763: warning: Function parameter or member 
'driver_data' not described in 'typec_device_id'
   kernel/sched/fair.c:3371: warning: Function parameter or member 'flags' not 
described in 'attach_entity_load_avg'
   arch/x86/include/asm/atomic.h:84: warning: Excess function parameter 'i' 
description in 'arch_atomic_sub_and_test'
   arch/x86/include/asm/atomic.h:84: warning: Excess function parameter 'v' 
description in 'arch_atomic_sub_and_test'
   arch/x86/include/asm/atomic.h:96: warning: Excess function parameter 'v' 
description in 'arch_atomic_inc'
   arch/x86/include/asm/atomic.h:109: warning: Excess function parameter 'v' 
description in 'arch_atomic_dec'
   arch/x86/include/asm/atomic.h:124: warning: Excess function parameter 'v' 
description in 'arch_atomic_dec_and_test'
   arch/x86/include/asm/atomic.h:138: warning: Excess function parameter 'v' 
description in 'arch_atomic_inc_and_test'
   arch/x86/include/asm/atomic.h:153: warning: Excess function parameter 'i' 
description in 'arch_atomic_add_negative'
   arch/x86/include/asm/atomic.h:153: warning: Excess function parameter 'v' 
description in 'arch_atomic_add_negative'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_excl.cb' not described in 'dma_buf'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_excl.poll' not described in 'dma_buf'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_excl.active' not described in 'dma_buf'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_shared.cb' not described in 'dma_buf'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_shared.poll' not described in 'dma_buf'
   include/linux/dma-buf.h:304: warning: Function parameter or member 
'cb_shared.active' not described in 'dma_buf'
   include/linux/dma-fence-array.h:54: warning: Function parameter or member 
'work' not described in 'dma_fence_array'
   include/linux/gpio/driver.h:142: warning: Function parameter or member 
'request_key' not described in 'gpio_irq_chip'
   include/linux/iio/hw-consumer.h:1: warning: no structured comments found
   include/linux/input/sparse-keymap.h:46: warning: Function parameter or 
member 'sw' not described in 'key_entry'
   drivers/pci/pci.c:218: warning: Excess function parameter 'p' description in 
'pci_dev_str_match_path'
   include/linux/regulator/driver.h:227: warning: Function parameter or member 
'resume' not described in 'regulator_ops'
   drivers/regulator/core.c:4479: warning: Excess function parameter 'state' 
description in 'regulator_suspend'
   arch/s390/include/asm/cio.h:245: warning: Function parameter or member 
'esw.esw0' not described in 'irb'
   arch/s390/include/asm/cio.h:245: warning: Function parameter or member 
'esw.esw1' not described in 'irb'
   arch/s390/include/asm/cio.h:245: warning: Function parameter or member 
'esw.esw2' not described in 'irb'
   arch/s390/include/asm/cio.h:245: warning: Function parameter or member 
'esw.esw3' not described in 'irb'
   arch/s390/include/asm/cio.h:245: warning: Function parameter or member 
'esw.eadm' not described in 'irb'
   drivers/slimbus/stream.c:1: warning: no structured comments found
   drivers/target/target_core_device.c:1: warning: no structured comments found
   drivers/usb/dwc3/gadget.c:510: warning: Excess function parameter 'dwc' 
description in 'dwc3_gadget_start_config'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/bus.c:1: warning: no structured comments found
   drivers/usb/typec/bus.c:268: warning: Function parameter or member 'mode' 
not described in 'typec_match_altmode'
   drivers/usb/typec/class.c:1497: warning: Excess function parameter 'drvdata' 
description in 'typec_port_register_altmode'
   drivers/usb/typec/class.c:1: warning: no structured comments found
   include/linux/w1.h:281: warning: Function parameter or member 
'of_match_table' not described in 'w1_family'
   fs/direct-io.c:257: warning: Excess function parameter 'offset' description 
in 'dio_complete'
   fs/file_table.c:1: warning: no structured comments found
   fs/libfs.c:477: warning: Excess function parameter 'available' description 
in 'simple_write_end'
   fs/posix_acl.c:646: warning: Function parameter or member 'inode' not 
described in 'posix_acl_update_mode'
   fs/posix_acl.c:646: warning: Function parameter or member 'mode_p' not 
described in 'posix_acl_update_mode'
   fs/posix_acl.c:646: warning: Function parameter or member 'acl' not 
described in 'posix_acl_update_mode'
   drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:183: warning: Function parameter or 
member 'blockable' not described in 'amdgpu_mn_read_lock'
   drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:254: warning: Function parameter or 
member 'blockable' not described in 'amdgpu_mn_invalidate_range_start_gfx'
   drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:302: warning: Function parameter or 
member 'blockable' not described in 'amdgpu_mn_invalidate_range_start_hsa'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:361: warning: cannot understand 
function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:951: warning: Excess function 
parameter 'parent' description in 'amdgpu_vm_free_pts'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:951: warning: Excess function 
parameter 'level' description in 'amdgpu_vm_free_pts'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:362: warning: cannot understand 
function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:533: warning: Function parameter or 
member 'adev' not described in 'for_each_amdgpu_vm_pt_leaf'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:533: warning: Function parameter or 
member 'vm' not described in 'for_each_amdgpu_vm_pt_leaf'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:533: warning: Function parameter or 
member 'start' not described in 'for_each_amdgpu_vm_pt_leaf'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:533: warning: Function parameter or 
member 'end' not described in 'for_each_amdgpu_vm_pt_leaf'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:533: warning: Function parameter or 
member 'cursor' not described in 'for_each_amdgpu_vm_pt_leaf'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:581: warning: Function parameter or 
member 'adev' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:581: warning: Function parameter or 
member 'vm' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:581: warning: Function parameter or 
member 'cursor' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:581: warning: Function parameter or 
member 'entry' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:827: warning: Function parameter or 
member 'level' not described in 'amdgpu_vm_bo_param'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:952: warning: Function parameter or 
member 'vm' not described in 'amdgpu_vm_free_pts'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:952: warning: Excess function 
parameter 'parent' description in 'amdgpu_vm_free_pts'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:952: warning: Excess function 
parameter 'level' description in 'amdgpu_vm_free_pts'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'params' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'bo' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'pe' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'addr' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'count' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'incr' not described in 'amdgpu_vm_update_func'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1335: warning: Function parameter or 
member 'flags' not described in 'amdgpu_vm_update_func'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'params' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'bo' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'level' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'pe' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'addr' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'count' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'incr' not described in 'amdgpu_vm_update_huge'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1502: warning: Function parameter or 
>> member 'flags' not described in 'amdgpu_vm_update_huge'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:3057: warning: Function parameter or 
member 'pasid' not described in 'amdgpu_vm_make_compute'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_pin' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_unpin' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_res_obj' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_get_sg_table' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_import_sg_table' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_vmap' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_vunmap' not described in 'drm_driver'
   include/drm/drm_drv.h:610: warning: Function parameter or member 
'gem_prime_mmap' not described in 'drm_driver'
   include/drm/drm_panel.h:98: warning: Function parameter or member 'link' not 
described in 'drm_panel'
   drivers/gpu/drm/i915/i915_vma.h:49: warning: cannot understand function 
prototype: 'struct i915_vma '
   drivers/gpu/drm/i915/i915_vma.h:1: warning: no structured comments found
   drivers/gpu/drm/i915/intel_guc_fwif.h:553: warning: cannot understand 
function prototype: 'struct guc_log_buffer_state '
   drivers/gpu/drm/i915/i915_trace.h:1: warning: no structured comments found
   include/linux/skbuff.h:860: warning: Function parameter or member 
'dev_scratch' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 'list' not 
described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'ip_defrag_offset' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'skb_mstamp' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'__cloned_offset' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'head_frag' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'__pkt_type_offset' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'encapsulation' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'encap_hdr_csum' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'csum_valid' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'csum_complete_sw' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'csum_level' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'inner_protocol_type' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'remcsum_offload' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'offload_fwd_mark' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'offload_mr_fwd_mark' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'sender_cpu' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'reserved_tailroom' not described in 'sk_buff'
   include/linux/skbuff.h:860: warning: Function parameter or member 
'inner_ipproto' not described in 'sk_buff'
   include/net/sock.h:238: warning: Function parameter or member 'skc_addrpair' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_portpair' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_ipv6only' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 
'skc_net_refcnt' not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_v6_daddr' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 
'skc_v6_rcv_saddr' not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_cookie' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_listener' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_tw_dr' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 'skc_rcv_wnd' 
not described in 'sock_common'
   include/net/sock.h:238: warning: Function parameter or member 
'skc_tw_rcv_nxt' not described in 'sock_common'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_backlog.rmem_alloc' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_backlog.len' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_backlog.head' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_backlog.tail' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 'sk_wq_raw' 
not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'tcp_rtx_queue' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_route_forced_caps' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_txtime_report_errors' not described in 'sock'
   include/net/sock.h:509: warning: Function parameter or member 
'sk_validate_xmit_skb' not described in 'sock'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'adj_list.upper' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'adj_list.lower' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'gso_partial_features' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'switchdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'l3mdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'xfrmdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'tlsdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'name_assign_type' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'ieee802154_ptr' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'mpls_ptr' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'xdp_prog' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'gro_flush_timeout' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'nf_hooks_ingress' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'____cacheline_aligned_in_smp' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'qdisc_hash' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'xps_cpus_map' not described in 'net_device'
   include/linux/netdevice.h:2018: warning: Function parameter or member 
'xps_rxqs_map' not described in 'net_device'
   include/linux/phylink.h:56: warning: Function parameter or member 
'__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising' not described in 
'phylink_link_state'
   include/linux/phylink.h:56: warning: Function parameter or member 
'__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising' not described in 
'phylink_link_state'
   sound/soc/soc-core.c:2918: warning: Excess function parameter 
'legacy_dai_naming' description in 'snd_soc_register_dais'
   Documentation/admin-guide/cgroup-v2.rst:1485: WARNING: Block quote ends 
without a blank line; unexpected unindent.
   Documentation/admin-guide/cgroup-v2.rst:1487: WARNING: Block quote ends 
without a blank line; unexpected unindent.
   Documentation/admin-guide/cgroup-v2.rst:1488: WARNING: Block quote ends 
without a blank line; unexpected unindent.
   Documentation/core-api/boot-time-mm.rst:78: ERROR: Error in "kernel-doc" 
directive:
   unknown option: "nodocs".

vim +1502 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

  1323  
  1324  /**
  1325   * amdgpu_vm_update_func - helper to call update function
  1326   *
  1327   * Calls the update function for both the given BO as well as its 
shadow.
  1328   */
  1329  static void amdgpu_vm_update_func(struct amdgpu_pte_update_params 
*params,
  1330                                    struct amdgpu_bo *bo,
  1331                                    uint64_t pe, uint64_t addr,
  1332                                    unsigned count, uint32_t incr,
  1333                                    uint64_t flags)
  1334  {
> 1335          if (bo->shadow)
  1336                  params->func(params, bo->shadow, pe, addr, count, incr, 
flags);
  1337          params->func(params, bo, pe, addr, count, incr, flags);
  1338  }
  1339  
  1340  /*
  1341   * amdgpu_vm_update_pde - update a single level in the hierarchy
  1342   *
  1343   * @param: parameters for the update
  1344   * @vm: requested vm
  1345   * @parent: parent directory
  1346   * @entry: entry to update
  1347   *
  1348   * Makes sure the requested entry in parent is up to date.
  1349   */
  1350  static void amdgpu_vm_update_pde(struct amdgpu_pte_update_params 
*params,
  1351                                   struct amdgpu_vm *vm,
  1352                                   struct amdgpu_vm_pt *parent,
  1353                                   struct amdgpu_vm_pt *entry)
  1354  {
  1355          struct amdgpu_bo *bo = parent->base.bo, *pbo;
  1356          uint64_t pde, pt, flags;
  1357          unsigned level;
  1358  
  1359          /* Don't update huge pages here */
  1360          if (entry->huge)
  1361                  return;
  1362  
  1363          for (level = 0, pbo = bo->parent; pbo; ++level)
  1364                  pbo = pbo->parent;
  1365  
  1366          level += params->adev->vm_manager.root_level;
  1367          amdgpu_gmc_get_pde_for_bo(entry->base.bo, level, &pt, &flags);
  1368          pde = (entry - parent->entries) * 8;
  1369          amdgpu_vm_update_func(params, bo, pde, pt, 1, 0, flags);
  1370  }
  1371  
  1372  /*
  1373   * amdgpu_vm_invalidate_pds - mark all PDs as invalid
  1374   *
  1375   * @adev: amdgpu_device pointer
  1376   * @vm: related vm
  1377   *
  1378   * Mark all PD level as invalid after an error.
  1379   */
  1380  static void amdgpu_vm_invalidate_pds(struct amdgpu_device *adev,
  1381                                       struct amdgpu_vm *vm)
  1382  {
  1383          struct amdgpu_vm_pt_cursor cursor;
  1384          struct amdgpu_vm_pt *entry;
  1385  
  1386          for_each_amdgpu_vm_pt_dfs_safe(adev, vm, cursor, entry)
  1387                  if (entry->base.bo && !entry->base.moved)
  1388                          amdgpu_vm_bo_relocated(&entry->base);
  1389  }
  1390  
  1391  /*
  1392   * amdgpu_vm_update_directories - make sure that all directories are 
valid
  1393   *
  1394   * @adev: amdgpu_device pointer
  1395   * @vm: requested vm
  1396   *
  1397   * Makes sure all directories are up to date.
  1398   *
  1399   * Returns:
  1400   * 0 for success, error for failure.
  1401   */
  1402  int amdgpu_vm_update_directories(struct amdgpu_device *adev,
  1403                                   struct amdgpu_vm *vm)
  1404  {
  1405          struct amdgpu_pte_update_params params;
  1406          struct amdgpu_job *job;
  1407          unsigned ndw = 0;
  1408          int r = 0;
  1409  
  1410          if (list_empty(&vm->relocated))
  1411                  return 0;
  1412  
  1413  restart:
  1414          memset(&params, 0, sizeof(params));
  1415          params.adev = adev;
  1416  
  1417          if (vm->use_cpu_for_update) {
  1418                  r = amdgpu_vm_wait_pd(adev, vm, AMDGPU_FENCE_OWNER_VM);
  1419                  if (unlikely(r))
  1420                          return r;
  1421  
  1422                  params.func = amdgpu_vm_cpu_set_ptes;
  1423          } else {
  1424                  ndw = 512 * 8;
  1425                  r = amdgpu_job_alloc_with_ib(adev, ndw * 4, &job);
  1426                  if (r)
  1427                          return r;
  1428  
  1429                  params.ib = &job->ibs[0];
  1430                  params.func = amdgpu_vm_do_set_ptes;
  1431          }
  1432  
  1433          while (!list_empty(&vm->relocated)) {
  1434                  struct amdgpu_vm_pt *pt, *entry;
  1435  
  1436                  entry = list_first_entry(&vm->relocated, struct 
amdgpu_vm_pt,
  1437                                           base.vm_status);
  1438                  amdgpu_vm_bo_idle(&entry->base);
  1439  
  1440                  pt = amdgpu_vm_pt_parent(entry);
  1441                  if (!pt)
  1442                          continue;
  1443  
  1444                  amdgpu_vm_update_pde(&params, vm, pt, entry);
  1445  
  1446                  if (!vm->use_cpu_for_update &&
  1447                      (ndw - params.ib->length_dw) < 32)
  1448                          break;
  1449          }
  1450  
  1451          if (vm->use_cpu_for_update) {
  1452                  /* Flush HDP */
  1453                  mb();
  1454                  amdgpu_asic_flush_hdp(adev, NULL);
  1455          } else if (params.ib->length_dw == 0) {
  1456                  amdgpu_job_free(job);
  1457          } else {
  1458                  struct amdgpu_bo *root = vm->root.base.bo;
  1459                  struct amdgpu_ring *ring;
  1460                  struct dma_fence *fence;
  1461  
  1462                  ring = container_of(vm->entity.rq->sched, struct 
amdgpu_ring,
  1463                                      sched);
  1464  
  1465                  amdgpu_ring_pad_ib(ring, params.ib);
  1466                  amdgpu_sync_resv(adev, &job->sync, root->tbo.resv,
  1467                                   AMDGPU_FENCE_OWNER_VM, false);
  1468                  WARN_ON(params.ib->length_dw > ndw);
  1469                  r = amdgpu_job_submit(job, &vm->entity, 
AMDGPU_FENCE_OWNER_VM,
  1470                                        &fence);
  1471                  if (r)
  1472                          goto error;
  1473  
  1474                  amdgpu_bo_fence(root, fence, true);
  1475                  dma_fence_put(vm->last_update);
  1476                  vm->last_update = fence;
  1477          }
  1478  
  1479          if (!list_empty(&vm->relocated))
  1480                  goto restart;
  1481  
  1482          return 0;
  1483  
  1484  error:
  1485          amdgpu_vm_invalidate_pds(adev, vm);
  1486          amdgpu_job_free(job);
  1487          return r;
  1488  }
  1489  
  1490  /**
  1491   * amdgpu_vm_update_huge - figure out parameters for PTE updates
  1492   *
  1493   * Make sure to set the right flags for the PTEs at the desired level.
  1494   */
  1495  static void amdgpu_vm_update_huge(struct amdgpu_pte_update_params 
*params,
  1496                                    struct amdgpu_bo *bo, unsigned level,
  1497                                    uint64_t pe, uint64_t addr,
  1498                                    unsigned count, uint32_t incr,
  1499                                    uint64_t flags)
  1500  
  1501  {
> 1502          if (level != AMDGPU_VM_PTB) {
  1503                  flags |= AMDGPU_PDE_PTE;
  1504                  amdgpu_gmc_get_vm_pde(params->adev, level, &addr, 
&flags);
  1505          }
  1506  
  1507          amdgpu_vm_update_func(params, bo, pe, addr, count, incr, flags);
  1508  }
  1509  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to