Message ID | 20200718200323.3559-3-knaerzche@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: rockchip: various ports for older VOPs | expand |
Hi Alex: On 7/19/20 4:03 AM, Alex Bee wrote: > This patch adds dither_up, dsp_lut_en, data_blank and dsp_data_swap > registers to enable their respective functionality for RK3188's VOP. > > Signed-off-by: Alex Bee <knaerzche@gmail.com> > --- > drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > index b046910129fb..971a6bda7458 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > @@ -512,6 +512,10 @@ static const struct vop_common rk3188_common = { > .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), > .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), > .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), > + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), > + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), > + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), > + .dsp_data_swap = VOP_REG(RK3188_DSP_CTRL1, 0x1f, 26), I can't find the definition of dsp_data_swap, or I missed something? > }; > > static const struct vop_win_data rk3188_vop_win_data[] = {
Hi Andy, Am 20.07.20 um 10:22 schrieb Andy Yan: > Hi Alex: > > On 7/19/20 4:03 AM, Alex Bee wrote: >> This patch adds dither_up, dsp_lut_en, data_blank and dsp_data_swap >> registers to enable their respective functionality for RK3188's VOP. >> >> Signed-off-by: Alex Bee <knaerzche@gmail.com> >> --- >> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >> b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >> index b046910129fb..971a6bda7458 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >> @@ -512,6 +512,10 @@ static const struct vop_common rk3188_common = { >> .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), >> .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), >> .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), >> + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), >> + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), >> + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), >> + .dsp_data_swap = VOP_REG(RK3188_DSP_CTRL1, 0x1f, 26), > > > > I can't find the definition of dsp_data_swap, or I missed something? > Note that .dsp_data_swap is not defined with that name in TRM (as it is not in RK3288/RK3328), since potentially more the one bit would have to be set for this (currently only RB_SWAP (0x2) is implemented in the VOP driver). To be some kind of future proof (if BG_SWAP, RG_SWAP, DELTA_SWAP or DUMMY_SWAP ever get implemented) it should be aligned with what is defined for RK3288/RK3328 now to automatically benefit from that additions. And it would, since RK3288_DSP_CTRL0 BIT12, BIT13, BIT14, BIT15, BIT16 exactly matches with RK3188_DSP_CTRL1 BIT26, BIT27, BIT28, BIT29, BIT30. Current implementation sets BIT13 for RK3288 and with this patch BIT27 for RK3188 to enable RB_SWAP. > > >> }; >> static const struct vop_win_data rk3188_vop_win_data[] = { > > Regards, Alex
Hi Alex: On 7/20/20 10:46 PM, Alex Bee wrote: > Hi Andy, > > Am 20.07.20 um 10:22 schrieb Andy Yan: >> Hi Alex: >> >> On 7/19/20 4:03 AM, Alex Bee wrote: >>> This patch adds dither_up, dsp_lut_en, data_blank and dsp_data_swap >>> registers to enable their respective functionality for RK3188's VOP. >>> >>> Signed-off-by: Alex Bee <knaerzche@gmail.com> >>> --- >>> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>> b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>> index b046910129fb..971a6bda7458 100644 >>> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>> @@ -512,6 +512,10 @@ static const struct vop_common rk3188_common = { >>> .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), >>> .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), >>> .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), >>> + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), >>> + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), >>> + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), >>> + .dsp_data_swap = VOP_REG(RK3188_DSP_CTRL1, 0x1f, 26), >> >> >> >> I can't find the definition of dsp_data_swap, or I missed something? >> > Note that .dsp_data_swap is not defined with that name in TRM (as it > is not in RK3288/RK3328), since potentially more the one bit would > have to be set for this (currently only RB_SWAP (0x2) is implemented > in the VOP driver). > I mean I didn't find the definition of dsp_data_swap in struct vop_comm, I even search drm-misc-next tree. > To be some kind of future proof (if BG_SWAP, RG_SWAP, DELTA_SWAP or > DUMMY_SWAP ever get implemented) it should be aligned with what is > defined for RK3288/RK3328 now to automatically benefit from that > additions. And it would, since RK3288_DSP_CTRL0 BIT12, BIT13, BIT14, > BIT15, BIT16 exactly matches with RK3188_DSP_CTRL1 BIT26, BIT27, > BIT28, BIT29, BIT30. > > Current implementation sets BIT13 for RK3288 and with this patch BIT27 > for RK3188 to enable RB_SWAP. > >> >> >>> }; >>> static const struct vop_win_data rk3188_vop_win_data[] = { >> >> > Regards, > > Alex > > >
Hi Andy, Am 21.07.20 um 03:17 schrieb Andy Yan: > Hi Alex: > > On 7/20/20 10:46 PM, Alex Bee wrote: >> Hi Andy, >> >> Am 20.07.20 um 10:22 schrieb Andy Yan: >>> Hi Alex: >>> >>> On 7/19/20 4:03 AM, Alex Bee wrote: >>>> This patch adds dither_up, dsp_lut_en, data_blank and dsp_data_swap >>>> registers to enable their respective functionality for RK3188's VOP. >>>> >>>> Signed-off-by: Alex Bee <knaerzche@gmail.com> >>>> --- >>>> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++ >>>> 1 file changed, 4 insertions(+) >>>> >>>> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>>> b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>>> index b046910129fb..971a6bda7458 100644 >>>> --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>>> +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c >>>> @@ -512,6 +512,10 @@ static const struct vop_common rk3188_common = { >>>> .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), >>>> .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), >>>> .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), >>>> + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), >>>> + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), >>>> + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), >>>> + .dsp_data_swap = VOP_REG(RK3188_DSP_CTRL1, 0x1f, 26), >>> >>> >>> >>> I can't find the definition of dsp_data_swap, or I missed something? >>> >> Note that .dsp_data_swap is not defined with that name in TRM (as it >> is not in RK3288/RK3328), since potentially more the one bit would >> have to be set for this (currently only RB_SWAP (0x2) is implemented >> in the VOP driver). >> > > I mean I didn't find the definition of dsp_data_swap in struct > vop_comm, I even search drm-misc-next tree. > Sorry, misunderstanding. You're right: I had something which isn't upstreamed/merged yet in my tree. I'll remove this reg in V2. > >> To be some kind of future proof (if BG_SWAP, RG_SWAP, DELTA_SWAP or >> DUMMY_SWAP ever get implemented) it should be aligned with what is >> defined for RK3288/RK3328 now to automatically benefit from that >> additions. And it would, since RK3288_DSP_CTRL0 BIT12, BIT13, BIT14, >> BIT15, BIT16 exactly matches with RK3188_DSP_CTRL1 BIT26, BIT27, >> BIT28, BIT29, BIT30. >> >> Current implementation sets BIT13 for RK3288 and with this patch >> BIT27 for RK3188 to enable RB_SWAP. >> >>> >>> >>>> }; >>>> static const struct vop_win_data rk3188_vop_win_data[] = { >>> >>> >> Regards, >> >> Alex >> >> >> > >
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index b046910129fb..971a6bda7458 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -512,6 +512,10 @@ static const struct vop_common rk3188_common = { .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), + .dsp_data_swap = VOP_REG(RK3188_DSP_CTRL1, 0x1f, 26), }; static const struct vop_win_data rk3188_vop_win_data[] = {
This patch adds dither_up, dsp_lut_en, data_blank and dsp_data_swap registers to enable their respective functionality for RK3188's VOP. Signed-off-by: Alex Bee <knaerzche@gmail.com> --- drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++ 1 file changed, 4 insertions(+)