Re: [PATCH v8 5/6] drm/i915/guc: Check the locking status of GuC WOPCM registers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 02/05/2018 10:39 PM, Sagar Arun Kamble wrote:
+/**
+ * intel_guc_wopcm_init_hw() - Setup GuC WOPCM registers.
+ * @guc: intel guc.
+ *
+ * Setup the GuC WOPCM size and offset registers with the stored values. It will + * also check the registers locking status to determine whether these registers
+ * are unlocked and can be updated.
+ */
+void intel_guc_wopcm_init_hw(struct intel_guc *guc)
+{
+    bool locked = guc_wopcm_locked(guc);
+
+    GEM_BUG_ON(!(guc->wopcm.flags & INTEL_GUC_WOPCM_VALID));
+
+    /*
+     * Bug if driver hasn't updated the HW Registers and GuC WOPCM has been
+     * locked. Return directly if WOPCM was locked and we have updated
+     * the registers.
+     */
+    if (locked) {
+        /*
+         * Mark as updated if registers contained correct values.
+         * This will happen while reloading the driver module without
+         * rebooting the system.
+         */
+        if (guc_wopcm_regs_valid(guc))
+            goto out;
+
+        GEM_BUG_ON(!(guc->wopcm.flags & INTEL_GUC_WOPCM_HW_UPDATED));
We should not go ahead with uc_init_hw in this case so returning error from here or
checking wopcm.flags to abort uc_init_hw is needed with debug message.
In a second thought, I think we need do more work here to check whether the
locked values are sufficient for current fw sizes. if yes then return success else
fail the wopcm init.
I agree we only check the status and return the control to uc_init_hw.

Thanks & Regards,
-Jackie

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux