diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-11-18 10:23:59 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 19:01:41 +1000 |
commit | befb51e9c97e783c86a1da27bdda3a638d2f02c7 (patch) | |
tree | 320f1a7a6d730decc566542e49e17c1a680956c4 /drivers/gpu/drm/nouveau/nouveau_bios.h | |
parent | f553b79c03f0dbd52f6f03abe8233a2bef8cbd0d (diff) | |
download | blackbird-op-linux-befb51e9c97e783c86a1da27bdda3a638d2f02c7.tar.gz blackbird-op-linux-befb51e9c97e783c86a1da27bdda3a638d2f02c7.zip |
drm/nouveau/disp: parse connector info directly in nouveau_connector.c
Another case where we parsed vbios data to some structs, then again use
that info once to construct another set of data. Skip the intermediate
step.
This is also slightly improved in that we can now use DCB 3.x connector
table info, which will allow NV4x to gain hotplug support, and to make
quirks for SPWG LVDS panels unnecessary.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_bios.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.h | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h index a0e9c2c7ae8c..481e1f23f2f1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.h +++ b/drivers/gpu/drm/nouveau/nouveau_bios.h @@ -58,6 +58,7 @@ enum dcb_gpio_tag { DCB_GPIO_TVDAC1 = 0x2d, DCB_GPIO_PWM_FAN = 0x9, DCB_GPIO_FAN_SENSE = 0x3d, + DCB_GPIO_UNUSED = 0xff }; struct dcb_gpio_entry { @@ -89,20 +90,6 @@ enum dcb_connector_type { DCB_CONNECTOR_NONE = 0xff }; -struct dcb_connector_table_entry { - uint8_t index; - uint32_t entry; - enum dcb_connector_type type; - uint8_t index2; - uint8_t gpio_tag; - void *drm; -}; - -struct dcb_connector_table { - int entries; - struct dcb_connector_table_entry entry[DCB_MAX_NUM_CONNECTOR_ENTRIES]; -}; - enum dcb_type { OUTPUT_ANALOG = 0, OUTPUT_TV = 1, @@ -161,8 +148,6 @@ struct dcb_table { uint16_t gpio_table_ptr; struct dcb_gpio_table gpio; - uint16_t connector_table_ptr; - struct dcb_connector_table connector; }; enum nouveau_or { @@ -333,5 +318,7 @@ void *dcb_table(struct drm_device *); u8 *dcb_outp(struct drm_device *, u8 idx); int dcb_outp_foreach(struct drm_device *, void *data, int (*)(struct drm_device *, void *, int idx, u8 *outp)); +u8 *dcb_conntab(struct drm_device *); +u8 *dcb_conn(struct drm_device *, u8 idx); #endif |