diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-03-18 15:46:47 +0100 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-03-26 05:08:17 +0100 |
commit | 77307051260795dd077ebdb5d75bc6c7f2e80708 (patch) | |
tree | 8d695cbf954b3341aea3fba78c8b2ecb88ee18b8 /drivers/gpu/drm/nouveau | |
parent | drm/nv50/gpio: exclude sense value from mask when changing registers (diff) | |
download | linux-77307051260795dd077ebdb5d75bc6c7f2e80708.tar.xz linux-77307051260795dd077ebdb5d75bc6c7f2e80708.zip |
drm/nv50/gpio: fixup reset for gpios >= 16
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c index 904b67fe1e14..2ef774731629 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c +++ b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c @@ -46,7 +46,8 @@ nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) u8 unk0 = !!(data & 0x02000000); u8 unk1 = !!(data & 0x04000000); u32 val = (unk1 << 16) | unk0; - u32 reg = regs[line >> 4]; line &= 0x0f; + u32 reg = regs[line >> 4]; + u32 lsh = line & 0x0f; if ( func == DCB_GPIO_UNUSED || (match != DCB_GPIO_UNUSED && match != func)) @@ -54,7 +55,7 @@ nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) gpio->set(gpio, 0, func, line, defs); - nv_mask(priv, reg, 0x00010001 << line, val << line); + nv_mask(priv, reg, 0x00010001 << lsh, val << lsh); } } |