Bifrost devices do support the flush reduction feature, so on first job
submit we were trying to read the register while still powered off.
If the GPU is powered off, the feature doesn't bring any benefit, so
don't try to read.
Signed-off-by: Tomeu Vizoso <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_gpu.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index f2c1ddc41a9b..e0f190e43813 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -10,6 +10,7 @@
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include "panfrost_device.h"
#include "panfrost_features.h"
@@ -368,7 +369,16 @@ void panfrost_gpu_fini(struct panfrost_device *pfdev)
u32 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev)
{
- if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION))
- return gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
+ u32 flush_id;
+
+ if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION)) {
+ /* Flush reduction only makes sense when the GPU is kept powered on between jobs */
+ if (pm_runtime_get_if_in_use(pfdev->dev)) {
+ flush_id = gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
+ pm_runtime_put(pfdev->dev);
+ return flush_id;
+ }
+ }
+
return 0;
}
--
2.21.0
Mesa now supports some Bifrost devices, so enable it.
Signed-off-by: Tomeu Vizoso <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 882fecc33fdb..8ff8e140f91e 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -677,6 +677,7 @@ static const struct of_device_id dt_match[] = {
{ .compatible = "arm,mali-t830", .data = &default_data, },
{ .compatible = "arm,mali-t860", .data = &default_data, },
{ .compatible = "arm,mali-t880", .data = &default_data, },
+ { .compatible = "arm,mali-bifrost", .data = &default_data, },
{}
};
MODULE_DEVICE_TABLE(of, dt_match);
--
2.21.0
Am Donnerstag, 11. Juni 2020, 10:58:43 CEST schrieb Tomeu Vizoso:
> Bifrost devices do support the flush reduction feature, so on first job
> submit we were trying to read the register while still powered off.
>
> If the GPU is powered off, the feature doesn't bring any benefit, so
> don't try to read.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
on a PX30-board (sibling of rk3326) with a 720x1280 panel and
glmark2 running all tests
Tested-by: Heiko Stuebner <[email protected]>
Am Donnerstag, 11. Juni 2020, 10:58:44 CEST schrieb Tomeu Vizoso:
> Mesa now supports some Bifrost devices, so enable it.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> ---
> drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 882fecc33fdb..8ff8e140f91e 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -677,6 +677,7 @@ static const struct of_device_id dt_match[] = {
> { .compatible = "arm,mali-t830", .data = &default_data, },
> { .compatible = "arm,mali-t860", .data = &default_data, },
> { .compatible = "arm,mali-t880", .data = &default_data, },
> + { .compatible = "arm,mali-bifrost", .data = &default_data, },
> {}
> };
> MODULE_DEVICE_TABLE(of, dt_match);
on a PX30-board (sibling of rk3326) with a 720x1280 panel and
glmark2 running all tests
Tested-by: Heiko Stuebner <[email protected]>
and as this is the generic compatible from the binding:
Reviewed-by: Heiko Stuebner <[email protected]>
Both patches are Reviewed-by: Alyssa Rosenzweig
<[email protected]>
On Thu, Jun 11, 2020 at 10:58:43AM +0200, Tomeu Vizoso wrote:
> Bifrost devices do support the flush reduction feature, so on first job
> submit we were trying to read the register while still powered off.
>
> If the GPU is powered off, the feature doesn't bring any benefit, so
> don't try to read.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> ---
> drivers/gpu/drm/panfrost/panfrost_gpu.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index f2c1ddc41a9b..e0f190e43813 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -10,6 +10,7 @@
> #include <linux/io.h>
> #include <linux/iopoll.h>
> #include <linux/platform_device.h>
> +#include <linux/pm_runtime.h>
>
> #include "panfrost_device.h"
> #include "panfrost_features.h"
> @@ -368,7 +369,16 @@ void panfrost_gpu_fini(struct panfrost_device *pfdev)
>
> u32 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev)
> {
> - if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION))
> - return gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
> + u32 flush_id;
> +
> + if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION)) {
> + /* Flush reduction only makes sense when the GPU is kept powered on between jobs */
> + if (pm_runtime_get_if_in_use(pfdev->dev)) {
> + flush_id = gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
> + pm_runtime_put(pfdev->dev);
> + return flush_id;
> + }
> + }
> +
> return 0;
> }
> --
> 2.21.0
>
On 11/06/2020 09:58, Tomeu Vizoso wrote:
> Bifrost devices do support the flush reduction feature, so on first job
> submit we were trying to read the register while still powered off.
>
> If the GPU is powered off, the feature doesn't bring any benefit, so
> don't try to read.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
Reviewed-by: Steven Price <[email protected]>
> ---
> drivers/gpu/drm/panfrost/panfrost_gpu.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index f2c1ddc41a9b..e0f190e43813 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -10,6 +10,7 @@
> #include <linux/io.h>
> #include <linux/iopoll.h>
> #include <linux/platform_device.h>
> +#include <linux/pm_runtime.h>
>
> #include "panfrost_device.h"
> #include "panfrost_features.h"
> @@ -368,7 +369,16 @@ void panfrost_gpu_fini(struct panfrost_device *pfdev)
>
> u32 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev)
> {
> - if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION))
> - return gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
> + u32 flush_id;
> +
> + if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION)) {
> + /* Flush reduction only makes sense when the GPU is kept powered on between jobs */
> + if (pm_runtime_get_if_in_use(pfdev->dev)) {
> + flush_id = gpu_read(pfdev, GPU_LATEST_FLUSH_ID);
> + pm_runtime_put(pfdev->dev);
> + return flush_id;
> + }
> + }
> +
> return 0;
> }
>
On 11/06/2020 09:58, Tomeu Vizoso wrote:
> Mesa now supports some Bifrost devices, so enable it.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
Reviewed-by: Steven Price <[email protected]>
I've also dug out my Hikey960 (from the box it's been in since lock down
started), so I'll see if I can get things running on there, at the
moment I'm seeing some DATA_INVALID_FAULT regressions running my hacked
DDK :(
Steve
> ---
> drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 882fecc33fdb..8ff8e140f91e 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -677,6 +677,7 @@ static const struct of_device_id dt_match[] = {
> { .compatible = "arm,mali-t830", .data = &default_data, },
> { .compatible = "arm,mali-t860", .data = &default_data, },
> { .compatible = "arm,mali-t880", .data = &default_data, },
> + { .compatible = "arm,mali-bifrost", .data = &default_data, },
> {}
> };
> MODULE_DEVICE_TABLE(of, dt_match);
>
On Thu, Jun 11, 2020 at 2:59 AM Tomeu Vizoso <[email protected]> wrote:
>
> Bifrost devices do support the flush reduction feature, so on first job
> submit we were trying to read the register while still powered off.
>
> If the GPU is powered off, the feature doesn't bring any benefit, so
> don't try to read.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> ---
> drivers/gpu/drm/panfrost/panfrost_gpu.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
Both patches applied.
On Fri, 19 Jun 2020 at 11:00, Steven Price <[email protected]> wrote:
>
> On 11/06/2020 09:58, Tomeu Vizoso wrote:
> > Mesa now supports some Bifrost devices, so enable it.
> >
> > Signed-off-by: Tomeu Vizoso <[email protected]>
>
> Reviewed-by: Steven Price <[email protected]>
>
> I've also dug out my Hikey960 (from the box it's been in since lock down
> started), so I'll see if I can get things running on there, at the
> moment I'm seeing some DATA_INVALID_FAULT regressions running my hacked
> DDK :(
Hi!
Has this one fallen through the cracks?
Thanks,
Tomeu
>
> Steve
>
> > ---
> > drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > index 882fecc33fdb..8ff8e140f91e 100644
> > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > @@ -677,6 +677,7 @@ static const struct of_device_id dt_match[] = {
> > { .compatible = "arm,mali-t830", .data = &default_data, },
> > { .compatible = "arm,mali-t860", .data = &default_data, },
> > { .compatible = "arm,mali-t880", .data = &default_data, },
> > + { .compatible = "arm,mali-bifrost", .data = &default_data, },
> > {}
> > };
> > MODULE_DEVICE_TABLE(of, dt_match);
> >
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Mon, 5 Oct 2020 at 08:44, Tomeu Vizoso <[email protected]> wrote:
>
> On Fri, 19 Jun 2020 at 11:00, Steven Price <[email protected]> wrote:
> >
> > On 11/06/2020 09:58, Tomeu Vizoso wrote:
> > > Mesa now supports some Bifrost devices, so enable it.
> > >
> > > Signed-off-by: Tomeu Vizoso <[email protected]>
> >
> > Reviewed-by: Steven Price <[email protected]>
> >
> > I've also dug out my Hikey960 (from the box it's been in since lock down
> > started), so I'll see if I can get things running on there, at the
> > moment I'm seeing some DATA_INVALID_FAULT regressions running my hacked
> > DDK :(
>
> Hi!
>
> Has this one fallen through the cracks?
Oops, sorry about the noise, I had an old checkout.
Cheers,
Tomeu
> Thanks,
>
> Tomeu
>
> >
> > Steve
> >
> > > ---
> > > drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > > index 882fecc33fdb..8ff8e140f91e 100644
> > > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> > > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > > @@ -677,6 +677,7 @@ static const struct of_device_id dt_match[] = {
> > > { .compatible = "arm,mali-t830", .data = &default_data, },
> > > { .compatible = "arm,mali-t860", .data = &default_data, },
> > > { .compatible = "arm,mali-t880", .data = &default_data, },
> > > + { .compatible = "arm,mali-bifrost", .data = &default_data, },
> > > {}
> > > };
> > > MODULE_DEVICE_TABLE(of, dt_match);
> > >
> >
> > _______________________________________________
> > dri-devel mailing list
> > [email protected]
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel