mbox

[Maverick,ti-omap4,SRU,pull-request] Reduce GFX_FIFO_UNDERFLOW issue while using SGX

Message ID AANLkTimo6F8iR83RihjkWsZUoBZ2LvEGjT4yF5tO+a6N@mail.gmail.com
State Accepted
Headers show

Pull-request

git://kernel.ubuntu.com/rsalveti/ubuntu-maverick.git

Message

Ricardo Salveti Dec. 23, 2010, 4:06 a.m. UTC
SRU Justification:

Impact: While using SGX acceleration on Pandaboard, it's quite normal to face
the GFX_FIFO_UNDERFLOW issue, that disable the display entirely. The only
way to get the screen back to work is to reset it, or by changing to a text mode
session and then getting back to X11. This issue makes practically impossible
to use and stress the SGX driver on a Full HD monitor.

Fix: While TI still didn't provide a proper way to fix is, a valid
workaround was
proposed to use the writeback buffers for GFX. The proposed patches are all
already applied at Natty's branch, and this is basically a backport of them for
Maverick.

Testcase: Just run Unity using the SGX driver on a Full HD monitor, and try to
use it normally, and your screen will probably get black with the following
message at your dmesg:
[ 404.169006] omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
After applying these patches, you should be able to normally use Unity, without
heading into any underflow issue.

BugLink: https://bugs.launchpad.net/bugs/653002

The following changes since commit 6aba79f8f85b937596373cda8e266b823395996e:

  Ubuntu-2.6.35-903.19 (2010-11-16 18:32:27 -0700)

are available in the git repository at:
  git://kernel.ubuntu.com/rsalveti/ubuntu-maverick.git
omap4-reduce-underflow-issue

Archit Taneja (2):
      OMAP: DSS2: Fix FIFO Threshold calculations for dispc pipelines
      OMAP: DSS2: Use Writeback buffers for GFX as a temporary fix

Pavel Nedev (1):
      OMAP: DSS2: Fix array size which stores dispc fifo sizes

 arch/arm/plat-omap/include/plat/display.h |    2 +-
 drivers/video/omap2/dss/dispc.c           |   29 +++++++++++-
 drivers/video/omap2/dss/display.c         |   25 ++++++----
 drivers/video/omap2/dss/dsi.c             |   20 ++++++--
 drivers/video/omap2/dss/dss.h             |    1 +
 drivers/video/omap2/dss/wb.c              |   70 +++++++++++++++++++++++++++-
 6 files changed, 127 insertions(+), 20 deletions(-)

Comments

Tim Gardner Dec. 23, 2010, 4:42 p.m. UTC | #1
On 12/22/2010 09:06 PM, Ricardo Salveti wrote:
> SRU Justification:
>
> Impact: While using SGX acceleration on Pandaboard, it's quite normal to face
> the GFX_FIFO_UNDERFLOW issue, that disable the display entirely. The only
> way to get the screen back to work is to reset it, or by changing to a text mode
> session and then getting back to X11. This issue makes practically impossible
> to use and stress the SGX driver on a Full HD monitor.
>
> Fix: While TI still didn't provide a proper way to fix is, a valid
> workaround was
> proposed to use the writeback buffers for GFX. The proposed patches are all
> already applied at Natty's branch, and this is basically a backport of them for
> Maverick.
>
> Testcase: Just run Unity using the SGX driver on a Full HD monitor, and try to
> use it normally, and your screen will probably get black with the following
> message at your dmesg:
> [ 404.169006] omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
> After applying these patches, you should be able to normally use Unity, without
> heading into any underflow issue.
>
> BugLink: https://bugs.launchpad.net/bugs/653002
>
> The following changes since commit 6aba79f8f85b937596373cda8e266b823395996e:
>
>    Ubuntu-2.6.35-903.19 (2010-11-16 18:32:27 -0700)
>
> are available in the git repository at:
>    git://kernel.ubuntu.com/rsalveti/ubuntu-maverick.git
> omap4-reduce-underflow-issue
>
> Archit Taneja (2):
>        OMAP: DSS2: Fix FIFO Threshold calculations for dispc pipelines
>        OMAP: DSS2: Use Writeback buffers for GFX as a temporary fix
>
> Pavel Nedev (1):
>        OMAP: DSS2: Fix array size which stores dispc fifo sizes
>
>   arch/arm/plat-omap/include/plat/display.h |    2 +-
>   drivers/video/omap2/dss/dispc.c           |   29 +++++++++++-
>   drivers/video/omap2/dss/display.c         |   25 ++++++----
>   drivers/video/omap2/dss/dsi.c             |   20 ++++++--
>   drivers/video/omap2/dss/dss.h             |    1 +
>   drivers/video/omap2/dss/wb.c              |   70 +++++++++++++++++++++++++++-
>   6 files changed, 127 insertions(+), 20 deletions(-)
>

Fetch my tree from 'git://kernel.ubuntu.com/rtg/ubuntu-maverick.git 
ti-omap4' to verify that I've applied your patches correctly. You should 
see:

   CC      drivers/video/omap2/dss/wb.o
drivers/video/omap2/dss/wb.c: In function 'wb_buffer_state_store':
drivers/video/omap2/dss/wb.c:49: error: implicit declaration of function 
'dss_get_mainclk_state'

rtg
Ricardo Salveti Dec. 23, 2010, 5:45 p.m. UTC | #2
On Thu, Dec 23, 2010 at 2:42 PM, Tim Gardner <tim.gardner@canonical.com> wrote:
> On 12/22/2010 09:06 PM, Ricardo Salveti wrote:
>>
>> SRU Justification:
>>
>> Impact: While using SGX acceleration on Pandaboard, it's quite normal to
>> face
>> the GFX_FIFO_UNDERFLOW issue, that disable the display entirely. The only
>> way to get the screen back to work is to reset it, or by changing to a
>> text mode
>> session and then getting back to X11. This issue makes practically
>> impossible
>> to use and stress the SGX driver on a Full HD monitor.
>>
>> Fix: While TI still didn't provide a proper way to fix is, a valid
>> workaround was
>> proposed to use the writeback buffers for GFX. The proposed patches are
>> all
>> already applied at Natty's branch, and this is basically a backport of
>> them for
>> Maverick.
>>
>> Testcase: Just run Unity using the SGX driver on a Full HD monitor, and
>> try to
>> use it normally, and your screen will probably get black with the
>> following
>> message at your dmesg:
>> [ 404.169006] omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
>> After applying these patches, you should be able to normally use Unity,
>> without
>> heading into any underflow issue.
>>
>> BugLink: https://bugs.launchpad.net/bugs/653002
>>
>> The following changes since commit
>> 6aba79f8f85b937596373cda8e266b823395996e:
>>
>>   Ubuntu-2.6.35-903.19 (2010-11-16 18:32:27 -0700)
>>
>> are available in the git repository at:
>>   git://kernel.ubuntu.com/rsalveti/ubuntu-maverick.git
>> omap4-reduce-underflow-issue
>>
>> Archit Taneja (2):
>>       OMAP: DSS2: Fix FIFO Threshold calculations for dispc pipelines
>>       OMAP: DSS2: Use Writeback buffers for GFX as a temporary fix
>>
>> Pavel Nedev (1):
>>       OMAP: DSS2: Fix array size which stores dispc fifo sizes
>>
>>  arch/arm/plat-omap/include/plat/display.h |    2 +-
>>  drivers/video/omap2/dss/dispc.c           |   29 +++++++++++-
>>  drivers/video/omap2/dss/display.c         |   25 ++++++----
>>  drivers/video/omap2/dss/dsi.c             |   20 ++++++--
>>  drivers/video/omap2/dss/dss.h             |    1 +
>>  drivers/video/omap2/dss/wb.c              |   70
>> +++++++++++++++++++++++++++-
>>  6 files changed, 127 insertions(+), 20 deletions(-)
>>
>
> Fetch my tree from 'git://kernel.ubuntu.com/rtg/ubuntu-maverick.git
> ti-omap4' to verify that I've applied your patches correctly. You should
> see:
>
>  CC      drivers/video/omap2/dss/wb.o
> drivers/video/omap2/dss/wb.c: In function 'wb_buffer_state_store':
> drivers/video/omap2/dss/wb.c:49: error: implicit declaration of function
> 'dss_get_mainclk_state'

Ouch, sorry about that.

The original patch that I tested on maverick had this change that I
forgot to apply while making the backport from the patch from Natty's
branch.

Can you please try it again from the same branch? I forced the update
with the fixed patch and also built here without any issue.

Thanks!
Tim Gardner Dec. 23, 2010, 8:25 p.m. UTC | #3
On 12/23/2010 10:45 AM, Ricardo Salveti wrote:
> On Thu, Dec 23, 2010 at 2:42 PM, Tim Gardner<tim.gardner@canonical.com>  wrote:
>> On 12/22/2010 09:06 PM, Ricardo Salveti wrote:
>>>
>>> SRU Justification:
>>>
>>> Impact: While using SGX acceleration on Pandaboard, it's quite normal to
>>> face
>>> the GFX_FIFO_UNDERFLOW issue, that disable the display entirely. The only
>>> way to get the screen back to work is to reset it, or by changing to a
>>> text mode
>>> session and then getting back to X11. This issue makes practically
>>> impossible
>>> to use and stress the SGX driver on a Full HD monitor.
>>>
>>> Fix: While TI still didn't provide a proper way to fix is, a valid
>>> workaround was
>>> proposed to use the writeback buffers for GFX. The proposed patches are
>>> all
>>> already applied at Natty's branch, and this is basically a backport of
>>> them for
>>> Maverick.
>>>
>>> Testcase: Just run Unity using the SGX driver on a Full HD monitor, and
>>> try to
>>> use it normally, and your screen will probably get black with the
>>> following
>>> message at your dmesg:
>>> [ 404.169006] omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
>>> After applying these patches, you should be able to normally use Unity,
>>> without
>>> heading into any underflow issue.
>>>
>>> BugLink: https://bugs.launchpad.net/bugs/653002
>>>
>>> The following changes since commit
>>> 6aba79f8f85b937596373cda8e266b823395996e:
>>>
>>>    Ubuntu-2.6.35-903.19 (2010-11-16 18:32:27 -0700)
>>>
>>> are available in the git repository at:
>>>    git://kernel.ubuntu.com/rsalveti/ubuntu-maverick.git
>>> omap4-reduce-underflow-issue
>>>
>>> Archit Taneja (2):
>>>        OMAP: DSS2: Fix FIFO Threshold calculations for dispc pipelines
>>>        OMAP: DSS2: Use Writeback buffers for GFX as a temporary fix
>>>
>>> Pavel Nedev (1):
>>>        OMAP: DSS2: Fix array size which stores dispc fifo sizes
>>>
>>>   arch/arm/plat-omap/include/plat/display.h |    2 +-
>>>   drivers/video/omap2/dss/dispc.c           |   29 +++++++++++-
>>>   drivers/video/omap2/dss/display.c         |   25 ++++++----
>>>   drivers/video/omap2/dss/dsi.c             |   20 ++++++--
>>>   drivers/video/omap2/dss/dss.h             |    1 +
>>>   drivers/video/omap2/dss/wb.c              |   70
>>> +++++++++++++++++++++++++++-
>>>   6 files changed, 127 insertions(+), 20 deletions(-)
>>>
>>
>> Fetch my tree from 'git://kernel.ubuntu.com/rtg/ubuntu-maverick.git
>> ti-omap4' to verify that I've applied your patches correctly. You should
>> see:
>>
>>   CC      drivers/video/omap2/dss/wb.o
>> drivers/video/omap2/dss/wb.c: In function 'wb_buffer_state_store':
>> drivers/video/omap2/dss/wb.c:49: error: implicit declaration of function
>> 'dss_get_mainclk_state'
>
> Ouch, sorry about that.
>
> The original patch that I tested on maverick had this change that I
> forgot to apply while making the backport from the patch from Natty's
> branch.
>
> Can you please try it again from the same branch? I forced the update
> with the fixed patch and also built here without any issue.
>
> Thanks!

pulled, applied, and uploaded