Commit e3619998 authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs

drm/nouveau/gpio: expose the PWM/TOGGLE parameter found in the gpio vbios table

Signed-off-by: default avatarMartin Peres <martin.peres@labri.fr>
Reviewed-by: default avatarBen Skeggs <bskeggs@redhat.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d89c8ce0
...@@ -16,6 +16,13 @@ struct dcb_gpio_func { ...@@ -16,6 +16,13 @@ struct dcb_gpio_func {
u8 func; u8 func;
u8 line; u8 line;
u8 log[2]; u8 log[2];
/* so far, "param" seems to only have an influence on PWM-related
* GPIOs such as FAN_CONTROL and PANEL_BACKLIGHT_LEVEL.
* if param equals 1, hardware PWM is available
* if param equals 0, the host should toggle the GPIO itself
*/
u8 param;
}; };
u16 dcb_gpio_table(struct nouveau_bios *); u16 dcb_gpio_table(struct nouveau_bios *);
......
...@@ -71,6 +71,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line, ...@@ -71,6 +71,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
.func = (data & 0x07e0) >> 5, .func = (data & 0x07e0) >> 5,
.log[0] = (data & 0x1800) >> 11, .log[0] = (data & 0x1800) >> 11,
.log[1] = (data & 0x6000) >> 13, .log[1] = (data & 0x6000) >> 13,
.param = !!(data & 0x8000),
}; };
} else } else
if (ver < 0x41) { if (ver < 0x41) {
...@@ -80,6 +81,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line, ...@@ -80,6 +81,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
.func = (data & 0x0000ff00) >> 8, .func = (data & 0x0000ff00) >> 8,
.log[0] = (data & 0x18000000) >> 27, .log[0] = (data & 0x18000000) >> 27,
.log[1] = (data & 0x60000000) >> 29, .log[1] = (data & 0x60000000) >> 29,
.param = !!(data & 0x80000000),
}; };
} else { } else {
u32 data = nv_ro32(bios, entry + 0); u32 data = nv_ro32(bios, entry + 0);
...@@ -89,6 +91,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line, ...@@ -89,6 +91,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
.func = (data & 0x0000ff00) >> 8, .func = (data & 0x0000ff00) >> 8,
.log[0] = (data1 & 0x30) >> 4, .log[0] = (data1 & 0x30) >> 4,
.log[1] = (data1 & 0xc0) >> 6, .log[1] = (data1 & 0xc0) >> 6,
.param = !!(data & 0x80000000),
}; };
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment