diff options
author | Dave Airlie <airlied@redhat.com> | 2018-07-18 15:46:24 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-07-18 15:46:30 -0400 |
commit | 539c475dadc430bd0f1601902fcacc1e55ffe85a (patch) | |
tree | 6dc3e9ca56165cb46baa84febcb885ed52452cf2 /drivers/gpu/drm/i915/intel_uc.c | |
parent | 0c2fd59ae315e28f8868edf80df21a502f933fec (diff) | |
parent | 82edc7e8b8c06151bdc653935bc13b83e2f0fcfa (diff) |
Merge tag 'drm-intel-next-2018-07-09' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
Higlights here goes to many PSR fixes and improvements; to the Ice lake work with
power well support and begin of DSI support addition. Also there were many improvements
on execlists and interrupts for minimal latency on command submission; and many fixes
on selftests, mostly caught by our CI.
General driver:
- Clean-up on aux irq (Lucas)
- Mark expected switch fall-through for dealing with static analysis tools (Gustavo)
Gem:
- Different fixes for GuC (Chris, Anusha, Michal)
- Avoid self-relocation BIAS if no relocation (Chris)
- Improve debugging cases in on EINVAL return and vma allocation (Chris)
- Fixes and improvements on context destroying and freeing (Chris)
- Wait for engines to idle before retiring (Chris)
- Many improvements on execlists and interrupts for minimal latency on command submission (Chris)
- Many fixes in selftests, specially on cases highlighted on CI (Chris)
- Other fixes and improvements around GGTT (Chris)
- Prevent background reaping of active objects (Chris)
Display:
- Parallel modeset cleanup to fix driver reset (Chris)
- Get AUX power domain for DP main link (Imre)
- Clean-up on PSR unused func pointers (Rodrigo)
- Many PSR/PSR2 fixes and improvements (DK, Jose, Tarun)
- Add a PSR1 live status (Vathsala)
- Replace old drm_*_{un/reference} with put,get functions (Thomas)
- FBC fixes (Maarten)
- Abstract and document the usage of picking macros (Jani)
- Remove unnecessary check for unsupported modifiers for NV12. (DK)
- Interrupt fixes for display (Ville)
- Clean up on sdvo code (Ville)
- Clean up on current DSI code (Jani)
- Remove support for legacy debugfs crc interface (Maarten)
- Simplify get_encoder_power_domains (Imre)
Icelake:
- MG PLL fixes (Imre)
- Add hw workaround for alpha blending (Vandita)
- Add power well support (Imre)
- Add Interrupt Support (Anusha)
- Start to add support for DSI on Ice Lake (Madhav)
Signed-off-by: Dave Airlie <airlied@redhat.com>
# gpg: Signature made Tue 10 Jul 2018 08:41:37 AM AEST
# gpg: using RSA key FA625F640EEB13CA
# gpg: Good signature from "Rodrigo Vivi <rodrigo.vivi@intel.com>"
# gpg: aka "Rodrigo Vivi <rodrigo.vivi@gmail.com>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6D20 7068 EEDD 6509 1C2C E2A3 FA62 5F64 0EEB 13CA
Link: https://patchwork.freedesktop.org/patch/msgid/20180710234349.GA16562@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_uc.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_uc.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c index 94e8863bd97c..7c95697e1a35 100644 --- a/drivers/gpu/drm/i915/intel_uc.c +++ b/drivers/gpu/drm/i915/intel_uc.c | |||
@@ -171,24 +171,11 @@ void intel_uc_init_early(struct drm_i915_private *i915) | |||
171 | intel_huc_init_early(huc); | 171 | intel_huc_init_early(huc); |
172 | 172 | ||
173 | sanitize_options_early(i915); | 173 | sanitize_options_early(i915); |
174 | |||
175 | if (USES_GUC(i915)) | ||
176 | intel_uc_fw_fetch(i915, &guc->fw); | ||
177 | |||
178 | if (USES_HUC(i915)) | ||
179 | intel_uc_fw_fetch(i915, &huc->fw); | ||
180 | } | 174 | } |
181 | 175 | ||
182 | void intel_uc_cleanup_early(struct drm_i915_private *i915) | 176 | void intel_uc_cleanup_early(struct drm_i915_private *i915) |
183 | { | 177 | { |
184 | struct intel_guc *guc = &i915->guc; | 178 | struct intel_guc *guc = &i915->guc; |
185 | struct intel_huc *huc = &i915->huc; | ||
186 | |||
187 | if (USES_HUC(i915)) | ||
188 | intel_uc_fw_fini(&huc->fw); | ||
189 | |||
190 | if (USES_GUC(i915)) | ||
191 | intel_uc_fw_fini(&guc->fw); | ||
192 | 179 | ||
193 | guc_free_load_err_log(guc); | 180 | guc_free_load_err_log(guc); |
194 | } | 181 | } |
@@ -252,28 +239,41 @@ static void guc_disable_communication(struct intel_guc *guc) | |||
252 | int intel_uc_init_misc(struct drm_i915_private *i915) | 239 | int intel_uc_init_misc(struct drm_i915_private *i915) |
253 | { | 240 | { |
254 | struct intel_guc *guc = &i915->guc; | 241 | struct intel_guc *guc = &i915->guc; |
242 | struct intel_huc *huc = &i915->huc; | ||
255 | int ret; | 243 | int ret; |
256 | 244 | ||
257 | if (!USES_GUC(i915)) | 245 | if (!USES_GUC(i915)) |
258 | return 0; | 246 | return 0; |
259 | 247 | ||
260 | intel_guc_init_ggtt_pin_bias(guc); | 248 | ret = intel_guc_init_misc(guc); |
261 | |||
262 | ret = intel_guc_init_wq(guc); | ||
263 | if (ret) | 249 | if (ret) |
264 | return ret; | 250 | return ret; |
265 | 251 | ||
252 | if (USES_HUC(i915)) { | ||
253 | ret = intel_huc_init_misc(huc); | ||
254 | if (ret) | ||
255 | goto err_guc; | ||
256 | } | ||
257 | |||
266 | return 0; | 258 | return 0; |
259 | |||
260 | err_guc: | ||
261 | intel_guc_fini_misc(guc); | ||
262 | return ret; | ||
267 | } | 263 | } |
268 | 264 | ||
269 | void intel_uc_fini_misc(struct drm_i915_private *i915) | 265 | void intel_uc_fini_misc(struct drm_i915_private *i915) |
270 | { | 266 | { |
271 | struct intel_guc *guc = &i915->guc; | 267 | struct intel_guc *guc = &i915->guc; |
268 | struct intel_huc *huc = &i915->huc; | ||
272 | 269 | ||
273 | if (!USES_GUC(i915)) | 270 | if (!USES_GUC(i915)) |
274 | return; | 271 | return; |
275 | 272 | ||
276 | intel_guc_fini_wq(guc); | 273 | if (USES_HUC(i915)) |
274 | intel_huc_fini_misc(huc); | ||
275 | |||
276 | intel_guc_fini_misc(guc); | ||
277 | } | 277 | } |
278 | 278 | ||
279 | int intel_uc_init(struct drm_i915_private *i915) | 279 | int intel_uc_init(struct drm_i915_private *i915) |