aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/tegra/sor.c371
-rw-r--r--drivers/gpu/drm/tegra/sor.h208
2 files changed, 290 insertions, 289 deletions
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 7591d8901f9a..65088ddeeae9 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -94,40 +94,40 @@ static int tegra_sor_dp_train_fast(struct tegra_sor *sor,
94 SOR_LANE_DRIVE_CURRENT_LANE2(0x40) | 94 SOR_LANE_DRIVE_CURRENT_LANE2(0x40) |
95 SOR_LANE_DRIVE_CURRENT_LANE1(0x40) | 95 SOR_LANE_DRIVE_CURRENT_LANE1(0x40) |
96 SOR_LANE_DRIVE_CURRENT_LANE0(0x40); 96 SOR_LANE_DRIVE_CURRENT_LANE0(0x40);
97 tegra_sor_writel(sor, value, SOR_LANE_DRIVE_CURRENT_0); 97 tegra_sor_writel(sor, value, SOR_LANE_DRIVE_CURRENT0);
98 98
99 value = SOR_LANE_PREEMPHASIS_LANE3(0x0f) | 99 value = SOR_LANE_PREEMPHASIS_LANE3(0x0f) |
100 SOR_LANE_PREEMPHASIS_LANE2(0x0f) | 100 SOR_LANE_PREEMPHASIS_LANE2(0x0f) |
101 SOR_LANE_PREEMPHASIS_LANE1(0x0f) | 101 SOR_LANE_PREEMPHASIS_LANE1(0x0f) |
102 SOR_LANE_PREEMPHASIS_LANE0(0x0f); 102 SOR_LANE_PREEMPHASIS_LANE0(0x0f);
103 tegra_sor_writel(sor, value, SOR_LANE_PREEMPHASIS_0); 103 tegra_sor_writel(sor, value, SOR_LANE_PREEMPHASIS0);
104 104
105 value = SOR_LANE_POST_CURSOR_LANE3(0x00) | 105 value = SOR_LANE_POSTCURSOR_LANE3(0x00) |
106 SOR_LANE_POST_CURSOR_LANE2(0x00) | 106 SOR_LANE_POSTCURSOR_LANE2(0x00) |
107 SOR_LANE_POST_CURSOR_LANE1(0x00) | 107 SOR_LANE_POSTCURSOR_LANE1(0x00) |
108 SOR_LANE_POST_CURSOR_LANE0(0x00); 108 SOR_LANE_POSTCURSOR_LANE0(0x00);
109 tegra_sor_writel(sor, value, SOR_LANE_POST_CURSOR_0); 109 tegra_sor_writel(sor, value, SOR_LANE_POSTCURSOR0);
110 110
111 /* disable LVDS mode */ 111 /* disable LVDS mode */
112 tegra_sor_writel(sor, 0, SOR_LVDS); 112 tegra_sor_writel(sor, 0, SOR_LVDS);
113 113
114 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 114 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
115 value |= SOR_DP_PADCTL_TX_PU_ENABLE; 115 value |= SOR_DP_PADCTL_TX_PU_ENABLE;
116 value &= ~SOR_DP_PADCTL_TX_PU_MASK; 116 value &= ~SOR_DP_PADCTL_TX_PU_MASK;
117 value |= SOR_DP_PADCTL_TX_PU(2); /* XXX: don't hardcode? */ 117 value |= SOR_DP_PADCTL_TX_PU(2); /* XXX: don't hardcode? */
118 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 118 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
119 119
120 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 120 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
121 value |= SOR_DP_PADCTL_CM_TXD_3 | SOR_DP_PADCTL_CM_TXD_2 | 121 value |= SOR_DP_PADCTL_CM_TXD_3 | SOR_DP_PADCTL_CM_TXD_2 |
122 SOR_DP_PADCTL_CM_TXD_1 | SOR_DP_PADCTL_CM_TXD_0; 122 SOR_DP_PADCTL_CM_TXD_1 | SOR_DP_PADCTL_CM_TXD_0;
123 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 123 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
124 124
125 usleep_range(10, 100); 125 usleep_range(10, 100);
126 126
127 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 127 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
128 value &= ~(SOR_DP_PADCTL_CM_TXD_3 | SOR_DP_PADCTL_CM_TXD_2 | 128 value &= ~(SOR_DP_PADCTL_CM_TXD_3 | SOR_DP_PADCTL_CM_TXD_2 |
129 SOR_DP_PADCTL_CM_TXD_1 | SOR_DP_PADCTL_CM_TXD_0); 129 SOR_DP_PADCTL_CM_TXD_1 | SOR_DP_PADCTL_CM_TXD_0);
130 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 130 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
131 131
132 err = tegra_dpaux_prepare(sor->dpaux, DP_SET_ANSI_8B10B); 132 err = tegra_dpaux_prepare(sor->dpaux, DP_SET_ANSI_8B10B);
133 if (err < 0) 133 if (err < 0)
@@ -148,11 +148,11 @@ static int tegra_sor_dp_train_fast(struct tegra_sor *sor,
148 if (err < 0) 148 if (err < 0)
149 return err; 149 return err;
150 150
151 value = tegra_sor_readl(sor, SOR_DP_SPARE_0); 151 value = tegra_sor_readl(sor, SOR_DP_SPARE0);
152 value |= SOR_DP_SPARE_SEQ_ENABLE; 152 value |= SOR_DP_SPARE_SEQ_ENABLE;
153 value &= ~SOR_DP_SPARE_PANEL_INTERNAL; 153 value &= ~SOR_DP_SPARE_PANEL_INTERNAL;
154 value |= SOR_DP_SPARE_MACRO_SOR_CLK; 154 value |= SOR_DP_SPARE_MACRO_SOR_CLK;
155 tegra_sor_writel(sor, value, SOR_DP_SPARE_0); 155 tegra_sor_writel(sor, value, SOR_DP_SPARE0);
156 156
157 for (i = 0, value = 0; i < link->num_lanes; i++) { 157 for (i = 0, value = 0; i < link->num_lanes; i++) {
158 unsigned long lane = SOR_DP_TPG_CHANNEL_CODING | 158 unsigned long lane = SOR_DP_TPG_CHANNEL_CODING |
@@ -189,16 +189,16 @@ static int tegra_sor_dp_train_fast(struct tegra_sor *sor,
189 189
190static void tegra_sor_super_update(struct tegra_sor *sor) 190static void tegra_sor_super_update(struct tegra_sor *sor)
191{ 191{
192 tegra_sor_writel(sor, 0, SOR_SUPER_STATE_0); 192 tegra_sor_writel(sor, 0, SOR_SUPER_STATE0);
193 tegra_sor_writel(sor, 1, SOR_SUPER_STATE_0); 193 tegra_sor_writel(sor, 1, SOR_SUPER_STATE0);
194 tegra_sor_writel(sor, 0, SOR_SUPER_STATE_0); 194 tegra_sor_writel(sor, 0, SOR_SUPER_STATE0);
195} 195}
196 196
197static void tegra_sor_update(struct tegra_sor *sor) 197static void tegra_sor_update(struct tegra_sor *sor)
198{ 198{
199 tegra_sor_writel(sor, 0, SOR_STATE_0); 199 tegra_sor_writel(sor, 0, SOR_STATE0);
200 tegra_sor_writel(sor, 1, SOR_STATE_0); 200 tegra_sor_writel(sor, 1, SOR_STATE0);
201 tegra_sor_writel(sor, 0, SOR_STATE_0); 201 tegra_sor_writel(sor, 0, SOR_STATE0);
202} 202}
203 203
204static int tegra_sor_setup_pwm(struct tegra_sor *sor, unsigned long timeout) 204static int tegra_sor_setup_pwm(struct tegra_sor *sor, unsigned long timeout)
@@ -235,16 +235,16 @@ static int tegra_sor_attach(struct tegra_sor *sor)
235 unsigned long value, timeout; 235 unsigned long value, timeout;
236 236
237 /* wake up in normal mode */ 237 /* wake up in normal mode */
238 value = tegra_sor_readl(sor, SOR_SUPER_STATE_1); 238 value = tegra_sor_readl(sor, SOR_SUPER_STATE1);
239 value |= SOR_SUPER_STATE_HEAD_MODE_AWAKE; 239 value |= SOR_SUPER_STATE_HEAD_MODE_AWAKE;
240 value |= SOR_SUPER_STATE_MODE_NORMAL; 240 value |= SOR_SUPER_STATE_MODE_NORMAL;
241 tegra_sor_writel(sor, value, SOR_SUPER_STATE_1); 241 tegra_sor_writel(sor, value, SOR_SUPER_STATE1);
242 tegra_sor_super_update(sor); 242 tegra_sor_super_update(sor);
243 243
244 /* attach */ 244 /* attach */
245 value = tegra_sor_readl(sor, SOR_SUPER_STATE_1); 245 value = tegra_sor_readl(sor, SOR_SUPER_STATE1);
246 value |= SOR_SUPER_STATE_ATTACHED; 246 value |= SOR_SUPER_STATE_ATTACHED;
247 tegra_sor_writel(sor, value, SOR_SUPER_STATE_1); 247 tegra_sor_writel(sor, value, SOR_SUPER_STATE1);
248 tegra_sor_super_update(sor); 248 tegra_sor_super_update(sor);
249 249
250 timeout = jiffies + msecs_to_jiffies(250); 250 timeout = jiffies + msecs_to_jiffies(250);
@@ -481,9 +481,9 @@ static int tegra_sor_detach(struct tegra_sor *sor)
481 unsigned long value, timeout; 481 unsigned long value, timeout;
482 482
483 /* switch to safe mode */ 483 /* switch to safe mode */
484 value = tegra_sor_readl(sor, SOR_SUPER_STATE_1); 484 value = tegra_sor_readl(sor, SOR_SUPER_STATE1);
485 value &= ~SOR_SUPER_STATE_MODE_NORMAL; 485 value &= ~SOR_SUPER_STATE_MODE_NORMAL;
486 tegra_sor_writel(sor, value, SOR_SUPER_STATE_1); 486 tegra_sor_writel(sor, value, SOR_SUPER_STATE1);
487 tegra_sor_super_update(sor); 487 tegra_sor_super_update(sor);
488 488
489 timeout = jiffies + msecs_to_jiffies(250); 489 timeout = jiffies + msecs_to_jiffies(250);
@@ -498,15 +498,15 @@ static int tegra_sor_detach(struct tegra_sor *sor)
498 return -ETIMEDOUT; 498 return -ETIMEDOUT;
499 499
500 /* go to sleep */ 500 /* go to sleep */
501 value = tegra_sor_readl(sor, SOR_SUPER_STATE_1); 501 value = tegra_sor_readl(sor, SOR_SUPER_STATE1);
502 value &= ~SOR_SUPER_STATE_HEAD_MODE_MASK; 502 value &= ~SOR_SUPER_STATE_HEAD_MODE_MASK;
503 tegra_sor_writel(sor, value, SOR_SUPER_STATE_1); 503 tegra_sor_writel(sor, value, SOR_SUPER_STATE1);
504 tegra_sor_super_update(sor); 504 tegra_sor_super_update(sor);
505 505
506 /* detach */ 506 /* detach */
507 value = tegra_sor_readl(sor, SOR_SUPER_STATE_1); 507 value = tegra_sor_readl(sor, SOR_SUPER_STATE1);
508 value &= ~SOR_SUPER_STATE_ATTACHED; 508 value &= ~SOR_SUPER_STATE_ATTACHED;
509 tegra_sor_writel(sor, value, SOR_SUPER_STATE_1); 509 tegra_sor_writel(sor, value, SOR_SUPER_STATE1);
510 tegra_sor_super_update(sor); 510 tegra_sor_super_update(sor);
511 511
512 timeout = jiffies + msecs_to_jiffies(250); 512 timeout = jiffies + msecs_to_jiffies(250);
@@ -552,10 +552,10 @@ static int tegra_sor_power_down(struct tegra_sor *sor)
552 if (err < 0) 552 if (err < 0)
553 dev_err(sor->dev, "failed to set safe parent clock: %d\n", err); 553 dev_err(sor->dev, "failed to set safe parent clock: %d\n", err);
554 554
555 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 555 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
556 value &= ~(SOR_DP_PADCTL_PD_TXD_3 | SOR_DP_PADCTL_PD_TXD_0 | 556 value &= ~(SOR_DP_PADCTL_PD_TXD_3 | SOR_DP_PADCTL_PD_TXD_0 |
557 SOR_DP_PADCTL_PD_TXD_1 | SOR_DP_PADCTL_PD_TXD_2); 557 SOR_DP_PADCTL_PD_TXD_1 | SOR_DP_PADCTL_PD_TXD_2);
558 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 558 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
559 559
560 /* stop lane sequencer */ 560 /* stop lane sequencer */
561 value = SOR_LANE_SEQ_CTL_TRIGGER | SOR_LANE_SEQ_CTL_SEQUENCE_UP | 561 value = SOR_LANE_SEQ_CTL_TRIGGER | SOR_LANE_SEQ_CTL_SEQUENCE_UP |
@@ -575,21 +575,20 @@ static int tegra_sor_power_down(struct tegra_sor *sor)
575 if ((value & SOR_LANE_SEQ_CTL_TRIGGER) != 0) 575 if ((value & SOR_LANE_SEQ_CTL_TRIGGER) != 0)
576 return -ETIMEDOUT; 576 return -ETIMEDOUT;
577 577
578 value = tegra_sor_readl(sor, SOR_PLL_2); 578 value = tegra_sor_readl(sor, SOR_PLL2);
579 value |= SOR_PLL_2_PORT_POWERDOWN; 579 value |= SOR_PLL2_PORT_POWERDOWN;
580 tegra_sor_writel(sor, value, SOR_PLL_2); 580 tegra_sor_writel(sor, value, SOR_PLL2);
581 581
582 usleep_range(20, 100); 582 usleep_range(20, 100);
583 583
584 value = tegra_sor_readl(sor, SOR_PLL_0); 584 value = tegra_sor_readl(sor, SOR_PLL0);
585 value |= SOR_PLL_0_POWER_OFF; 585 value |= SOR_PLL0_VCOPD | SOR_PLL0_PWR;
586 value |= SOR_PLL_0_VCOPD; 586 tegra_sor_writel(sor, value, SOR_PLL0);
587 tegra_sor_writel(sor, value, SOR_PLL_0);
588 587
589 value = tegra_sor_readl(sor, SOR_PLL_2); 588 value = tegra_sor_readl(sor, SOR_PLL2);
590 value |= SOR_PLL_2_SEQ_PLLCAPPD; 589 value |= SOR_PLL2_SEQ_PLLCAPPD;
591 value |= SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE; 590 value |= SOR_PLL2_SEQ_PLLCAPPD_ENFORCE;
592 tegra_sor_writel(sor, value, SOR_PLL_2); 591 tegra_sor_writel(sor, value, SOR_PLL2);
593 592
594 usleep_range(20, 100); 593 usleep_range(20, 100);
595 594
@@ -615,8 +614,8 @@ static int tegra_sor_crc_wait(struct tegra_sor *sor, unsigned long timeout)
615 timeout = jiffies + msecs_to_jiffies(timeout); 614 timeout = jiffies + msecs_to_jiffies(timeout);
616 615
617 while (time_before(jiffies, timeout)) { 616 while (time_before(jiffies, timeout)) {
618 value = tegra_sor_readl(sor, SOR_CRC_A); 617 value = tegra_sor_readl(sor, SOR_CRCA);
619 if (value & SOR_CRC_A_VALID) 618 if (value & SOR_CRCA_VALID)
620 return 0; 619 return 0;
621 620
622 usleep_range(100, 200); 621 usleep_range(100, 200);
@@ -640,9 +639,9 @@ static ssize_t tegra_sor_crc_read(struct file *file, char __user *buffer,
640 goto unlock; 639 goto unlock;
641 } 640 }
642 641
643 value = tegra_sor_readl(sor, SOR_STATE_1); 642 value = tegra_sor_readl(sor, SOR_STATE1);
644 value &= ~SOR_STATE_ASY_CRC_MODE_MASK; 643 value &= ~SOR_STATE_ASY_CRC_MODE_MASK;
645 tegra_sor_writel(sor, value, SOR_STATE_1); 644 tegra_sor_writel(sor, value, SOR_STATE1);
646 645
647 value = tegra_sor_readl(sor, SOR_CRC_CNTRL); 646 value = tegra_sor_readl(sor, SOR_CRC_CNTRL);
648 value |= SOR_CRC_CNTRL_ENABLE; 647 value |= SOR_CRC_CNTRL_ENABLE;
@@ -656,8 +655,8 @@ static ssize_t tegra_sor_crc_read(struct file *file, char __user *buffer,
656 if (err < 0) 655 if (err < 0)
657 goto unlock; 656 goto unlock;
658 657
659 tegra_sor_writel(sor, SOR_CRC_A_RESET, SOR_CRC_A); 658 tegra_sor_writel(sor, SOR_CRCA_RESET, SOR_CRCA);
660 value = tegra_sor_readl(sor, SOR_CRC_B); 659 value = tegra_sor_readl(sor, SOR_CRCB);
661 660
662 num = scnprintf(buf, sizeof(buf), "%08x\n", value); 661 num = scnprintf(buf, sizeof(buf), "%08x\n", value);
663 662
@@ -685,36 +684,36 @@ static int tegra_sor_show_regs(struct seq_file *s, void *data)
685 tegra_sor_readl(sor, name)) 684 tegra_sor_readl(sor, name))
686 685
687 DUMP_REG(SOR_CTXSW); 686 DUMP_REG(SOR_CTXSW);
688 DUMP_REG(SOR_SUPER_STATE_0); 687 DUMP_REG(SOR_SUPER_STATE0);
689 DUMP_REG(SOR_SUPER_STATE_1); 688 DUMP_REG(SOR_SUPER_STATE1);
690 DUMP_REG(SOR_STATE_0); 689 DUMP_REG(SOR_STATE0);
691 DUMP_REG(SOR_STATE_1); 690 DUMP_REG(SOR_STATE1);
692 DUMP_REG(SOR_HEAD_STATE_0(0)); 691 DUMP_REG(SOR_HEAD_STATE0(0));
693 DUMP_REG(SOR_HEAD_STATE_0(1)); 692 DUMP_REG(SOR_HEAD_STATE0(1));
694 DUMP_REG(SOR_HEAD_STATE_1(0)); 693 DUMP_REG(SOR_HEAD_STATE1(0));
695 DUMP_REG(SOR_HEAD_STATE_1(1)); 694 DUMP_REG(SOR_HEAD_STATE1(1));
696 DUMP_REG(SOR_HEAD_STATE_2(0)); 695 DUMP_REG(SOR_HEAD_STATE2(0));
697 DUMP_REG(SOR_HEAD_STATE_2(1)); 696 DUMP_REG(SOR_HEAD_STATE2(1));
698 DUMP_REG(SOR_HEAD_STATE_3(0)); 697 DUMP_REG(SOR_HEAD_STATE3(0));
699 DUMP_REG(SOR_HEAD_STATE_3(1)); 698 DUMP_REG(SOR_HEAD_STATE3(1));
700 DUMP_REG(SOR_HEAD_STATE_4(0)); 699 DUMP_REG(SOR_HEAD_STATE4(0));
701 DUMP_REG(SOR_HEAD_STATE_4(1)); 700 DUMP_REG(SOR_HEAD_STATE4(1));
702 DUMP_REG(SOR_HEAD_STATE_5(0)); 701 DUMP_REG(SOR_HEAD_STATE5(0));
703 DUMP_REG(SOR_HEAD_STATE_5(1)); 702 DUMP_REG(SOR_HEAD_STATE5(1));
704 DUMP_REG(SOR_CRC_CNTRL); 703 DUMP_REG(SOR_CRC_CNTRL);
705 DUMP_REG(SOR_DP_DEBUG_MVID); 704 DUMP_REG(SOR_DP_DEBUG_MVID);
706 DUMP_REG(SOR_CLK_CNTRL); 705 DUMP_REG(SOR_CLK_CNTRL);
707 DUMP_REG(SOR_CAP); 706 DUMP_REG(SOR_CAP);
708 DUMP_REG(SOR_PWR); 707 DUMP_REG(SOR_PWR);
709 DUMP_REG(SOR_TEST); 708 DUMP_REG(SOR_TEST);
710 DUMP_REG(SOR_PLL_0); 709 DUMP_REG(SOR_PLL0);
711 DUMP_REG(SOR_PLL_1); 710 DUMP_REG(SOR_PLL1);
712 DUMP_REG(SOR_PLL_2); 711 DUMP_REG(SOR_PLL2);
713 DUMP_REG(SOR_PLL_3); 712 DUMP_REG(SOR_PLL3);
714 DUMP_REG(SOR_CSTM); 713 DUMP_REG(SOR_CSTM);
715 DUMP_REG(SOR_LVDS); 714 DUMP_REG(SOR_LVDS);
716 DUMP_REG(SOR_CRC_A); 715 DUMP_REG(SOR_CRCA);
717 DUMP_REG(SOR_CRC_B); 716 DUMP_REG(SOR_CRCB);
718 DUMP_REG(SOR_BLANK); 717 DUMP_REG(SOR_BLANK);
719 DUMP_REG(SOR_SEQ_CTL); 718 DUMP_REG(SOR_SEQ_CTL);
720 DUMP_REG(SOR_LANE_SEQ_CTL); 719 DUMP_REG(SOR_LANE_SEQ_CTL);
@@ -736,68 +735,68 @@ static int tegra_sor_show_regs(struct seq_file *s, void *data)
736 DUMP_REG(SOR_SEQ_INST(15)); 735 DUMP_REG(SOR_SEQ_INST(15));
737 DUMP_REG(SOR_PWM_DIV); 736 DUMP_REG(SOR_PWM_DIV);
738 DUMP_REG(SOR_PWM_CTL); 737 DUMP_REG(SOR_PWM_CTL);
739 DUMP_REG(SOR_VCRC_A_0); 738 DUMP_REG(SOR_VCRC_A0);
740 DUMP_REG(SOR_VCRC_A_1); 739 DUMP_REG(SOR_VCRC_A1);
741 DUMP_REG(SOR_VCRC_B_0); 740 DUMP_REG(SOR_VCRC_B0);
742 DUMP_REG(SOR_VCRC_B_1); 741 DUMP_REG(SOR_VCRC_B1);
743 DUMP_REG(SOR_CCRC_A_0); 742 DUMP_REG(SOR_CCRC_A0);
744 DUMP_REG(SOR_CCRC_A_1); 743 DUMP_REG(SOR_CCRC_A1);
745 DUMP_REG(SOR_CCRC_B_0); 744 DUMP_REG(SOR_CCRC_B0);
746 DUMP_REG(SOR_CCRC_B_1); 745 DUMP_REG(SOR_CCRC_B1);
747 DUMP_REG(SOR_EDATA_A_0); 746 DUMP_REG(SOR_EDATA_A0);
748 DUMP_REG(SOR_EDATA_A_1); 747 DUMP_REG(SOR_EDATA_A1);
749 DUMP_REG(SOR_EDATA_B_0); 748 DUMP_REG(SOR_EDATA_B0);
750 DUMP_REG(SOR_EDATA_B_1); 749 DUMP_REG(SOR_EDATA_B1);
751 DUMP_REG(SOR_COUNT_A_0); 750 DUMP_REG(SOR_COUNT_A0);
752 DUMP_REG(SOR_COUNT_A_1); 751 DUMP_REG(SOR_COUNT_A1);
753 DUMP_REG(SOR_COUNT_B_0); 752 DUMP_REG(SOR_COUNT_B0);
754 DUMP_REG(SOR_COUNT_B_1); 753 DUMP_REG(SOR_COUNT_B1);
755 DUMP_REG(SOR_DEBUG_A_0); 754 DUMP_REG(SOR_DEBUG_A0);
756 DUMP_REG(SOR_DEBUG_A_1); 755 DUMP_REG(SOR_DEBUG_A1);
757 DUMP_REG(SOR_DEBUG_B_0); 756 DUMP_REG(SOR_DEBUG_B0);
758 DUMP_REG(SOR_DEBUG_B_1); 757 DUMP_REG(SOR_DEBUG_B1);
759 DUMP_REG(SOR_TRIG); 758 DUMP_REG(SOR_TRIG);
760 DUMP_REG(SOR_MSCHECK); 759 DUMP_REG(SOR_MSCHECK);
761 DUMP_REG(SOR_XBAR_CTRL); 760 DUMP_REG(SOR_XBAR_CTRL);
762 DUMP_REG(SOR_XBAR_POL); 761 DUMP_REG(SOR_XBAR_POL);
763 DUMP_REG(SOR_DP_LINKCTL_0); 762 DUMP_REG(SOR_DP_LINKCTL0);
764 DUMP_REG(SOR_DP_LINKCTL_1); 763 DUMP_REG(SOR_DP_LINKCTL1);
765 DUMP_REG(SOR_LANE_DRIVE_CURRENT_0); 764 DUMP_REG(SOR_LANE_DRIVE_CURRENT0);
766 DUMP_REG(SOR_LANE_DRIVE_CURRENT_1); 765 DUMP_REG(SOR_LANE_DRIVE_CURRENT1);
767 DUMP_REG(SOR_LANE4_DRIVE_CURRENT_0); 766 DUMP_REG(SOR_LANE4_DRIVE_CURRENT0);
768 DUMP_REG(SOR_LANE4_DRIVE_CURRENT_1); 767 DUMP_REG(SOR_LANE4_DRIVE_CURRENT1);
769 DUMP_REG(SOR_LANE_PREEMPHASIS_0); 768 DUMP_REG(SOR_LANE_PREEMPHASIS0);
770 DUMP_REG(SOR_LANE_PREEMPHASIS_1); 769 DUMP_REG(SOR_LANE_PREEMPHASIS1);
771 DUMP_REG(SOR_LANE4_PREEMPHASIS_0); 770 DUMP_REG(SOR_LANE4_PREEMPHASIS0);
772 DUMP_REG(SOR_LANE4_PREEMPHASIS_1); 771 DUMP_REG(SOR_LANE4_PREEMPHASIS1);
773 DUMP_REG(SOR_LANE_POST_CURSOR_0); 772 DUMP_REG(SOR_LANE_POSTCURSOR0);
774 DUMP_REG(SOR_LANE_POST_CURSOR_1); 773 DUMP_REG(SOR_LANE_POSTCURSOR1);
775 DUMP_REG(SOR_DP_CONFIG_0); 774 DUMP_REG(SOR_DP_CONFIG0);
776 DUMP_REG(SOR_DP_CONFIG_1); 775 DUMP_REG(SOR_DP_CONFIG1);
777 DUMP_REG(SOR_DP_MN_0); 776 DUMP_REG(SOR_DP_MN0);
778 DUMP_REG(SOR_DP_MN_1); 777 DUMP_REG(SOR_DP_MN1);
779 DUMP_REG(SOR_DP_PADCTL_0); 778 DUMP_REG(SOR_DP_PADCTL0);
780 DUMP_REG(SOR_DP_PADCTL_1); 779 DUMP_REG(SOR_DP_PADCTL1);
781 DUMP_REG(SOR_DP_DEBUG_0); 780 DUMP_REG(SOR_DP_DEBUG0);
782 DUMP_REG(SOR_DP_DEBUG_1); 781 DUMP_REG(SOR_DP_DEBUG1);
783 DUMP_REG(SOR_DP_SPARE_0); 782 DUMP_REG(SOR_DP_SPARE0);
784 DUMP_REG(SOR_DP_SPARE_1); 783 DUMP_REG(SOR_DP_SPARE1);
785 DUMP_REG(SOR_DP_AUDIO_CTRL); 784 DUMP_REG(SOR_DP_AUDIO_CTRL);
786 DUMP_REG(SOR_DP_AUDIO_HBLANK_SYMBOLS); 785 DUMP_REG(SOR_DP_AUDIO_HBLANK_SYMBOLS);
787 DUMP_REG(SOR_DP_AUDIO_VBLANK_SYMBOLS); 786 DUMP_REG(SOR_DP_AUDIO_VBLANK_SYMBOLS);
788 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_HEADER); 787 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_HEADER);
789 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_0); 788 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK0);
790 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_1); 789 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK1);
791 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_2); 790 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK2);
792 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_3); 791 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK3);
793 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_4); 792 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK4);
794 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_5); 793 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK5);
795 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK_6); 794 DUMP_REG(SOR_DP_GENERIC_INFOFRAME_SUBPACK6);
796 DUMP_REG(SOR_DP_TPG); 795 DUMP_REG(SOR_DP_TPG);
797 DUMP_REG(SOR_DP_TPG_CONFIG); 796 DUMP_REG(SOR_DP_TPG_CONFIG);
798 DUMP_REG(SOR_DP_LQ_CSTM_0); 797 DUMP_REG(SOR_DP_LQ_CSTM0);
799 DUMP_REG(SOR_DP_LQ_CSTM_1); 798 DUMP_REG(SOR_DP_LQ_CSTM1);
800 DUMP_REG(SOR_DP_LQ_CSTM_2); 799 DUMP_REG(SOR_DP_LQ_CSTM2);
801 800
802#undef DUMP_REG 801#undef DUMP_REG
803 802
@@ -999,40 +998,40 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
999 value |= SOR_CLK_CNTRL_DP_CLK_SEL_SINGLE_DPCLK; 998 value |= SOR_CLK_CNTRL_DP_CLK_SEL_SINGLE_DPCLK;
1000 tegra_sor_writel(sor, value, SOR_CLK_CNTRL); 999 tegra_sor_writel(sor, value, SOR_CLK_CNTRL);
1001 1000
1002 value = tegra_sor_readl(sor, SOR_PLL_2); 1001 value = tegra_sor_readl(sor, SOR_PLL2);
1003 value &= ~SOR_PLL_2_BANDGAP_POWERDOWN; 1002 value &= ~SOR_PLL2_BANDGAP_POWERDOWN;
1004 tegra_sor_writel(sor, value, SOR_PLL_2); 1003 tegra_sor_writel(sor, value, SOR_PLL2);
1005 usleep_range(20, 100); 1004 usleep_range(20, 100);
1006 1005
1007 value = tegra_sor_readl(sor, SOR_PLL_3); 1006 value = tegra_sor_readl(sor, SOR_PLL3);
1008 value |= SOR_PLL_3_PLL_VDD_MODE_V3_3; 1007 value |= SOR_PLL3_PLL_VDD_MODE_3V3;
1009 tegra_sor_writel(sor, value, SOR_PLL_3); 1008 tegra_sor_writel(sor, value, SOR_PLL3);
1010 1009
1011 value = SOR_PLL_0_ICHPMP(0xf) | SOR_PLL_0_VCOCAP_RST | 1010 value = SOR_PLL0_ICHPMP(0xf) | SOR_PLL0_VCOCAP_RST |
1012 SOR_PLL_0_PLLREG_LEVEL_V45 | SOR_PLL_0_RESISTOR_EXT; 1011 SOR_PLL0_PLLREG_LEVEL_V45 | SOR_PLL0_RESISTOR_EXT;
1013 tegra_sor_writel(sor, value, SOR_PLL_0); 1012 tegra_sor_writel(sor, value, SOR_PLL0);
1014 1013
1015 value = tegra_sor_readl(sor, SOR_PLL_2); 1014 value = tegra_sor_readl(sor, SOR_PLL2);
1016 value |= SOR_PLL_2_SEQ_PLLCAPPD; 1015 value |= SOR_PLL2_SEQ_PLLCAPPD;
1017 value &= ~SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE; 1016 value &= ~SOR_PLL2_SEQ_PLLCAPPD_ENFORCE;
1018 value |= SOR_PLL_2_LVDS_ENABLE; 1017 value |= SOR_PLL2_LVDS_ENABLE;
1019 tegra_sor_writel(sor, value, SOR_PLL_2); 1018 tegra_sor_writel(sor, value, SOR_PLL2);
1020 1019
1021 value = SOR_PLL_1_TERM_COMPOUT | SOR_PLL_1_TMDS_TERM; 1020 value = SOR_PLL1_TERM_COMPOUT | SOR_PLL1_TMDS_TERM;
1022 tegra_sor_writel(sor, value, SOR_PLL_1); 1021 tegra_sor_writel(sor, value, SOR_PLL1);
1023 1022
1024 while (true) { 1023 while (true) {
1025 value = tegra_sor_readl(sor, SOR_PLL_2); 1024 value = tegra_sor_readl(sor, SOR_PLL2);
1026 if ((value & SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE) == 0) 1025 if ((value & SOR_PLL2_SEQ_PLLCAPPD_ENFORCE) == 0)
1027 break; 1026 break;
1028 1027
1029 usleep_range(250, 1000); 1028 usleep_range(250, 1000);
1030 } 1029 }
1031 1030
1032 value = tegra_sor_readl(sor, SOR_PLL_2); 1031 value = tegra_sor_readl(sor, SOR_PLL2);
1033 value &= ~SOR_PLL_2_POWERDOWN_OVERRIDE; 1032 value &= ~SOR_PLL2_POWERDOWN_OVERRIDE;
1034 value &= ~SOR_PLL_2_PORT_POWERDOWN; 1033 value &= ~SOR_PLL2_PORT_POWERDOWN;
1035 tegra_sor_writel(sor, value, SOR_PLL_2); 1034 tegra_sor_writel(sor, value, SOR_PLL2);
1036 1035
1037 /* 1036 /*
1038 * power up 1037 * power up
@@ -1045,18 +1044,18 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1045 tegra_sor_writel(sor, value, SOR_CLK_CNTRL); 1044 tegra_sor_writel(sor, value, SOR_CLK_CNTRL);
1046 1045
1047 /* step 1 */ 1046 /* step 1 */
1048 value = tegra_sor_readl(sor, SOR_PLL_2); 1047 value = tegra_sor_readl(sor, SOR_PLL2);
1049 value |= SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE | SOR_PLL_2_PORT_POWERDOWN | 1048 value |= SOR_PLL2_SEQ_PLLCAPPD_ENFORCE | SOR_PLL2_PORT_POWERDOWN |
1050 SOR_PLL_2_BANDGAP_POWERDOWN; 1049 SOR_PLL2_BANDGAP_POWERDOWN;
1051 tegra_sor_writel(sor, value, SOR_PLL_2); 1050 tegra_sor_writel(sor, value, SOR_PLL2);
1052 1051
1053 value = tegra_sor_readl(sor, SOR_PLL_0); 1052 value = tegra_sor_readl(sor, SOR_PLL0);
1054 value |= SOR_PLL_0_VCOPD | SOR_PLL_0_POWER_OFF; 1053 value |= SOR_PLL0_VCOPD | SOR_PLL0_PWR;
1055 tegra_sor_writel(sor, value, SOR_PLL_0); 1054 tegra_sor_writel(sor, value, SOR_PLL0);
1056 1055
1057 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 1056 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
1058 value &= ~SOR_DP_PADCTL_PAD_CAL_PD; 1057 value &= ~SOR_DP_PADCTL_PAD_CAL_PD;
1059 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 1058 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
1060 1059
1061 /* step 2 */ 1060 /* step 2 */
1062 err = tegra_io_rail_power_on(TEGRA_IO_RAIL_LVDS); 1061 err = tegra_io_rail_power_on(TEGRA_IO_RAIL_LVDS);
@@ -1068,28 +1067,28 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1068 usleep_range(5, 100); 1067 usleep_range(5, 100);
1069 1068
1070 /* step 3 */ 1069 /* step 3 */
1071 value = tegra_sor_readl(sor, SOR_PLL_2); 1070 value = tegra_sor_readl(sor, SOR_PLL2);
1072 value &= ~SOR_PLL_2_BANDGAP_POWERDOWN; 1071 value &= ~SOR_PLL2_BANDGAP_POWERDOWN;
1073 tegra_sor_writel(sor, value, SOR_PLL_2); 1072 tegra_sor_writel(sor, value, SOR_PLL2);
1074 1073
1075 usleep_range(20, 100); 1074 usleep_range(20, 100);
1076 1075
1077 /* step 4 */ 1076 /* step 4 */
1078 value = tegra_sor_readl(sor, SOR_PLL_0); 1077 value = tegra_sor_readl(sor, SOR_PLL0);
1079 value &= ~SOR_PLL_0_POWER_OFF; 1078 value &= ~SOR_PLL0_VCOPD;
1080 value &= ~SOR_PLL_0_VCOPD; 1079 value &= ~SOR_PLL0_PWR;
1081 tegra_sor_writel(sor, value, SOR_PLL_0); 1080 tegra_sor_writel(sor, value, SOR_PLL0);
1082 1081
1083 value = tegra_sor_readl(sor, SOR_PLL_2); 1082 value = tegra_sor_readl(sor, SOR_PLL2);
1084 value &= ~SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE; 1083 value &= ~SOR_PLL2_SEQ_PLLCAPPD_ENFORCE;
1085 tegra_sor_writel(sor, value, SOR_PLL_2); 1084 tegra_sor_writel(sor, value, SOR_PLL2);
1086 1085
1087 usleep_range(200, 1000); 1086 usleep_range(200, 1000);
1088 1087
1089 /* step 5 */ 1088 /* step 5 */
1090 value = tegra_sor_readl(sor, SOR_PLL_2); 1089 value = tegra_sor_readl(sor, SOR_PLL2);
1091 value &= ~SOR_PLL_2_PORT_POWERDOWN; 1090 value &= ~SOR_PLL2_PORT_POWERDOWN;
1092 tegra_sor_writel(sor, value, SOR_PLL_2); 1091 tegra_sor_writel(sor, value, SOR_PLL2);
1093 1092
1094 /* switch to DP clock */ 1093 /* switch to DP clock */
1095 err = clk_set_parent(sor->clk, sor->clk_dp); 1094 err = clk_set_parent(sor->clk, sor->clk_dp);
@@ -1097,7 +1096,7 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1097 dev_err(sor->dev, "failed to set DP parent clock: %d\n", err); 1096 dev_err(sor->dev, "failed to set DP parent clock: %d\n", err);
1098 1097
1099 /* power DP lanes */ 1098 /* power DP lanes */
1100 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 1099 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
1101 1100
1102 if (link.num_lanes <= 2) 1101 if (link.num_lanes <= 2)
1103 value &= ~(SOR_DP_PADCTL_PD_TXD_3 | SOR_DP_PADCTL_PD_TXD_2); 1102 value &= ~(SOR_DP_PADCTL_PD_TXD_3 | SOR_DP_PADCTL_PD_TXD_2);
@@ -1114,12 +1113,12 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1114 else 1113 else
1115 value |= SOR_DP_PADCTL_PD_TXD_0; 1114 value |= SOR_DP_PADCTL_PD_TXD_0;
1116 1115
1117 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 1116 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
1118 1117
1119 value = tegra_sor_readl(sor, SOR_DP_LINKCTL_0); 1118 value = tegra_sor_readl(sor, SOR_DP_LINKCTL0);
1120 value &= ~SOR_DP_LINKCTL_LANE_COUNT_MASK; 1119 value &= ~SOR_DP_LINKCTL_LANE_COUNT_MASK;
1121 value |= SOR_DP_LINKCTL_LANE_COUNT(link.num_lanes); 1120 value |= SOR_DP_LINKCTL_LANE_COUNT(link.num_lanes);
1122 tegra_sor_writel(sor, value, SOR_DP_LINKCTL_0); 1121 tegra_sor_writel(sor, value, SOR_DP_LINKCTL0);
1123 1122
1124 /* start lane sequencer */ 1123 /* start lane sequencer */
1125 value = SOR_LANE_SEQ_CTL_TRIGGER | SOR_LANE_SEQ_CTL_SEQUENCE_DOWN | 1124 value = SOR_LANE_SEQ_CTL_TRIGGER | SOR_LANE_SEQ_CTL_SEQUENCE_DOWN |
@@ -1141,14 +1140,14 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1141 tegra_sor_writel(sor, value, SOR_CLK_CNTRL); 1140 tegra_sor_writel(sor, value, SOR_CLK_CNTRL);
1142 1141
1143 /* set linkctl */ 1142 /* set linkctl */
1144 value = tegra_sor_readl(sor, SOR_DP_LINKCTL_0); 1143 value = tegra_sor_readl(sor, SOR_DP_LINKCTL0);
1145 value |= SOR_DP_LINKCTL_ENABLE; 1144 value |= SOR_DP_LINKCTL_ENABLE;
1146 1145
1147 value &= ~SOR_DP_LINKCTL_TU_SIZE_MASK; 1146 value &= ~SOR_DP_LINKCTL_TU_SIZE_MASK;
1148 value |= SOR_DP_LINKCTL_TU_SIZE(config.tu_size); 1147 value |= SOR_DP_LINKCTL_TU_SIZE(config.tu_size);
1149 1148
1150 value |= SOR_DP_LINKCTL_ENHANCED_FRAME; 1149 value |= SOR_DP_LINKCTL_ENHANCED_FRAME;
1151 tegra_sor_writel(sor, value, SOR_DP_LINKCTL_0); 1150 tegra_sor_writel(sor, value, SOR_DP_LINKCTL0);
1152 1151
1153 for (i = 0, value = 0; i < 4; i++) { 1152 for (i = 0, value = 0; i < 4; i++) {
1154 unsigned long lane = SOR_DP_TPG_CHANNEL_CODING | 1153 unsigned long lane = SOR_DP_TPG_CHANNEL_CODING |
@@ -1159,7 +1158,7 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1159 1158
1160 tegra_sor_writel(sor, value, SOR_DP_TPG); 1159 tegra_sor_writel(sor, value, SOR_DP_TPG);
1161 1160
1162 value = tegra_sor_readl(sor, SOR_DP_CONFIG_0); 1161 value = tegra_sor_readl(sor, SOR_DP_CONFIG0);
1163 value &= ~SOR_DP_CONFIG_WATERMARK_MASK; 1162 value &= ~SOR_DP_CONFIG_WATERMARK_MASK;
1164 value |= SOR_DP_CONFIG_WATERMARK(config.watermark); 1163 value |= SOR_DP_CONFIG_WATERMARK(config.watermark);
1165 1164
@@ -1176,7 +1175,7 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1176 1175
1177 value |= SOR_DP_CONFIG_ACTIVE_SYM_ENABLE; 1176 value |= SOR_DP_CONFIG_ACTIVE_SYM_ENABLE;
1178 value |= SOR_DP_CONFIG_DISPARITY_NEGATIVE; 1177 value |= SOR_DP_CONFIG_DISPARITY_NEGATIVE;
1179 tegra_sor_writel(sor, value, SOR_DP_CONFIG_0); 1178 tegra_sor_writel(sor, value, SOR_DP_CONFIG0);
1180 1179
1181 value = tegra_sor_readl(sor, SOR_DP_AUDIO_HBLANK_SYMBOLS); 1180 value = tegra_sor_readl(sor, SOR_DP_AUDIO_HBLANK_SYMBOLS);
1182 value &= ~SOR_DP_AUDIO_HBLANK_SYMBOLS_MASK; 1181 value &= ~SOR_DP_AUDIO_HBLANK_SYMBOLS_MASK;
@@ -1189,9 +1188,9 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1189 tegra_sor_writel(sor, value, SOR_DP_AUDIO_VBLANK_SYMBOLS); 1188 tegra_sor_writel(sor, value, SOR_DP_AUDIO_VBLANK_SYMBOLS);
1190 1189
1191 /* enable pad calibration logic */ 1190 /* enable pad calibration logic */
1192 value = tegra_sor_readl(sor, SOR_DP_PADCTL_0); 1191 value = tegra_sor_readl(sor, SOR_DP_PADCTL0);
1193 value |= SOR_DP_PADCTL_PAD_CAL_PD; 1192 value |= SOR_DP_PADCTL_PAD_CAL_PD;
1194 tegra_sor_writel(sor, value, SOR_DP_PADCTL_0); 1193 tegra_sor_writel(sor, value, SOR_DP_PADCTL0);
1195 1194
1196 if (sor->dpaux) { 1195 if (sor->dpaux) {
1197 u8 rate, lanes; 1196 u8 rate, lanes;
@@ -1225,14 +1224,14 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1225 value |= SOR_CLK_CNTRL_DP_LINK_SPEED(rate); 1224 value |= SOR_CLK_CNTRL_DP_LINK_SPEED(rate);
1226 tegra_sor_writel(sor, value, SOR_CLK_CNTRL); 1225 tegra_sor_writel(sor, value, SOR_CLK_CNTRL);
1227 1226
1228 value = tegra_sor_readl(sor, SOR_DP_LINKCTL_0); 1227 value = tegra_sor_readl(sor, SOR_DP_LINKCTL0);
1229 value &= ~SOR_DP_LINKCTL_LANE_COUNT_MASK; 1228 value &= ~SOR_DP_LINKCTL_LANE_COUNT_MASK;
1230 value |= SOR_DP_LINKCTL_LANE_COUNT(lanes); 1229 value |= SOR_DP_LINKCTL_LANE_COUNT(lanes);
1231 1230
1232 if (link.capabilities & DP_LINK_CAP_ENHANCED_FRAMING) 1231 if (link.capabilities & DP_LINK_CAP_ENHANCED_FRAMING)
1233 value |= SOR_DP_LINKCTL_ENHANCED_FRAME; 1232 value |= SOR_DP_LINKCTL_ENHANCED_FRAME;
1234 1233
1235 tegra_sor_writel(sor, value, SOR_DP_LINKCTL_0); 1234 tegra_sor_writel(sor, value, SOR_DP_LINKCTL0);
1236 1235
1237 /* disable training pattern generator */ 1236 /* disable training pattern generator */
1238 1237
@@ -1295,7 +1294,7 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1295 break; 1294 break;
1296 } 1295 }
1297 1296
1298 tegra_sor_writel(sor, value, SOR_STATE_1); 1297 tegra_sor_writel(sor, value, SOR_STATE1);
1299 1298
1300 /* 1299 /*
1301 * TODO: The video timing programming below doesn't seem to match the 1300 * TODO: The video timing programming below doesn't seem to match the
@@ -1303,25 +1302,25 @@ static void tegra_sor_encoder_mode_set(struct drm_encoder *encoder,
1303 */ 1302 */
1304 1303
1305 value = ((mode->vtotal & 0x7fff) << 16) | (mode->htotal & 0x7fff); 1304 value = ((mode->vtotal & 0x7fff) << 16) | (mode->htotal & 0x7fff);
1306 tegra_sor_writel(sor, value, SOR_HEAD_STATE_1(0)); 1305 tegra_sor_writel(sor, value, SOR_HEAD_STATE1(0));
1307 1306
1308 vse = mode->vsync_end - mode->vsync_start - 1; 1307 vse = mode->vsync_end - mode->vsync_start - 1;
1309 hse = mode->hsync_end - mode->hsync_start - 1; 1308 hse = mode->hsync_end - mode->hsync_start - 1;
1310 1309
1311 value = ((vse & 0x7fff) << 16) | (hse & 0x7fff); 1310 value = ((vse & 0x7fff) << 16) | (hse & 0x7fff);
1312 tegra_sor_writel(sor, value, SOR_HEAD_STATE_2(0)); 1311 tegra_sor_writel(sor, value, SOR_HEAD_STATE2(0));
1313 1312
1314 vbe = vse + (mode->vsync_start - mode->vdisplay); 1313 vbe = vse + (mode->vsync_start - mode->vdisplay);
1315 hbe = hse + (mode->hsync_start - mode->hdisplay); 1314 hbe = hse + (mode->hsync_start - mode->hdisplay);
1316 1315
1317 value = ((vbe & 0x7fff) << 16) | (hbe & 0x7fff); 1316 value = ((vbe & 0x7fff) << 16) | (hbe & 0x7fff);
1318 tegra_sor_writel(sor, value, SOR_HEAD_STATE_3(0)); 1317 tegra_sor_writel(sor, value, SOR_HEAD_STATE3(0));
1319 1318
1320 vbs = vbe + mode->vdisplay; 1319 vbs = vbe + mode->vdisplay;
1321 hbs = hbe + mode->hdisplay; 1320 hbs = hbe + mode->hdisplay;
1322 1321
1323 value = ((vbs & 0x7fff) << 16) | (hbs & 0x7fff); 1322 value = ((vbs & 0x7fff) << 16) | (hbs & 0x7fff);
1324 tegra_sor_writel(sor, value, SOR_HEAD_STATE_4(0)); 1323 tegra_sor_writel(sor, value, SOR_HEAD_STATE4(0));
1325 1324
1326 /* CSTM (LVDS, link A/B, upper) */ 1325 /* CSTM (LVDS, link A/B, upper) */
1327 value = SOR_CSTM_LVDS | SOR_CSTM_LINK_ACT_A | SOR_CSTM_LINK_ACT_B | 1326 value = SOR_CSTM_LVDS | SOR_CSTM_LINK_ACT_A | SOR_CSTM_LINK_ACT_B |
@@ -1386,7 +1385,7 @@ static void tegra_sor_encoder_disable(struct drm_encoder *encoder)
1386 goto unlock; 1385 goto unlock;
1387 } 1386 }
1388 1387
1389 tegra_sor_writel(sor, 0, SOR_STATE_1); 1388 tegra_sor_writel(sor, 0, SOR_STATE1);
1390 tegra_sor_update(sor); 1389 tegra_sor_update(sor);
1391 1390
1392 /* 1391 /*
diff --git a/drivers/gpu/drm/tegra/sor.h b/drivers/gpu/drm/tegra/sor.h
index a5f8853fedb5..561b03ba969d 100644
--- a/drivers/gpu/drm/tegra/sor.h
+++ b/drivers/gpu/drm/tegra/sor.h
@@ -11,9 +11,9 @@
11 11
12#define SOR_CTXSW 0x00 12#define SOR_CTXSW 0x00
13 13
14#define SOR_SUPER_STATE_0 0x01 14#define SOR_SUPER_STATE0 0x01
15 15
16#define SOR_SUPER_STATE_1 0x02 16#define SOR_SUPER_STATE1 0x02
17#define SOR_SUPER_STATE_ATTACHED (1 << 3) 17#define SOR_SUPER_STATE_ATTACHED (1 << 3)
18#define SOR_SUPER_STATE_MODE_NORMAL (1 << 2) 18#define SOR_SUPER_STATE_MODE_NORMAL (1 << 2)
19#define SOR_SUPER_STATE_HEAD_MODE_MASK (3 << 0) 19#define SOR_SUPER_STATE_HEAD_MODE_MASK (3 << 0)
@@ -21,9 +21,9 @@
21#define SOR_SUPER_STATE_HEAD_MODE_SNOOZE (1 << 0) 21#define SOR_SUPER_STATE_HEAD_MODE_SNOOZE (1 << 0)
22#define SOR_SUPER_STATE_HEAD_MODE_SLEEP (0 << 0) 22#define SOR_SUPER_STATE_HEAD_MODE_SLEEP (0 << 0)
23 23
24#define SOR_STATE_0 0x03 24#define SOR_STATE0 0x03
25 25
26#define SOR_STATE_1 0x04 26#define SOR_STATE1 0x04
27#define SOR_STATE_ASY_PIXELDEPTH_MASK (0xf << 17) 27#define SOR_STATE_ASY_PIXELDEPTH_MASK (0xf << 17)
28#define SOR_STATE_ASY_PIXELDEPTH_BPP_18_444 (0x2 << 17) 28#define SOR_STATE_ASY_PIXELDEPTH_BPP_18_444 (0x2 << 17)
29#define SOR_STATE_ASY_PIXELDEPTH_BPP_24_444 (0x5 << 17) 29#define SOR_STATE_ASY_PIXELDEPTH_BPP_24_444 (0x5 << 17)
@@ -33,19 +33,21 @@
33#define SOR_STATE_ASY_PROTOCOL_CUSTOM (0xf << 8) 33#define SOR_STATE_ASY_PROTOCOL_CUSTOM (0xf << 8)
34#define SOR_STATE_ASY_PROTOCOL_DP_A (0x8 << 8) 34#define SOR_STATE_ASY_PROTOCOL_DP_A (0x8 << 8)
35#define SOR_STATE_ASY_PROTOCOL_DP_B (0x9 << 8) 35#define SOR_STATE_ASY_PROTOCOL_DP_B (0x9 << 8)
36#define SOR_STATE_ASY_PROTOCOL_SINGLE_TMDS_A (0x1 << 8)
36#define SOR_STATE_ASY_PROTOCOL_LVDS (0x0 << 8) 37#define SOR_STATE_ASY_PROTOCOL_LVDS (0x0 << 8)
37#define SOR_STATE_ASY_CRC_MODE_MASK (0x3 << 6) 38#define SOR_STATE_ASY_CRC_MODE_MASK (0x3 << 6)
38#define SOR_STATE_ASY_CRC_MODE_NON_ACTIVE (0x2 << 6) 39#define SOR_STATE_ASY_CRC_MODE_NON_ACTIVE (0x2 << 6)
39#define SOR_STATE_ASY_CRC_MODE_COMPLETE (0x1 << 6) 40#define SOR_STATE_ASY_CRC_MODE_COMPLETE (0x1 << 6)
40#define SOR_STATE_ASY_CRC_MODE_ACTIVE (0x0 << 6) 41#define SOR_STATE_ASY_CRC_MODE_ACTIVE (0x0 << 6)
42#define SOR_STATE_ASY_OWNER_MASK 0xf
41#define SOR_STATE_ASY_OWNER(x) (((x) & 0xf) << 0) 43#define SOR_STATE_ASY_OWNER(x) (((x) & 0xf) << 0)
42 44
43#define SOR_HEAD_STATE_0(x) (0x05 + (x)) 45#define SOR_HEAD_STATE0(x) (0x05 + (x))
44#define SOR_HEAD_STATE_1(x) (0x07 + (x)) 46#define SOR_HEAD_STATE1(x) (0x07 + (x))
45#define SOR_HEAD_STATE_2(x) (0x09 + (x)) 47#define SOR_HEAD_STATE2(x) (0x09 + (x))
46#define SOR_HEAD_STATE_3(x) (0x0b + (x)) 48#define SOR_HEAD_STATE3(x) (0x0b + (x))
47#define SOR_HEAD_STATE_4(x) (0x0d + (x)) 49#define SOR_HEAD_STATE4(x) (0x0d + (x))
48#define SOR_HEAD_STATE_5(x) (0x0f + (x)) 50#define SOR_HEAD_STATE5(x) (0x0f + (x))
49#define SOR_CRC_CNTRL 0x11 51#define SOR_CRC_CNTRL 0x11
50#define SOR_CRC_CNTRL_ENABLE (1 << 0) 52#define SOR_CRC_CNTRL_ENABLE (1 << 0)
51#define SOR_DP_DEBUG_MVID 0x12 53#define SOR_DP_DEBUG_MVID 0x12
@@ -75,39 +77,39 @@
75#define SOR_TEST_HEAD_MODE_MASK (3 << 8) 77#define SOR_TEST_HEAD_MODE_MASK (3 << 8)
76#define SOR_TEST_HEAD_MODE_AWAKE (2 << 8) 78#define SOR_TEST_HEAD_MODE_AWAKE (2 << 8)
77 79
78#define SOR_PLL_0 0x17 80#define SOR_PLL0 0x17
79#define SOR_PLL_0_ICHPMP_MASK (0xf << 24) 81#define SOR_PLL0_ICHPMP_MASK (0xf << 24)
80#define SOR_PLL_0_ICHPMP(x) (((x) & 0xf) << 24) 82#define SOR_PLL0_ICHPMP(x) (((x) & 0xf) << 24)
81#define SOR_PLL_0_VCOCAP_MASK (0xf << 8) 83#define SOR_PLL0_VCOCAP_MASK (0xf << 8)
82#define SOR_PLL_0_VCOCAP(x) (((x) & 0xf) << 8) 84#define SOR_PLL0_VCOCAP(x) (((x) & 0xf) << 8)
83#define SOR_PLL_0_VCOCAP_RST SOR_PLL_0_VCOCAP(3) 85#define SOR_PLL0_VCOCAP_RST SOR_PLL0_VCOCAP(3)
84#define SOR_PLL_0_PLLREG_MASK (0x3 << 6) 86#define SOR_PLL0_PLLREG_MASK (0x3 << 6)
85#define SOR_PLL_0_PLLREG_LEVEL(x) (((x) & 0x3) << 6) 87#define SOR_PLL0_PLLREG_LEVEL(x) (((x) & 0x3) << 6)
86#define SOR_PLL_0_PLLREG_LEVEL_V25 SOR_PLL_0_PLLREG_LEVEL(0) 88#define SOR_PLL0_PLLREG_LEVEL_V25 SOR_PLL0_PLLREG_LEVEL(0)
87#define SOR_PLL_0_PLLREG_LEVEL_V15 SOR_PLL_0_PLLREG_LEVEL(1) 89#define SOR_PLL0_PLLREG_LEVEL_V15 SOR_PLL0_PLLREG_LEVEL(1)
88#define SOR_PLL_0_PLLREG_LEVEL_V35 SOR_PLL_0_PLLREG_LEVEL(2) 90#define SOR_PLL0_PLLREG_LEVEL_V35 SOR_PLL0_PLLREG_LEVEL(2)
89#define SOR_PLL_0_PLLREG_LEVEL_V45 SOR_PLL_0_PLLREG_LEVEL(3) 91#define SOR_PLL0_PLLREG_LEVEL_V45 SOR_PLL0_PLLREG_LEVEL(3)
90#define SOR_PLL_0_PULLDOWN (1 << 5) 92#define SOR_PLL0_PULLDOWN (1 << 5)
91#define SOR_PLL_0_RESISTOR_EXT (1 << 4) 93#define SOR_PLL0_RESISTOR_EXT (1 << 4)
92#define SOR_PLL_0_VCOPD (1 << 2) 94#define SOR_PLL0_VCOPD (1 << 2)
93#define SOR_PLL_0_POWER_OFF (1 << 0) 95#define SOR_PLL0_PWR (1 << 0)
94 96
95#define SOR_PLL_1 0x18 97#define SOR_PLL1 0x18
96/* XXX: read-only bit? */ 98/* XXX: read-only bit? */
97#define SOR_PLL_1_TERM_COMPOUT (1 << 15) 99#define SOR_PLL1_TERM_COMPOUT (1 << 15)
98#define SOR_PLL_1_TMDS_TERM (1 << 8) 100#define SOR_PLL1_TMDS_TERM (1 << 8)
99 101
100#define SOR_PLL_2 0x19 102#define SOR_PLL2 0x19
101#define SOR_PLL_2_LVDS_ENABLE (1 << 25) 103#define SOR_PLL2_LVDS_ENABLE (1 << 25)
102#define SOR_PLL_2_SEQ_PLLCAPPD_ENFORCE (1 << 24) 104#define SOR_PLL2_SEQ_PLLCAPPD_ENFORCE (1 << 24)
103#define SOR_PLL_2_PORT_POWERDOWN (1 << 23) 105#define SOR_PLL2_PORT_POWERDOWN (1 << 23)
104#define SOR_PLL_2_BANDGAP_POWERDOWN (1 << 22) 106#define SOR_PLL2_BANDGAP_POWERDOWN (1 << 22)
105#define SOR_PLL_2_POWERDOWN_OVERRIDE (1 << 18) 107#define SOR_PLL2_POWERDOWN_OVERRIDE (1 << 18)
106#define SOR_PLL_2_SEQ_PLLCAPPD (1 << 17) 108#define SOR_PLL2_SEQ_PLLCAPPD (1 << 17)
107 109
108#define SOR_PLL_3 0x1a 110#define SOR_PLL3 0x1a
109#define SOR_PLL_3_PLL_VDD_MODE_V1_8 (0 << 13) 111#define SOR_PLL3_PLL_VDD_MODE_1V8 (0 << 13)
110#define SOR_PLL_3_PLL_VDD_MODE_V3_3 (1 << 13) 112#define SOR_PLL3_PLL_VDD_MODE_3V3 (1 << 13)
111 113
112#define SOR_CSTM 0x1b 114#define SOR_CSTM 0x1b
113#define SOR_CSTM_LVDS (1 << 16) 115#define SOR_CSTM_LVDS (1 << 16)
@@ -116,10 +118,10 @@
116#define SOR_CSTM_UPPER (1 << 11) 118#define SOR_CSTM_UPPER (1 << 11)
117 119
118#define SOR_LVDS 0x1c 120#define SOR_LVDS 0x1c
119#define SOR_CRC_A 0x1d 121#define SOR_CRCA 0x1d
120#define SOR_CRC_A_VALID (1 << 0) 122#define SOR_CRCA_VALID (1 << 0)
121#define SOR_CRC_A_RESET (1 << 0) 123#define SOR_CRCA_RESET (1 << 0)
122#define SOR_CRC_B 0x1e 124#define SOR_CRCB 0x1e
123#define SOR_BLANK 0x1f 125#define SOR_BLANK 0x1f
124#define SOR_SEQ_CTL 0x20 126#define SOR_SEQ_CTL 0x20
125 127
@@ -140,32 +142,32 @@
140#define SOR_PWM_CTL_CLK_SEL (1 << 30) 142#define SOR_PWM_CTL_CLK_SEL (1 << 30)
141#define SOR_PWM_CTL_DUTY_CYCLE_MASK 0xffffff 143#define SOR_PWM_CTL_DUTY_CYCLE_MASK 0xffffff
142 144
143#define SOR_VCRC_A_0 0x34 145#define SOR_VCRC_A0 0x34
144#define SOR_VCRC_A_1 0x35 146#define SOR_VCRC_A1 0x35
145#define SOR_VCRC_B_0 0x36 147#define SOR_VCRC_B0 0x36
146#define SOR_VCRC_B_1 0x37 148#define SOR_VCRC_B1 0x37
147#define SOR_CCRC_A_0 0x38 149#define SOR_CCRC_A0 0x38
148#define SOR_CCRC_A_1 0x39 150#define SOR_CCRC_A1 0x39
149#define SOR_CCRC_B_0 0x3a 151#define SOR_CCRC_B0 0x3a
150#define SOR_CCRC_B_1 0x3b 152#define SOR_CCRC_B1 0x3b
151#define SOR_EDATA_A_0 0x3c 153#define SOR_EDATA_A0 0x3c
152#define SOR_EDATA_A_1 0x3d 154#define SOR_EDATA_A1 0x3d
153#define SOR_EDATA_B_0 0x3e 155#define SOR_EDATA_B0 0x3e
154#define SOR_EDATA_B_1 0x3f 156#define SOR_EDATA_B1 0x3f
155#define SOR_COUNT_A_0 0x40 157#define SOR_COUNT_A0 0x40
156#define SOR_COUNT_A_1 0x41 158#define SOR_COUNT_A1 0x41
157#define SOR_COUNT_B_0 0x42 159#define SOR_COUNT_B0 0x42
158#define SOR_COUNT_B_1 0x43 160#define SOR_COUNT_B1 0x43
159#define SOR_DEBUG_A_0 0x44 161#define SOR_DEBUG_A0 0x44
160#define SOR_DEBUG_A_1 0x45 162#define SOR_DEBUG_A1 0x45
161#define SOR_DEBUG_B_0 0x46 163#define SOR_DEBUG_B0 0x46
162#define SOR_DEBUG_B_1 0x47 164#define SOR_DEBUG_B1 0x47
163#define SOR_TRIG 0x48 165#define SOR_TRIG 0x48
164#define SOR_MSCHECK 0x49 166#define SOR_MSCHECK 0x49
165#define SOR_XBAR_CTRL 0x4a 167#define SOR_XBAR_CTRL 0x4a
166#define SOR_XBAR_POL 0x4b 168#define SOR_XBAR_POL 0x4b
167 169
168#define SOR_DP_LINKCTL_0 0x4c 170#define SOR_DP_LINKCTL0 0x4c
169#define SOR_DP_LINKCTL_LANE_COUNT_MASK (0x1f << 16) 171#define SOR_DP_LINKCTL_LANE_COUNT_MASK (0x1f << 16)
170#define SOR_DP_LINKCTL_LANE_COUNT(x) (((1 << (x)) - 1) << 16) 172#define SOR_DP_LINKCTL_LANE_COUNT(x) (((1 << (x)) - 1) << 16)
171#define SOR_DP_LINKCTL_ENHANCED_FRAME (1 << 14) 173#define SOR_DP_LINKCTL_ENHANCED_FRAME (1 << 14)
@@ -173,34 +175,34 @@
173#define SOR_DP_LINKCTL_TU_SIZE(x) (((x) & 0x7f) << 2) 175#define SOR_DP_LINKCTL_TU_SIZE(x) (((x) & 0x7f) << 2)
174#define SOR_DP_LINKCTL_ENABLE (1 << 0) 176#define SOR_DP_LINKCTL_ENABLE (1 << 0)
175 177
176#define SOR_DP_LINKCTL_1 0x4d 178#define SOR_DP_LINKCTL1 0x4d
177 179
178#define SOR_LANE_DRIVE_CURRENT_0 0x4e 180#define SOR_LANE_DRIVE_CURRENT0 0x4e
179#define SOR_LANE_DRIVE_CURRENT_1 0x4f 181#define SOR_LANE_DRIVE_CURRENT1 0x4f
180#define SOR_LANE4_DRIVE_CURRENT_0 0x50 182#define SOR_LANE4_DRIVE_CURRENT0 0x50
181#define SOR_LANE4_DRIVE_CURRENT_1 0x51 183#define SOR_LANE4_DRIVE_CURRENT1 0x51
182#define SOR_LANE_DRIVE_CURRENT_LANE3(x) (((x) & 0xff) << 24) 184#define SOR_LANE_DRIVE_CURRENT_LANE3(x) (((x) & 0xff) << 24)
183#define SOR_LANE_DRIVE_CURRENT_LANE2(x) (((x) & 0xff) << 16) 185#define SOR_LANE_DRIVE_CURRENT_LANE2(x) (((x) & 0xff) << 16)
184#define SOR_LANE_DRIVE_CURRENT_LANE1(x) (((x) & 0xff) << 8) 186#define SOR_LANE_DRIVE_CURRENT_LANE1(x) (((x) & 0xff) << 8)
185#define SOR_LANE_DRIVE_CURRENT_LANE0(x) (((x) & 0xff) << 0) 187#define SOR_LANE_DRIVE_CURRENT_LANE0(x) (((x) & 0xff) << 0)
186 188
187#define SOR_LANE_PREEMPHASIS_0 0x52 189#define SOR_LANE_PREEMPHASIS0 0x52
188#define SOR_LANE_PREEMPHASIS_1 0x53 190#define SOR_LANE_PREEMPHASIS1 0x53
189#define SOR_LANE4_PREEMPHASIS_0 0x54 191#define SOR_LANE4_PREEMPHASIS0 0x54
190#define SOR_LANE4_PREEMPHASIS_1 0x55 192#define SOR_LANE4_PREEMPHASIS1 0x55
191#define SOR_LANE_PREEMPHASIS_LANE3(x) (((x) & 0xff) << 24) 193#define SOR_LANE_PREEMPHASIS_LANE3(x) (((x) & 0xff) << 24)
192#define SOR_LANE_PREEMPHASIS_LANE2(x) (((x) & 0xff) << 16) 194#define SOR_LANE_PREEMPHASIS_LANE2(x) (((x) & 0xff) << 16)
193#define SOR_LANE_PREEMPHASIS_LANE1(x) (((x) & 0xff) << 8) 195#define SOR_LANE_PREEMPHASIS_LANE1(x) (((x) & 0xff) << 8)
194#define SOR_LANE_PREEMPHASIS_LANE0(x) (((x) & 0xff) << 0) 196#define SOR_LANE_PREEMPHASIS_LANE0(x) (((x) & 0xff) << 0)
195 197
196#define SOR_LANE_POST_CURSOR_0 0x56 198#define SOR_LANE_POSTCURSOR0 0x56
197#define SOR_LANE_POST_CURSOR_1 0x57 199#define SOR_LANE_POSTCURSOR1 0x57
198#define SOR_LANE_POST_CURSOR_LANE3(x) (((x) & 0xff) << 24) 200#define SOR_LANE_POSTCURSOR_LANE3(x) (((x) & 0xff) << 24)
199#define SOR_LANE_POST_CURSOR_LANE2(x) (((x) & 0xff) << 16) 201#define SOR_LANE_POSTCURSOR_LANE2(x) (((x) & 0xff) << 16)
200#define SOR_LANE_POST_CURSOR_LANE1(x) (((x) & 0xff) << 8) 202#define SOR_LANE_POSTCURSOR_LANE1(x) (((x) & 0xff) << 8)
201#define SOR_LANE_POST_CURSOR_LANE0(x) (((x) & 0xff) << 0) 203#define SOR_LANE_POSTCURSOR_LANE0(x) (((x) & 0xff) << 0)
202 204
203#define SOR_DP_CONFIG_0 0x58 205#define SOR_DP_CONFIG0 0x58
204#define SOR_DP_CONFIG_DISPARITY_NEGATIVE (1 << 31) 206#define SOR_DP_CONFIG_DISPARITY_NEGATIVE (1 << 31)
205#define SOR_DP_CONFIG_ACTIVE_SYM_ENABLE (1 << 26) 207#define SOR_DP_CONFIG_ACTIVE_SYM_ENABLE (1 << 26)
206#define SOR_DP_CONFIG_ACTIVE_SYM_POLARITY (1 << 24) 208#define SOR_DP_CONFIG_ACTIVE_SYM_POLARITY (1 << 24)
@@ -211,11 +213,11 @@
211#define SOR_DP_CONFIG_WATERMARK_MASK (0x3f << 0) 213#define SOR_DP_CONFIG_WATERMARK_MASK (0x3f << 0)
212#define SOR_DP_CONFIG_WATERMARK(x) (((x) & 0x3f) << 0) 214#define SOR_DP_CONFIG_WATERMARK(x) (((x) & 0x3f) << 0)
213 215
214#define SOR_DP_CONFIG_1 0x59 216#define SOR_DP_CONFIG1 0x59
215#define SOR_DP_MN_0 0x5a 217#define SOR_DP_MN0 0x5a
216#define SOR_DP_MN_1 0x5b 218#define SOR_DP_MN1 0x5b
217 219
218#define SOR_DP_PADCTL_0 0x5c 220#define SOR_DP_PADCTL0 0x5c
219#define SOR_DP_PADCTL_PAD_CAL_PD (1 << 23) 221#define SOR_DP_PADCTL_PAD_CAL_PD (1 << 23)
220#define SOR_DP_PADCTL_TX_PU_ENABLE (1 << 22) 222#define SOR_DP_PADCTL_TX_PU_ENABLE (1 << 22)
221#define SOR_DP_PADCTL_TX_PU_MASK (0xff << 8) 223#define SOR_DP_PADCTL_TX_PU_MASK (0xff << 8)
@@ -229,17 +231,17 @@
229#define SOR_DP_PADCTL_PD_TXD_1 (1 << 1) 231#define SOR_DP_PADCTL_PD_TXD_1 (1 << 1)
230#define SOR_DP_PADCTL_PD_TXD_2 (1 << 0) 232#define SOR_DP_PADCTL_PD_TXD_2 (1 << 0)
231 233
232#define SOR_DP_PADCTL_1 0x5d 234#define SOR_DP_PADCTL1 0x5d
233 235
234#define SOR_DP_DEBUG_0 0x5e 236#define SOR_DP_DEBUG0 0x5e
235#define SOR_DP_DEBUG_1 0x5f 237#define SOR_DP_DEBUG1 0x5f
236 238
237#define SOR_DP_SPARE_0 0x60 239#define SOR_DP_SPARE0 0x60
238#define SOR_DP_SPARE_MACRO_SOR_CLK (1 << 2) 240#define SOR_DP_SPARE_MACRO_SOR_CLK (1 << 2)
239#define SOR_DP_SPARE_PANEL_INTERNAL (1 << 1) 241#define SOR_DP_SPARE_PANEL_INTERNAL (1 << 1)
240#define SOR_DP_SPARE_SEQ_ENABLE (1 << 0) 242#define SOR_DP_SPARE_SEQ_ENABLE (1 << 0)
241 243
242#define SOR_DP_SPARE_1 0x61 244#define SOR_DP_SPARE1 0x61
243#define SOR_DP_AUDIO_CTRL 0x62 245#define SOR_DP_AUDIO_CTRL 0x62
244 246
245#define SOR_DP_AUDIO_HBLANK_SYMBOLS 0x63 247#define SOR_DP_AUDIO_HBLANK_SYMBOLS 0x63
@@ -249,13 +251,13 @@
249#define SOR_DP_AUDIO_VBLANK_SYMBOLS_MASK (0x1fffff << 0) 251#define SOR_DP_AUDIO_VBLANK_SYMBOLS_MASK (0x1fffff << 0)
250 252
251#define SOR_DP_GENERIC_INFOFRAME_HEADER 0x65 253#define SOR_DP_GENERIC_INFOFRAME_HEADER 0x65
252#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_0 0x66 254#define SOR_DP_GENERIC_INFOFRAME_SUBPACK0 0x66
253#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_1 0x67 255#define SOR_DP_GENERIC_INFOFRAME_SUBPACK1 0x67
254#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_2 0x68 256#define SOR_DP_GENERIC_INFOFRAME_SUBPACK2 0x68
255#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_3 0x69 257#define SOR_DP_GENERIC_INFOFRAME_SUBPACK3 0x69
256#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_4 0x6a 258#define SOR_DP_GENERIC_INFOFRAME_SUBPACK4 0x6a
257#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_5 0x6b 259#define SOR_DP_GENERIC_INFOFRAME_SUBPACK5 0x6b
258#define SOR_DP_GENERIC_INFOFRAME_SUBPACK_6 0x6c 260#define SOR_DP_GENERIC_INFOFRAME_SUBPACK6 0x6c
259 261
260#define SOR_DP_TPG 0x6d 262#define SOR_DP_TPG 0x6d
261#define SOR_DP_TPG_CHANNEL_CODING (1 << 6) 263#define SOR_DP_TPG_CHANNEL_CODING (1 << 6)
@@ -275,8 +277,8 @@
275#define SOR_DP_TPG_PATTERN_NONE (0x0 << 0) 277#define SOR_DP_TPG_PATTERN_NONE (0x0 << 0)
276 278
277#define SOR_DP_TPG_CONFIG 0x6e 279#define SOR_DP_TPG_CONFIG 0x6e
278#define SOR_DP_LQ_CSTM_0 0x6f 280#define SOR_DP_LQ_CSTM0 0x6f
279#define SOR_DP_LQ_CSTM_1 0x70 281#define SOR_DP_LQ_CSTM1 0x70
280#define SOR_DP_LQ_CSTM_2 0x71 282#define SOR_DP_LQ_CSTM2 0x71
281 283
282#endif 284#endif