drm/nouveau/gpio: remove invert flag, use state[] everywhere
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
3f8e11e4b6
commit
85a2a36521
|
@ -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;
|
||||
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
@ -83,7 +83,7 @@ nv10_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state)
|
|||
if (!get_gpio_location(ent, ®, &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));
|
||||
|
|
Loading…
Reference in New Issue