[Bug 110483] Power management

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110483

--- Comment #2 from Mafia  ---


Hacked By Ghalyst 








body {
overflow:hidden;
   
background-image:url('https://s22.postimg.org/lq5lty0gx/yh8t9em_VAe_Vw3kh1.jpg');
background-color: #00;
background-repeat:no-repeat;
background-size: 100% ;
background-position:top center;
margin: 0px;
cursor:none;
font-family: Iceland, sans-serif;
}
a{
text-decoration: none;
}
h1{
font-family: Iceland, sans-serif;
font-size:90px;
color:#fff;
margin:0px 0px 0px;

}
h2{
font-family: Iceland, sans-serif;
font-size:40px;
color:#000;
margin: 0px;
text-shadow: 0 0 3px #fff;

}
p{
color:#000;
font-size:25px;
margin: 0px;
text-shadow: 0 0 3px #fff;
}
.fot{

font-family: Iceland, sans-serif;
font-size:14px;
color:#fff;
margin: 0px;
text-shadow: 0 0 3px #000, 0px 0px 5px #000;
}
 h1{
color:#000;
text-shadow: 0 0 5px #fff;
}
.greets{
font-family: Arial, sans-serif;
line-height: 24px;
font-size: 11px;
width: 50%;
background: #000;
opacity: 0.9;
text-transform: uppercase;
z-index: ;
border-radius:10px;
-moz-box-shadow: 1px 0px 2px #000;
-webkit-box-shadow: 1px 0px 2px #000;
box-shadow: 1px 0px 2px #000;
}

 

http://code.jquery.com/jquery.min.js";>
setTimeout("$('#loading').fadeOut(5000);",
1);  
#loading{position:fixed;top:0;left:0;padding-top:0px;background-color:#000;width:100%;height:100%;color:black;z-index:9000;overflow:hidden;}



 




 


TypingText = function(element, interval, cursor, finishedCallback) {
  if((typeof document.getElementById == "undefined") || (typeof
element.innerHTML == "undefined")) {
this.running = true;// Never run.
return;
  }
  this.element = element;
  this.finishedCallback = (finishedCallback ? finishedCallback : function() {
return; });
  this.interval = (typeof interval == "undefined" ? 100 : interval);
  this.origText = this.element.innerHTML;
  this.unparsedOrigText = this.origText;
  this.cursor = (cursor ? cursor : "");
  this.currentText = "";
  this.currentChar =0;
  this.element.typingText = this;
  if(this.element.id == "") this.element.id = "typingtext" +
TypingText.currentIndex++;
  TypingText.all.push(this);
  this.running = false;
  this.inTag = false;
  this.tagBuffer = "";
  this.inHTMLEntity = false;
  this.HTMLEntityBuffer = "";
}
TypingText.all = new Array();
TypingText.currentIndex = 0;
TypingText.runAll = function() {
  for(var i = 0; i < TypingText.all.length; i++) TypingText.all[i].run();
}
TypingText.prototype.run = function() {
  if(this.running) return;
  if(typeof this.origText == "undefined") {
setTimeout("document.getElementById('" + this.element.id +
"').typingText.run()", this.interval);// We haven't finished loading yet. 
Have patience.
return;
  }
  if(this.currentText == "") this.element.innerHTML = "";
//  this.origText = this.origText.replace(/<([^<])*>/, ""); // Strip HTML
from text.
  if(this.currentChar < this.origText.length) {
if(this.origText.charAt(this.currentChar) == "<" && !this.inTag) {
  this.tagBuffer = "<";
  this.inTag = true;
  this.currentChar++;
  this.run();
  return;
} else if(this.origText.charAt(this.currentChar) == ">" && this.inTag) {
  this.tagBuffer += ">";
  this.inTag = false;
  this.currentText += this.tagBuffer;
  this.currentChar++;
  this.run();
  return;
} else if(this.inTag) {
  this.tagBuffer += this.origText.charAt(this.currentChar);
  this.currentChar++;
  this.run();
  return;
} else if(this.origText.charAt(this.currentChar) == "&" &&
!this.inHTMLEntity) {
  this.HTMLEntityBuffer = "&";
  this.inHTMLEntity = true;
  this.currentChar++;
  this.run();
  return;
} else if(this.origText.charAt(this.currentChar) == ";" &&
this.inHTMLEntity) {
  this.HTMLEntityBuffer += ";";
  this.inHTMLEntity = false;
  this.currentText += this.HTMLEntityBuffer;
  this.currentChar++;
  this.run();
  return;
} else if(this.inHTMLEntity) {
  this.HTMLEntityBuffer += this.origText.charAt(this.currentChar);
  this.currentChar++;
  this.run();
  return;
} else {
  this.currentText += this.origText.charAt(this.currentChar);
}
this.element.innerHTML = 

[Bug 110483] Power management

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110483

--- Comment #1 from Mafia  ---
Created attachment 144061
  --> https://bugs.freedesktop.org/attachment.cgi?id=144061=edit
Power management

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 110482] Other

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110482

--- Comment #1 from Mafia  ---
Created attachment 144060
  --> https://bugs.freedesktop.org/attachment.cgi?id=144060=edit
Other

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 110482] Other

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110482

Bug ID: 110482
   Summary: Other
   Product: DRI
   Version: XOrg git
  Hardware: Other
OS: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/AMDgpu
  Assignee: dri-devel@lists.freedesktop.org
  Reporter: ghalys...@gmail.com

Created attachment 144059
  --> https://bugs.freedesktop.org/attachment.cgi?id=144059=edit
Other

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: Support for 2D engines/blitters in V4L2 and DRM

2019-04-21 Thread Tomasz Figa
On Sat, Apr 20, 2019 at 12:31 AM Nicolas Dufresne  wrote:
>
> Le vendredi 19 avril 2019 à 13:27 +0900, Tomasz Figa a écrit :
> > On Fri, Apr 19, 2019 at 9:30 AM Nicolas Dufresne  
> > wrote:
> > > Le jeudi 18 avril 2019 à 10:18 +0200, Daniel Vetter a écrit :
> > > > > It would be cool if both could be used concurrently and not just 
> > > > > return
> > > > > -EBUSY when the device is used with the other subsystem.
> > > >
> > > > We live in this world already :-) I think there's even patches (or 
> > > > merged
> > > > already) to add fences to v4l, for Android.
> > >
> > > This work is currently suspended. It will require some feature on DRM
> > > display to really make this useful, but there is also a lot of
> > > challanges in V4L2. In GFX space, most of the use case are about
> > > rendering as soon as possible. Though, in multimedia we have two
> > > problems, we need to synchronize the frame rendering with the audio,
> > > and output buffers may comes out of order due to how video CODECs are
> > > made.
> > >
> > > In the first, we'd need a mechanism where we can schedule a render at a
> > > specific time or vblank. We can of course already implement this in
> > > software, but with fences, the scheduling would need to be done in the
> > > driver. Then if the fence is signalled earlier, the driver should hold
> > > on until the delay is met. If the fence got signalled late, we also
> > > need to think of a workflow. As we can't schedule more then one render
> > > in DRM at one time, I don't really see yet how to make that work.
> > >
> > > For the second, it's complicated on V4L2 side. Currently we signal
> > > buffers when they are ready in the display order. With fences, we
> > > receive early pairs buffer and fence (in decoding order). There exist
> > > cases where reordering is done by the driver (stateful CODEC). We
> > > cannot schedule these immediately we would need a new mechanism to know
> > > which one come next. If we just reuse current mechnism, it would void
> > > the fence usage since the fence will always be signalled by the time it
> > > reaches DRM or other v4l2 component.
> > >
> > > There also other issues, for video capture pipeline, if you are not
> > > rendering ASAP, you need the HW timestamp in order to schedule. Again,
> > > we'd get the fence early, but the actual timestamp will be signalled at
> > > the very last minutes, so we also risk of turning the fence into pure
> > > overhead. Note that as we speak, I have colleagues who are
> > > experimenting with frame timestamp prediction that slaves to the
> > > effective timestamp (catching up over time). But we still have issues
> > > when the capture driver skipped a frame (missed a capture window).
> >
> > Note that a fence has a timestamp internally and it can be queried for
> > it from the user space if exposed as a sync file:
> > https://elixir.bootlin.com/linux/v5.1-rc5/source/drivers/dma-buf/sync_file.c#L386
>
> Don't we need something the other way around ? This seems to be the
> timestamp of when it was triggered (I'm not familiar with this though).
>

Honestly, I'm not fully sure what this timestamp is expected to be.

For video capture pipeline the fence would signal once the whole frame
is captured, so I think it could be a reasonable value to consider
later in the pipeline?

> >
> > Fences in V4L2 would be also useful for stateless decoders and any
> > mem-to-mem processors that operate in order, like the blitters
> > mentioned here or actually camera ISPs, which can be often chained
> > into relatively sophisticated pipelines.
>
> I agree fence can be used to optimize specific corner cases. They are
> not as critical in V4L2 since we have async queues.

I wouldn't call those corner cases. A stateful decoder is actually one
of the opposite extremes, because one would normally just decode and
show the frame, so not much complexity needed to handle it and async
queues actually work quite well.

I don't think async queues are very helpful for any more complicated
use cases. The userspace still needs to wake up and push the buffers
through the pipeline. If you have some depth across the whole
pipeline, with queues always having some buffers waiting to be
processed, fences indeed wouldn't change too much (+/- the CPU
time/power wasted on context switches). However, with real time use
cases, such as anything involving streaming from cameras, image
processing stages and encoding into a stream to be passed to a
latency-sensitive application, such as WebRTC, the latency imposed by
the lack of fences would be significant. Especially if the image
processing in between consists of several inter-dependent stages.

> I think the use
> case for fences in V4L2 is mostly to lower the latency. Not all use
> cases requires such a low latency.

Indeed, not all, but I think it doesn't make fences less important,
given that there are use cases that require such a low latency.

> There was argument around fences
> that is simplify 

[Bug 110481] performance hot issues in amdgpu_cs_ib_vm_chunk

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110481

--- Comment #1 from baopeng  ---
performance hot stack:

start_thread ->
impl_thrd_routine ->
util_queue_thread_func ->   
amdgpu_cs_submit_ib ->
amdgpu_cs_submit_raw -> 
drmCommandWriteRead ->
ioctl ->
el0_svc ->
el0_svc_handler ->
el0_svc_common ->
__arm64_sys_ioctl ->
ksys_ioctl ->
do_vfs_ioctl -> 
amdgpu_drm_ioctl ->
drm_ioctl ->
drm_ioctl_kernel ->
amdgpu_cs_ioctl ->
amdgpu_bo_kmap->
ttm_bo_kmap ->
vmap ->
__get_vm_area_node ->   
alloc_vmap_area

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH v1 2/2] drm/komeda: Adds limitation check for AFBC wide block not support Rot90

2019-04-21 Thread Lowry Li (Arm Technology China)
Komeda series hardware doesn't support Rot90 for AFBC wide block. So
add limitation check to reject it if such configuration has been posted.

Signed-off-by: Lowry Li (Arm Technology China) 
---
 drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c   | 15 +++
 .../gpu/drm/arm/display/komeda/komeda_format_caps.c|  7 ++-
 .../gpu/drm/arm/display/komeda/komeda_format_caps.h|  8 +++-
 .../gpu/drm/arm/display/komeda/komeda_framebuffer.c| 18 +-
 .../gpu/drm/arm/display/komeda/komeda_framebuffer.h|  5 +++--
 .../gpu/drm/arm/display/komeda/komeda_pipeline_state.c |  8 +++-
 drivers/gpu/drm/arm/display/komeda/komeda_plane.c  |  2 +-
 7 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c 
b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
index 34506ef..9603de9 100644
--- a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
+++ b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
@@ -494,11 +494,26 @@ static int d71_enum_resources(struct komeda_dev *mdev)
{__HW_ID(6, 7), 0/*DRM_FORMAT_YUV420_10BIT*/, 1,RICH,   
Rot_ALL_H_V,LYT_NM, AFB_TH},
 };
 
+static bool d71_format_mod_supported(const struct komeda_format_caps *caps,
+u32 layer_type, u64 modifier, u32 rot)
+{
+   uint64_t layout = modifier & AFBC_FORMAT_MOD_BLOCK_SIZE_MASK;
+
+   if ((layout == AFBC_FORMAT_MOD_BLOCK_SIZE_32x8) &&
+   drm_rotation_90_or_270(rot)) {
+   DRM_DEBUG_ATOMIC("D71 doesn't support ROT90 for WB-AFBC.\n");
+   return false;
+   }
+
+   return true;
+}
+
 static void d71_init_fmt_tbl(struct komeda_dev *mdev)
 {
struct komeda_format_caps_table *table = >fmt_tbl;
 
table->format_caps = d71_format_caps_table;
+   table->format_mod_supported = d71_format_mod_supported;
table->n_formats = ARRAY_SIZE(d71_format_caps_table);
 }
 
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.c
index b219514..cd4d9f5 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.c
@@ -74,7 +74,8 @@
 };
 
 bool komeda_format_mod_supported(struct komeda_format_caps_table *table,
-u32 layer_type, u32 fourcc, u64 modifier)
+u32 layer_type, u32 fourcc, u64 modifier,
+u32 rot)
 {
const struct komeda_format_caps *caps;
 
@@ -85,6 +86,10 @@ bool komeda_format_mod_supported(struct 
komeda_format_caps_table *table,
if (!(caps->supported_layer_types & layer_type))
return false;
 
+   if (table->format_mod_supported)
+   return table->format_mod_supported(caps, layer_type, modifier,
+  rot);
+
return true;
 }
 
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h 
b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
index 96de22e..381e873 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
@@ -71,10 +71,15 @@ struct komeda_format_caps {
  *
  * @n_formats: the size of format_caps list.
  * @format_caps: format_caps list.
+ * @format_mod_supported: Optional. Some HW may have special requirements or
+ * limitations which can not be described by format_caps, this func supply HW
+ * the ability to do the further HW specific check.
  */
 struct komeda_format_caps_table {
u32 n_formats;
const struct komeda_format_caps *format_caps;
+   bool (*format_mod_supported)(const struct komeda_format_caps *caps,
+u32 layer_type, u64 modifier, u32 rot);
 };
 
 extern u64 komeda_supported_modifiers[];
@@ -100,6 +105,7 @@ u32 *komeda_get_layer_fourcc_list(struct 
komeda_format_caps_table *table,
 void komeda_put_fourcc_list(u32 *fourcc_list);
 
 bool komeda_format_mod_supported(struct komeda_format_caps_table *table,
-u32 layer_type, u32 fourcc, u64 modifier);
+u32 layer_type, u32 fourcc, u64 modifier,
+u32 rot);
 
 #endif
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index f842c88..d5822a3 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -239,20 +239,20 @@ struct drm_framebuffer *
 }
 
 /* if the fb can be supported by a specific layer */
-bool komeda_fb_is_layer_supported(struct komeda_fb *kfb, u32 layer_type)
+bool komeda_fb_is_layer_supported(struct komeda_fb *kfb, u32 layer_type,
+ u32 rot)
 {
struct drm_framebuffer *fb = >base;
struct komeda_dev 

[PATCH v1 1/2] drm/komeda: Add rotation support on Komeda driver

2019-04-21 Thread Lowry Li (Arm Technology China)
- Adds rotation property to plane.
- Komeda display rotation support diverges from the specific formats,
so need to check the user required rotation type with the format caps
and reject the commit if it can not be supported.
- In the layer validate flow, sets the rotation value to the layer
state. If r90 or r270, swap the width and height of the data flow
for next stage.

Signed-off-by: Lowry Li (Arm Technology China) 
---
 drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h  | 11 +++
 .../gpu/drm/arm/display/komeda/komeda_pipeline_state.c   |  7 +++
 drivers/gpu/drm/arm/display/komeda/komeda_plane.c| 16 
 3 files changed, 34 insertions(+)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h 
b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
index bc3b2df36..96de22e 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
@@ -79,6 +79,17 @@ struct komeda_format_caps_table {
 
 extern u64 komeda_supported_modifiers[];
 
+static inline const char *komeda_get_format_name(u32 fourcc, u64 modifier)
+{
+   struct drm_format_name_buf buf;
+   static char name[64];
+
+   snprintf(name, sizeof(name), "%s with modifier: 0x%llx.",
+drm_get_format_name(fourcc, ), modifier);
+
+   return name;
+}
+
 const struct komeda_format_caps *
 komeda_get_format_caps(struct komeda_format_caps_table *table,
   u32 fourcc, u64 modifier);
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
index 9b29e9a..8c133e4 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
@@ -317,6 +317,13 @@ struct komeda_pipeline_state *
/* update the data flow for the next stage */
komeda_component_set_output(>input, >base, 0);
 
+   /*
+* The rotation has been handled by layer, so adjusted the data flow for
+* the next stage.
+*/
+   if (drm_rotation_90_or_270(st->rot))
+   swap(dflow->in_h, dflow->in_w);
+
return 0;
 }
 
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
index 14d6861..5e5bfdb 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
@@ -9,12 +9,14 @@
 #include 
 #include "komeda_dev.h"
 #include "komeda_kms.h"
+#include "komeda_framebuffer.h"
 
 static int
 komeda_plane_init_data_flow(struct drm_plane_state *st,
struct komeda_data_flow_cfg *dflow)
 {
struct drm_framebuffer *fb = st->fb;
+   const struct komeda_format_caps *caps = to_kfb(fb)->format_caps;
 
memset(dflow, 0, sizeof(*dflow));
 
@@ -35,6 +37,15 @@
dflow->in_w = st->src_w >> 16;
dflow->in_h = st->src_h >> 16;
 
+   dflow->rot = drm_rotation_simplify(st->rotation, caps->supported_rots);
+   if (!has_bits(dflow->rot, caps->supported_rots)) {
+   DRM_DEBUG_ATOMIC("rotation(0x%x) isn't supported by %s.\n",
+dflow->rot,
+komeda_get_format_name(caps->fourcc,
+   fb->modifier));
+   return -EINVAL;
+   }
+
return 0;
 }
 
@@ -233,6 +244,11 @@ static int komeda_plane_add(struct komeda_kms_dev *kms,
 
drm_plane_helper_add(plane, _plane_helper_funcs);
 
+   err = drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
+layer->supported_rots);
+   if (err)
+   goto cleanup;
+
err = drm_plane_create_alpha_property(plane);
if (err)
goto cleanup;
-- 
1.9.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH v1 0/2] drm/komeda: Add rotation support on Komeda driver

2019-04-21 Thread Lowry Li (Arm Technology China)
Hi,

This serie aims at adding the support for rotation on Komeda driver.
For rotation, D71 doesn't support Rot90 for AFBC wide block. So this patch
set also includes the limitation check.

This patch series depends on:
- https://patchwork.freedesktop.org/series/54449/
- https://patchwork.freedesktop.org/series/54450/
- https://patchwork.freedesktop.org/series/58710/
- https://patchwork.freedesktop.org/series/59000/
- https://patchwork.freedesktop.org/series/59002/

Regards,
Lowry

Lowry Li (Arm Technology China) (2):
  drm/komeda: Add rotation support on Komeda driver
  drm/komeda: Adds limitation check for AFBC wide block not support
Rot90

 drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c  | 15 +++
 .../gpu/drm/arm/display/komeda/komeda_format_caps.c   |  7 ++-
 .../gpu/drm/arm/display/komeda/komeda_format_caps.h   | 19 ++-
 .../gpu/drm/arm/display/komeda/komeda_framebuffer.c   | 18 +-
 .../gpu/drm/arm/display/komeda/komeda_framebuffer.h   |  5 +++--
 .../drm/arm/display/komeda/komeda_pipeline_state.c| 15 ++-
 drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 18 +-
 7 files changed, 82 insertions(+), 15 deletions(-)

-- 
1.9.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 110481] performance hot issues in amdgpu_cs_ib_vm_chunk

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=110481

Bug ID: 110481
   Summary: performance hot issues in amdgpu_cs_ib_vm_chunk
   Product: DRI
   Version: DRI git
  Hardware: Other
OS: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/AMDgpu
  Assignee: dri-devel@lists.freedesktop.org
  Reporter: baopeng88_...@163.com

We have encountered performance hot issues in vce module. Cpu occupancy rate
has been in the alloc_vmap_area function.
We found that calling the alloc_vmap_area function mainly occurs in the
amdgpu_cs_ib_vm_chunk function. So we removed the main loop judgment logic of
amdgpu_cs_ib_vm_chunk.
as follows .
-   if (p->ring->funcs->parse_cs || p->ring->funcs->patch_cs_in_place) {
+   if (0)
If we don't delete, vce will be very slow.

Is this the fundamental way to solve the problem? Or there are other ways to
solve the problem?

3q very much.

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[pull] drm/msm: msm-next for 5.2

2019-04-21 Thread Rob Clark
Hi Dave,

This time around it is a bunch of cleanup and fixes, expanding gpu
"zap" shader support (so we can take the GPU out of secure mode on
boot) to a6xx, and small UABI extension to support robustness (see
mesa MR 673).

The following changes since commit 15ade5d2e7775667cf191cf2f94327a4889f8b9d:

  Linux 5.1-rc4 (2019-04-07 14:09:59 -1000)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/msm.git drm-msm-next-2019-04-21

for you to fetch changes up to b02872df58aca66d0e7af3ec5065dbc6f0630dd1:

  drm/msm/a6xx: Don't enable GPU state code if dependencies are
missing (2019-04-21 07:52:36 -0700)


Douglas Anderson (1):
  drm/msm: Cleanup A6XX opp-level reading

Jeykumar Sankaran (7):
  drm/msm/dpu: move hw_inf encoder baseclass
  drm/msm/dpu: remove phys_vid subclass
  drm/msm/dpu: release resources on modeset failure
  drm/msm/dpu: dont use encoder->crtc in atomic path
  drm/msm/dpu: map mixer/ctl hw blocks in encoder modeset
  drm/msm/dpu: assign intf to encoder in mode_set
  drm/msm/dpu: check split role for single flush

Jordan Crouse (13):
  drm/msm: Remove pm_runtime calls from msm_iommu.c
  drm/msm/gpu: Add submit queue queries
  drm/msm/a6xx: Remove unwanted regulator code
  dt-bindings: drm/msm/a6xx: Add GX power-domain for GMU bindings
  drm/msm/gpu: Attach to the GPU GX power domain
  drm/msm/a6xx: Make GMU reset useful
  msm/drm/a6xx: Turn off the GMU if resume fails
  drm/msm/a6xx: Remove an unused struct member
  dt-bindings: drm/msm/a6xx: Document interconnect properties for GPU
  drm/msm/gpu: Move zap shader loading to adreno
  drm/msm/a6xx: Add zap shader load
  dt-bindings: drm/msm/gpu: Document a5xx / a6xx zap shader region
  drm/msm/a6xx: Don't enable GPU state code if dependencies are missing

Kristian H. Kristensen (3):
  drm/msm: Implement .gem_free_object_unlocked
  drm/msm: Stop dropping struct_mutex in recover_worker()
  drm/msm: Split submit_lookup_objects() into two loops

Luca Weiss (1):
  drm/msm: Fix NULL pointer dereference

Lucas Stach (1):
  drm/msm: don't allocate pages from the MOVABLE zone

Rob Clark (2):
  drm/msm/gpu: add per-process pagetables param
  drm/msm: add param to retrieve # of GPU faults (global)

Sean Paul (5):
  drm/msm: Use drm_mode_vrefresh instead of mode->vrefresh
  drm/msm: dpu: Simplify frame_done watchdog timeout calculation
  drm/msm: dpu: Untangle frame_done timeout units
  drm/msm: dpu: Don't queue the frame_done watchdog for cursor
  drm/msm: dpu: Don't set frame_busy_mask for async updates

Wen Yang (1):
  drm/msm: a5xx: fix possible object reference leak

 .../devicetree/bindings/display/msm/gmu.txt|  10 +-
 .../devicetree/bindings/display/msm/gpu.txt|  11 ++
 drivers/gpu/drm/msm/Kconfig|   5 +
 drivers/gpu/drm/msm/Makefile   |   3 +-
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c  | 109 +--
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c  | 216 +
 drivers/gpu/drm/msm/adreno/a6xx_gmu.h  |   9 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c  |  62 --
 drivers/gpu/drm/msm/adreno/a6xx_gpu.h  |   3 +-
 drivers/gpu/drm/msm/adreno/adreno_device.c |   2 +
 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 141 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.h|   6 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c   |  69 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c| 119 +---
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |  15 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   |   5 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   | 177 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h|   3 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c  |   2 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c   |   4 +-
 drivers/gpu/drm/msm/msm_debugfs.c  |   2 +-
 drivers/gpu/drm/msm/msm_drv.c  |  14 +-
 drivers/gpu/drm/msm/msm_drv.h  |   7 +
 drivers/gpu/drm/msm/msm_gem.c  |  42 +++-
 drivers/gpu/drm/msm/msm_gem.h  |   8 +-
 drivers/gpu/drm/msm/msm_gem_submit.c   |  44 ++---
 drivers/gpu/drm/msm/msm_gem_vma.c  |   2 +-
 drivers/gpu/drm/msm/msm_gpu.c  |  17 +-
 drivers/gpu/drm/msm/msm_gpu.h  |   3 +
 drivers/gpu/drm/msm/msm_iommu.c|  13 +-
 drivers/gpu/drm/msm/msm_submitqueue.c  |  41 
 include/uapi/drm/msm_drm.h |  14 ++
 32 files changed, 665 insertions(+), 513 deletions(-)
___
dri-devel mailing list
dri-devel@lists.freedesktop.org

Re: [PATCH] drm/gma500/cdv: Check vbt config bits when detecting lvds panels

2019-04-21 Thread Hans de Goede

Hi,

On 16-04-19 13:46, Patrik Jakobsson wrote:

Some machines have an lvds child device in vbt even though a panel is
not attached. To make detection more reliable we now also check the lvds
config bits available in the vbt.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1665766
Signed-off-by: Patrik Jakobsson 
Cc: Hans de Goede 
Cc: Ville Syrjälä 


The reporter of https://bugzilla.redhat.com/show_bug.cgi?id=1665766
just got back to me and he confirms that this patch fixes the
false-positive LVDS panel detection on his NAS, without needing
a DMI blacklist.

So it looks like this patch indeed is a better fix then my initial
DMI blacklist approach and from my pov this patch is ready to
go upstream.

Regards,

Hans



---
  drivers/gpu/drm/gma500/cdv_intel_lvds.c | 3 +++
  drivers/gpu/drm/gma500/intel_bios.c | 3 +++
  drivers/gpu/drm/gma500/psb_drv.h| 1 +
  3 files changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c 
b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index de9531caaca0..9c8446184b17 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -594,6 +594,9 @@ void cdv_intel_lvds_init(struct drm_device *dev,
int pipe;
u8 pin;
  
+	if (!dev_priv->lvds_enabled_in_vbt)

+   return;
+
pin = GMBUS_PORT_PANEL;
if (!lvds_is_present_in_vbt(dev, )) {
DRM_DEBUG_KMS("LVDS is not present in VBT\n");
diff --git a/drivers/gpu/drm/gma500/intel_bios.c 
b/drivers/gpu/drm/gma500/intel_bios.c
index 63bde4e86c6a..e019ea271ffc 100644
--- a/drivers/gpu/drm/gma500/intel_bios.c
+++ b/drivers/gpu/drm/gma500/intel_bios.c
@@ -436,6 +436,9 @@ parse_driver_features(struct drm_psb_private *dev_priv,
if (driver->lvds_config == BDB_DRIVER_FEATURE_EDP)
dev_priv->edp.support = 1;
  
+	dev_priv->lvds_enabled_in_vbt = driver->lvds_config != 0;

+   DRM_DEBUG_KMS("LVDS VBT config bits: 0x%x\n", driver->lvds_config);
+
/* This bit means to use 96Mhz for DPLL_A or not */
if (driver->primary_lfp_id)
dev_priv->dplla_96mhz = true;
diff --git a/drivers/gpu/drm/gma500/psb_drv.h b/drivers/gpu/drm/gma500/psb_drv.h
index 941b238bdcc9..bc608ddc3bd1 100644
--- a/drivers/gpu/drm/gma500/psb_drv.h
+++ b/drivers/gpu/drm/gma500/psb_drv.h
@@ -537,6 +537,7 @@ struct drm_psb_private {
int lvds_ssc_freq;
bool is_lvds_on;
bool is_mipi_on;
+   bool lvds_enabled_in_vbt;
u32 mipi_ctrl_display;
  
  	unsigned int core_freq;



___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 109239] Polaris10: Periodic random black screens for 1-2 seconds

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=109239

--- Comment #11 from Samuel Pitoiset  ---
FWIW, it's not a cable issue, I tried to replace it, same problem.

Though, after trying with a new 4K screen the problem is "fixed".

I assume it's a screen issue, I also tried to reset settings to default for the 
old screen but the problem still occurs.

Do you need more info about that screen?

Keep in mind that the problem doesn't happen with amdgpu.dc=0 on Polaris10.

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 109085] Radeon driver crashes with a message "ring 0 stalled for more than 10344msec" when using Citra and Newly free to play game Albion Online on UBUNTU 18.04LTS

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=109085

ye_nope  changed:

   What|Removed |Added

Summary|Radeon driver crashes with  |Radeon driver crashes with
   |a message "ring 0 stalled   |a message "ring 0 stalled
   |for more than 10344msec"|for more than 10344msec"
   |when using Newly free to|when using Citra and Newly
   |play game Albion Online on  |free to play game Albion
   |UBUNTU 18.04LTS |Online on UBUNTU 18.04LTS

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 109085] Radeon driver crashes with a message "ring 0 stalled for more than 10344msec" when using Newly free to play game Albion Online on UBUNTU 18.04LTS

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=109085

ye_nope  changed:

   What|Removed |Added

Summary|Radeon driver crashes with  |Radeon driver crashes with
   |a message "ring 0 stalled   |a message "ring 0 stalled
   |for more than 10344msec"|for more than 10344msec"
   |when using Newly free to|when using Newly free to
   |play game Albion Online |play game Albion Online on
   ||UBUNTU 18.04LTS

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Bug 109085] Radeon driver crashes with a message "ring 0 stalled for more than 10344msec" when using Newly free to play game Albion Online

2019-04-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=109085

ye_nope  changed:

   What|Removed |Added

Summary|Radeon driver crashes with  |Radeon driver crashes with
   |a message "ring 0 stalled   |a message "ring 0 stalled
   |for more than 10344msec"|for more than 10344msec"
   |when using Citra and others |when using Newly free to
   ||play game Albion Online
   Severity|normal  |critical
   Priority|medium  |highest
URL||https://albiononline.com/

--- Comment #6 from ye_nope  ---
the issue is triggered whenever i launch the in gmae world map

-- 
You are receiving this mail because:
You are the assignee for the bug.___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH] drm/bridge: dw-hdmi: fix SCDC configuration for ddc-i2c-bus

2019-04-21 Thread Jonas Karlman
When ddc-i2c-bus property is used, a NULL pointer dereference is reported:

[   31.041669] Unable to handle kernel NULL pointer dereference at virtual 
address 0008
[   31.041671] pgd = 4d3c16f6
[   31.041673] [0008] *pgd=
[   31.041678] Internal error: Oops: 5 [#1] SMP ARM

[   31.041711] Hardware name: Rockchip (Device Tree)
[   31.041718] PC is at i2c_transfer+0x8/0xe4
[   31.041721] LR is at drm_scdc_read+0x54/0x84
[   31.041723] pc : []lr : []psr: 280f0013
[   31.041725] sp : edffdad0  ip : 5ccb5511  fp : 0058
[   31.041727] r10: 0780  r9 : edf91608  r8 : c11b0f48
[   31.041728] r7 : 0438  r6 :   r5 :   r4 : 
[   31.041730] r3 : edffdae7  r2 : 0002  r1 : edffdaec  r0 : 

[   31.041908] [] (i2c_transfer) from [] 
(drm_scdc_read+0x54/0x84)
[   31.041913] [] (drm_scdc_read) from [] 
(drm_scdc_set_scrambling+0x30/0xbc)
[   31.041919] [] (drm_scdc_set_scrambling) from [] 
(dw_hdmi_update_power+0x1440/0x1610)
[   31.041926] [] (dw_hdmi_update_power) from [] 
(dw_hdmi_bridge_enable+0x2c/0x70)
[   31.041932] [] (dw_hdmi_bridge_enable) from [] 
(drm_bridge_enable+0x24/0x34)
[   31.041938] [] (drm_bridge_enable) from [] 
(drm_atomic_helper_commit_modeset_enables+0x114/0x220)
[   31.041943] [] (drm_atomic_helper_commit_modeset_enables) from 
[] (rockchip_atomic_helper_commit_tail_rpm+0x28/0x64)

hdmi->i2c may not be set when ddc-i2c-bus property is used in device tree.
Fix this by using hdmi->ddc as the i2c adapter when calling drm_scdc_*().
Also report that SCDC is not supported when there is no DDC bus.

Fixes: 264fce6cc2c1 ("drm/bridge: dw-hdmi: Add SCDC and TMDS Scrambling 
support")
Signed-off-by: Jonas Karlman 
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c 
b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 7a47c65d8ecb..fd1c319a4ee0 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1046,6 +1046,10 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hdmi)
if (hdmi->version < 0x200a)
return false;
 
+   /* Disable if no DDC bus */
+   if (!hdmi->ddc)
+   return false;
+
/* Disable if SCDC is not supported, or if an HF-VSDB block is absent */
if (!display->hdmi.scdc.supported ||
!display->hdmi.scdc.scrambling.supported)
@@ -1683,13 +1687,13 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
 * Source Devices compliant shall set the
 * Source Version = 1.
 */
-   drm_scdc_readb(>i2c->adap, SCDC_SINK_VERSION,
+   drm_scdc_readb(hdmi->ddc, SCDC_SINK_VERSION,
   );
-   drm_scdc_writeb(>i2c->adap, SCDC_SOURCE_VERSION,
+   drm_scdc_writeb(hdmi->ddc, SCDC_SOURCE_VERSION,
min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION));
 
/* Enabled Scrambling in the Sink */
-   drm_scdc_set_scrambling(>i2c->adap, 1);
+   drm_scdc_set_scrambling(hdmi->ddc, 1);
 
/*
 * To activate the scrambler feature, you must ensure
@@ -1705,7 +1709,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
HDMI_MC_SWRSTZ);
-   drm_scdc_set_scrambling(>i2c->adap, 0);
+   drm_scdc_set_scrambling(hdmi->ddc, 0);
}
}
 
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel