Message ID | 1524495051-3891-7-git-send-email-ayan.halder@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Apr 23, 2018 at 03:50:49PM +0100, Ayan Kumar Halder wrote: > Scaling engine interrupts need to be enabled/disabled as and when memwrite > is enabled and disabled. The reason being scaling engine interrupts are > used only by the memory writeout layer. > > This patch depends on: > https://lkml.org/lkml/2017/5/15/695 > > Signed-off-by: Ayan Kumar Halder <ayan.halder@arm.com> > > --- > Changes in v2:- > - Removed the change id and modified the commit message > --- > drivers/gpu/drm/arm/malidp_hw.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/arm/malidp_hw.c b/drivers/gpu/drm/arm/malidp_hw.c > index f5633bc..90d76e4 100644 > --- a/drivers/gpu/drm/arm/malidp_hw.c > +++ b/drivers/gpu/drm/arm/malidp_hw.c > @@ -621,12 +621,14 @@ static int malidp550_enable_memwrite(struct malidp_hw_device *hwdev, > malidp_hw_setbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, > MALIDP550_SE_CONTROL); > > + malidp_se_irq_hw_init(hwdev); > return 0; > } > > static void malidp550_disable_memwrite(struct malidp_hw_device *hwdev) > { > u32 base = malidp_get_block_base(hwdev, MALIDP_DE_BLOCK); > + malidp_se_irq_fini(hwdev); > malidp_hw_clearbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, > MALIDP550_SE_CONTROL); > malidp_hw_clearbits(hwdev, MALIDP_SCALE_ENGINE_EN, base + MALIDP_DE_DISPLAY_FUNC); We now know that this patch is broken, because it disables interrupts for the writeback after a previous commit has enabled them but before the writeback engine has finished writing, so the better place for enabling and disabling the SE IRQs is in the malidp_pm_{suspend,resume} functions, not here. Only for this patch: NACK. Best regards, Liviu > -- > 2.7.4 >
Hi Liviu, On Mon, Apr 23, 2018 at 04:36:47PM +0100, Liviu Dudau wrote: > On Mon, Apr 23, 2018 at 03:50:49PM +0100, Ayan Kumar Halder wrote: > > Scaling engine interrupts need to be enabled/disabled as and when memwrite > > is enabled and disabled. The reason being scaling engine interrupts are > > used only by the memory writeout layer. > > > > This patch depends on: > > https://lkml.org/lkml/2017/5/15/695 > > > > Signed-off-by: Ayan Kumar Halder <ayan.halder@arm.com> > > > > --- > > Changes in v2:- > > - Removed the change id and modified the commit message > > --- > > drivers/gpu/drm/arm/malidp_hw.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/gpu/drm/arm/malidp_hw.c b/drivers/gpu/drm/arm/malidp_hw.c > > index f5633bc..90d76e4 100644 > > --- a/drivers/gpu/drm/arm/malidp_hw.c > > +++ b/drivers/gpu/drm/arm/malidp_hw.c > > @@ -621,12 +621,14 @@ static int malidp550_enable_memwrite(struct malidp_hw_device *hwdev, > > malidp_hw_setbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, > > MALIDP550_SE_CONTROL); > > > > + malidp_se_irq_hw_init(hwdev); > > return 0; > > } > > > > static void malidp550_disable_memwrite(struct malidp_hw_device *hwdev) > > { > > u32 base = malidp_get_block_base(hwdev, MALIDP_DE_BLOCK); > > + malidp_se_irq_fini(hwdev); > > malidp_hw_clearbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, > > MALIDP550_SE_CONTROL); > > malidp_hw_clearbits(hwdev, MALIDP_SCALE_ENGINE_EN, base + MALIDP_DE_DISPLAY_FUNC); > > We now know that this patch is broken, because it disables interrupts > for the writeback after a previous commit has enabled them but before > the writeback engine has finished writing, so the better place for > enabling and disabling the SE IRQs is in the malidp_pm_{suspend,resume} > functions, not here. > Sorry, I missed this issue. I will send an updated v3 patch for this only. Thanks, Ayan Kumar Halder > Only for this patch: NACK. > > Best regards, > Liviu > > > -- > > 2.7.4 > > > > -- > ==================== > | I would like to | > | fix the world, | > | but they're not | > | giving me the | > \ source code! / > --------------- > ??\_(???)_/??
diff --git a/drivers/gpu/drm/arm/malidp_hw.c b/drivers/gpu/drm/arm/malidp_hw.c index f5633bc..90d76e4 100644 --- a/drivers/gpu/drm/arm/malidp_hw.c +++ b/drivers/gpu/drm/arm/malidp_hw.c @@ -621,12 +621,14 @@ static int malidp550_enable_memwrite(struct malidp_hw_device *hwdev, malidp_hw_setbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, MALIDP550_SE_CONTROL); + malidp_se_irq_hw_init(hwdev); return 0; } static void malidp550_disable_memwrite(struct malidp_hw_device *hwdev) { u32 base = malidp_get_block_base(hwdev, MALIDP_DE_BLOCK); + malidp_se_irq_fini(hwdev); malidp_hw_clearbits(hwdev, MALIDP550_SE_MEMWRITE_ONESHOT | MALIDP_SE_MEMWRITE_EN, MALIDP550_SE_CONTROL); malidp_hw_clearbits(hwdev, MALIDP_SCALE_ENGINE_EN, base + MALIDP_DE_DISPLAY_FUNC);
Scaling engine interrupts need to be enabled/disabled as and when memwrite is enabled and disabled. The reason being scaling engine interrupts are used only by the memory writeout layer. This patch depends on: https://lkml.org/lkml/2017/5/15/695 Signed-off-by: Ayan Kumar Halder <ayan.halder@arm.com> --- Changes in v2:- - Removed the change id and modified the commit message --- drivers/gpu/drm/arm/malidp_hw.c | 2 ++ 1 file changed, 2 insertions(+)