Commit 1c0b144b authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: rework i2c init and fini



No functional change.  Rework the code to allow for
adding some additional i2c buses in conjunction with DC
in the future.

Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ba7f8eb7
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -4465,8 +4465,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
				goto failed;
			}
			/* init i2c buses */
			if (!amdgpu_device_has_dc_support(adev))
				amdgpu_atombios_i2c_init(adev);
			amdgpu_i2c_init(adev);
		}
	}

@@ -4735,7 +4734,6 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
	amdgpu_reset_fini(adev);

	/* free i2c buses */
	if (!amdgpu_device_has_dc_support(adev))
	amdgpu_i2c_fini(adev);

	if (amdgpu_emu_mode != 1)
+8 −0
Original line number Diff line number Diff line
@@ -225,6 +225,14 @@ void amdgpu_i2c_destroy(struct amdgpu_i2c_chan *i2c)
	kfree(i2c);
}

void amdgpu_i2c_init(struct amdgpu_device *adev)
{
	if (!adev->is_atom_fw) {
		if (!amdgpu_device_has_dc_support(adev))
			amdgpu_atombios_i2c_init(adev);
	}
}

/* remove all the buses */
void amdgpu_i2c_fini(struct amdgpu_device *adev)
{
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ struct amdgpu_i2c_chan *amdgpu_i2c_create(struct drm_device *dev,
					  const struct amdgpu_i2c_bus_rec *rec,
					  const char *name);
void amdgpu_i2c_destroy(struct amdgpu_i2c_chan *i2c);
void amdgpu_i2c_init(struct amdgpu_device *adev);
void amdgpu_i2c_fini(struct amdgpu_device *adev);
struct amdgpu_i2c_chan *
amdgpu_i2c_lookup(struct amdgpu_device *adev,