drm/amdgpu: move i2c bus lock out of ras structure
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Jul 2020 13:25:38 +0000 (09:25 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 21 Jul 2020 19:37:40 +0000 (15:37 -0400)
It's not really ras related.  It's just a lock for the
bus in general.  This removes the ras dependency from
the smu i2c bus.

Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.h
drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.c

index 7f3cd71..aa27fe6 100644 (file)
@@ -425,6 +425,7 @@ struct amdgpu_pm {
        u32                     default_sclk;
        u32                     default_mclk;
        struct amdgpu_i2c_chan *i2c_bus;
+       bool                    bus_locked;
        /* internal thermal controller on rv6xx+ */
        enum amdgpu_int_thermal_type int_thermal_type;
        struct device           *int_hwmon_dev;
index 7e8647a..9e7d640 100644 (file)
@@ -47,7 +47,6 @@ struct amdgpu_ras_eeprom_control {
        uint32_t next_addr;
        unsigned int num_recs;
        struct mutex tbl_mutex;
-       bool bus_locked;
        uint32_t tbl_byte_sum;
        uint16_t i2c_address; // 8-bit represented address
 };
index 9bffbab..f3d0324 100644 (file)
@@ -32,7 +32,6 @@
 #include "amdgpu_amdkfd.h"
 #include <linux/i2c.h>
 #include <linux/pci.h>
-#include "amdgpu_ras.h"
 
 /* error codes */
 #define I2C_OK                0
@@ -592,14 +591,13 @@ static uint32_t smu_v11_0_i2c_eeprom_write_data(struct i2c_adapter *control,
 static void lock_bus(struct i2c_adapter *i2c, unsigned int flags)
 {
        struct amdgpu_device *adev = to_amdgpu_device(i2c);
-       struct amdgpu_ras_eeprom_control *control = &adev->psp.ras.ras->eeprom_control;
 
        if (!smu_v11_0_i2c_bus_lock(i2c)) {
                DRM_ERROR("Failed to lock the bus from SMU");
                return;
        }
 
-       control->bus_locked = true;
+       adev->pm.bus_locked = true;
 }
 
 static int trylock_bus(struct i2c_adapter *i2c, unsigned int flags)
@@ -611,14 +609,13 @@ static int trylock_bus(struct i2c_adapter *i2c, unsigned int flags)
 static void unlock_bus(struct i2c_adapter *i2c, unsigned int flags)
 {
        struct amdgpu_device *adev = to_amdgpu_device(i2c);
-       struct amdgpu_ras_eeprom_control *control = &adev->psp.ras.ras->eeprom_control;
 
        if (!smu_v11_0_i2c_bus_unlock(i2c)) {
                DRM_ERROR("Failed to unlock the bus from SMU");
                return;
        }
 
-       control->bus_locked = false;
+       adev->pm.bus_locked = false;
 }
 
 static const struct i2c_lock_operations smu_v11_0_i2c_i2c_lock_ops = {
@@ -632,9 +629,8 @@ static int smu_v11_0_i2c_eeprom_i2c_xfer(struct i2c_adapter *i2c_adap,
 {
        int i, ret;
        struct amdgpu_device *adev = to_amdgpu_device(i2c_adap);
-       struct amdgpu_ras_eeprom_control *control = &adev->psp.ras.ras->eeprom_control;
 
-       if (!control->bus_locked) {
+       if (!adev->pm.bus_locked) {
                DRM_ERROR("I2C bus unlocked, stopping transaction!");
                return -EIO;
        }