Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 282566
b: refs/heads/master
c: 85a2a36
h: refs/heads/master
v: v3
  • Loading branch information
Ben Skeggs committed Dec 21, 2011
1 parent bfc011d commit 753f69e
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3f8e11e4b606a050007cd1020d59e7b74c68d088
refs/heads/master: 85a2a365216e8e4eccf826e7dcc06c6298ab5fc1
6 changes: 4 additions & 2 deletions trunk/drivers/gpu/drm/nouveau/nouveau_bios.c
Original file line number Diff line number Diff line change
Expand Up @@ -5834,7 +5834,8 @@ parse_dcb_gpio_table(struct nvbios *bios)
e = new_gpio_entry(bios);
e->tag = DCB_GPIO_TVDAC0;
e->line = tvdac_gpio[1] >> 4;
e->invert = tvdac_gpio[0] & 2;
e->state[0] = !!(tvdac_gpio[0] & 2);
e->state[1] = !e->state[0];
}

goto no_table;
Expand All @@ -5858,7 +5859,8 @@ parse_dcb_gpio_table(struct nvbios *bios)
}

e->line = (e->entry & 0x001f);
e->invert = ((e->entry & 0xf800) >> 11) != 4;
e->state[0] = ((e->entry & 0xf800) >> 11) != 4;
e->state[1] = !e->state[0];
} else {
e->entry = ROM32(entry[0]);
e->tag = (e->entry & 0x0000ff00) >> 8;
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/gpu/drm/nouveau/nouveau_bios.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ enum dcb_gpio_tag {
struct dcb_gpio_entry {
enum dcb_gpio_tag tag;
int line;
bool invert;
uint32_t entry;
uint8_t state_default;
uint8_t state[2];
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/gpu/drm/nouveau/nv10_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ nv10_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag)

value = NVReadCRTC(dev, 0, reg) >> shift;

return (ent->invert ? 1 : 0) ^ (value & 1);
return (value & 1) == ent->state[1];
}

int
Expand All @@ -83,7 +83,7 @@ nv10_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state)
if (!get_gpio_location(ent, &reg, &shift, &mask))
return -ENODEV;

value = ((ent->invert ? 1 : 0) ^ (state ? 1 : 0)) << shift;
value = ent->state[state & 1] << shift;
mask = ~(mask << shift);

NVWriteCRTC(dev, 0, reg, value | (NVReadCRTC(dev, 0, reg) & mask));
Expand Down

0 comments on commit 753f69e

Please sign in to comment.