Subversion Repositories Kolibri OS

Rev

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

Rev 5354 Rev 6084
Line 78... Line 78...
78
#define BDB_MODE_SUPPORT_LIST	  4
78
#define BDB_MODE_SUPPORT_LIST	  4
79
#define BDB_GENERIC_MODE_TABLE	  5
79
#define BDB_GENERIC_MODE_TABLE	  5
80
#define BDB_EXT_MMIO_REGS	  6
80
#define BDB_EXT_MMIO_REGS	  6
81
#define BDB_SWF_IO		  7
81
#define BDB_SWF_IO		  7
82
#define BDB_SWF_MMIO		  8
82
#define BDB_SWF_MMIO		  8
83
#define BDB_DOT_CLOCK_TABLE	  9
83
#define BDB_PSR			  9
84
#define BDB_MODE_REMOVAL_TABLE	 10
84
#define BDB_MODE_REMOVAL_TABLE	 10
85
#define BDB_CHILD_DEVICE_TABLE	 11
85
#define BDB_CHILD_DEVICE_TABLE	 11
86
#define BDB_DRIVER_FEATURES	 12
86
#define BDB_DRIVER_FEATURES	 12
87
#define BDB_DRIVER_PERSISTENCE	 13
87
#define BDB_DRIVER_PERSISTENCE	 13
88
#define BDB_EXT_TABLE_PTRS	 14
88
#define BDB_EXT_TABLE_PTRS	 14
Line 201... Line 201...
201
 
201
 
202
#define DEVICE_PORT_DVOA	0x00 /* none on 845+ */
202
#define DEVICE_PORT_DVOA	0x00 /* none on 845+ */
203
#define DEVICE_PORT_DVOB	0x01
203
#define DEVICE_PORT_DVOB	0x01
Line -... Line 204...
-
 
204
#define DEVICE_PORT_DVOC	0x02
204
#define DEVICE_PORT_DVOC	0x02
205
 
205
 
206
/*
-
 
207
 * We used to keep this struct but without any version control. We should avoid
206
/* We used to keep this struct but without any version control. We should avoid
208
 * using it in the future, but it should be safe to keep using it in the old
207
 * using it in the future, but it should be safe to keep using it in the old
209
 * code. Do not change; we rely on its size.
208
 * code. */
210
 */
209
struct old_child_dev_config {
211
struct old_child_dev_config {
210
	u16 handle;
212
	u16 handle;
211
	u16 device_type;
213
	u16 device_type;
Line 229... Line 231...
229
} __packed;
231
} __packed;
Line 230... Line 232...
230
 
232
 
231
/* This one contains field offsets that are known to be common for all BDB
233
/* This one contains field offsets that are known to be common for all BDB
232
 * versions. Notice that the meaning of the contents contents may still change,
234
 * versions. Notice that the meaning of the contents contents may still change,
-
 
235
 * but at least the offsets are consistent. */
-
 
236
 
-
 
237
/* Definitions for flags_1 */
-
 
238
#define IBOOST_ENABLE (1<<3)
233
 * but at least the offsets are consistent. */
239
 
234
struct common_child_dev_config {
240
struct common_child_dev_config {
235
	u16 handle;
241
	u16 handle;
236
	u16 device_type;
242
	u16 device_type;
237
	u8 not_common1[12];
243
	u8 not_common1[12];
238
	u8 dvo_port;
244
	u8 dvo_port;
239
	u8 not_common2[2];
245
	u8 not_common2[2];
240
	u8 ddc_pin;
246
	u8 ddc_pin;
-
 
247
	u16 edid_ptr;
-
 
248
	u8 obsolete;
-
 
249
	u8 flags_1;
-
 
250
	u8 not_common3[13];
241
	u16 edid_ptr;
251
	u8 iboost_level;
Line -... Line 252...
-
 
252
} __packed;
242
} __packed;
253
 
243
 
254
 
244
/* This field changes depending on the BDB version, so the most reliable way to
255
/* This field changes depending on the BDB version, so the most reliable way to
245
 * read it is by checking the BDB version and reading the raw pointer. */
256
 * read it is by checking the BDB version and reading the raw pointer. */
246
union child_device_config {
257
union child_device_config {
Line 275... Line 286...
275
	 * On some platforms the number of device is 6. But could be as few as
286
	 * On some platforms the number of device is 6. But could be as few as
276
	 * 4 if both TV and LVDS are missing.
287
	 * 4 if both TV and LVDS are missing.
277
	 * And the device num is related with the size of general definition
288
	 * And the device num is related with the size of general definition
278
	 * block. It is obtained by using the following formula:
289
	 * block. It is obtained by using the following formula:
279
	 * number = (block_size - sizeof(bdb_general_definitions))/
290
	 * number = (block_size - sizeof(bdb_general_definitions))/
280
	 *	     sizeof(child_device_config);
291
	 *	     defs->child_dev_size;
281
	 */
292
	 */
282
	union child_device_config devices[0];
293
	uint8_t devices[0];
283
} __packed;
294
} __packed;
Line 284... Line 295...
284
 
295
 
285
/* Mask for DRRS / Panel Channel / SSC / BLT control bits extraction */
296
/* Mask for DRRS / Panel Channel / SSC / BLT control bits extraction */
Line 552... Line 563...
552
	u32 sdrrs_msa_timing_delay;
563
	u32 sdrrs_msa_timing_delay;
Line 553... Line 564...
553
 
564
 
554
	/* ith bit indicates enabled/disabled for (i+1)th panel */
565
	/* ith bit indicates enabled/disabled for (i+1)th panel */
555
	u16 edp_s3d_feature;
566
	u16 edp_s3d_feature;
-
 
567
	u16 edp_t3_optimization;
-
 
568
	u64 edp_vswing_preemph;		/* v173 */
-
 
569
} __packed;
-
 
570
 
-
 
571
struct psr_table {
-
 
572
	/* Feature bits */
-
 
573
	u8 full_link:1;
-
 
574
	u8 require_aux_to_wakeup:1;
-
 
575
	u8 feature_bits_rsvd:6;
-
 
576
 
-
 
577
	/* Wait times */
-
 
578
	u8 idle_frames:4;
-
 
579
	u8 lines_to_wait:3;
-
 
580
	u8 wait_times_rsvd:1;
-
 
581
 
-
 
582
	/* TP wake up time in multiple of 100 */
-
 
583
	u16 tp1_wakeup_time;
-
 
584
	u16 tp2_tp3_wakeup_time;
-
 
585
} __packed;
-
 
586
 
-
 
587
struct bdb_psr {
556
	u16 edp_t3_optimization;
588
	struct psr_table psr_table[16];
Line 557... Line -...
557
} __packed;
-
 
558
 
589
} __packed;
Line 559... Line 590...
559
void intel_setup_bios(struct drm_device *dev);
590
 
560
int intel_parse_bios(struct drm_device *dev);
591
int intel_parse_bios(struct drm_device *dev);
561
 
592
 
Line 708... Line 739...
708
 * Depending on the system, the other bits may or may not
739
 * Depending on the system, the other bits may or may not
709
 * be set for eDP outputs.
740
 * be set for eDP outputs.
710
 */
741
 */
711
#define DEVICE_TYPE_eDP_BITS \
742
#define DEVICE_TYPE_eDP_BITS \
712
	(DEVICE_TYPE_INTERNAL_CONNECTOR | \
743
	(DEVICE_TYPE_INTERNAL_CONNECTOR | \
713
	 DEVICE_TYPE_NOT_HDMI_OUTPUT | \
-
 
714
	 DEVICE_TYPE_MIPI_OUTPUT | \
744
	 DEVICE_TYPE_MIPI_OUTPUT | \
715
	 DEVICE_TYPE_COMPOSITE_OUTPUT | \
745
	 DEVICE_TYPE_COMPOSITE_OUTPUT | \
716
	 DEVICE_TYPE_DUAL_CHANNEL | \
746
	 DEVICE_TYPE_DUAL_CHANNEL | \
717
	 DEVICE_TYPE_LVDS_SINGALING | \
747
	 DEVICE_TYPE_LVDS_SINGALING | \
718
	 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
748
	 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
719
	 DEVICE_TYPE_VIDEO_SIGNALING | \
749
	 DEVICE_TYPE_VIDEO_SIGNALING | \
720
	 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
750
	 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
721
	 DEVICE_TYPE_DIGITAL_OUTPUT | \
-
 
722
	 DEVICE_TYPE_ANALOG_OUTPUT)
751
	 DEVICE_TYPE_ANALOG_OUTPUT)
Line 723... Line 752...
723
 
752
 
724
/* define the DVO port for HDMI output type */
753
/* define the DVO port for HDMI output type */
725
#define		DVO_B		1
754
#define		DVO_B		1
726
#define		DVO_C		2
755
#define		DVO_C		2
Line 727... Line -...
727
#define		DVO_D		3
-
 
728
 
-
 
729
/* define the PORT for DP output type */
-
 
730
#define		PORT_IDPB	7
-
 
731
#define		PORT_IDPC	8
-
 
732
#define		PORT_IDPD	9
756
#define		DVO_D		3
733
 
757
 
734
/* Possible values for the "DVO Port" field for versions >= 155: */
758
/* Possible values for the "DVO Port" field for versions >= 155: */
735
#define DVO_PORT_HDMIA	0
759
#define DVO_PORT_HDMIA	0
736
#define DVO_PORT_HDMIB	1
760
#define DVO_PORT_HDMIB	1
Line 741... Line 765...
741
#define DVO_PORT_CRT	6
765
#define DVO_PORT_CRT	6
742
#define DVO_PORT_DPB	7
766
#define DVO_PORT_DPB	7
743
#define DVO_PORT_DPC	8
767
#define DVO_PORT_DPC	8
744
#define DVO_PORT_DPD	9
768
#define DVO_PORT_DPD	9
745
#define DVO_PORT_DPA	10
769
#define DVO_PORT_DPA	10
-
 
770
#define DVO_PORT_DPE	11
-
 
771
#define DVO_PORT_HDMIE	12
746
#define DVO_PORT_MIPIA	21
772
#define DVO_PORT_MIPIA	21
747
#define DVO_PORT_MIPIB	22
773
#define DVO_PORT_MIPIB	22
748
#define DVO_PORT_MIPIC	23
774
#define DVO_PORT_MIPIC	23
749
#define DVO_PORT_MIPID	24
775
#define DVO_PORT_MIPID	24
Line 755... Line 781...
755
#define MAX_MIPI_CONFIGURATIONS	6
781
#define MAX_MIPI_CONFIGURATIONS	6
Line 756... Line 782...
756
 
782
 
757
#define MIPI_DSI_UNDEFINED_PANEL_ID	0
783
#define MIPI_DSI_UNDEFINED_PANEL_ID	0
Line -... Line 784...
-
 
784
#define MIPI_DSI_GENERIC_PANEL_ID	1
-
 
785
 
-
 
786
/*
-
 
787
 * PMIC vs SoC Backlight support specified in pwm_blc
-
 
788
 * field in mipi_config block below.
-
 
789
*/
-
 
790
#define PPS_BLC_PMIC   0
758
#define MIPI_DSI_GENERIC_PANEL_ID	1
791
#define PPS_BLC_SOC    1
759
 
792
 
Line 760... Line 793...
760
struct mipi_config {
793
struct mipi_config {
761
	u16 panel_id;
794
	u16 panel_id;
Line 796... Line 829...
796
#define DUAL_LINK_NOT_SUPPORTED	0
829
#define DUAL_LINK_NOT_SUPPORTED	0
797
#define DUAL_LINK_FRONT_BACK	1
830
#define DUAL_LINK_FRONT_BACK	1
798
#define DUAL_LINK_PIXEL_ALT	2
831
#define DUAL_LINK_PIXEL_ALT	2
799
	u16 dual_link:2;
832
	u16 dual_link:2;
800
	u16 lane_cnt:2;
833
	u16 lane_cnt:2;
-
 
834
	u16 pixel_overlap:3;
801
	u16 rsvd3:12;
835
	u16 rsvd3:9;
Line 802... Line 836...
802
 
836
 
Line 803... Line 837...
803
	u16 rsvd4;
837
	u16 rsvd4;
804
 
838