#define VLV_GPIO_PCONF0(base_offset) (base_offset)
#define VLV_GPIO_PAD_VAL(base_offset) ((base_offset) + 8)
-struct gpio_table {
+struct gpio_map {
u16 base_offset;
bool init;
};
-static struct gpio_table vlv_gpio_table[] = {
+static struct gpio_map vlv_gpio_table[] = {
{ VLV_GPIO_NC_0_HV_DDI0_HPD },
{ VLV_GPIO_NC_1_HV_DDI0_DDC_SDA },
{ VLV_GPIO_NC_2_HV_DDI0_DDC_SCL },
static void vlv_exec_gpio(struct drm_i915_private *dev_priv,
u8 gpio_source, u8 gpio_index, bool value)
{
+ struct gpio_map *map;
u16 pconf0, padval;
u32 tmp;
u8 port;
return;
}
+ map = &vlv_gpio_table[gpio_index];
+
if (dev_priv->vbt.dsi.seq_version >= 3) {
DRM_DEBUG_KMS("GPIO element v3 not supported\n");
return;
}
}
- pconf0 = VLV_GPIO_PCONF0(vlv_gpio_table[gpio_index].base_offset);
- padval = VLV_GPIO_PAD_VAL(vlv_gpio_table[gpio_index].base_offset);
+ pconf0 = VLV_GPIO_PCONF0(map->base_offset);
+ padval = VLV_GPIO_PAD_VAL(map->base_offset);
mutex_lock(&dev_priv->sb_lock);
- if (!vlv_gpio_table[gpio_index].init) {
+ if (!map->init) {
/* FIXME: remove constant below */
vlv_iosf_sb_write(dev_priv, port, pconf0, 0x2000CC00);
- vlv_gpio_table[gpio_index].init = true;
+ map->init = true;
}
tmp = 0x4 | value;