Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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

parent d89c8ce0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,13 @@ struct dcb_gpio_func {
	u8 func;
	u8 line;
	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 *);
+3 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
				.func = (data & 0x07e0) >> 5,
				.log[0] = (data & 0x1800) >> 11,
				.log[1] = (data & 0x6000) >> 13,
				.param = !!(data & 0x8000),
			};
		} else
		if (ver < 0x41) {
@@ -80,6 +81,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
				.func = (data & 0x0000ff00) >> 8,
				.log[0] = (data & 0x18000000) >> 27,
				.log[1] = (data & 0x60000000) >> 29,
				.param = !!(data & 0x80000000),
			};
		} else {
			u32 data = nv_ro32(bios, entry + 0);
@@ -89,6 +91,7 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
				.func = (data & 0x0000ff00) >> 8,
				.log[0] = (data1 & 0x30) >> 4,
				.log[1] = (data1 & 0xc0) >> 6,
				.param = !!(data & 0x80000000),
			};
		}