Message ID | 20230113162428.33874-18-harry.wentland@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Enable Colorspace connector property in amdgpu | expand |
On 1/13/23 11:24, Harry Wentland wrote: > Format the input and output CSC matrix so they > look like 3x4 matrixes. This will make parsing them > much easier and allows us to quickly spot potential > mistakes. > > Signed-off-by: Harry Wentland <harry.wentland@amd.com> > Cc: Pekka Paalanen <ppaalanen@gmail.com> > Cc: Sebastian Wick <sebastian.wick@redhat.com> > Cc: Vitaly.Prosyak@amd.com > Cc: Joshua Ashton <joshua@froggi.es> > Cc: dri-devel@lists.freedesktop.org > Cc: amd-gfx@lists.freedesktop.org Reviewed-by: Leo Li <sunpeng.li@amd.com> > --- > .../drm/amd/display/dc/core/dc_hw_sequencer.c | 38 ++++++++----- > drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 54 +++++++++++-------- > 2 files changed, 56 insertions(+), 36 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c > index 471078fc3900..a70f045fc5c1 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c > @@ -73,28 +73,38 @@ struct out_csc_color_matrix_type { > > static const struct out_csc_color_matrix_type output_csc_matrix[] = { > { COLOR_SPACE_RGB_TYPE, > - { 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, > + { 0x2000, 0, 0, 0, > + 0, 0x2000, 0, 0, > + 0, 0, 0x2000, 0} }, > { COLOR_SPACE_RGB_LIMITED_TYPE, > - { 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} }, > + { 0x1B67, 0, 0, 0x201, > + 0, 0x1B67, 0, 0x201, > + 0, 0, 0x1B67, 0x201} }, > { COLOR_SPACE_YCBCR601_TYPE, > - { 0xE04, 0xF444, 0xFDB9, 0x1004, 0x831, 0x1016, 0x320, 0x201, 0xFB45, > - 0xF6B7, 0xE04, 0x1004} }, > + { 0xE04, 0xF444, 0xFDB9, 0x1004, > + 0x831, 0x1016, 0x320, 0x201, > + 0xFB45, 0xF6B7, 0xE04, 0x1004} }, > { COLOR_SPACE_YCBCR709_TYPE, > - { 0xE04, 0xF345, 0xFEB7, 0x1004, 0x5D3, 0x1399, 0x1FA, > - 0x201, 0xFCCA, 0xF533, 0xE04, 0x1004} }, > + { 0xE04, 0xF345, 0xFEB7, 0x1004, > + 0x5D3, 0x1399, 0x1FA, 0x201, > + 0xFCCA, 0xF533, 0xE04, 0x1004} }, > /* TODO: correct values below */ > { COLOR_SPACE_YCBCR601_LIMITED_TYPE, > - { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991, > - 0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} }, > + { 0xE00, 0xF447, 0xFDB9, 0x1000, > + 0x991, 0x12C9, 0x3A6, 0x200, > + 0xFB47, 0xF6B9, 0xE00, 0x1000} }, > { COLOR_SPACE_YCBCR709_LIMITED_TYPE, > - { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3, > - 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }, > + { 0xE00, 0xF349, 0xFEB7, 0x1000, > + 0x6CE, 0x16E3, 0x24F, 0x200, > + 0xFCCB, 0xF535, 0xE00, 0x1000} }, > { COLOR_SPACE_YCBCR2020_TYPE, > - { 0x1000, 0xF149, 0xFEB7, 0x0000, 0x0868, 0x15B2, > - 0x01E6, 0x0000, 0xFB88, 0xF478, 0x1000, 0x0000} }, > + { 0x1000, 0xF149, 0xFEB7, 0x0000, > + 0x0868, 0x15B2, 0x01E6, 0x0000, > + 0xFB88, 0xF478, 0x1000, 0x0000} }, > { COLOR_SPACE_YCBCR709_BLACK_TYPE, > - { 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, > - 0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x1000} }, > + { 0x0000, 0x0000, 0x0000, 0x1000, > + 0x0000, 0x0000, 0x0000, 0x0200, > + 0x0000, 0x0000, 0x0000, 0x1000} }, > }; > > static bool is_rgb_type( > diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h > index 131fcfa28bca..f4aa76e02518 100644 > --- a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h > +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h > @@ -70,28 +70,38 @@ struct dpp_input_csc_matrix { > }; > > static const struct dpp_input_csc_matrix __maybe_unused dpp_input_csc_matrix[] = { > - {COLOR_SPACE_SRGB, > - {0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, > - {COLOR_SPACE_SRGB_LIMITED, > - {0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, > - {COLOR_SPACE_YCBCR601, > - {0x2cdd, 0x2000, 0, 0xe991, 0xe926, 0x2000, 0xf4fd, 0x10ef, > - 0, 0x2000, 0x38b4, 0xe3a6} }, > - {COLOR_SPACE_YCBCR601_LIMITED, > - {0x3353, 0x2568, 0, 0xe400, 0xe5dc, 0x2568, 0xf367, 0x1108, > - 0, 0x2568, 0x40de, 0xdd3a} }, > - {COLOR_SPACE_YCBCR709, > - {0x3265, 0x2000, 0, 0xe6ce, 0xf105, 0x2000, 0xfa01, 0xa7d, 0, > - 0x2000, 0x3b61, 0xe24f} }, > - {COLOR_SPACE_YCBCR709_LIMITED, > - {0x39a6, 0x2568, 0, 0xe0d6, 0xeedd, 0x2568, 0xf925, 0x9a8, 0, > - 0x2568, 0x43ee, 0xdbb2} }, > - {COLOR_SPACE_2020_YCBCR, > - {0x2F30, 0x2000, 0, 0xE869, 0xEDB7, 0x2000, 0xFABC, 0xBC6, 0, > - 0x2000, 0x3C34, 0xE1E6} }, > - {COLOR_SPACE_2020_RGB_LIMITEDRANGE, > - {0x35E0, 0x255F, 0, 0xE2B3, 0xEB20, 0x255F, 0xF9FD, 0xB1E, 0, > - 0x255F, 0x44BD, 0xDB43} } > + { COLOR_SPACE_SRGB, > + { 0x2000, 0, 0, 0, > + 0, 0x2000, 0, 0, > + 0, 0, 0x2000, 0 } }, > + { COLOR_SPACE_SRGB_LIMITED, > + { 0x2000, 0, 0, 0, > + 0, 0x2000, 0, 0, > + 0, 0, 0x2000, 0 } }, > + { COLOR_SPACE_YCBCR601, > + { 0x2cdd, 0x2000, 0, 0xe991, > + 0xe926, 0x2000, 0xf4fd, 0x10ef, > + 0, 0x2000, 0x38b4, 0xe3a6 } }, > + { COLOR_SPACE_YCBCR601_LIMITED, > + { 0x3353, 0x2568, 0, 0xe400, > + 0xe5dc, 0x2568, 0xf367, 0x1108, > + 0, 0x2568, 0x40de, 0xdd3a } }, > + { COLOR_SPACE_YCBCR709, > + { 0x3265, 0x2000, 0, 0xe6ce, > + 0xf105, 0x2000, 0xfa01, 0xa7d, > + 0, 0x2000, 0x3b61, 0xe24f } }, > + { COLOR_SPACE_YCBCR709_LIMITED, > + { 0x39a6, 0x2568, 0, 0xe0d6, > + 0xeedd, 0x2568, 0xf925, 0x9a8, > + 0, 0x2568, 0x43ee, 0xdbb2 } }, > + { COLOR_SPACE_2020_YCBCR, > + { 0x2F30, 0x2000, 0, 0xE869, > + 0xEDB7, 0x2000, 0xFABC, 0xBC6, > + 0, 0x2000, 0x3C34, 0xE1E6 } }, > + { COLOR_SPACE_2020_RGB_LIMITEDRANGE, > + { 0x35E0, 0x255F, 0, 0xE2B3, > + 0xEB20, 0x255F, 0xF9FD, 0xB1E, > + 0, 0x255F, 0x44BD, 0xDB43 } } > }; > > struct dpp_grph_csc_adjustment {
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c index 471078fc3900..a70f045fc5c1 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c @@ -73,28 +73,38 @@ struct out_csc_color_matrix_type { static const struct out_csc_color_matrix_type output_csc_matrix[] = { { COLOR_SPACE_RGB_TYPE, - { 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, + { 0x2000, 0, 0, 0, + 0, 0x2000, 0, 0, + 0, 0, 0x2000, 0} }, { COLOR_SPACE_RGB_LIMITED_TYPE, - { 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} }, + { 0x1B67, 0, 0, 0x201, + 0, 0x1B67, 0, 0x201, + 0, 0, 0x1B67, 0x201} }, { COLOR_SPACE_YCBCR601_TYPE, - { 0xE04, 0xF444, 0xFDB9, 0x1004, 0x831, 0x1016, 0x320, 0x201, 0xFB45, - 0xF6B7, 0xE04, 0x1004} }, + { 0xE04, 0xF444, 0xFDB9, 0x1004, + 0x831, 0x1016, 0x320, 0x201, + 0xFB45, 0xF6B7, 0xE04, 0x1004} }, { COLOR_SPACE_YCBCR709_TYPE, - { 0xE04, 0xF345, 0xFEB7, 0x1004, 0x5D3, 0x1399, 0x1FA, - 0x201, 0xFCCA, 0xF533, 0xE04, 0x1004} }, + { 0xE04, 0xF345, 0xFEB7, 0x1004, + 0x5D3, 0x1399, 0x1FA, 0x201, + 0xFCCA, 0xF533, 0xE04, 0x1004} }, /* TODO: correct values below */ { COLOR_SPACE_YCBCR601_LIMITED_TYPE, - { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991, - 0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} }, + { 0xE00, 0xF447, 0xFDB9, 0x1000, + 0x991, 0x12C9, 0x3A6, 0x200, + 0xFB47, 0xF6B9, 0xE00, 0x1000} }, { COLOR_SPACE_YCBCR709_LIMITED_TYPE, - { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3, - 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }, + { 0xE00, 0xF349, 0xFEB7, 0x1000, + 0x6CE, 0x16E3, 0x24F, 0x200, + 0xFCCB, 0xF535, 0xE00, 0x1000} }, { COLOR_SPACE_YCBCR2020_TYPE, - { 0x1000, 0xF149, 0xFEB7, 0x0000, 0x0868, 0x15B2, - 0x01E6, 0x0000, 0xFB88, 0xF478, 0x1000, 0x0000} }, + { 0x1000, 0xF149, 0xFEB7, 0x0000, + 0x0868, 0x15B2, 0x01E6, 0x0000, + 0xFB88, 0xF478, 0x1000, 0x0000} }, { COLOR_SPACE_YCBCR709_BLACK_TYPE, - { 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, - 0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x1000} }, + { 0x0000, 0x0000, 0x0000, 0x1000, + 0x0000, 0x0000, 0x0000, 0x0200, + 0x0000, 0x0000, 0x0000, 0x1000} }, }; static bool is_rgb_type( diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h index 131fcfa28bca..f4aa76e02518 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h @@ -70,28 +70,38 @@ struct dpp_input_csc_matrix { }; static const struct dpp_input_csc_matrix __maybe_unused dpp_input_csc_matrix[] = { - {COLOR_SPACE_SRGB, - {0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, - {COLOR_SPACE_SRGB_LIMITED, - {0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, - {COLOR_SPACE_YCBCR601, - {0x2cdd, 0x2000, 0, 0xe991, 0xe926, 0x2000, 0xf4fd, 0x10ef, - 0, 0x2000, 0x38b4, 0xe3a6} }, - {COLOR_SPACE_YCBCR601_LIMITED, - {0x3353, 0x2568, 0, 0xe400, 0xe5dc, 0x2568, 0xf367, 0x1108, - 0, 0x2568, 0x40de, 0xdd3a} }, - {COLOR_SPACE_YCBCR709, - {0x3265, 0x2000, 0, 0xe6ce, 0xf105, 0x2000, 0xfa01, 0xa7d, 0, - 0x2000, 0x3b61, 0xe24f} }, - {COLOR_SPACE_YCBCR709_LIMITED, - {0x39a6, 0x2568, 0, 0xe0d6, 0xeedd, 0x2568, 0xf925, 0x9a8, 0, - 0x2568, 0x43ee, 0xdbb2} }, - {COLOR_SPACE_2020_YCBCR, - {0x2F30, 0x2000, 0, 0xE869, 0xEDB7, 0x2000, 0xFABC, 0xBC6, 0, - 0x2000, 0x3C34, 0xE1E6} }, - {COLOR_SPACE_2020_RGB_LIMITEDRANGE, - {0x35E0, 0x255F, 0, 0xE2B3, 0xEB20, 0x255F, 0xF9FD, 0xB1E, 0, - 0x255F, 0x44BD, 0xDB43} } + { COLOR_SPACE_SRGB, + { 0x2000, 0, 0, 0, + 0, 0x2000, 0, 0, + 0, 0, 0x2000, 0 } }, + { COLOR_SPACE_SRGB_LIMITED, + { 0x2000, 0, 0, 0, + 0, 0x2000, 0, 0, + 0, 0, 0x2000, 0 } }, + { COLOR_SPACE_YCBCR601, + { 0x2cdd, 0x2000, 0, 0xe991, + 0xe926, 0x2000, 0xf4fd, 0x10ef, + 0, 0x2000, 0x38b4, 0xe3a6 } }, + { COLOR_SPACE_YCBCR601_LIMITED, + { 0x3353, 0x2568, 0, 0xe400, + 0xe5dc, 0x2568, 0xf367, 0x1108, + 0, 0x2568, 0x40de, 0xdd3a } }, + { COLOR_SPACE_YCBCR709, + { 0x3265, 0x2000, 0, 0xe6ce, + 0xf105, 0x2000, 0xfa01, 0xa7d, + 0, 0x2000, 0x3b61, 0xe24f } }, + { COLOR_SPACE_YCBCR709_LIMITED, + { 0x39a6, 0x2568, 0, 0xe0d6, + 0xeedd, 0x2568, 0xf925, 0x9a8, + 0, 0x2568, 0x43ee, 0xdbb2 } }, + { COLOR_SPACE_2020_YCBCR, + { 0x2F30, 0x2000, 0, 0xE869, + 0xEDB7, 0x2000, 0xFABC, 0xBC6, + 0, 0x2000, 0x3C34, 0xE1E6 } }, + { COLOR_SPACE_2020_RGB_LIMITEDRANGE, + { 0x35E0, 0x255F, 0, 0xE2B3, + 0xEB20, 0x255F, 0xF9FD, 0xB1E, + 0, 0x255F, 0x44BD, 0xDB43 } } }; struct dpp_grph_csc_adjustment {
Format the input and output CSC matrix so they look like 3x4 matrixes. This will make parsing them much easier and allows us to quickly spot potential mistakes. Signed-off-by: Harry Wentland <harry.wentland@amd.com> Cc: Pekka Paalanen <ppaalanen@gmail.com> Cc: Sebastian Wick <sebastian.wick@redhat.com> Cc: Vitaly.Prosyak@amd.com Cc: Joshua Ashton <joshua@froggi.es> Cc: dri-devel@lists.freedesktop.org Cc: amd-gfx@lists.freedesktop.org --- .../drm/amd/display/dc/core/dc_hw_sequencer.c | 38 ++++++++----- drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 54 +++++++++++-------- 2 files changed, 56 insertions(+), 36 deletions(-)