Skip to content

Commit

Permalink
Merge amd-staging-dkms-5.6 into amd-mainline-dkms-5.6
Browse files Browse the repository at this point in the history
Change-Id: I12e3720c3c79bd59f70b44bc87c08865701b39b2
Signed-off-by: Rui Teng <rui.teng@amd.com>
  • Loading branch information
Rui Teng committed Sep 1, 2020
2 parents 898dc8f + 570ea69 commit 8393d0e
Show file tree
Hide file tree
Showing 84 changed files with 1,231 additions and 588 deletions.
24 changes: 12 additions & 12 deletions Documentation/gpu/amdgpu.rst
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ This section covers hwmon and power/thermal controls.
HWMON Interfaces
----------------

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: hwmon

GPU sysfs Power State Interfaces
Expand All @@ -164,52 +164,52 @@ GPU power controls are exposed via sysfs files.
power_dpm_state
~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: power_dpm_state

power_dpm_force_performance_level
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: power_dpm_force_performance_level

pp_table
~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: pp_table

pp_od_clk_voltage
~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: pp_od_clk_voltage

pp_dpm_*
~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie

pp_power_profile_mode
~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: pp_power_profile_mode

*_busy_percent
~~~~~~~~~~~~~~
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: gpu_busy_percent

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: mem_busy_percent

gpu_metrics
~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: gpu_metrics

GPU Product Information
Expand Down Expand Up @@ -239,7 +239,7 @@ serial_number
unique_id
---------

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: unique_id

GPU Memory Usage Information
Expand Down Expand Up @@ -289,7 +289,7 @@ PCIe Accounting Information
pcie_bw
-------

.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: pcie_bw

pcie_replay_count
Expand Down
9 changes: 7 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ struct amdgpu_fpriv;
struct amdgpu_bo_va_mapping;
struct amdgpu_atif;
struct kfd_vm_fault_info;
struct amdgpu_hive_info;

enum amdgpu_cp_irq {
AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP = 0,
Expand Down Expand Up @@ -631,6 +632,8 @@ struct amdgpu_asic_funcs {
uint64_t (*get_pcie_replay_count)(struct amdgpu_device *adev);
/* device supports BACO */
bool (*supports_baco)(struct amdgpu_device *adev);
/* pre asic_init quirks */
void (*pre_asic_init)(struct amdgpu_device *adev);
};

/*
Expand Down Expand Up @@ -773,7 +776,7 @@ struct amdgpu_device {
#ifdef CONFIG_DRM_AMD_ACP
struct amdgpu_acp acp;
#endif

struct amdgpu_hive_info *hive;
/* ASIC */
enum amd_asic_type asic_type;
uint32_t family;
Expand Down Expand Up @@ -1002,7 +1005,7 @@ struct amdgpu_device {

atomic_t in_gpu_reset;
enum pp_mp1_state mp1_state;
struct mutex lock_reset;
struct rw_semaphore reset_sem;
struct amdgpu_doorbell_index doorbell_index;

#ifdef HAVE_AMDKCL_HMM_MIRROR_ENABLED
Expand Down Expand Up @@ -1036,6 +1039,7 @@ struct amdgpu_device {

atomic_t throttling_logging_enabled;
struct ratelimit_state throttling_logging_rs;
uint32_t ras_features;
};

static inline struct amdgpu_device *amdgpu_ttm_adev(struct ttm_bo_device *bdev)
Expand Down Expand Up @@ -1182,6 +1186,7 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
#define amdgpu_asic_need_reset_on_init(adev) (adev)->asic_funcs->need_reset_on_init((adev))
#define amdgpu_asic_get_pcie_replay_count(adev) ((adev)->asic_funcs->get_pcie_replay_count((adev)))
#define amdgpu_asic_supports_baco(adev) (adev)->asic_funcs->supports_baco((adev))
#define amdgpu_asic_pre_asic_init(adev) (adev)->asic_funcs->pre_asic_init((adev))

#define amdgpu_inc_vram_lost(adev) atomic_inc(&((adev)->vram_lost_counter));

Expand Down
2 changes: 0 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,6 @@ const struct kfd2kgd_calls arcturus_kfd2kgd = {
kgd_gfx_v9_get_atc_vmid_pasid_mapping_info,
.set_vm_context_page_table_base =
kgd_gfx_v9_set_vm_context_page_table_base,
.get_hive_id = amdgpu_amdkfd_get_hive_id,
.enable_debug_trap = kgd_gfx_v9_enable_debug_trap,
.disable_debug_trap = kgd_gfx_v9_disable_debug_trap,
.set_wave_launch_trap_override = kgd_gfx_v9_set_wave_launch_trap_override,
Expand All @@ -314,5 +313,4 @@ const struct kfd2kgd_calls arcturus_kfd2kgd = {
.clear_address_watch = kgd_gfx_v9_clear_address_watch,
.get_iq_wait_times = kgd_gfx_v9_get_iq_wait_times,
.build_grace_period_packet_info = kgd_gfx_v9_build_grace_period_packet_info,

};
2 changes: 0 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
Original file line number Diff line number Diff line change
Expand Up @@ -1086,7 +1086,6 @@ const struct kfd2kgd_calls gfx_v10_kfd2kgd = {
.get_atc_vmid_pasid_mapping_info =
get_atc_vmid_pasid_mapping_info,
.set_vm_context_page_table_base = set_vm_context_page_table_base,
.get_hive_id = amdgpu_amdkfd_get_hive_id,
.enable_debug_trap = kgd_gfx_v10_enable_debug_trap,
.disable_debug_trap = kgd_gfx_v10_disable_debug_trap,
.set_wave_launch_trap_override = kgd_gfx_v10_set_wave_launch_trap_override,
Expand All @@ -1095,5 +1094,4 @@ const struct kfd2kgd_calls gfx_v10_kfd2kgd = {
.clear_address_watch = kgd_gfx_v10_clear_address_watch,
.get_iq_wait_times = kgd_gfx_v10_get_iq_wait_times,
.build_grace_period_packet_info = kgd_gfx_v10_build_grace_period_packet_info,
.get_unique_id = amdgpu_amdkfd_get_unique_id,
};
1 change: 0 additions & 1 deletion drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c
Original file line number Diff line number Diff line change
Expand Up @@ -822,7 +822,6 @@ const struct kfd2kgd_calls gfx_v10_3_kfd2kgd = {
.address_watch_get_offset = address_watch_get_offset_v10_3,
.get_atc_vmid_pasid_mapping_info = NULL,
.set_vm_context_page_table_base = set_vm_context_page_table_base_v10_3,
.get_hive_id = amdgpu_amdkfd_get_hive_id,
#if 0
.enable_debug_trap = enable_debug_trap_v10_3,
.disable_debug_trap = disable_debug_trap_v10_3,
Expand Down
2 changes: 0 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
Original file line number Diff line number Diff line change
Expand Up @@ -1070,7 +1070,6 @@ const struct kfd2kgd_calls gfx_v9_kfd2kgd = {
.get_atc_vmid_pasid_mapping_info =
kgd_gfx_v9_get_atc_vmid_pasid_mapping_info,
.set_vm_context_page_table_base = kgd_gfx_v9_set_vm_context_page_table_base,
.get_hive_id = amdgpu_amdkfd_get_hive_id,
.enable_debug_trap = kgd_gfx_v9_enable_debug_trap,
.disable_debug_trap = kgd_gfx_v9_disable_debug_trap,
.set_wave_launch_trap_override = kgd_gfx_v9_set_wave_launch_trap_override,
Expand All @@ -1079,5 +1078,4 @@ const struct kfd2kgd_calls gfx_v9_kfd2kgd = {
.clear_address_watch = kgd_gfx_v9_clear_address_watch,
.get_iq_wait_times = kgd_gfx_v9_get_iq_wait_times,
.build_grace_period_packet_info = kgd_gfx_v9_build_grace_period_packet_info,
.get_unique_id = amdgpu_amdkfd_get_unique_id,
};
35 changes: 28 additions & 7 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,14 +122,22 @@ static int amdgpu_debugfs_autodump_open(struct inode *inode, struct file *file)

file->private_data = adev;

mutex_lock(&adev->lock_reset);
#ifdef HAVE_DOWN_READ_KILLABLE
ret = down_read_killable(&adev->reset_sem);
if (ret)
return ret;
#else
down_read(&adev->reset_sem);
#endif

if (adev->autodump.dumping.done) {
reinit_completion(&adev->autodump.dumping);
ret = 0;
} else {
ret = -EBUSY;
}
mutex_unlock(&adev->lock_reset);

up_read(&adev->reset_sem);

return ret;
}
Expand Down Expand Up @@ -1263,7 +1271,13 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data)
}

/* Avoid accidently unparking the sched thread during GPU reset */
mutex_lock(&adev->lock_reset);
#ifdef HAVE_DOWN_READ_KILLABLE
r = down_read_killable(&adev->reset_sem);
if (r)
return r;
#else
down_read(&adev->reset_sem);
#endif

/* hold on the scheduler */
for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
Expand All @@ -1290,7 +1304,7 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data)
kthread_unpark(ring->sched.thread);
}

mutex_unlock(&adev->lock_reset);
up_read(&adev->reset_sem);

pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
Expand Down Expand Up @@ -1480,7 +1494,13 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
return -ENOMEM;

/* Avoid accidently unparking the sched thread during GPU reset */
mutex_lock(&adev->lock_reset);
#ifdef HAVE_DOWN_READ_KILLABLE
r = down_read_killable(&adev->reset_sem);
if (r)
goto pro_end;
#else
down_read(&adev->reset_sem);
#endif

/* stop the scheduler */
kthread_park(ring->sched.thread);
Expand Down Expand Up @@ -1521,13 +1541,14 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
/* restart the scheduler */
kthread_unpark(ring->sched.thread);

mutex_unlock(&adev->lock_reset);
up_read(&adev->reset_sem);

ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched);

pro_end:
kfree(fences);

return 0;
return r;
}

static int amdgpu_debugfs_sclk_set(void *data, u64 val)
Expand Down
Loading

0 comments on commit 8393d0e

Please sign in to comment.