Subversion Repositories Kolibri OS

Rev

Rev 1246 | Rev 1313 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1246 Rev 1268
Line 176... Line 176...
176
static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encoder)
176
static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encoder)
177
{
177
{
178
	struct drm_device *dev = encoder->dev;
178
	struct drm_device *dev = encoder->dev;
179
	struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
179
	struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
180
	struct drm_display_mode *mode = NULL;
180
	struct drm_display_mode *mode = NULL;
181
	struct radeon_native_mode *native_mode = &radeon_encoder->native_mode;
181
	struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
182
 
-
 
183
	if (native_mode->panel_xres != 0 &&
-
 
184
	    native_mode->panel_yres != 0 &&
-
 
185
	    native_mode->dotclock != 0) {
-
 
186
		mode = drm_mode_create(dev);
-
 
187
 
-
 
188
		mode->hdisplay = native_mode->panel_xres;
-
 
189
		mode->vdisplay = native_mode->panel_yres;
-
 
190
 
-
 
191
		mode->htotal = mode->hdisplay + native_mode->hblank;
-
 
192
		mode->hsync_start = mode->hdisplay + native_mode->hoverplus;
-
 
193
		mode->hsync_end = mode->hsync_start + native_mode->hsync_width;
-
 
194
		mode->vtotal = mode->vdisplay + native_mode->vblank;
-
 
195
		mode->vsync_start = mode->vdisplay + native_mode->voverplus;
-
 
196
		mode->vsync_end = mode->vsync_start + native_mode->vsync_width;
-
 
197
		mode->clock = native_mode->dotclock;
-
 
198
		mode->flags = 0;
-
 
Line -... Line 182...
-
 
182
 
-
 
183
	if (native_mode->hdisplay != 0 &&
-
 
184
	    native_mode->vdisplay != 0 &&
-
 
185
	    native_mode->clock != 0) {
199
 
186
		mode = drm_mode_duplicate(dev, native_mode);
200
		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
187
		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
Line 201... Line 188...
201
		drm_mode_set_name(mode);
188
		drm_mode_set_name(mode);
202
 
189
 
Line 208... Line 195...
208
static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector)
195
static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector)
209
{
196
{
210
	struct drm_device *dev = encoder->dev;
197
	struct drm_device *dev = encoder->dev;
211
	struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
198
	struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
212
	struct drm_display_mode *mode = NULL;
199
	struct drm_display_mode *mode = NULL;
213
	struct radeon_native_mode *native_mode = &radeon_encoder->native_mode;
200
	struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
214
	int i;
201
	int i;
215
	struct mode_size {
202
	struct mode_size {
216
		int w;
203
		int w;
217
		int h;
204
		int h;
218
	} common_modes[17] = {
205
	} common_modes[17] = {
Line 234... Line 221...
234
		{1920, 1080},
221
		{1920, 1080},
235
		{1920, 1200}
222
		{1920, 1200}
236
	};
223
	};
Line 237... Line 224...
237
 
224
 
-
 
225
	for (i = 0; i < 17; i++) {
-
 
226
		if (radeon_encoder->devices & (ATOM_DEVICE_TV_SUPPORT)) {
-
 
227
			if (common_modes[i].w > 1024 ||
-
 
228
			    common_modes[i].h > 768)
-
 
229
				continue;
238
	for (i = 0; i < 17; i++) {
230
		}
239
		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
231
		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
240
			if (common_modes[i].w > native_mode->panel_xres ||
232
			if (common_modes[i].w > native_mode->hdisplay ||
241
			    common_modes[i].h > native_mode->panel_yres ||
233
			    common_modes[i].h > native_mode->vdisplay ||
242
			    (common_modes[i].w == native_mode->panel_xres &&
234
			    (common_modes[i].w == native_mode->hdisplay &&
243
			     common_modes[i].h == native_mode->panel_yres))
235
			     common_modes[i].h == native_mode->vdisplay))
244
				continue;
236
				continue;
245
		}
237
		}
246
		if (common_modes[i].w < 320 || common_modes[i].h < 200)
238
		if (common_modes[i].w < 320 || common_modes[i].h < 200)
Line 342... Line 334...
342
 
334
 
343
static void radeon_fixup_lvds_native_mode(struct drm_encoder *encoder,
335
static void radeon_fixup_lvds_native_mode(struct drm_encoder *encoder,
344
					  struct drm_connector *connector)
336
					  struct drm_connector *connector)
345
{
337
{
346
	struct radeon_encoder *radeon_encoder =	to_radeon_encoder(encoder);
338
	struct radeon_encoder *radeon_encoder =	to_radeon_encoder(encoder);
Line 347... Line 339...
347
	struct radeon_native_mode *native_mode = &radeon_encoder->native_mode;
339
	struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
348
 
340
 
349
	/* Try to get native mode details from EDID if necessary */
341
	/* Try to get native mode details from EDID if necessary */
Line 350... Line 342...
350
	if (!native_mode->dotclock) {
342
	if (!native_mode->clock) {
351
		struct drm_display_mode *t, *mode;
343
		struct drm_display_mode *t, *mode;
352
 
344
 
353
		list_for_each_entry_safe(mode, t, &connector->probed_modes, head) {
-
 
354
			if (mode->hdisplay == native_mode->panel_xres &&
-
 
355
			    mode->vdisplay == native_mode->panel_yres) {
-
 
356
				native_mode->hblank = mode->htotal - mode->hdisplay;
345
		list_for_each_entry_safe(mode, t, &connector->probed_modes, head) {
357
				native_mode->hoverplus = mode->hsync_start - mode->hdisplay;
-
 
358
				native_mode->hsync_width = mode->hsync_end - mode->hsync_start;
346
			if (mode->hdisplay == native_mode->hdisplay &&
359
				native_mode->vblank = mode->vtotal - mode->vdisplay;
-
 
360
				native_mode->voverplus = mode->vsync_start - mode->vdisplay;
347
			    mode->vdisplay == native_mode->vdisplay) {
361
				native_mode->vsync_width = mode->vsync_end - mode->vsync_start;
348
				*native_mode = *mode;
362
				native_mode->dotclock = mode->clock;
349
				drm_mode_set_crtcinfo(native_mode, CRTC_INTERLACE_HALVE_V);
363
				DRM_INFO("Determined LVDS native mode details from EDID\n");
350
				DRM_INFO("Determined LVDS native mode details from EDID\n");
364
				break;
351
				break;
365
			}
352
			}
366
		}
353
		}
367
	}
354
	}
368
	if (!native_mode->dotclock) {
355
	if (!native_mode->clock) {
369
		DRM_INFO("No LVDS native mode details, disabling RMX\n");
356
		DRM_INFO("No LVDS native mode details, disabling RMX\n");
Line 408... Line 395...
408
}
395
}
Line 409... Line 396...
409
 
396
 
410
static int radeon_lvds_mode_valid(struct drm_connector *connector,
397
static int radeon_lvds_mode_valid(struct drm_connector *connector,
411
				  struct drm_display_mode *mode)
398
				  struct drm_display_mode *mode)
-
 
399
{
-
 
400
	struct drm_encoder *encoder = radeon_best_single_encoder(connector);
-
 
401
 
-
 
402
	if ((mode->hdisplay < 320) || (mode->vdisplay < 240))
-
 
403
		return MODE_PANEL;
-
 
404
 
-
 
405
	if (encoder) {
-
 
406
		struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
-
 
407
		struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
-
 
408
 
-
 
409
		/* AVIVO hardware supports downscaling modes larger than the panel
-
 
410
		 * to the panel size, but I'm not sure this is desirable.
-
 
411
		 */
-
 
412
		if ((mode->hdisplay > native_mode->hdisplay) ||
-
 
413
		    (mode->vdisplay > native_mode->vdisplay))
-
 
414
			return MODE_PANEL;
-
 
415
 
-
 
416
		/* if scaling is disabled, block non-native modes */
-
 
417
		if (radeon_encoder->rmx_type == RMX_OFF) {
-
 
418
			if ((mode->hdisplay != native_mode->hdisplay) ||
-
 
419
			    (mode->vdisplay != native_mode->vdisplay))
-
 
420
				return MODE_PANEL;
-
 
421
		}
-
 
422
	}
412
{
423
 
413
	return MODE_OK;
424
	return MODE_OK;
Line 414... Line 425...
414
}
425
}
415
 
426
 
-
 
427
static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connector)
-
 
428
{
416
static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connector)
429
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
430
	struct drm_encoder *encoder = radeon_best_single_encoder(connector);
-
 
431
	enum drm_connector_status ret = connector_status_disconnected;
-
 
432
 
-
 
433
	if (encoder) {
-
 
434
		struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
-
 
435
		struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
-
 
436
 
-
 
437
		/* check if panel is valid */
-
 
438
		if (native_mode->hdisplay >= 320 && native_mode->vdisplay >= 240)
-
 
439
			ret = connector_status_connected;
-
 
440
 
-
 
441
	}
-
 
442
 
-
 
443
	/* check for edid as well */
-
 
444
	if (radeon_connector->edid)
-
 
445
		ret = connector_status_connected;
-
 
446
	else {
-
 
447
		if (radeon_connector->ddc_bus) {
-
 
448
			radeon_i2c_do_lock(radeon_connector, 1);
-
 
449
			radeon_connector->edid = drm_get_edid(&radeon_connector->base,
-
 
450
							      &radeon_connector->ddc_bus->adapter);
-
 
451
			radeon_i2c_do_lock(radeon_connector, 0);
-
 
452
			if (radeon_connector->edid)
-
 
453
				ret = connector_status_connected;
417
{
454
		}
-
 
455
	}
418
	enum drm_connector_status ret = connector_status_connected;
456
	/* check acpi lid status ??? */
419
	/* check acpi lid status ??? */
457
 
420
	radeon_connector_update_scratch_regs(connector, ret);
458
	radeon_connector_update_scratch_regs(connector, ret);
Line 421... Line 459...
421
	return ret;
459
	return ret;
422
}
460
}
423
 
461
 
Line 424... Line 462...
424
static void radeon_connector_destroy(struct drm_connector *connector)
462
static void radeon_connector_destroy(struct drm_connector *connector)
425
{
463
{
-
 
464
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
465
 
426
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
466
	if (radeon_connector->ddc_bus)
427
 
467
		radeon_i2c_destroy(radeon_connector->ddc_bus);
428
	if (radeon_connector->ddc_bus)
468
	if (radeon_connector->edid)
429
		radeon_i2c_destroy(radeon_connector->ddc_bus);
469
		kfree(radeon_connector->edid);
430
	kfree(radeon_connector->con_priv);
470
	kfree(radeon_connector->con_priv);
Line 494... Line 534...
494
}
534
}
Line 495... Line 535...
495
 
535
 
496
static int radeon_vga_mode_valid(struct drm_connector *connector,
536
static int radeon_vga_mode_valid(struct drm_connector *connector,
497
				  struct drm_display_mode *mode)
537
				  struct drm_display_mode *mode)
-
 
538
{
-
 
539
	/* XXX check mode bandwidth */
498
{
540
	/* XXX verify against max DAC output frequency */
499
	return MODE_OK;
541
	return MODE_OK;
Line 500... Line 542...
500
}
542
}
501
 
543
 
Line 512... Line 554...
512
		ret = connector_status_disconnected;
554
		ret = connector_status_disconnected;
Line 513... Line 555...
513
 
555
 
514
	radeon_i2c_do_lock(radeon_connector, 1);
556
	radeon_i2c_do_lock(radeon_connector, 1);
515
	dret = radeon_ddc_probe(radeon_connector);
557
	dret = radeon_ddc_probe(radeon_connector);
516
	radeon_i2c_do_lock(radeon_connector, 0);
558
	radeon_i2c_do_lock(radeon_connector, 0);
-
 
559
	if (dret) {
-
 
560
		if (radeon_connector->edid) {
-
 
561
			kfree(radeon_connector->edid);
-
 
562
			radeon_connector->edid = NULL;
-
 
563
		}
-
 
564
		radeon_i2c_do_lock(radeon_connector, 1);
-
 
565
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
-
 
566
		radeon_i2c_do_lock(radeon_connector, 0);
-
 
567
 
-
 
568
		if (!radeon_connector->edid) {
-
 
569
			DRM_ERROR("DDC responded but not EDID found for %s\n",
-
 
570
				  drm_get_connector_name(connector));
-
 
571
		} else {
-
 
572
			radeon_connector->use_digital = !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
-
 
573
 
-
 
574
			/* some oems have boards with separate digital and analog connectors
-
 
575
			 * with a shared ddc line (often vga + hdmi)
-
 
576
			 */
-
 
577
			if (radeon_connector->use_digital && radeon_connector->shared_ddc) {
-
 
578
				kfree(radeon_connector->edid);
-
 
579
				radeon_connector->edid = NULL;
-
 
580
				ret = connector_status_disconnected;
517
	if (dret)
581
			} else
-
 
582
		ret = connector_status_connected;
518
		ret = connector_status_connected;
583
		}
519
	else {
584
	} else {
520
		if (radeon_connector->dac_load_detect) {
585
		if (radeon_connector->dac_load_detect) {
521
			encoder_funcs = encoder->helper_private;
586
			encoder_funcs = encoder->helper_private;
522
			ret = encoder_funcs->detect(encoder, connector);
587
			ret = encoder_funcs->detect(encoder, connector);
523
		}
588
		}
Line 568... Line 633...
568
}
633
}
Line 569... Line 634...
569
 
634
 
570
static int radeon_tv_mode_valid(struct drm_connector *connector,
635
static int radeon_tv_mode_valid(struct drm_connector *connector,
571
				struct drm_display_mode *mode)
636
				struct drm_display_mode *mode)
-
 
637
{
-
 
638
	if ((mode->hdisplay > 1024) || (mode->vdisplay > 768))
572
{
639
		return MODE_CLOCK_RANGE;
573
	return MODE_OK;
640
	return MODE_OK;
Line 574... Line 641...
574
}
641
}
575
 
642
 
Line 642... Line 709...
642
 
709
 
643
	radeon_i2c_do_lock(radeon_connector, 1);
710
	radeon_i2c_do_lock(radeon_connector, 1);
644
	dret = radeon_ddc_probe(radeon_connector);
711
	dret = radeon_ddc_probe(radeon_connector);
645
	radeon_i2c_do_lock(radeon_connector, 0);
712
	radeon_i2c_do_lock(radeon_connector, 0);
-
 
713
	if (dret) {
-
 
714
		if (radeon_connector->edid) {
-
 
715
			kfree(radeon_connector->edid);
-
 
716
			radeon_connector->edid = NULL;
646
	if (dret) {
717
		}
647
		radeon_i2c_do_lock(radeon_connector, 1);
718
		radeon_i2c_do_lock(radeon_connector, 1);
648
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
719
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
Line 649... Line 720...
649
		radeon_i2c_do_lock(radeon_connector, 0);
720
		radeon_i2c_do_lock(radeon_connector, 0);
650
 
721
 
651
		if (!radeon_connector->edid) {
722
		if (!radeon_connector->edid) {
652
			DRM_ERROR("DDC responded but not EDID found for %s\n",
723
			DRM_ERROR("DDC responded but not EDID found for %s\n",
653
				  drm_get_connector_name(connector));
724
				  drm_get_connector_name(connector));
Line 654... Line 725...
654
		} else {
725
		} else {
655
			radeon_connector->use_digital = !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
726
			radeon_connector->use_digital = !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
-
 
727
 
-
 
728
			/* some oems have boards with separate digital and analog connectors
-
 
729
			 * with a shared ddc line (often vga + hdmi)
656
 
730
			 */
-
 
731
			if ((!radeon_connector->use_digital) && radeon_connector->shared_ddc) {
-
 
732
				kfree(radeon_connector->edid);
657
			/* if this isn't a digital monitor
733
				radeon_connector->edid = NULL;
658
			   then we need to make sure we don't have any
734
				ret = connector_status_disconnected;
659
			   TV conflicts */
735
			} else
Line 660... Line 736...
660
		ret = connector_status_connected;
736
		ret = connector_status_connected;
Line 751... Line 827...
751
		radeon_connector->use_digital = false;
827
		radeon_connector->use_digital = false;
752
	if (connector->force == DRM_FORCE_ON_DIGITAL)
828
	if (connector->force == DRM_FORCE_ON_DIGITAL)
753
		radeon_connector->use_digital = true;
829
		radeon_connector->use_digital = true;
754
}
830
}
Line -... Line 831...
-
 
831
 
-
 
832
static int radeon_dvi_mode_valid(struct drm_connector *connector,
-
 
833
				  struct drm_display_mode *mode)
-
 
834
{
-
 
835
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
836
 
-
 
837
	/* XXX check mode bandwidth */
-
 
838
 
-
 
839
	if (radeon_connector->use_digital && (mode->clock > 165000)) {
-
 
840
		if ((radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I) ||
-
 
841
		    (radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D) ||
-
 
842
		    (radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_HDMI_TYPE_B))
-
 
843
			return MODE_OK;
-
 
844
		else
-
 
845
			return MODE_CLOCK_HIGH;
-
 
846
	}
-
 
847
	return MODE_OK;
-
 
848
}
755
 
849
 
756
struct drm_connector_helper_funcs radeon_dvi_connector_helper_funcs = {
850
struct drm_connector_helper_funcs radeon_dvi_connector_helper_funcs = {
757
	.get_modes = radeon_dvi_get_modes,
851
	.get_modes = radeon_dvi_get_modes,
758
	.mode_valid = radeon_vga_mode_valid,
852
	.mode_valid = radeon_dvi_mode_valid,
759
	.best_encoder = radeon_dvi_encoder,
853
	.best_encoder = radeon_dvi_encoder,
Line 760... Line 854...
760
};
854
};
761
 
855
 
Line 773... Line 867...
773
			  uint32_t connector_id,
867
			  uint32_t connector_id,
774
			  uint32_t supported_device,
868
			  uint32_t supported_device,
775
			  int connector_type,
869
			  int connector_type,
776
			  struct radeon_i2c_bus_rec *i2c_bus,
870
			  struct radeon_i2c_bus_rec *i2c_bus,
777
			  bool linkb,
871
			  bool linkb,
778
			  uint32_t igp_lane_info)
872
			  uint32_t igp_lane_info,
-
 
873
			  uint16_t connector_object_id)
779
{
874
{
780
	struct radeon_device *rdev = dev->dev_private;
875
	struct radeon_device *rdev = dev->dev_private;
781
	struct drm_connector *connector;
876
	struct drm_connector *connector;
782
	struct radeon_connector *radeon_connector;
877
	struct radeon_connector *radeon_connector;
783
	struct radeon_connector_atom_dig *radeon_dig_connector;
878
	struct radeon_connector_atom_dig *radeon_dig_connector;
784
	uint32_t subpixel_order = SubPixelNone;
879
	uint32_t subpixel_order = SubPixelNone;
-
 
880
	bool shared_ddc = false;
785
	int ret;
881
	int ret;
Line 786... Line 882...
786
 
882
 
787
	/* fixme - tv/cv/din */
883
	/* fixme - tv/cv/din */
788
	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
884
	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
Line 793... Line 889...
793
		radeon_connector = to_radeon_connector(connector);
889
		radeon_connector = to_radeon_connector(connector);
794
		if (radeon_connector->connector_id == connector_id) {
890
		if (radeon_connector->connector_id == connector_id) {
795
			radeon_connector->devices |= supported_device;
891
			radeon_connector->devices |= supported_device;
796
			return;
892
			return;
797
		}
893
		}
-
 
894
		if (radeon_connector->ddc_bus && i2c_bus->valid) {
-
 
895
			if (memcmp(&radeon_connector->ddc_bus->rec, i2c_bus,
-
 
896
				    sizeof(struct radeon_i2c_bus_rec)) == 0) {
-
 
897
				radeon_connector->shared_ddc = true;
-
 
898
				shared_ddc = true;
-
 
899
			}
-
 
900
		}
798
	}
901
	}
Line 799... Line 902...
799
 
902
 
800
	radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
903
	radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
801
	if (!radeon_connector)
904
	if (!radeon_connector)
Line 802... Line 905...
802
		return;
905
		return;
Line 803... Line 906...
803
 
906
 
804
	connector = &radeon_connector->base;
907
	connector = &radeon_connector->base;
-
 
908
 
-
 
909
	radeon_connector->connector_id = connector_id;
805
 
910
	radeon_connector->devices = supported_device;
806
	radeon_connector->connector_id = connector_id;
911
	radeon_connector->shared_ddc = shared_ddc;
807
	radeon_connector->devices = supported_device;
912
	radeon_connector->connector_object_id = connector_object_id;
808
	switch (connector_type) {
913
	switch (connector_type) {
809
	case DRM_MODE_CONNECTOR_VGA:
914
	case DRM_MODE_CONNECTOR_VGA:
Line 954... Line 1059...
954
void
1059
void
955
radeon_add_legacy_connector(struct drm_device *dev,
1060
radeon_add_legacy_connector(struct drm_device *dev,
956
			    uint32_t connector_id,
1061
			    uint32_t connector_id,
957
			    uint32_t supported_device,
1062
			    uint32_t supported_device,
958
			    int connector_type,
1063
			    int connector_type,
959
			    struct radeon_i2c_bus_rec *i2c_bus)
1064
			    struct radeon_i2c_bus_rec *i2c_bus,
-
 
1065
			    uint16_t connector_object_id)
960
{
1066
{
961
	struct radeon_device *rdev = dev->dev_private;
1067
	struct radeon_device *rdev = dev->dev_private;
962
	struct drm_connector *connector;
1068
	struct drm_connector *connector;
963
	struct radeon_connector *radeon_connector;
1069
	struct radeon_connector *radeon_connector;
964
	uint32_t subpixel_order = SubPixelNone;
1070
	uint32_t subpixel_order = SubPixelNone;
Line 988... Line 1094...
988
 
1094
 
Line 989... Line 1095...
989
	connector = &radeon_connector->base;
1095
	connector = &radeon_connector->base;
990
 
1096
 
-
 
1097
	radeon_connector->connector_id = connector_id;
991
	radeon_connector->connector_id = connector_id;
1098
	radeon_connector->devices = supported_device;
992
	radeon_connector->devices = supported_device;
1099
	radeon_connector->connector_object_id = connector_object_id;
993
	switch (connector_type) {
1100
	switch (connector_type) {
994
	case DRM_MODE_CONNECTOR_VGA:
1101
	case DRM_MODE_CONNECTOR_VGA:
995
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
1102
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);