diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2017-11-23 10:29:05 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-11-23 10:29:05 -0500 |
commit | 866c9b94ef968445c52214b3748ecc52a8491bca (patch) | |
tree | 1fd073acb9be8e89e77b35c41e2964ac6feabee6 /drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | |
parent | aea3706cfc4d952ed6d32b6d5845b5ecd99ed7f5 (diff) | |
parent | 841b86f3289dbe858daeceec36423d4ea286fac2 (diff) |
Merge tag 'for-linus-timers-conversion-final-v4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into timers/urgent
Pull the last batch of manual timer conversions from Kees Cook:
- final batch of "non trivial" timer conversions (multi-tree dependencies,
things Coccinelle couldn't handle, etc).
- treewide conversions via Coccinelle, in 4 steps:
- DEFINE_TIMER() functions converted to struct timer_list * argument
- init_timer() -> setup_timer()
- setup_timer() -> timer_setup()
- setup_timer() -> timer_setup() (with a single embedded structure)
- deprecated timer API removals (init_timer(), setup_*timer())
- finalization of new API (remove global casts)
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c index f9ffe8ef0cd6..ff8efd0f8fd5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | |||
@@ -71,19 +71,33 @@ int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev) | |||
71 | struct atom_context *ctx = adev->mode_info.atom_context; | 71 | struct atom_context *ctx = adev->mode_info.atom_context; |
72 | int index = get_index_into_master_table(atom_master_list_of_data_tables_v2_1, | 72 | int index = get_index_into_master_table(atom_master_list_of_data_tables_v2_1, |
73 | vram_usagebyfirmware); | 73 | vram_usagebyfirmware); |
74 | struct vram_usagebyfirmware_v2_1 * firmware_usage; | ||
75 | uint32_t start_addr, size; | ||
74 | uint16_t data_offset; | 76 | uint16_t data_offset; |
75 | int usage_bytes = 0; | 77 | int usage_bytes = 0; |
76 | 78 | ||
77 | if (amdgpu_atom_parse_data_header(ctx, index, NULL, NULL, NULL, &data_offset)) { | 79 | if (amdgpu_atom_parse_data_header(ctx, index, NULL, NULL, NULL, &data_offset)) { |
78 | struct vram_usagebyfirmware_v2_1 *firmware_usage = | 80 | firmware_usage = (struct vram_usagebyfirmware_v2_1 *)(ctx->bios + data_offset); |
79 | (struct vram_usagebyfirmware_v2_1 *)(ctx->bios + data_offset); | ||
80 | |||
81 | DRM_DEBUG("atom firmware requested %08x %dkb fw %dkb drv\n", | 81 | DRM_DEBUG("atom firmware requested %08x %dkb fw %dkb drv\n", |
82 | le32_to_cpu(firmware_usage->start_address_in_kb), | 82 | le32_to_cpu(firmware_usage->start_address_in_kb), |
83 | le16_to_cpu(firmware_usage->used_by_firmware_in_kb), | 83 | le16_to_cpu(firmware_usage->used_by_firmware_in_kb), |
84 | le16_to_cpu(firmware_usage->used_by_driver_in_kb)); | 84 | le16_to_cpu(firmware_usage->used_by_driver_in_kb)); |
85 | 85 | ||
86 | usage_bytes = le16_to_cpu(firmware_usage->used_by_driver_in_kb) * 1024; | 86 | start_addr = le32_to_cpu(firmware_usage->start_address_in_kb); |
87 | size = le16_to_cpu(firmware_usage->used_by_firmware_in_kb); | ||
88 | |||
89 | if ((uint32_t)(start_addr & ATOM_VRAM_OPERATION_FLAGS_MASK) == | ||
90 | (uint32_t)(ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION << | ||
91 | ATOM_VRAM_OPERATION_FLAGS_SHIFT)) { | ||
92 | /* Firmware request VRAM reservation for SR-IOV */ | ||
93 | adev->fw_vram_usage.start_offset = (start_addr & | ||
94 | (~ATOM_VRAM_OPERATION_FLAGS_MASK)) << 10; | ||
95 | adev->fw_vram_usage.size = size << 10; | ||
96 | /* Use the default scratch size */ | ||
97 | usage_bytes = 0; | ||
98 | } else { | ||
99 | usage_bytes = le16_to_cpu(firmware_usage->used_by_driver_in_kb) << 10; | ||
100 | } | ||
87 | } | 101 | } |
88 | ctx->scratch_size_bytes = 0; | 102 | ctx->scratch_size_bytes = 0; |
89 | if (usage_bytes == 0) | 103 | if (usage_bytes == 0) |