aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/omap2/dss/dispc.h33
-rw-r--r--drivers/video/omap2/dss/dss_features.c19
-rw-r--r--drivers/video/omap2/dss/dss_features.h1
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
315static const enum omap_overlay_caps omap2_dss_overlay_caps[] = { 326static 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
846int dss_feat_get_num_wbs(void)
847{
848 return omap_current_dss_features->num_wbs;
849}
850
832unsigned long dss_feat_get_param_min(enum dss_range_param param) 851unsigned 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 */
106int dss_feat_get_num_mgrs(void); 106int dss_feat_get_num_mgrs(void);
107int dss_feat_get_num_ovls(void); 107int dss_feat_get_num_ovls(void);
108int dss_feat_get_num_wbs(void);
108unsigned long dss_feat_get_param_min(enum dss_range_param param); 109unsigned long dss_feat_get_param_min(enum dss_range_param param);
109unsigned long dss_feat_get_param_max(enum dss_range_param param); 110unsigned long dss_feat_get_param_max(enum dss_range_param param);
110enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel); 111enum omap_display_type dss_feat_get_supported_displays(enum omap_channel channel);