diff options
-rw-r--r-- | drivers/video/omap2/dss/dispc.h | 33 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss_features.c | 19 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss_features.h | 1 |
3 files changed, 53 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/dispc.h b/drivers/video/omap2/dss/dispc.h index 42e56cc7cdbc..222363c6e623 100644 --- a/drivers/video/omap2/dss/dispc.h +++ b/drivers/video/omap2/dss/dispc.h | |||
@@ -373,6 +373,7 @@ static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane) | |||
373 | case OMAP_DSS_VIDEO2: | 373 | case OMAP_DSS_VIDEO2: |
374 | return 0x0000; | 374 | return 0x0000; |
375 | case OMAP_DSS_VIDEO3: | 375 | case OMAP_DSS_VIDEO3: |
376 | case OMAP_DSS_WB: | ||
376 | return 0x0008; | 377 | return 0x0008; |
377 | default: | 378 | default: |
378 | BUG(); | 379 | BUG(); |
@@ -388,6 +389,7 @@ static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane) | |||
388 | case OMAP_DSS_VIDEO2: | 389 | case OMAP_DSS_VIDEO2: |
389 | return 0x0004; | 390 | return 0x0004; |
390 | case OMAP_DSS_VIDEO3: | 391 | case OMAP_DSS_VIDEO3: |
392 | case OMAP_DSS_WB: | ||
391 | return 0x000C; | 393 | return 0x000C; |
392 | default: | 394 | default: |
393 | BUG(); | 395 | BUG(); |
@@ -407,6 +409,8 @@ static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane) | |||
407 | return 0x04BC; | 409 | return 0x04BC; |
408 | case OMAP_DSS_VIDEO3: | 410 | case OMAP_DSS_VIDEO3: |
409 | return 0x0310; | 411 | return 0x0310; |
412 | case OMAP_DSS_WB: | ||
413 | return 0x0118; | ||
410 | default: | 414 | default: |
411 | BUG(); | 415 | BUG(); |
412 | return 0; | 416 | return 0; |
@@ -425,6 +429,8 @@ static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane) | |||
425 | return 0x04C0; | 429 | return 0x04C0; |
426 | case OMAP_DSS_VIDEO3: | 430 | case OMAP_DSS_VIDEO3: |
427 | return 0x0314; | 431 | return 0x0314; |
432 | case OMAP_DSS_WB: | ||
433 | return 0x011C; | ||
428 | default: | 434 | default: |
429 | BUG(); | 435 | BUG(); |
430 | return 0; | 436 | return 0; |
@@ -454,6 +460,7 @@ static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane) | |||
454 | case OMAP_DSS_VIDEO2: | 460 | case OMAP_DSS_VIDEO2: |
455 | return 0x000C; | 461 | return 0x000C; |
456 | case OMAP_DSS_VIDEO3: | 462 | case OMAP_DSS_VIDEO3: |
463 | case OMAP_DSS_WB: | ||
457 | return 0x00A8; | 464 | return 0x00A8; |
458 | default: | 465 | default: |
459 | BUG(); | 466 | BUG(); |
@@ -470,6 +477,7 @@ static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane) | |||
470 | case OMAP_DSS_VIDEO2: | 477 | case OMAP_DSS_VIDEO2: |
471 | return 0x0010; | 478 | return 0x0010; |
472 | case OMAP_DSS_VIDEO3: | 479 | case OMAP_DSS_VIDEO3: |
480 | case OMAP_DSS_WB: | ||
473 | return 0x0070; | 481 | return 0x0070; |
474 | default: | 482 | default: |
475 | BUG(); | 483 | BUG(); |
@@ -489,6 +497,8 @@ static inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane) | |||
489 | return 0x04DC; | 497 | return 0x04DC; |
490 | case OMAP_DSS_VIDEO3: | 498 | case OMAP_DSS_VIDEO3: |
491 | return 0x032C; | 499 | return 0x032C; |
500 | case OMAP_DSS_WB: | ||
501 | return 0x0310; | ||
492 | default: | 502 | default: |
493 | BUG(); | 503 | BUG(); |
494 | return 0; | 504 | return 0; |
@@ -504,6 +514,7 @@ static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane) | |||
504 | case OMAP_DSS_VIDEO2: | 514 | case OMAP_DSS_VIDEO2: |
505 | return 0x0014; | 515 | return 0x0014; |
506 | case OMAP_DSS_VIDEO3: | 516 | case OMAP_DSS_VIDEO3: |
517 | case OMAP_DSS_WB: | ||
507 | return 0x008C; | 518 | return 0x008C; |
508 | default: | 519 | default: |
509 | BUG(); | 520 | BUG(); |
@@ -537,6 +548,7 @@ static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane) | |||
537 | case OMAP_DSS_VIDEO2: | 548 | case OMAP_DSS_VIDEO2: |
538 | return 0x001C; | 549 | return 0x001C; |
539 | case OMAP_DSS_VIDEO3: | 550 | case OMAP_DSS_VIDEO3: |
551 | case OMAP_DSS_WB: | ||
540 | return 0x00A4; | 552 | return 0x00A4; |
541 | default: | 553 | default: |
542 | BUG(); | 554 | BUG(); |
@@ -553,6 +565,7 @@ static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane) | |||
553 | case OMAP_DSS_VIDEO2: | 565 | case OMAP_DSS_VIDEO2: |
554 | return 0x0020; | 566 | return 0x0020; |
555 | case OMAP_DSS_VIDEO3: | 567 | case OMAP_DSS_VIDEO3: |
568 | case OMAP_DSS_WB: | ||
556 | return 0x0098; | 569 | return 0x0098; |
557 | default: | 570 | default: |
558 | BUG(); | 571 | BUG(); |
@@ -602,6 +615,7 @@ static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane) | |||
602 | case OMAP_DSS_VIDEO2: | 615 | case OMAP_DSS_VIDEO2: |
603 | return 0x0024; | 616 | return 0x0024; |
604 | case OMAP_DSS_VIDEO3: | 617 | case OMAP_DSS_VIDEO3: |
618 | case OMAP_DSS_WB: | ||
605 | return 0x0090; | 619 | return 0x0090; |
606 | default: | 620 | default: |
607 | BUG(); | 621 | BUG(); |
@@ -621,6 +635,8 @@ static inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane) | |||
621 | return 0x055C; | 635 | return 0x055C; |
622 | case OMAP_DSS_VIDEO3: | 636 | case OMAP_DSS_VIDEO3: |
623 | return 0x0424; | 637 | return 0x0424; |
638 | case OMAP_DSS_WB: | ||
639 | return 0x290; | ||
624 | default: | 640 | default: |
625 | BUG(); | 641 | BUG(); |
626 | return 0; | 642 | return 0; |
@@ -637,6 +653,7 @@ static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane) | |||
637 | case OMAP_DSS_VIDEO2: | 653 | case OMAP_DSS_VIDEO2: |
638 | return 0x0028; | 654 | return 0x0028; |
639 | case OMAP_DSS_VIDEO3: | 655 | case OMAP_DSS_VIDEO3: |
656 | case OMAP_DSS_WB: | ||
640 | return 0x0094; | 657 | return 0x0094; |
641 | default: | 658 | default: |
642 | BUG(); | 659 | BUG(); |
@@ -655,6 +672,7 @@ static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane) | |||
655 | case OMAP_DSS_VIDEO2: | 672 | case OMAP_DSS_VIDEO2: |
656 | return 0x002C; | 673 | return 0x002C; |
657 | case OMAP_DSS_VIDEO3: | 674 | case OMAP_DSS_VIDEO3: |
675 | case OMAP_DSS_WB: | ||
658 | return 0x0000; | 676 | return 0x0000; |
659 | default: | 677 | default: |
660 | BUG(); | 678 | BUG(); |
@@ -674,6 +692,8 @@ static inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane) | |||
674 | return 0x0560; | 692 | return 0x0560; |
675 | case OMAP_DSS_VIDEO3: | 693 | case OMAP_DSS_VIDEO3: |
676 | return 0x0428; | 694 | return 0x0428; |
695 | case OMAP_DSS_WB: | ||
696 | return 0x0294; | ||
677 | default: | 697 | default: |
678 | BUG(); | 698 | BUG(); |
679 | return 0; | 699 | return 0; |
@@ -690,6 +710,7 @@ static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane) | |||
690 | case OMAP_DSS_VIDEO2: | 710 | case OMAP_DSS_VIDEO2: |
691 | return 0x0030; | 711 | return 0x0030; |
692 | case OMAP_DSS_VIDEO3: | 712 | case OMAP_DSS_VIDEO3: |
713 | case OMAP_DSS_WB: | ||
693 | return 0x0004; | 714 | return 0x0004; |
694 | default: | 715 | default: |
695 | BUG(); | 716 | BUG(); |
@@ -709,6 +730,8 @@ static inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane) | |||
709 | return 0x0564; | 730 | return 0x0564; |
710 | case OMAP_DSS_VIDEO3: | 731 | case OMAP_DSS_VIDEO3: |
711 | return 0x042C; | 732 | return 0x042C; |
733 | case OMAP_DSS_WB: | ||
734 | return 0x0298; | ||
712 | default: | 735 | default: |
713 | BUG(); | 736 | BUG(); |
714 | return 0; | 737 | return 0; |
@@ -726,6 +749,7 @@ static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i) | |||
726 | case OMAP_DSS_VIDEO2: | 749 | case OMAP_DSS_VIDEO2: |
727 | return 0x0034 + i * 0x8; | 750 | return 0x0034 + i * 0x8; |
728 | case OMAP_DSS_VIDEO3: | 751 | case OMAP_DSS_VIDEO3: |
752 | case OMAP_DSS_WB: | ||
729 | return 0x0010 + i * 0x8; | 753 | return 0x0010 + i * 0x8; |
730 | default: | 754 | default: |
731 | BUG(); | 755 | BUG(); |
@@ -746,6 +770,8 @@ static inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i) | |||
746 | return 0x0568 + i * 0x8; | 770 | return 0x0568 + i * 0x8; |
747 | case OMAP_DSS_VIDEO3: | 771 | case OMAP_DSS_VIDEO3: |
748 | return 0x0430 + i * 0x8; | 772 | return 0x0430 + i * 0x8; |
773 | case OMAP_DSS_WB: | ||
774 | return 0x02A0 + i * 0x8; | ||
749 | default: | 775 | default: |
750 | BUG(); | 776 | BUG(); |
751 | return 0; | 777 | return 0; |
@@ -763,6 +789,7 @@ static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i) | |||
763 | case OMAP_DSS_VIDEO2: | 789 | case OMAP_DSS_VIDEO2: |
764 | return 0x0038 + i * 0x8; | 790 | return 0x0038 + i * 0x8; |
765 | case OMAP_DSS_VIDEO3: | 791 | case OMAP_DSS_VIDEO3: |
792 | case OMAP_DSS_WB: | ||
766 | return 0x0014 + i * 0x8; | 793 | return 0x0014 + i * 0x8; |
767 | default: | 794 | default: |
768 | BUG(); | 795 | BUG(); |
@@ -783,6 +810,8 @@ static inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i) | |||
783 | return 0x056C + i * 0x8; | 810 | return 0x056C + i * 0x8; |
784 | case OMAP_DSS_VIDEO3: | 811 | case OMAP_DSS_VIDEO3: |
785 | return 0x0434 + i * 0x8; | 812 | return 0x0434 + i * 0x8; |
813 | case OMAP_DSS_WB: | ||
814 | return 0x02A4 + i * 0x8; | ||
786 | default: | 815 | default: |
787 | BUG(); | 816 | BUG(); |
788 | return 0; | 817 | return 0; |
@@ -799,6 +828,7 @@ static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i) | |||
799 | case OMAP_DSS_VIDEO1: | 828 | case OMAP_DSS_VIDEO1: |
800 | case OMAP_DSS_VIDEO2: | 829 | case OMAP_DSS_VIDEO2: |
801 | case OMAP_DSS_VIDEO3: | 830 | case OMAP_DSS_VIDEO3: |
831 | case OMAP_DSS_WB: | ||
802 | return 0x0074 + i * 0x4; | 832 | return 0x0074 + i * 0x4; |
803 | default: | 833 | default: |
804 | BUG(); | 834 | BUG(); |
@@ -818,6 +848,7 @@ static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i) | |||
818 | case OMAP_DSS_VIDEO2: | 848 | case OMAP_DSS_VIDEO2: |
819 | return 0x00B4 + i * 0x4; | 849 | return 0x00B4 + i * 0x4; |
820 | case OMAP_DSS_VIDEO3: | 850 | case OMAP_DSS_VIDEO3: |
851 | case OMAP_DSS_WB: | ||
821 | return 0x0050 + i * 0x4; | 852 | return 0x0050 + i * 0x4; |
822 | default: | 853 | default: |
823 | BUG(); | 854 | BUG(); |
@@ -838,6 +869,8 @@ static inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i) | |||
838 | return 0x05A8 + i * 0x4; | 869 | return 0x05A8 + i * 0x4; |
839 | case OMAP_DSS_VIDEO3: | 870 | case OMAP_DSS_VIDEO3: |
840 | return 0x0470 + i * 0x4; | 871 | return 0x0470 + i * 0x4; |
872 | case OMAP_DSS_WB: | ||
873 | return 0x02E0 + i * 0x4; | ||
841 | default: | 874 | default: |
842 | BUG(); | 875 | BUG(); |
843 | return 0; | 876 | return 0; |
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c index 5a5c25b134b1..acbc1e1efba3 100644 --- a/drivers/video/omap2/dss/dss_features.c +++ b/drivers/video/omap2/dss/dss_features.c | |||
@@ -46,6 +46,7 @@ struct omap_dss_features { | |||
46 | 46 | ||
47 | const int num_mgrs; | 47 | const int num_mgrs; |
48 | const int num_ovls; | 48 | const int num_ovls; |
49 | const int num_wbs; | ||
49 | const enum omap_display_type *supported_displays; | 50 | const enum omap_display_type *supported_displays; |
50 | const enum omap_dss_output_id *supported_outputs; | 51 | const enum omap_dss_output_id *supported_outputs; |
51 | const enum omap_color_mode *supported_color_modes; | 52 | const enum omap_color_mode *supported_color_modes; |
@@ -310,6 +311,16 @@ static const enum omap_color_mode omap4_dss_supported_color_modes[] = { | |||
310 | OMAP_DSS_COLOR_ARGB16 | OMAP_DSS_COLOR_XRGB16_1555 | | 311 | OMAP_DSS_COLOR_ARGB16 | OMAP_DSS_COLOR_XRGB16_1555 | |
311 | OMAP_DSS_COLOR_ARGB32 | OMAP_DSS_COLOR_RGBX16 | | 312 | OMAP_DSS_COLOR_ARGB32 | OMAP_DSS_COLOR_RGBX16 | |
312 | OMAP_DSS_COLOR_RGBX32, | 313 | OMAP_DSS_COLOR_RGBX32, |
314 | |||
315 | /* OMAP_DSS_WB */ | ||
316 | OMAP_DSS_COLOR_RGB16 | OMAP_DSS_COLOR_RGB12U | | ||
317 | OMAP_DSS_COLOR_YUV2 | OMAP_DSS_COLOR_ARGB16_1555 | | ||
318 | OMAP_DSS_COLOR_RGBA32 | OMAP_DSS_COLOR_NV12 | | ||
319 | OMAP_DSS_COLOR_RGBA16 | OMAP_DSS_COLOR_RGB24U | | ||
320 | OMAP_DSS_COLOR_RGB24P | OMAP_DSS_COLOR_UYVY | | ||
321 | OMAP_DSS_COLOR_ARGB16 | OMAP_DSS_COLOR_XRGB16_1555 | | ||
322 | OMAP_DSS_COLOR_ARGB32 | OMAP_DSS_COLOR_RGBX16 | | ||
323 | OMAP_DSS_COLOR_RGBX32, | ||
313 | }; | 324 | }; |
314 | 325 | ||
315 | static const enum omap_overlay_caps omap2_dss_overlay_caps[] = { | 326 | static const enum omap_overlay_caps omap2_dss_overlay_caps[] = { |
@@ -710,6 +721,7 @@ static const struct omap_dss_features omap4430_es1_0_dss_features = { | |||
710 | 721 | ||
711 | .num_mgrs = 3, | 722 | .num_mgrs = 3, |
712 | .num_ovls = 4, | 723 | .num_ovls = 4, |
724 | .num_wbs = 1, | ||
713 | .supported_displays = omap4_dss_supported_displays, | 725 | .supported_displays = omap4_dss_supported_displays, |
714 | .supported_outputs = omap4_dss_supported_outputs, | 726 | .supported_outputs = omap4_dss_supported_outputs, |
715 | .supported_color_modes = omap4_dss_supported_color_modes, | 727 | .supported_color_modes = omap4_dss_supported_color_modes, |
@@ -731,6 +743,7 @@ static const struct omap_dss_features omap4430_es2_0_1_2_dss_features = { | |||
731 | 743 | ||
732 | .num_mgrs = 3, | 744 | .num_mgrs = 3, |
733 | .num_ovls = 4, | 745 | .num_ovls = 4, |
746 | .num_wbs = 1, | ||
734 | .supported_displays = omap4_dss_supported_displays, | 747 | .supported_displays = omap4_dss_supported_displays, |
735 | .supported_outputs = omap4_dss_supported_outputs, | 748 | .supported_outputs = omap4_dss_supported_outputs, |
736 | .supported_color_modes = omap4_dss_supported_color_modes, | 749 | .supported_color_modes = omap4_dss_supported_color_modes, |
@@ -752,6 +765,7 @@ static const struct omap_dss_features omap4_dss_features = { | |||
752 | 765 | ||
753 | .num_mgrs = 3, | 766 | .num_mgrs = 3, |
754 | .num_ovls = 4, | 767 | .num_ovls = 4, |
768 | .num_wbs = 1, | ||
755 | .supported_displays = omap4_dss_supported_displays, | 769 | .supported_displays = omap4_dss_supported_displays, |
756 | .supported_outputs = omap4_dss_supported_outputs, | 770 | .supported_outputs = omap4_dss_supported_outputs, |
757 | .supported_color_modes = omap4_dss_supported_color_modes, | 771 | .supported_color_modes = omap4_dss_supported_color_modes, |
@@ -829,6 +843,11 @@ int dss_feat_get_num_ovls(void) | |||
829 | return omap_current_dss_features->num_ovls; | 843 | return omap_current_dss_features->num_ovls; |
830 | } | 844 | } |
831 | 845 | ||
846 | int dss_feat_get_num_wbs(void) | ||
847 | { | ||
848 | return omap_current_dss_features->num_wbs; | ||
849 | } | ||
850 | |||
832 | unsigned long dss_feat_get_param_min(enum dss_range_param param) | 851 | unsigned long dss_feat_get_param_min(enum dss_range_param param) |
833 | { | 852 | { |
834 | return omap_current_dss_features->dss_params[param].min; | 853 | return omap_current_dss_features->dss_params[param].min; |
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h index 89df2aa860d4..9218113b5e88 100644 --- a/drivers/video/omap2/dss/dss_features.h +++ b/drivers/video/omap2/dss/dss_features.h | |||
@@ -105,6 +105,7 @@ enum dss_range_param { | |||
105 | /* DSS Feature Functions */ | 105 | /* DSS Feature Functions */ |
106 | int dss_feat_get_num_mgrs(void); | 106 | int dss_feat_get_num_mgrs(void); |
107 | int dss_feat_get_num_ovls(void); | 107 | int dss_feat_get_num_ovls(void); |
108 | int dss_feat_get_num_wbs(void); | ||
108 | unsigned long dss_feat_get_param_min(enum dss_range_param param); | 109 | unsigned long dss_feat_get_param_min(enum dss_range_param param); |
109 | unsigned long dss_feat_get_param_max(enum dss_range_param param); | 110 | unsigned long dss_feat_get_param_max(enum dss_range_param param); |
110 | enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel); | 111 | enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel); |