drm/radeon/kms: fix up gpio i2c mask bits for r4xx
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. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@kernel.org Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
b872a37437
commit
6c47e5c23a
|
@ -85,6 +85,18 @@ static struct radeon_i2c_bus_rec radeon_lookup_i2c_gpio(struct radeon_device *rd
|
||||||
for (i = 0; i < num_indices; i++) {
|
for (i = 0; i < num_indices; i++) {
|
||||||
gpio = &i2c_info->asGPIO_Info[i];
|
gpio = &i2c_info->asGPIO_Info[i];
|
||||||
|
|
||||||
|
/* 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 */
|
/* some evergreen boards have bad data for this entry */
|
||||||
if (ASIC_IS_DCE4(rdev)) {
|
if (ASIC_IS_DCE4(rdev)) {
|
||||||
if ((i == 7) &&
|
if ((i == 7) &&
|
||||||
|
|
Loading…
Reference in a new issue