• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/gpu/drm/nouveau/

Lines Matching refs:dcb

712 	if (dcb_entry > bios->dcb.entries) {
802 struct dcb_table *dcb = &dev_priv->vbios.dcb;
807 int default_indices = dcb->i2c_default_indices;
809 if (idx != 0x7f && dcb->entry[idx].i2c_upper_default)
815 i2c_index = dcb->i2c_default_indices & 0xf;
818 i2c_index = (dcb->i2c_default_indices & 0xf0) >> 4;
828 read_dcb_i2c_entry(dev, dcb->version, dcb->i2c_table,
829 i2c_index, &dcb->i2c[i2c_index]);
861 dacoffset = pramdac_offset[bios->dcb.entry[dcb_entry].or];
1182 struct dcb_entry *dcb = bios->display.output;
1192 dpe = nouveau_bios_dp_table(dev, dcb, &dummy);
1202 &bios->dcb.connector.entry[dcb->connector];
3232 for (i = 0; i < bios->dcb.gpio.entries; i++) {
3233 struct dcb_gpio_entry *gpio = &bios->dcb.gpio.entry[i];
3843 /* note: if dcb entries have been merged, index may be misleading */
5510 bios->dcb.i2c[0].write = NV_CIO_CRE_DDC_WR__INDEX;
5511 bios->dcb.i2c[0].read = NV_CIO_CRE_DDC_STATUS__INDEX;
5512 bios->dcb.i2c[1].write = NV_CIO_CRE_DDC0_WR__INDEX;
5513 bios->dcb.i2c[1].read = NV_CIO_CRE_DDC0_STATUS__INDEX;
5622 bios->dcb.i2c[0].write = bios->data[legacy_i2c_offset + 4];
5624 bios->dcb.i2c[0].read = bios->data[legacy_i2c_offset + 5];
5626 bios->dcb.i2c[1].write = bios->data[legacy_i2c_offset + 6];
5628 bios->dcb.i2c[1].read = bios->data[legacy_i2c_offset + 7];
5682 struct dcb_gpio_table *gpio = &bios->dcb.gpio;
5694 for (i = 0; i < bios->dcb.gpio.entries; i++) {
5695 if (bios->dcb.gpio.entry[i].tag != tag)
5698 return &bios->dcb.gpio.entry[i];
5746 uint16_t gpio_table_ptr = bios->dcb.gpio_table_ptr;
5754 if (bios->dcb.version >= 0x40) {
5762 } else if (bios->dcb.version >= 0x30) {
5770 } else if (bios->dcb.version >= 0x22) {
5821 if (index >= bios->dcb.connector.entries)
5824 cte = &bios->dcb.connector.entry[index];
5834 struct dcb_table *dcb = &bios->dcb;
5838 for (i = 0; i < dcb->entries; i++) {
5839 if (dcb->entry[i].connector == index)
5840 encoders |= (1 << dcb->entry[i].type);
5871 struct dcb_connector_table_entry *cte = &bios->dcb.connector.entry[idx];
5885 struct dcb_connector_table *ct = &bios->dcb.connector;
5887 uint8_t *conntab = &bios->data[bios->dcb.connector_table_ptr];
5891 if (!bios->dcb.connector_table_ptr) {
5974 static struct dcb_entry *new_dcb_entry(struct dcb_table *dcb)
5976 struct dcb_entry *entry = &dcb->entry[dcb->entries];
5979 entry->index = dcb->entries++;
5984 static void fabricate_vga_output(struct dcb_table *dcb, int i2c, int heads)
5986 struct dcb_entry *entry = new_dcb_entry(dcb);
5995 static void fabricate_dvi_i_output(struct dcb_table *dcb, bool twoHeads)
5997 struct dcb_entry *entry = new_dcb_entry(dcb);
6008 static void fabricate_tv_output(struct dcb_table *dcb, bool twoHeads)
6010 struct dcb_entry *entry = new_dcb_entry(dcb);
6019 parse_dcb20_entry(struct drm_device *dev, struct dcb_table *dcb,
6025 if (dcb->version >= 0x40)
6037 entry->crtconf.maxfreq = (dcb->version < 0x30) ?
6046 if (dcb->version < 0x22) {
6073 if (dcb->version >= 0x40)
6083 if (dcb->version >= 0x30)
6106 if (dcb->version >= 0x40)
6108 else if (dcb->version >= 0x30)
6110 else if (dcb->version >= 0x22)
6116 dcb->entries--;
6122 if (dcb->version < 0x40) {
6140 parse_dcb15_entry(struct drm_device *dev, struct dcb_table *dcb,
6191 static bool parse_dcb_entry(struct drm_device *dev, struct dcb_table *dcb,
6194 struct dcb_entry *entry = new_dcb_entry(dcb);
6197 if (dcb->version >= 0x20)
6198 ret = parse_dcb20_entry(dev, dcb, conn, conf, entry);
6200 ret = parse_dcb15_entry(dev, dcb, conn, conf, entry);
6204 read_dcb_i2c_entry(dev, dcb->version, dcb->i2c_table,
6205 entry->i2c_index, &dcb->i2c[entry->i2c_index]);
6211 void merge_like_dcb_entries(struct drm_device *dev, struct dcb_table *dcb)
6221 for (i = 0; i < dcb->entries; i++) {
6222 struct dcb_entry *ient = &dcb->entry[i];
6225 for (j = i + 1; j < dcb->entries; j++) {
6226 struct dcb_entry *jent = &dcb->entry[j];
6244 /* Compact entries merged into others out of dcb */
6245 for (i = 0; i < dcb->entries; i++) {
6246 if (dcb->entry[i].type == 100)
6250 dcb->entry[newentries] = dcb->entry[i];
6251 dcb->entry[newentries].index = newentries;
6256 dcb->entries = newentries;
6286 struct dcb_table *dcb = &bios->dcb;
6304 fabricate_vga_output(dcb, LEGACY_I2C_CRT, 1);
6307 fabricate_tv_output(dcb, twoHeads);
6315 dcb->version = dcbtable[0];
6317 dcb->version >> 4, dcb->version & 0xf);
6319 if (dcb->version >= 0x20) { /* NV17+ */
6322 if (dcb->version >= 0x30) { /* NV40+ */
6328 dcb->gpio_table_ptr = ROM16(dcbtable[10]);
6329 dcb->connector_table_ptr = ROM16(dcbtable[20]);
6341 } else if (dcb->version >= 0x15) { /* some NV11 and NV20 */
6368 fabricate_vga_output(dcb, LEGACY_I2C_CRT, 1);
6377 fabricate_tv_output(dcb, twoHeads);
6381 fabricate_dvi_i_output(dcb, twoHeads);
6389 dcb->i2c_table = &bios->data[i2ctabptr];
6390 if (dcb->version >= 0x30)
6391 dcb->i2c_default_indices = dcb->i2c_table[4];
6397 if (dcb->version >= 0x22) {
6398 int idx = (dcb->version >= 0x40 ?
6399 dcb->i2c_default_indices & 0xf :
6402 read_dcb_i2c_entry(dev, dcb->version, dcb->i2c_table,
6403 idx, &dcb->i2c[idx]);
6432 dcb->entries, connection, config);
6434 if (!parse_dcb_entry(dev, dcb, connection, config))
6442 if (dcb->version < 0x21)
6443 merge_like_dcb_entries(dev, dcb);
6445 if (!dcb->entries)
6456 struct dcb_table *dcb = &bios->dcb;
6465 if (dcb->version >= 0x40)
6468 dcb->connector.entries = 0;
6476 for (i = 0; i < dcb->entries; i++) {
6482 if (dcb->entry[i].type == OUTPUT_TV &&
6483 dcb->entry[i].location == DCB_LOC_ON_CHIP)
6484 dcb->entry[i].i2c_index = 0xf;
6485 i2c = dcb->entry[i].i2c_index;
6488 dcb->entry[i].connector = i2c_conn[i2c] - 1;
6492 dcb->entry[i].connector = dcb->connector.entries++;
6494 i2c_conn[i2c] = dcb->connector.entries;
6498 for (i = 0; i < dcb->connector.entries; i++) {
6499 dcb->connector.entry[i].index = i;
6500 dcb->connector.entry[i].type = divine_connector_type(bios, i);
6501 dcb->connector.entry[i].gpio_tag = 0xff;
6508 struct dcb_table *dcb = &bios->dcb;
6511 for (i = 0; i < dcb->entries; i++) {
6512 if (dcb->entry[i].i2c_index == LEGACY_I2C_CRT)
6513 dcb->entry[i].i2c_index = bios->legacy.i2c_indices.crt;
6514 if (dcb->entry[i].i2c_index == LEGACY_I2C_PANEL)
6515 dcb->entry[i].i2c_index = bios->legacy.i2c_indices.panel;
6516 if (dcb->entry[i].i2c_index == LEGACY_I2C_TV)
6517 dcb->entry[i].i2c_index = bios->legacy.i2c_indices.tv;
6713 for (i = 0; i < bios->dcb.entries; i++) {
6715 &bios->dcb.entry[i],
6731 entry = &bios->dcb.i2c[0];