Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d724502a authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: fix up gpio i2c mask bits for r4xx for real



Fixes i2c test failures when i2c_algo_bit.bit_test=1.

The hw doesn't actually require a mask, so just set it
to the default mask bits for r1xx-r4xx radeon ddc.

I missed this part the first time through.

Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@kernel.org
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 26cc40a8
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -181,6 +181,18 @@ void radeon_atombios_i2c_init(struct radeon_device *rdev)
			gpio = &i2c_info->asGPIO_Info[i];
			i2c.valid = false;

			/* r4xx mask is technically not used by the hw, so patch in the legacy mask bits */
			if ((rdev->family == CHIP_R420) ||
			    (rdev->family == CHIP_R423) ||
			    (rdev->family == CHIP_RV410)) {
				if ((le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0018) ||
				    (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0019) ||
				    (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x001a)) {
					gpio->ucClkMaskShift = 0x19;
					gpio->ucDataMaskShift = 0x18;
				}
			}

			/* some evergreen boards have bad data for this entry */
			if (ASIC_IS_DCE4(rdev)) {
				if ((i == 7) &&