[PATCH v2] drm/exynos: release unhandled page flip events at postclose.

2013-09-30 Thread Inki Dae
This patch resolves a dead lock issue that could be incurred when
exynos_drm_crtc_dpms function was called.

The exynos_drm_crtc_dpms function waits for the completion of pended
page flip events. However, preclose callback - this releases all unhandled
page flip events - is called prior to the exynos_drm_crtc_dpms function call
when drm is closed. So at this time, this will make the exynos_drm_crtc_dpms
to wait infiniately for the completion of the page flip events.

This patch releases the unhandled page flip events at postclose instead
of preclose so that exynos_drm_crtc_dpms function can be waked up.

Changelog v2:
- fix a memory leak when drm is closed.
  . it has a memory leak when a requeste page flip is handled after
drm_events_release() is called and before drm_fb_release()
is called. At this time, a drm_pending_event will not be freed.
So also this chage releases the drm_pending_event at postclose().
And it calls drm_vblank_put() for pair if there is any unhandled page
flip event.

Signed-off-by: Inki Dae 
Signed-off-by: Kyungmin Park 
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c |   35 +++
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c 
b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index bb82ef7..1851860 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -173,28 +173,37 @@ static int exynos_drm_open(struct drm_device *dev, struct 
drm_file *file)
 static void exynos_drm_preclose(struct drm_device *dev,
struct drm_file *file)
 {
+   exynos_drm_subdrv_close(dev, file);
+}
+
+static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file)
+{
struct exynos_drm_private *private = dev->dev_private;
-   struct drm_pending_vblank_event *e, *t;
+   struct drm_pending_vblank_event *v, *vt;
+   struct drm_pending_event *e, *et;
unsigned long flags;
 
-   /* release events of current file */
+   if (!file->driver_priv)
+   return;
+
+   /* Release all events not unhandled by page flip handler. */
spin_lock_irqsave(&dev->event_lock, flags);
-   list_for_each_entry_safe(e, t, &private->pageflip_event_list,
+   list_for_each_entry_safe(v, vt, &private->pageflip_event_list,
base.link) {
-   if (e->base.file_priv == file) {
-   list_del(&e->base.link);
-   e->base.destroy(&e->base);
+   if (v->base.file_priv == file) {
+   list_del(&v->base.link);
+   drm_vblank_put(dev, v->pipe);
+   v->base.destroy(&v->base);
}
}
-   spin_unlock_irqrestore(&dev->event_lock, flags);
 
-   exynos_drm_subdrv_close(dev, file);
-}
+   /* Release all events handled by page flip handler but not freed. */
+   list_for_each_entry_safe(e, et, &file->event_list, link) {
+   list_del(&e->link);
+   e->destroy(e);
+   }
+   spin_unlock_irqrestore(&dev->event_lock, flags);
 
-static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file)
-{
-   if (!file->driver_priv)
-   return;
 
kfree(file->driver_priv);
file->driver_priv = NULL;
-- 
1.7.9.5

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


[Bug 66963] r600: linux v3.11.0-RC isn't booting with radeon.dpm=1 option in grub

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=66963

--- Comment #139 from Bryan Quigley  ---
> Does it hang the entire system as soon as you load the driver, or only when
> you start X or something like that?
Hangs on driver load.  

> As for debugging, you can try disabling rv6xx_dpm_set_power_state() by
> returning early (see the patch below).  
This doesn't work.. actually it seems to fail a bit faster now..  previously it
would display kernel messages for a bit, not it goes off after extracting the
kernel.

I tried exiting early out of a few other functions like rv6xx_dpm_init, but
haven't had any better results.  I put a printk statement in _init, which never
got printed.. Could we never make it there?  I couldn't find anything that
comes before _init...

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


RE: [PATCH 1/7] drm/exynos: move hdmiphy related code to hdmiphy driver

2013-09-30 Thread Inki Dae


> -Original Message-
> From: linux-samsung-soc-ow...@vger.kernel.org [mailto:linux-samsung-soc-
> ow...@vger.kernel.org] On Behalf Of Tomasz Figa
> Sent: Monday, September 30, 2013 8:13 AM
> To: Sylwester Nawrocki
> Cc: Inki Dae; Rahul Sharma; devicet...@vger.kernel.org; linux-samsung-soc;
> sw0312.kim; sunil joshi; dri-devel; kgene.kim; Shirish S; Sylwester
> Nawrocki; Rahul Sharma; Stephen Warren; Mark Rutland; Kumar Gala; Pawel
> Moll; Rob Herring; Sean Paul
> Subject: Re: [PATCH 1/7] drm/exynos: move hdmiphy related code to hdmiphy
> driver
> 
> On Monday 30 of September 2013 00:08:46 Sylwester Nawrocki wrote:
> > On 09/28/2013 06:10 PM, Inki Dae wrote:
> > >> Any opinion from Device-Tree folks?
> > >>
> > >> IMO, we should have same consensus on Shirish patches before
> > >> proceeding.>
> > > Rahul, it seems that DT people have no interest in this issue. So
> > > let's
> > > have a consensus about this issue internally.
> > >
> > > To Mr. Kyungmin, Sylwester, Kukjin Kim, and Tomasz,
> > > How about keeping hdmiphy config data in each board dts file?
> >
> > Please don't use HTML and quote only relevant part of e-mails. Otherwise
> > there are good chances your messages end up in people's spam box.
> >
> > It often helps to Cc a DT binding maintainer directly.
> >
> > Then, you consider moving the HDMI phy configuration to the device tree.
> > As Sean suggested in this thread:
> >
> > ">> +static struct hdmiphy_config hdmiphy_4210_configs[] = {
> 
> I'd like to only add that patches introducing or modifying a device tree
> binding need to be acked by at least one DT binding maintainer to be
> merged.
> 
> > >> +   {
> > >> +   .pixel_clock = 2700,
> > >> +   .conf = {
> > >> +   0x01, 0x05, 0x00, 0xD8, 0x10, 0x1C, 0x30,
> > >> 0x40,
> > >> +   0x6B, 0x10, 0x02, 0x51, 0xDF, 0xF2, 0x54,
> > >> 0x87,
> > >> +   0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10,
> > >> 0xE0,
> > >> +   0x22, 0x40, 0xE3, 0x26, 0x00, 0x00, 0x00,
> > >> 0x00,
> > >> +   },
> > >> +   },
> >
> > [trimmed couple more entries]
> >
> > >> +};
> > >
> > > Are you aware of the effort to move these to dt? Since these are
> > > board-specific values, it seems incorrect to apply them universally.
> > > Shirish has uploaded a patch to the chromium review site to push these
> > > into dt (https://chromium-review.googlesource.com/#/c/65581). Maybe
> > > you can work that into your patch set?"
> >
> > The configuration data is 64 bytes of the register values IIUC. Would it
> > be possible to figure out exact meaning of each byte ?
> 
> This is definitely something that I would go for. Then for board specific
> data appropriate device tree properties could be defined, not just a
> binary blob.
> 

Agree. Thanks for your opinion.

Thanks,
Inki Dae

> Best regards,
> Tomasz
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-
> soc" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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


RE: [PATCH 1/7] drm/exynos: move hdmiphy related code to hdmiphy driver

2013-09-30 Thread Inki Dae


> -Original Message-
> From: Sylwester Nawrocki [mailto:sylvester.nawro...@gmail.com]
> Sent: Monday, September 30, 2013 7:09 AM
> To: Inki Dae
> Cc: Rahul Sharma; devicet...@vger.kernel.org; linux-samsung-soc;
> sw0312.kim; sunil joshi; dri-devel; kgene.kim; Shirish S; Sylwester
> Nawrocki; Rahul Sharma; Stephen Warren; Mark Rutland; Kumar Gala; Pawel
> Moll; Rob Herring; Sean Paul
> Subject: Re: [PATCH 1/7] drm/exynos: move hdmiphy related code to hdmiphy
> driver
> 
> On 09/28/2013 06:10 PM, Inki Dae wrote:
> >> Any opinion from Device-Tree folks?
> >>
> >> IMO, we should have same consensus on Shirish patches before
proceeding.
> >
> > Rahul, it seems that DT people have no interest in this issue. So let's
> > have a consensus about this issue internally.
> >
> > To Mr. Kyungmin, Sylwester, Kukjin Kim, and Tomasz,
> > How about keeping hdmiphy config data in each board dts file?
> 
> Please don't use HTML and quote only relevant part of e-mails. Otherwise
> there are good chances your messages end up in people's spam box.
> 

Ah, I missed checking text mode. Sorry about this. :)



> It often helps to Cc a DT binding maintainer directly.
> 

Good idea.

> Then, you consider moving the HDMI phy configuration to the device tree.
> As Sean suggested in this thread:
> 

Right.

> ">> +static struct hdmiphy_config hdmiphy_4210_configs[] = {
> >> +   {
> >> +   .pixel_clock = 2700,
> >> +   .conf = {
> >> +   0x01, 0x05, 0x00, 0xD8, 0x10, 0x1C, 0x30, 0x40,
> >> +   0x6B, 0x10, 0x02, 0x51, 0xDF, 0xF2, 0x54, 0x87,
> >> +   0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10, 0xE0,
> >> +   0x22, 0x40, 0xE3, 0x26, 0x00, 0x00, 0x00, 0x00,
> >> +   },
> >> +   },
> [trimmed couple more entries]
> >> +};
> >>
> > Are you aware of the effort to move these to dt? Since these are
> > board-specific values, it seems incorrect to apply them universally.
> > Shirish has uploaded a patch to the chromium review site to push these
> > into dt (https://chromium-review.googlesource.com/#/c/65581). Maybe
> > you can work that into your patch set?"
> 
> The configuration data is 64 bytes of the register values IIUC. Would it
> be
> possible to figure out exact meaning of each byte ? Do all of these bytes

Right, but the user manual doesn't describe that enough so we might need to
inquire for what it means to design team. 

> need to be changed per board ? Perhaps we can have per SoC static tables
> in
> the PHY driver and be overwriting only some of the bytes with values read
> from device tree ?
> 
> AFAIR firmware-like binary blobs (register address/value pairs) are not
> supposed to be stored in DT.
> 
> If there is no detailed documentation for theese PHY configuration tables
> I guess there is no choice but to put these raw 64 bytes in DT. Presumably
> this should be a an required property defined only by board dts, since
> those
> values are PCB design dependent.
> 
> However, if not all boards need tweaking this configuration data, then it
> could make sense to define recommended per-SoC tables in the driver and
> overwrite from DT only if it is specified there for a specific board.
> If we can come up with universal configuration for a SoC and selected
> pixel
> clock frequency then it could likely be better to store that in the driver
> rather than in DT.
> 

Thanks you your opinion. However, we need to make sure how we take care of
the PHY configuration values. So I will have two steps to merge this pages
set.

To Rahul,
Could you post only your patch set regardless of Shirish's patch? I will
merge your patch set first because as is, Exynos drm hdmi driver is broken.
And, we need more discussions about Shirish patch. So I will not merge this
patch until we have a consensus about it.

To Shirish,
For your patch, it seems that you need to make sure to figure out exact
meaning of each byte of the PHY configuration values first. Maybe you need
to inquire for that to hardware or design team. And please separate the
values into common and specific parts if needed.


Thanks,
Inki Dae

> --
> Thanks,
> Sylwester

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


[Bug 60639] RV635: Kernel displays black screen when monitor is connect via DisplayPort

2013-09-30 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=60639

--- Comment #12 from douglas_pe...@yahoo.com ---
Has there been any progress on this? I am very near throwing money at the
problem and buying an NVidea card. At least then I can plug in whichever brand
currently has working drivers.

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


[Bug 69723] Computer freezes with kernel 3.11.0 / 3.12-rc1 (with bug 68235's patches applied) when dpm=1 on r600g (Cayman)

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69723

--- Comment #10 from Alexandre Demers  ---
Just to be sure: vddc is associated only to sclk and vddci to mclk, right?

Also, how are a new freq and a new voltage applied to the card? Are they
applied simultanously or sequentially? In the second case, we must be sure to
raise voltage before frequency when pushing the performances up, while we
should low the frequency before lowering the voltage when we are slowing down.

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


[Bug 69723] Computer freezes with kernel 3.11.0 / 3.12-rc1 (with bug 68235's patches applied) when dpm=1 on r600g (Cayman)

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69723

--- Comment #9 from Alexandre Demers  ---
Created attachment 86889
  --> https://bugs.freedesktop.org/attachment.cgi?id=86889&action=edit
dmesg with 3.12.0-rc3

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


[Bug 69983] [r600g, bisected] Screen corruption in Firefox and World of Warcraft

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

--- Comment #5 from Jos van Wolput  ---
(In reply to comment #3)
> Startng icedove/firefox with...

This should be read 'Startng iceweasel' (Debian's Firefox), not icedove
(Debian's Thunderbird).

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


[Bug 69983] [r600g, bisected] Screen corruption in Firefox and World of Warcraft

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

Jos van Wolput  changed:

   What|Removed |Added

 CC||wol...@onsneteindhoven.nl
Summary|[r600g, bisected] Screen|[r600g, bisected] Screen
   |corruption in World of  |corruption in Firefox and
   |Warcraft and Firefox|World of Warcraft

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft and Firefox

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

Jos van Wolput  changed:

   What|Removed |Added

   Severity|major   |critical
   Priority|high|medium

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft and Firefox

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

Jos van Wolput  changed:

   What|Removed |Added

   Severity|normal  |major

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft and Firefox

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

--- Comment #4 from Jos van Wolput  ---
Created attachment 86888
  --> https://bugs.freedesktop.org/attachment.cgi?id=86888&action=edit
Xorg.log with errors

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft and Firefox

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

Jos van Wolput  changed:

   What|Removed |Added

   Priority|medium  |high
Summary|[r600g, bisected] Screen|[r600g, bisected] Screen
   |corruption in World of  |corruption in World of
   |Warcraft|Warcraft and Firefox

--- Comment #3 from Jos van Wolput  ---
Startng icedove/firefox with
OpenGL renderer string: Gallium 0.4 on AMD RS780
OpenGL version string: 2.1 Mesa 9.3.0-devel
commit mesa-68f6dec32ed5eede361f76c8dbdf897652659baf (bisected)
is causing a completely corrupted screen and xorg errors,
making mesa unusable.

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


[Bug 69942] driver fails to provide latency information

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69942

--- Comment #5 from fritz...@gmail.com ---
$ uname -a
Linux mythtv 3.11.2-1-ARCH #1 SMP PREEMPT Fri Sep 27 07:35:36 CEST 2013 x86_64
GNU/Linux


Thanks!

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


[Bug 69942] driver fails to provide latency information

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69942

--- Comment #4 from fritz...@gmail.com ---
Created attachment 86886
  --> https://bugs.freedesktop.org/attachment.cgi?id=86886&action=edit
xrandr --verbose output

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


[Bug 69942] driver fails to provide latency information

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69942

--- Comment #3 from fritz...@gmail.com ---
Created attachment 86885
  --> https://bugs.freedesktop.org/attachment.cgi?id=86885&action=edit
Xorg log

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


[Bug 69942] driver fails to provide latency information

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69942

--- Comment #2 from fritz...@gmail.com ---
Created attachment 86884
  --> https://bugs.freedesktop.org/attachment.cgi?id=86884&action=edit
dmesg output

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


Re: [Intel-gfx] [PATCH 2/3] drm/i915/dp: use drm_edid_duplicate

2013-09-30 Thread Dave Airlie
Did you compile or boot this? I get a warning since you are using edid
uninitialised, I guess you meant to duplicate intel_connector->edid.

Dave.

>  drivers/gpu/drm/i915/intel_dp.c |8 +---
>  1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 95a3159..aed9d67 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -2920,18 +2920,12 @@ intel_dp_get_edid(struct drm_connector *connector, 
> struct i2c_adapter *adapter)
> /* use cached edid if we have one */
> if (intel_connector->edid) {
> struct edid *edid;
> -   int size;
>
> /* invalid edid */
> if (IS_ERR(intel_connector->edid))
> return NULL;
>
> -   size = (intel_connector->edid->extensions + 1) * EDID_LENGTH;
> -   edid = kmemdup(intel_connector->edid, size, GFP_KERNEL);
> -   if (!edid)
> -   return NULL;
> -
> -   return edid;
> +   return drm_edid_duplicate(edid);
> }
>
> return drm_get_edid(connector, adapter);
> --
> 1.7.9.5
>
> ___
> Intel-gfx mailing list
> intel-...@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] drm/radeon/dpm: disable multiple UVD states

2013-09-30 Thread Alex Deucher
Always use the regular UVD state for now.  This fixes
a performance regression with UVD playback on certain APUs.

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/radeon_pm.c  | 3 +++
 drivers/gpu/drm/radeon/radeon_uvd.c | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/radeon_pm.c 
b/drivers/gpu/drm/radeon/radeon_pm.c
index ac07ad1..4f6b7fc 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -945,6 +945,8 @@ void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool 
enable)
if (enable) {
mutex_lock(&rdev->pm.mutex);
rdev->pm.dpm.uvd_active = true;
+   /* disable this for now */
+#if 0
if ((rdev->pm.dpm.sd == 1) && (rdev->pm.dpm.hd == 0))
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_SD;
else if ((rdev->pm.dpm.sd == 2) && (rdev->pm.dpm.hd == 
0))
@@ -954,6 +956,7 @@ void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool 
enable)
else if ((rdev->pm.dpm.sd == 0) && (rdev->pm.dpm.hd == 
2))
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_HD2;
else
+#endif
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD;
rdev->pm.dpm.state = dpm_state;
mutex_unlock(&rdev->pm.mutex);
diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c 
b/drivers/gpu/drm/radeon/radeon_uvd.c
index a0f1185..4f2e73f 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -798,7 +798,8 @@ void radeon_uvd_note_usage(struct radeon_device *rdev)
(rdev->pm.dpm.hd != hd)) {
rdev->pm.dpm.sd = sd;
rdev->pm.dpm.hd = hd;
-   streams_changed = true;
+   /* disable this for now */
+   /*streams_changed = true;*/
}
}
 
-- 
1.8.3.1

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

--- Comment #2 from Chris Rankin  ---
This is with a HD4890 (RV790).

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


[Bug 69983] [r600g, bisected] Screen corruption in World of Warcraft

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

--- Comment #1 from Chris Rankin  ---
Created attachment 86877
  --> https://bugs.freedesktop.org/attachment.cgi?id=86877&action=edit
screenshot attempting to show problem

The corruption is of a flickering nature, which has made it difficult to
capture. But you can hopefully see at least two little black squares which are
definitely not supposed to be there.

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


[Bug 69983] New: [r600g, bisected] Screen corruption in World of Warcraft

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69983

  Priority: medium
Bug ID: 69983
  Assignee: dri-devel@lists.freedesktop.org
   Summary: [r600g, bisected] Screen corruption in World of
Warcraft
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: ranki...@googlemail.com
  Hardware: x86-64 (AMD64)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r600
   Product: Mesa

This commit is causing a patchy line of tiny little squares across one of the
main diagonals on the screen (bottom-left to top-right):

68f6dec32ed5eede361f76c8dbdf897652659baf is the first bad commit
commit 68f6dec32ed5eede361f76c8dbdf897652659baf
Author: Marek Olšák 
Date:   Sun Sep 22 21:45:23 2013 +0200

r600g: move aux_context and r600_screen_clear_buffer to drivers/radeon

This will be used in the next commit.

:04 04 9aa99663b074853ed4d88a5229ff88dfe2e8a0c4
f55eac99d036675f814a0465bf4c8f1e368054bd Msrc

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


Re: [PATCH 2/5] drm/i915: destroy connector sysfs files earlier

2013-09-30 Thread Daniel Vetter
On Thu, Sep 26, 2013 at 08:05:59PM -0300, Paulo Zanoni wrote:
> From: Paulo Zanoni 
> 
> For some reason, every single time I try to run module_reload
> something tries to read the connector sysfs files. This happens
> after we destroy the encoders and before we destroy the connectors, so
> when the sysfs read triggers the connector detect() function,
> intel_conector->encoder points to memory that was already freed.
> 
> The bad backtrace is just:
> [] dump_stack+0x54/0x74
> [] intel_dp_detect+0x1e/0x4b0 [i915]
> [] status_show+0x3d/0x80 [drm]
> [] dev_attr_show+0x20/0x60
> [] ? sysfs_read_file+0x80/0x1b0
> [] sysfs_read_file+0xa9/0x1b0
> [] vfs_read+0x9e/0x170
> [] SyS_read+0x4c/0xa0
> [] system_call_fastpath+0x16/0x1b
> 
> But if you add tons of memory checking debug options to your Kernel
> you'll also see:
>  - general protection fault: 
>  - BUG kmalloc-4096 (Tainted: G  D W   ): Poison overwritten
>  - INFO: Allocated in intel_ddi_init+0x65/0x270 [i915]
>  - INFO: Freed in intel_dp_encoder_destroy+0x69/0xb0 [i915]
> Among a bunch of other error messages.
> 
> So this commit just destroys the sysfs files before both the encoder
> and connectors are freed.
> 
> Signed-off-by: Paulo Zanoni 

Queued for -next, thanks for the patch. I'm unsure what to do with the
first patch, maybe Ville can take a look. For the next three patches to
wire up bind/unbind hooks I think the right approach would be to just
disallow the vgaconsole once drm/i915 is loaded:
- We don't want to even tighter integrate with the locking madness that is
  fbcon.
- We want to kick out the vgacon anyway, even when e.g. fbcon isn't
  loaded.
David Herrmann might have an idea how to solve this.
-Daniel
> ---
>  drivers/gpu/drm/i915/intel_crt.c | 1 -
>  drivers/gpu/drm/i915/intel_display.c | 5 +
>  drivers/gpu/drm/i915/intel_dp.c  | 1 -
>  drivers/gpu/drm/i915/intel_dsi.c | 1 -
>  drivers/gpu/drm/i915/intel_dvo.c | 1 -
>  drivers/gpu/drm/i915/intel_hdmi.c| 1 -
>  drivers/gpu/drm/i915/intel_lvds.c| 1 -
>  drivers/gpu/drm/i915/intel_sdvo.c| 7 +--
>  drivers/gpu/drm/i915/intel_tv.c  | 1 -
>  9 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_crt.c 
> b/drivers/gpu/drm/i915/intel_crt.c
> index 0263629..942b9ac 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -677,7 +677,6 @@ intel_crt_detect(struct drm_connector *connector, bool 
> force)
>  
>  static void intel_crt_destroy(struct drm_connector *connector)
>  {
> - drm_sysfs_connector_remove(connector);
>   drm_connector_cleanup(connector);
>   kfree(connector);
>  }
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 065ffed..793061f 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10726,6 +10726,7 @@ void intel_modeset_cleanup(struct drm_device *dev)
>  {
>   struct drm_i915_private *dev_priv = dev->dev_private;
>   struct drm_crtc *crtc;
> + struct drm_connector *connector;
>  
>   /*
>* Interrupts and polling as the first thing to avoid creating havoc.
> @@ -10768,6 +10769,10 @@ void intel_modeset_cleanup(struct drm_device *dev)
>   /* destroy backlight, if any, before the connectors */
>   intel_panel_destroy_backlight(dev);
>  
> + /* destroy the sysfs files before encoders/connectors */
> + list_for_each_entry(connector, &dev->mode_config.connector_list, head)
> + drm_sysfs_connector_remove(connector);
> +
>   drm_mode_config_cleanup(dev);
>  
>   intel_cleanup_overlay(dev);
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 95a3159..7bdbb36 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -3139,7 +3139,6 @@ intel_dp_connector_destroy(struct drm_connector 
> *connector)
>   if (connector->connector_type == DRM_MODE_CONNECTOR_eDP)
>   intel_panel_fini(&intel_connector->panel);
>  
> - drm_sysfs_connector_remove(connector);
>   drm_connector_cleanup(connector);
>   kfree(connector);
>  }
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c 
> b/drivers/gpu/drm/i915/intel_dsi.c
> index 674fd49..9a2fdd2 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -504,7 +504,6 @@ static void intel_dsi_destroy(struct drm_connector 
> *connector)
>  
>   DRM_DEBUG_KMS("\n");
>   intel_panel_fini(&intel_connector->panel);
> - drm_sysfs_connector_remove(connector);
>   drm_connector_cleanup(connector);
>   kfree(connector);
>  }
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c 
> b/drivers/gpu/drm/i915/intel_dvo.c
> index 91287d1..1b64145 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -367,7 +367,6 @@ static int intel_dvo_get_modes(struct drm_connecto

[Bug 66963] r600: linux v3.11.0-RC isn't booting with radeon.dpm=1 option in grub

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=66963

--- Comment #138 from Alex Deucher  ---
(In reply to comment #137)
> Nope definitely not reliably, but I did have it work one more time doing the
> above (booting with modeset=0) after about 10 or so reboots.  When it fails
> I've never been able to get any debug information..
> 
> Any suggestions of other ways to get more debug information?

Does it hang the entire system as soon as you load the driver, or only when you
start X or something like that?

As for debugging, you can try disabling rv6xx_dpm_set_power_state() by
returning early (see the patch below).  If that works, move the the return
statement further and further down in the function until you can identify at
which point in rv6xx_dpm_set_power_state() the hang occurs.  Once we pin point
that, we can debug further.


diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c
b/drivers/gpu/drm/radeon/rv6xx_dpm.c
index 5811d27..bfa2922 100644
--- a/drivers/gpu/drm/radeon/rv6xx_dpm.c
+++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c
@@ -1670,6 +1670,8 @@ int rv6xx_dpm_set_power_state(struct radeon_device *rdev)
struct radeon_ps *old_ps = rdev->pm.dpm.current_ps;
int ret;

+   return 0;
+
pi->restricted_levels = 0;

rv6xx_set_uvd_clock_before_set_eng_clock(rdev, new_ps, old_ps);
@@ -2094,6 +2096,8 @@ int rv6xx_dpm_force_performance_level(struct
radeon_device *rdev,
 {
struct rv6xx_power_info *pi = rv6xx_get_pi(rdev);

+   return 0;
+
if (level == RADEON_DPM_FORCED_LEVEL_HIGH) {
pi->restricted_levels = 3;
} else if (level == RADEON_DPM_FORCED_LEVEL_LOW) {

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


Flash 11.2 content displays in shades of green and purple only, and in a horizontally compressed space

2013-09-30 Thread Dieter Nützel
Am 30.09.2013 14:19, schrieb Daniel Vetter:
> On Mon, Sep 30, 2013 at 2:04 PM, Dieter N?tzel  
> wrote:
>> Even so, I have no xorg.conf only /etc/X11/xorg.conf.d/ files.
>> Which one should I create/change for testing, this?
> 
> Just add the snippet I've pasted into a new file in xorg.conf.d and X
> should pick it up and integrate it into the autodetected config. You
> can check in the Xorg.log whether it worked out.
> -Daniel

OK, I guessed that...
...and put it in /etc/X11/xorg.conf.d/99-vblank.conf
X picked it up

[-]
[43.333] (==) No Layout section.  Using the first Screen section.
[43.333] (**) |-->Screen "igd" (0)
[43.333] (**) |   |-->Monitor ""
[43.338] (==) No monitor specified for screen "igd"
[-]
[43.583] (II) RADEON(0): Creating default Display subsection in 
Screen section
 "igd" for depth/fbbpp 24/32
[43.583] (**) RADEON(0): Depth 24, (--) framebuffer bpp 32
[43.583] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 
bpp pixmaps)
[43.583] (==) RADEON(0): Default visual is TrueColor
[43.588] (==) RADEON(0): RGB weight 888
[43.588] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[43.588] (--) RADEON(0): Chipset: "ATI Radeon HD 4600 Series" 
(ChipID = 0x9495)
[-]

But that didn't help, here.
I've fiddled around with patching libvdpau-0.6 (the 
/etc/vdpau_wrapper.cfg thing, changing 'libflashplayer' to 
'libgcflashplayer' from 2012, which is the only one that works a little 
with hardware acceleration on SSE1 systems), but that didn't help, here 
neither ;-(((

Fu.. you ADOBE!

Thanks,
Dieter
-- next part --
An embedded and charset-unspecified text was scrubbed...
Name: Xorg.0.log
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130930/d5fa0127/attachment-0001.ksh>


[Bug 66963] r600: linux v3.11.0-RC isn't booting with radeon.dpm=1 option in grub

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=66963

--- Comment #137 from Bryan Quigley  ---
> (In reply to comment #135)
> Seems like you just got lucky this time. Does it work reliably if you
> disable radeon and boot into a non-X runlevel, then manually load radeon? 

Nope definitely not reliably, but I did have it work one more time doing the
above (booting with modeset=0) after about 10 or so reboots.  When it fails
I've never been able to get any debug information..

Any suggestions of other ways to get more debug information?

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


Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Ville Syrjälä
On Mon, Sep 30, 2013 at 08:21:33PM +0200, Daniel Vetter wrote:
> On Mon, Sep 30, 2013 at 7:46 PM, Rob Clark  wrote:
> > I guess the main thing I care about is that we don't advertise things
> > to userspace that we can't actually do.  I'm not sure what other hw
> > out there supports rotation in hw in some form or another, but it
> > might be a good time to hear from 'em about whether these property
> > values work for them or not.
> 
> Hm, I've thought the plan was to let userspace figure that out with a
> dry-run flag, and if a certain configuration doesn't work it needs to
> fall back to rendering-based compositioning for the given surface. I
> don't think there's really much more we can do for fully generic
> compositors.

Yeah, if no one comes up with anything better, the trial and error
approach is the plan in my mind.

But in case the hardware never ever supports certain property/value I
think we shouldn't expose it. Like 90/270 degree rotation in case of
intel hardware.

> Tha might leave strange hw in the dust where planes aren't symmetric
> in capabilities and hence a simple linear walk over surfaces/planes,
> ordered by bw-savings or so, yields extermely bad surface->plane
> assignements. But  my impression is that hw is moving to unified
> stacks of planes so I hope we can punt on solving this in a generic
> way (and resort to quick platform hacks in userspace where it's really
> needed to hit e.g. video playback power targets).

Right. If someone has really specific needs I think they can just go
and write their own compositor (or plugin if the compositor in question
has such things).

-- 
Ville Syrjälä
Intel OTC
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Ville Syrjälä
On Mon, Sep 30, 2013 at 01:46:11PM -0400, Rob Clark wrote:
> On Mon, Sep 30, 2013 at 1:09 PM, Ville Syrjälä
>  wrote:
> > On Mon, Sep 30, 2013 at 12:15:06PM -0400, Rob Clark wrote:
> >> On Mon, Sep 30, 2013 at 10:44 AM,   wrote:
> >> > Recently some people from inside Intel have showed some interest in 180
> >> > degree plane rotation. To avoid a huge mess, I decided that I should
> >> > implement the feature properly.
> >> >
> >> > So I snatched the rotation property from omapdrm, and moved some of the
> >> > code into drm_crtc.c, added a bunch of helper stuff to drm_crtc/rect
> >> > and implemented the relevant bits in i915. I didn't touch cursor or
> >> > primary planes at all. I'm sort of hoping we might do the drm_plane
> >> > conversion sometime soonish and then we'd avoid adding a bunch of
> >> > plane properties to the crtc.
> >>
> >> fwiw, I was leaning towards introducing primary-plane's visible to
> >> userspace after we have atomic modeset (or really, the
> >> propertyification associated with atomic modeset).
> >
> > Less burden of maintaining all the crtc properties if we convert to
> > drm_plane first.
> >
> >>
> >> But that should be independent of drm_plane conversion.  You probably
> >> still want to do something like what I did in omapdrm where you attach
> >> plane properties on the crtc as well for benefit of old userspace.
> >
> > Dunno. There's no old userspace that would use this. There are some
> > folks inside Intel who apparently want rotation for some thing, but
> > I was thinking I'd let them add the properties on the crtc and not
> > upstream any of that.
> 
> for properties that aren't actually handled by the crtc, just make
> your crtc_set_prop() call:
> 
>   intel_plane_set_property(intel_crtc->plane, property, val)
> 
> (or something roughly like that)

Sure it's doable, but I tend to think it's rather pointless since we
don't have any legacy userspace to worry about yet.

> >>
> >> > One thing I don't really like is the current way of stuffing the bit
> >> > number into the enum_list resulting in DRM_ROTATE_FOO being just the bit
> >> > number. I'd prefer to make DRM_ROTATE_FOO the shifted bitmask. But I'm
> >> > not sure if changing that would cause grief to userspace, so I left it
> >> > alone for now.
> >>
> >> I think this shouldn't be visible to userspace.  If I remember
> >> correctly, I just did it this way to make it easier to prevent users
> >> of bitmask property from doing the wrong thing (setting multiple bits,
> >> overlapping bitmask values, etc).
> >
> > Well setting multiple bits should be allowed. If it's not we need to fix
> > it since rotation+reflection sure needs it. Or did you mean users as in
> > driver code in the kernel which registers the bitmask prop?
> 
> yeah, setting multiple bits is allowed.. this is why it isn't an enum
> property ;-)
> 
> I meant users as in driver code rather than userspace.  I guess that
> was worded a bit confusingly.  I blame the cough syrup.

Right.

> 
> > I also just had an idea to expose color keys, bg colors, etc. as bitmask
> > props where each channel is represented by a multi-bit mask, and the
> > whole thing is just one bitmask prop. That would expose some structure
> > to userspace w/o need a new prop type. But maybe we want a specialized
> > type for color props for extra clarty.
> 
> hmm.. should the values be interpreted in terms of current attached fb format?

My current thinking is to go with a fixed 16 bits per channel, and
just throw away any low bits you don't need.

> 
> >>
> >> Anyways, from a really quick look, the core and omapdrm parts look good.
> >>
> >> The drm_rotation_simplify() might be overkill..  or at least userspace
> >> should see what are the supported bitmask flags and not try to ask for
> >> something that is not supported.  Or am I missing something?
> >
> > My main idea was that, for example if the hardware support X and Y 
> > reflection,
> > we can expose both 0 and 180 angles and X and Y reflection, and the driver
> > code can then do the simplification to elimnate the 180 degree case. So it's
> > just a convenience tool for the driver authors to eliminate the redundant
> > information. I didn't actually end up using it in i915 since we really
> > don't support anything but 0 and 180 cases, and advertising anything
> > else to userspace would be a bad idea.
> 
> oh, right.. we do have some redundancy in rotation values.  Maybe we
> should have stuck with xyflip/yinvert/xinvert (which was how the omap
> hw worked.. but seemed a bit too hw specific).

That's omap4 or omap5 i take it. Omap3 had 0,90,180,270 + x mirror for DMA
rotation, and 0+90+180+270 + y mirror for VRFB. The mismatch was
interesting since omap angle was clockwise, randr counter-clockwise, and
omap mirroring was post-rotation, randr pre-rotation.

Also the xyflip/etc. is just confusing to me, so I'm happy you went with
randr compatible specification rather than whatever your hw had.

> I guess the main thing I ca

Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Daniel Vetter
On Mon, Sep 30, 2013 at 7:46 PM, Rob Clark  wrote:
> I guess the main thing I care about is that we don't advertise things
> to userspace that we can't actually do.  I'm not sure what other hw
> out there supports rotation in hw in some form or another, but it
> might be a good time to hear from 'em about whether these property
> values work for them or not.

Hm, I've thought the plan was to let userspace figure that out with a
dry-run flag, and if a certain configuration doesn't work it needs to
fall back to rendering-based compositioning for the given surface. I
don't think there's really much more we can do for fully generic
compositors.

Tha might leave strange hw in the dust where planes aren't symmetric
in capabilities and hence a simple linear walk over surfaces/planes,
ordered by bw-savings or so, yields extermely bad surface->plane
assignements. But  my impression is that hw is moving to unified
stacks of planes so I hope we can punt on solving this in a generic
way (and resort to quick platform hacks in userspace where it's really
needed to hit e.g. video playback power targets).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Rob Clark
On Mon, Sep 30, 2013 at 1:09 PM, Ville Syrjälä
 wrote:
> On Mon, Sep 30, 2013 at 12:15:06PM -0400, Rob Clark wrote:
>> On Mon, Sep 30, 2013 at 10:44 AM,   wrote:
>> > Recently some people from inside Intel have showed some interest in 180
>> > degree plane rotation. To avoid a huge mess, I decided that I should
>> > implement the feature properly.
>> >
>> > So I snatched the rotation property from omapdrm, and moved some of the
>> > code into drm_crtc.c, added a bunch of helper stuff to drm_crtc/rect
>> > and implemented the relevant bits in i915. I didn't touch cursor or
>> > primary planes at all. I'm sort of hoping we might do the drm_plane
>> > conversion sometime soonish and then we'd avoid adding a bunch of
>> > plane properties to the crtc.
>>
>> fwiw, I was leaning towards introducing primary-plane's visible to
>> userspace after we have atomic modeset (or really, the
>> propertyification associated with atomic modeset).
>
> Less burden of maintaining all the crtc properties if we convert to
> drm_plane first.
>
>>
>> But that should be independent of drm_plane conversion.  You probably
>> still want to do something like what I did in omapdrm where you attach
>> plane properties on the crtc as well for benefit of old userspace.
>
> Dunno. There's no old userspace that would use this. There are some
> folks inside Intel who apparently want rotation for some thing, but
> I was thinking I'd let them add the properties on the crtc and not
> upstream any of that.

for properties that aren't actually handled by the crtc, just make
your crtc_set_prop() call:

  intel_plane_set_property(intel_crtc->plane, property, val)

(or something roughly like that)

>>
>> > One thing I don't really like is the current way of stuffing the bit
>> > number into the enum_list resulting in DRM_ROTATE_FOO being just the bit
>> > number. I'd prefer to make DRM_ROTATE_FOO the shifted bitmask. But I'm
>> > not sure if changing that would cause grief to userspace, so I left it
>> > alone for now.
>>
>> I think this shouldn't be visible to userspace.  If I remember
>> correctly, I just did it this way to make it easier to prevent users
>> of bitmask property from doing the wrong thing (setting multiple bits,
>> overlapping bitmask values, etc).
>
> Well setting multiple bits should be allowed. If it's not we need to fix
> it since rotation+reflection sure needs it. Or did you mean users as in
> driver code in the kernel which registers the bitmask prop?

yeah, setting multiple bits is allowed.. this is why it isn't an enum
property ;-)

I meant users as in driver code rather than userspace.  I guess that
was worded a bit confusingly.  I blame the cough syrup.

> I also just had an idea to expose color keys, bg colors, etc. as bitmask
> props where each channel is represented by a multi-bit mask, and the
> whole thing is just one bitmask prop. That would expose some structure
> to userspace w/o need a new prop type. But maybe we want a specialized
> type for color props for extra clarty.

hmm.. should the values be interpreted in terms of current attached fb format?

>>
>> Anyways, from a really quick look, the core and omapdrm parts look good.
>>
>> The drm_rotation_simplify() might be overkill..  or at least userspace
>> should see what are the supported bitmask flags and not try to ask for
>> something that is not supported.  Or am I missing something?
>
> My main idea was that, for example if the hardware support X and Y reflection,
> we can expose both 0 and 180 angles and X and Y reflection, and the driver
> code can then do the simplification to elimnate the 180 degree case. So it's
> just a convenience tool for the driver authors to eliminate the redundant
> information. I didn't actually end up using it in i915 since we really
> don't support anything but 0 and 180 cases, and advertising anything
> else to userspace would be a bad idea.

oh, right.. we do have some redundancy in rotation values.  Maybe we
should have stuck with xyflip/yinvert/xinvert (which was how the omap
hw worked.. but seemed a bit too hw specific).

I guess the main thing I care about is that we don't advertise things
to userspace that we can't actually do.  I'm not sure what other hw
out there supports rotation in hw in some form or another, but it
might be a good time to hear from 'em about whether these property
values work for them or not.

BR,
-R

> --
> Ville Syrjälä
> Intel OTC
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [Nouveau] [PATCH 6/6] drm/nouveau: use MSI interrupts

2013-09-30 Thread Peter Hurley

On 09/03/2013 09:45 PM, Ben Skeggs wrote:

On Fri, Aug 30, 2013 at 5:11 PM, Lucas Stach  wrote:

Am Freitag, den 30.08.2013, 15:36 +1000 schrieb Ben Skeggs:

On Fri, Aug 30, 2013 at 12:01 PM, Ilia Mirkin  wrote:

On Thu, Aug 29, 2013 at 9:58 PM, Ben Skeggs  wrote:

On Fri, Aug 30, 2013 at 11:10 AM, Ilia Mirkin  wrote:

On Thu, Aug 29, 2013 at 1:07 AM, Ben Skeggs  wrote:

On Thu, Aug 29, 2013 at 3:00 PM, Ilia Mirkin  wrote:

On Thu, Aug 29, 2013 at 12:45 AM, Ben Skeggs  wrote:

On Thu, Aug 29, 2013 at 12:20 PM, Ilia Mirkin  wrote:

On Wed, Aug 28, 2013 at 8:07 PM, Ben Skeggs  wrote:

On Wed, Aug 28, 2013 at 11:54 PM, Ilia Mirkin  wrote:

On Wed, Aug 28, 2013 at 3:28 AM, Lucas Stach  wrote:

Am Mittwoch, den 28.08.2013, 17:09 +1000 schrieb Ben Skeggs:

On Wed, Aug 28, 2013 at 10:00 AM, Lucas Stach  wrote:

MSIs were only problematic on some old, broken chipsets. But now that we
already see systems where PCI legacy interrupts are somewhat flaky, it's
really time to move to MSIs.

Signed-off-by: Lucas Stach 
---
  drivers/gpu/drm/nouveau/core/include/subdev/mc.h |  1 +
  drivers/gpu/drm/nouveau/core/subdev/mc/base.c| 17 +
  2 files changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/mc.h 
b/drivers/gpu/drm/nouveau/core/include/subdev/mc.h
index 9d2cd20..ce6569f 100644
--- a/drivers/gpu/drm/nouveau/core/include/subdev/mc.h
+++ b/drivers/gpu/drm/nouveau/core/include/subdev/mc.h
@@ -12,6 +12,7 @@ struct nouveau_mc_intr {
  struct nouveau_mc {
 struct nouveau_subdev base;
 const struct nouveau_mc_intr *intr_map;
+   bool use_msi;
  };

  static inline struct nouveau_mc *
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c 
b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
index ec9cd6f..02b337e 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
@@ -23,6 +23,7 @@
   */

  #include 
+#include 

  static irqreturn_t
  nouveau_mc_intr(int irq, void *arg)
@@ -43,6 +44,9 @@ nouveau_mc_intr(int irq, void *arg)
 map++;
 }

+   if (pmc->use_msi)
+   nv_wr08(pmc->base.base.parent, 0x00088068, 0xff);

Register not present everywhere.

At the very least, the enabling of MSI should be disallowed on the
earlier chipsets where it's not supported.  Though, it's perhaps
possible that the pci_enable_msi() call will fail in all of these
cases anyway.. I'm not certain.


MSIs are required property for everything doing PCIe. So the only cases
where this should fail is plain PCI/AGP devices. I don't really have a
test system for those old cards set up.

But I remember Ilia having some legacy things plugged in, so maybe he
could test this patch and see how it goes?


Sure, let me know what you need -- I have nv18 PCI, nv34 PCIe (note
that it's not native PCIe, but some sort of bridge thing IIRC),

Cases like the nv34 here (i think there's some nv4x that aren't native
pcie too) are what I'm wondering about primarily.


And rightly so. With the NV18 PCI, NV34 PCIe, NV42 PCIe plugged in,
with "AutoAddGPU" disabled the NV18 and NV42 seem fine. However merely
starting X (not xinit, not startx, not [gkx]dm) on the NV34 and ^C'ing
it (with no clients connecting to said X), causes a "failed to idle
channel" message in dmesg, which apparently never rectifies itself, so
X is hung forever. FTR, there were no displays connected either, but I
tried the exact same procedure without the MSI patch and it worked
fine. Here is the init sequence with the MSI patch:

I don't suppose bashing 0x1868 instead of 0x88068 works here?  If not,


Should that work on the NV42 as well?

I believe so.  NV4x has both the 0x18xx and 0x88xxx apertures I believe.




next thing would be to mmiotrace the binary driver and see if you can
make it enable+use MSI on it.  I doubt the current legacy driver does
it by default, but there was some magic to enable it that you can
probably find if you google around.


I've yet to set up the legacy driver... I bet it doesn't compile on
3.11, so I'll have to patch it to nuke procfs/i2c...





[  307.049812] nouveau  [  DEVICE][:04:00.0] BOOT0  : 0x034a00b1
[  307.049815] nouveau  [  DEVICE][:04:00.0] Chipset: NV34 (NV34)
[  307.049819] nouveau  [  DEVICE][:04:00.0] Family : NV30
[  307.050648] nouveau  [   VBIOS][:04:00.0] checking PRAMIN for image...
[  307.050652] nouveau  [   VBIOS][:04:00.0] ... signature not found
[  307.050653] nouveau  [   VBIOS][:04:00.0] checking PROM for image...
[  307.195201] nouveau  [   VBIOS][:04:00.0] ... appears to be valid
[  307.195205] nouveau  [   VBIOS][:04:00.0] using image from PROM
[  307.195209] nouveau  [   VBIOS][:04:00.0] BMP version 5.29
[  307.195429] nouveau  [   VBIOS][:04:00.0] version 04.34.20.79.00
[  307.195971] nouveau  [ DEVINIT][:04:00.0] adaptor not initialised
[  307.195979] nouveau  [   VBIOS][:04:00.0] running init tables
[  307.209253] nouveau :04

[Bug 67111] [radeonsi] GPU lockup while playing Serious Sam 3

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=67111

Vladimir Ysikov  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Vladimir Ysikov  ---
I checked several times and gpu lockup does not happen again.

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


Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Ville Syrjälä
On Mon, Sep 30, 2013 at 12:15:06PM -0400, Rob Clark wrote:
> On Mon, Sep 30, 2013 at 10:44 AM,   wrote:
> > Recently some people from inside Intel have showed some interest in 180
> > degree plane rotation. To avoid a huge mess, I decided that I should
> > implement the feature properly.
> >
> > So I snatched the rotation property from omapdrm, and moved some of the
> > code into drm_crtc.c, added a bunch of helper stuff to drm_crtc/rect
> > and implemented the relevant bits in i915. I didn't touch cursor or
> > primary planes at all. I'm sort of hoping we might do the drm_plane
> > conversion sometime soonish and then we'd avoid adding a bunch of
> > plane properties to the crtc.
> 
> fwiw, I was leaning towards introducing primary-plane's visible to
> userspace after we have atomic modeset (or really, the
> propertyification associated with atomic modeset).

Less burden of maintaining all the crtc properties if we convert to
drm_plane first.

> 
> But that should be independent of drm_plane conversion.  You probably
> still want to do something like what I did in omapdrm where you attach
> plane properties on the crtc as well for benefit of old userspace.

Dunno. There's no old userspace that would use this. There are some
folks inside Intel who apparently want rotation for some thing, but
I was thinking I'd let them add the properties on the crtc and not
upstream any of that.

> 
> > One thing I don't really like is the current way of stuffing the bit
> > number into the enum_list resulting in DRM_ROTATE_FOO being just the bit
> > number. I'd prefer to make DRM_ROTATE_FOO the shifted bitmask. But I'm
> > not sure if changing that would cause grief to userspace, so I left it
> > alone for now.
> 
> I think this shouldn't be visible to userspace.  If I remember
> correctly, I just did it this way to make it easier to prevent users
> of bitmask property from doing the wrong thing (setting multiple bits,
> overlapping bitmask values, etc).

Well setting multiple bits should be allowed. If it's not we need to fix
it since rotation+reflection sure needs it. Or did you mean users as in
driver code in the kernel which registers the bitmask prop?

I also just had an idea to expose color keys, bg colors, etc. as bitmask
props where each channel is represented by a multi-bit mask, and the
whole thing is just one bitmask prop. That would expose some structure
to userspace w/o need a new prop type. But maybe we want a specialized
type for color props for extra clarty.

> 
> Anyways, from a really quick look, the core and omapdrm parts look good.
> 
> The drm_rotation_simplify() might be overkill..  or at least userspace
> should see what are the supported bitmask flags and not try to ask for
> something that is not supported.  Or am I missing something?

My main idea was that, for example if the hardware support X and Y reflection,
we can expose both 0 and 180 angles and X and Y reflection, and the driver
code can then do the simplification to elimnate the 180 degree case. So it's
just a convenience tool for the driver authors to eliminate the redundant
information. I didn't actually end up using it in i915 since we really
don't support anything but 0 and 180 cases, and advertising anything
else to userspace would be a bad idea.

-- 
Ville Syrjälä
Intel OTC
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread Rob Clark
On Mon, Sep 30, 2013 at 10:44 AM,   wrote:
> Recently some people from inside Intel have showed some interest in 180
> degree plane rotation. To avoid a huge mess, I decided that I should
> implement the feature properly.
>
> So I snatched the rotation property from omapdrm, and moved some of the
> code into drm_crtc.c, added a bunch of helper stuff to drm_crtc/rect
> and implemented the relevant bits in i915. I didn't touch cursor or
> primary planes at all. I'm sort of hoping we might do the drm_plane
> conversion sometime soonish and then we'd avoid adding a bunch of
> plane properties to the crtc.

fwiw, I was leaning towards introducing primary-plane's visible to
userspace after we have atomic modeset (or really, the
propertyification associated with atomic modeset).

But that should be independent of drm_plane conversion.  You probably
still want to do something like what I did in omapdrm where you attach
plane properties on the crtc as well for benefit of old userspace.

> One thing I don't really like is the current way of stuffing the bit
> number into the enum_list resulting in DRM_ROTATE_FOO being just the bit
> number. I'd prefer to make DRM_ROTATE_FOO the shifted bitmask. But I'm
> not sure if changing that would cause grief to userspace, so I left it
> alone for now.

I think this shouldn't be visible to userspace.  If I remember
correctly, I just did it this way to make it easier to prevent users
of bitmask property from doing the wrong thing (setting multiple bits,
overlapping bitmask values, etc).

Anyways, from a really quick look, the core and omapdrm parts look good.

The drm_rotation_simplify() might be overkill..  or at least userspace
should see what are the supported bitmask flags and not try to ask for
something that is not supported.  Or am I missing something?

BR,
-R

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


[Bug 69942] driver fails to provide latency information

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69942

Alex Deucher  changed:

   What|Removed |Added

   Assignee|xorg-driver-...@lists.x.org |dri-devel@lists.freedesktop
   ||.org
 QA Contact|xorg-t...@lists.x.org   |
Product|xorg|DRI
  Component|Driver/Radeon   |DRM/Radeon

--- Comment #1 from Alex Deucher  ---
Please attach your xorg log, xrandr --verbose output and dmesg output.  Also
what kernel are you using?

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


[Bug 69675] audio broken in 24Hz/24p since 3.11 (regression)

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69675

--- Comment #21 from Alex Deucher  ---
(In reply to comment #19)
> > Subject: [PATCH 3/3] drm/radeon: use hw generated CTS/N values for audio
> 
> Just checking: What N value does the Hw use in that mode? The ones written
> in by the driver, some hardcoded N or does it select one on its own? Though
> it doesn't really matter much (since any reasonable N should work as long as
> CTS is correct), except that if it uses the driver-set value we better not
> remove the write to the N register :)

It's my understanding that the hw generates the CTS and N values directly, but
I would need to double check with the hw teams.

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


[Bug 69675] audio broken in 24Hz/24p since 3.11 (regression)

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69675

Alex Deucher  changed:

   What|Removed |Added

  Attachment #86739|0   |1
is obsolete||

--- Comment #20 from Alex Deucher  ---
Created attachment 86856
  --> https://bugs.freedesktop.org/attachment.cgi?id=86856&action=edit
patch 1/3

Updated 1/3.

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


[PATCH 9/9] drm/i915: Add rotation property for sprites

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Sprite planes support 180 degree rotation. The lower layers are now in
place, so hook in the standard rotation property to expose the feature
to the users.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/i915_drv.h |  1 +
 drivers/gpu/drm/i915/intel_sprite.c | 42 -
 2 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 08e96a8..48d4d5f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1356,6 +1356,7 @@ typedef struct drm_i915_private {
 
struct drm_property *broadcast_rgb_property;
struct drm_property *force_audio_property;
+   struct drm_property *rotation_property;
 
bool hw_contexts_disabled;
uint32_t hw_context_size;
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index 028a979..49f8238 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1033,6 +1033,30 @@ out_unlock:
return ret;
 }
 
+static int intel_plane_set_property(struct drm_plane *plane,
+   struct drm_property *prop,
+   uint64_t val)
+{
+   struct drm_i915_private *dev_priv = plane->dev->dev_private;
+   struct intel_plane *intel_plane = to_intel_plane(plane);
+   uint64_t old_val;
+   int ret = -ENOENT;
+
+   if (prop == dev_priv->rotation_property) {
+   /* exactly one rotation angle please */
+   if (hweight32(val & 0xf) != 1)
+   return -EINVAL;
+
+   old_val = intel_plane->rotation;
+   intel_plane->rotation = val;
+   ret = intel_plane_restore(plane);
+   if (ret)
+   intel_plane->rotation = old_val;
+   }
+
+   return ret;
+}
+
 int intel_plane_restore(struct drm_plane *plane)
 {
struct intel_plane *intel_plane = to_intel_plane(plane);
@@ -1059,6 +1083,7 @@ static const struct drm_plane_funcs intel_plane_funcs = {
.update_plane = intel_update_plane,
.disable_plane = intel_disable_plane,
.destroy = intel_destroy_plane,
+   .set_property = intel_plane_set_property,
 };
 
 static uint32_t ilk_plane_formats[] = {
@@ -1095,6 +1120,7 @@ static uint32_t vlv_plane_formats[] = {
 int
 intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane)
 {
+   struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_plane *intel_plane;
unsigned long possible_crtcs;
const uint32_t *plane_formats;
@@ -1168,8 +1194,22 @@ intel_plane_init(struct drm_device *dev, enum pipe pipe, 
int plane)
 &intel_plane_funcs,
 plane_formats, num_plane_formats,
 false);
-   if (ret)
+   if (ret) {
kfree(intel_plane);
+   goto out;
+   }
+
+   if (!dev_priv->rotation_property)
+   dev_priv->rotation_property =
+   drm_mode_create_rotation_property(dev,
+ BIT(DRM_ROTATE_0) |
+ BIT(DRM_ROTATE_180));
+
+   if (dev_priv->rotation_property)
+   drm_object_attach_property(&intel_plane->base.base,
+  dev_priv->rotation_property,
+  intel_plane->rotation);
 
+ out:
return ret;
 }
-- 
1.8.1.5

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


[PATCH 8/9] drm/i915: Make intel_plane_restore() return an error

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Propagate the error from intel_update_plane() up through
intel_plane_restore() to the caller. This will be used for
rollback purposes when setting properties fails.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_drv.h|  2 +-
 drivers/gpu/drm/i915/intel_sprite.c | 14 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 89282d5..bfa558a 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -818,7 +818,7 @@ bool intel_sdvo_init(struct drm_device *dev, uint32_t 
sdvo_reg, bool is_sdvob);
 int intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane);
 void intel_flush_display_plane(struct drm_i915_private *dev_priv,
   enum plane plane);
-void intel_plane_restore(struct drm_plane *plane);
+int intel_plane_restore(struct drm_plane *plane);
 void intel_plane_disable(struct drm_plane *plane);
 int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
  struct drm_file *file_priv);
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index c0081f0..028a979 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1033,18 +1033,18 @@ out_unlock:
return ret;
 }
 
-void intel_plane_restore(struct drm_plane *plane)
+int intel_plane_restore(struct drm_plane *plane)
 {
struct intel_plane *intel_plane = to_intel_plane(plane);
 
if (!plane->crtc || !plane->fb)
-   return;
+   return 0;
 
-   intel_update_plane(plane, plane->crtc, plane->fb,
-  intel_plane->crtc_x, intel_plane->crtc_y,
-  intel_plane->crtc_w, intel_plane->crtc_h,
-  intel_plane->src_x, intel_plane->src_y,
-  intel_plane->src_w, intel_plane->src_h);
+   return intel_update_plane(plane, plane->crtc, plane->fb,
+ intel_plane->crtc_x, intel_plane->crtc_y,
+ intel_plane->crtc_w, intel_plane->crtc_h,
+ intel_plane->src_x, intel_plane->src_y,
+ intel_plane->src_w, intel_plane->src_h);
 }
 
 void intel_plane_disable(struct drm_plane *plane)
-- 
1.8.1.5

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


[PATCH 7/9] drm/i915: Add 180 degree sprite rotation support

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

The sprite planes (in fact all display planes starting from gen4)
support 180 degree rotation. Add the relevant low level bits to the
sprite code to make use of that feature.

The upper layers are not yet plugged in.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/i915_reg.h |  3 +++
 drivers/gpu/drm/i915/intel_drv.h|  1 +
 drivers/gpu/drm/i915/intel_sprite.c | 34 ++
 3 files changed, 38 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 96fd2ce..ca5cc60 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -3518,6 +3518,7 @@
 #define   DVS_YUV_ORDER_UYVY   (1<<16)
 #define   DVS_YUV_ORDER_YVYU   (2<<16)
 #define   DVS_YUV_ORDER_VYUY   (3<<16)
+#define   DVS_ROTATE_180   (1<<15)
 #define   DVS_DEST_KEY (1<<2)
 #define   DVS_TRICKLE_FEED_DISABLE (1<<14)
 #define   DVS_TILED(1<<10)
@@ -3588,6 +3589,7 @@
 #define   SPRITE_YUV_ORDER_UYVY(1<<16)
 #define   SPRITE_YUV_ORDER_YVYU(2<<16)
 #define   SPRITE_YUV_ORDER_VYUY(3<<16)
+#define   SPRITE_ROTATE_180(1<<15)
 #define   SPRITE_TRICKLE_FEED_DISABLE  (1<<14)
 #define   SPRITE_INT_GAMMA_ENABLE  (1<<13)
 #define   SPRITE_TILED (1<<10)
@@ -3661,6 +3663,7 @@
 #define   SP_YUV_ORDER_UYVY(1<<16)
 #define   SP_YUV_ORDER_YVYU(2<<16)
 #define   SP_YUV_ORDER_VYUY(3<<16)
+#define   SP_ROTATE_180(1<<15)
 #define   SP_TILED (1<<10)
 #define _SPALINOFF (VLV_DISPLAY_BASE + 0x72184)
 #define _SPASTRIDE (VLV_DISPLAY_BASE + 0x72188)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 9364d98..89282d5 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -370,6 +370,7 @@ struct intel_plane {
unsigned int crtc_w, crtc_h;
uint32_t src_x, src_y;
uint32_t src_w, src_h;
+   unsigned int rotation;
 
/* Since we need to change the watermarks before/after
 * enabling/disabling the planes, we need to store the parameters here
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index f86caba..c0081f0 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -60,6 +60,7 @@ vlv_update_plane(struct drm_plane *dplane, struct drm_crtc 
*crtc,
sprctl &= ~SP_PIXFORMAT_MASK;
sprctl &= ~SP_YUV_BYTE_ORDER_MASK;
sprctl &= ~SP_TILED;
+   sprctl &= ~SP_ROTATE_180;
 
switch (fb->pixel_format) {
case DRM_FORMAT_YUYV:
@@ -128,6 +129,14 @@ vlv_update_plane(struct drm_plane *dplane, struct drm_crtc 
*crtc,
fb->pitches[0]);
linear_offset -= sprsurf_offset;
 
+   if (intel_plane->rotation == BIT(DRM_ROTATE_180)) {
+   sprctl |= SP_ROTATE_180;
+
+   x += src_w;
+   y += src_h;
+   linear_offset += src_h * fb->pitches[0] + src_w * pixel_size;
+   }
+
if (obj->tiling_mode != I915_TILING_NONE)
I915_WRITE(SPTILEOFF(pipe, plane), (y << 16) | x);
else
@@ -233,6 +242,7 @@ ivb_update_plane(struct drm_plane *plane, struct drm_crtc 
*crtc,
sprctl &= ~SPRITE_RGB_ORDER_RGBX;
sprctl &= ~SPRITE_YUV_BYTE_ORDER_MASK;
sprctl &= ~SPRITE_TILED;
+   sprctl &= ~SPRITE_ROTATE_180;
 
switch (fb->pixel_format) {
case DRM_FORMAT_XBGR:
@@ -304,6 +314,14 @@ ivb_update_plane(struct drm_plane *plane, struct drm_crtc 
*crtc,
   pixel_size, fb->pitches[0]);
linear_offset -= sprsurf_offset;
 
+   if (intel_plane->rotation == BIT(DRM_ROTATE_180)) {
+   sprctl |= SPRITE_ROTATE_180;
+
+   x += src_w;
+   y += src_h;
+   linear_offset += src_h * fb->pitches[0] + src_w * pixel_size;
+   }
+
/* HSW consolidates SPRTILEOFF and SPRLINOFF into a single SPROFFSET
 * register */
if (IS_HASWELL(dev))
@@ -429,6 +447,7 @@ ilk_update_plane(struct drm_plane *plane, struct drm_crtc 
*crtc,
dvscntr &= ~DVS_RGB_ORDER_XBGR;
dvscntr &= ~DVS_YUV_BYTE_ORDER_MASK;
dvscntr &= ~DVS_TILED;
+   dvscntr &= ~DVS_ROTATE_180;
 
switch (fb->pixel_format) {
case DRM_FORMAT_XBGR:
@@ -482,6 +501,14 @@ ilk_update_plane(struct drm_plane *plane, struct drm_crtc 
*crtc,
   pixel_size, fb->pitches[0]);
linear_offset -= dvssurf_offset;
 
+   if (intel_plane->rotation == BIT(DRM_ROTATE_180)) {
+   dvscntr |= DVS_ROTATE_180;
+
+   x += src_w;
+   y += src_h;
+   linear_offset += src_h * fb->pitches[0] + src_w * pixel_size;
+   }
+

[PATCH 2/9] drm: Add support_bits parameter to drm_property_create_bitmask()

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Make drm_property_create_bitmask() a bit more generic by allowing the
caller to specify which bits are in fact supported. This allows multiple
callers to use the same enum list, but still create different versions
of the same property with different list of supported bits.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/drm_crtc.c | 6 +-
 include/drm/drm_crtc.h | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index d7a8370..2087fe2 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -2883,7 +2883,8 @@ EXPORT_SYMBOL(drm_property_create_enum);
 struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
 int flags, const char *name,
 const struct drm_prop_enum_list *props,
-int num_values)
+int num_values,
+unsigned int supported_bits)
 {
struct drm_property *property;
int i, ret;
@@ -2895,6 +2896,9 @@ struct drm_property *drm_property_create_bitmask(struct 
drm_device *dev,
return NULL;
 
for (i = 0; i < num_values; i++) {
+   if (!(supported_bits & (1 << i)))
+   continue;
+
ret = drm_property_add_enum(property, i,
  props[i].type,
  props[i].name);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 7aec9f4..196b795 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1041,7 +1041,8 @@ extern struct drm_property 
*drm_property_create_enum(struct drm_device *dev, int
 struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
 int flags, const char *name,
 const struct drm_prop_enum_list *props,
-int num_values);
+int num_values,
+unsigned int supported_bits);
 struct drm_property *drm_property_create_range(struct drm_device *dev, int 
flags,
 const char *name,
 uint64_t min, uint64_t max);
-- 
1.8.1.5

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


[PATCH 3/9] drm: Add drm_mode_create_rotation_property()

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Add a function to create a standards compliant rotation property.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/drm_crtc.c | 18 ++
 include/drm/drm_crtc.h |  2 ++
 2 files changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 2087fe2..0218681 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -4088,3 +4088,21 @@ void drm_mode_config_cleanup(struct drm_device *dev)
idr_destroy(&dev->mode_config.crtc_idr);
 }
 EXPORT_SYMBOL(drm_mode_config_cleanup);
+
+struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
+  unsigned int 
supported_rotations)
+{
+   static const struct drm_prop_enum_list props[] = {
+   { DRM_ROTATE_0,   "rotate-0" },
+   { DRM_ROTATE_90,  "rotate-90" },
+   { DRM_ROTATE_180, "rotate-180" },
+   { DRM_ROTATE_270, "rotate-270" },
+   { DRM_REFLECT_X,  "reflect-x" },
+   { DRM_REFLECT_Y,  "reflect-y" },
+   };
+
+   return drm_property_create_bitmask(dev, 0, "rotation",
+  props, ARRAY_SIZE(props),
+  supported_rotations);
+}
+EXPORT_SYMBOL(drm_mode_create_rotation_property);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 196b795..d25ba84 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1152,5 +1152,7 @@ extern int drm_format_plane_cpp(uint32_t format, int 
plane);
 extern int drm_format_horz_chroma_subsampling(uint32_t format);
 extern int drm_format_vert_chroma_subsampling(uint32_t format);
 extern const char *drm_get_format_name(uint32_t format);
+extern struct drm_property *drm_mode_create_rotation_property(struct 
drm_device *dev,
+ unsigned int 
supported_rotations);
 
 #endif /* __DRM_CRTC_H__ */
-- 
1.8.1.5

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


[PATCH 4/9] drm/omap: Switch omapdrm over to drm_mode_create_rotation_property()

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Use the new drm_mode_create_rotation_property() in omapdrm.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/omapdrm/omap_plane.c | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c 
b/drivers/gpu/drm/omapdrm/omap_plane.c
index 046d5e6..fee8f35 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -300,16 +300,13 @@ void omap_plane_install_properties(struct drm_plane 
*plane,
if (priv->has_dmm) {
prop = priv->rotation_prop;
if (!prop) {
-   const struct drm_prop_enum_list props[] = {
-   { DRM_ROTATE_0,   "rotate-0" },
-   { DRM_ROTATE_90,  "rotate-90" },
-   { DRM_ROTATE_180, "rotate-180" },
-   { DRM_ROTATE_270, "rotate-270" },
-   { DRM_REFLECT_X,  "reflect-x" },
-   { DRM_REFLECT_Y,  "reflect-y" },
-   };
-   prop = drm_property_create_bitmask(dev, 0, "rotation",
-   props, ARRAY_SIZE(props));
+   prop = drm_mode_create_rotation_property(dev,
+
BIT(DRM_ROTATE_0) |
+
BIT(DRM_ROTATE_90) |
+
BIT(DRM_ROTATE_180) |
+
BIT(DRM_ROTATE_270) |
+
BIT(DRM_REFLECT_X) |
+
BIT(DRM_REFLECT_Y));
if (prop == NULL)
return;
priv->rotation_prop = prop;
-- 
1.8.1.5

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


[PATCH 1/9] drm: Move DRM_ROTATE bits out of omapdrm into drm_crtc.h

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

The rotation property stuff should be standardized among all drivers.
Move the bits to drm_crtc.h from omap_drv.h.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/omapdrm/omap_drv.h | 7 ---
 include/drm/drm_crtc.h | 8 
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h 
b/drivers/gpu/drm/omapdrm/omap_drv.h
index 30b95b7..dfe0beb 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -119,13 +119,6 @@ struct omap_drm_private {
struct omap_drm_irq error_handler;
 };
 
-/* this should probably be in drm-core to standardize amongst drivers */
-#define DRM_ROTATE_0   0
-#define DRM_ROTATE_90  1
-#define DRM_ROTATE_180 2
-#define DRM_ROTATE_270 3
-#define DRM_REFLECT_X  4
-#define DRM_REFLECT_Y  5
 
 #ifdef CONFIG_DEBUG_FS
 int omap_debugfs_init(struct drm_minor *minor);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 50cedad..7aec9f4 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -64,6 +64,14 @@ struct drm_object_properties {
uint64_t values[DRM_OBJECT_MAX_PROPERTY];
 };
 
+/* rotation property bits */
+#define DRM_ROTATE_0   0
+#define DRM_ROTATE_90  1
+#define DRM_ROTATE_180 2
+#define DRM_ROTATE_270 3
+#define DRM_REFLECT_X  4
+#define DRM_REFLECT_Y  5
+
 /*
  * Note on terminology:  here, for brevity and convenience, we refer to 
connector
  * control chips as 'CRTCs'.  They can control any type of connector, VGA, 
LVDS,
-- 
1.8.1.5

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


[PATCH 6/9] drm: Add drm_rotation_simplify()

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

drm_rotation_simplify() can be used to eliminate unsupported rotation
flags. It will check if any unsupported flags are present, and if so
it will modify the rotation to an alternate form by adding 180 degrees
to rotation angle, and flipping the reflect x and y bits. The hope is
that this identity transform will eliminate the unsupported flags.

Of course that might not result in any more supported rotation, so
the caller is still responsible for checking the result afterwards.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/drm_crtc.c | 30 ++
 include/drm/drm_crtc.h |  2 ++
 2 files changed, 32 insertions(+)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 0218681..665b807 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -3976,6 +3976,36 @@ int drm_format_vert_chroma_subsampling(uint32_t format)
 EXPORT_SYMBOL(drm_format_vert_chroma_subsampling);
 
 /**
+ * drm_rotation_simplify() - Try to simplify the rotation
+ * @rotation: Rotation to be simplified
+ * @supported_rotations: Supported rotations
+ *
+ * Attempt to simplify the rotation to a form that is supported.
+ * Eg. if the hardware supports everything except DRM_REFLECT_X
+ * one could call this function like this:
+ *
+ * drm_rotation_simplify(rotation, BIT(DRM_ROTATE_0) |
+ *   BIT(DRM_ROTATE_90) | BIT(DRM_ROTATE_180) |
+ *   BIT(DRM_ROTATE_270) | BIT(DRM_REFLECT_Y));
+ *
+ * to eliminate the DRM_ROTATE_X flag. Depending on what kind of
+ * transforms the hardware supports, this function may not
+ * be able to produce a supported transform, so the caller should
+ * check the result afterwards.
+ */
+unsigned int drm_rotation_simplify(unsigned int rotation,
+  unsigned int supported_rotations)
+{
+   if (rotation & ~supported_rotations) {
+   rotation ^= BIT(DRM_REFLECT_X) | BIT(DRM_REFLECT_Y);
+   rotation = (rotation & ~0xf) | BIT((ffs(rotation & 0xf) + 1) % 
4);
+   }
+
+   return rotation;
+}
+EXPORT_SYMBOL(drm_rotation_simplify);
+
+/**
  * drm_mode_config_init - initialize DRM mode_configuration structure
  * @dev: DRM device
  *
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index d25ba84..b97b367 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1154,5 +1154,7 @@ extern int drm_format_vert_chroma_subsampling(uint32_t 
format);
 extern const char *drm_get_format_name(uint32_t format);
 extern struct drm_property *drm_mode_create_rotation_property(struct 
drm_device *dev,
  unsigned int 
supported_rotations);
+extern unsigned int drm_rotation_simplify(unsigned int rotation,
+ unsigned int supported_rotations);
 
 #endif /* __DRM_CRTC_H__ */
-- 
1.8.1.5

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


[PATCH 0/9] drm/i915: Plane rotation support

2013-09-30 Thread ville . syrjala
Recently some people from inside Intel have showed some interest in 180
degree plane rotation. To avoid a huge mess, I decided that I should
implement the feature properly.

So I snatched the rotation property from omapdrm, and moved some of the
code into drm_crtc.c, added a bunch of helper stuff to drm_crtc/rect
and implemented the relevant bits in i915. I didn't touch cursor or
primary planes at all. I'm sort of hoping we might do the drm_plane
conversion sometime soonish and then we'd avoid adding a bunch of
plane properties to the crtc.

One thing I don't really like is the current way of stuffing the bit
number into the enum_list resulting in DRM_ROTATE_FOO being just the bit
number. I'd prefer to make DRM_ROTATE_FOO the shifted bitmask. But I'm 
not sure if changing that would cause grief to userspace, so I left it
alone for now.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 5/9] drm: Add drm_rect rotation functions

2013-09-30 Thread ville . syrjala
From: Ville Syrjälä 

Add some helper functions to move drm_rects between different rotated
coordinate spaces. One function does the forward transform and
another does the inverse.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/drm_rect.c | 140 +
 include/drm/drm_rect.h |   6 ++
 2 files changed, 146 insertions(+)

diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
index 7047ca0..631f5af 100644
--- a/drivers/gpu/drm/drm_rect.c
+++ b/drivers/gpu/drm/drm_rect.c
@@ -293,3 +293,143 @@ void drm_rect_debug_print(const struct drm_rect *r, bool 
fixed_point)
DRM_DEBUG_KMS("%dx%d%+d%+d\n", w, h, r->x1, r->y1);
 }
 EXPORT_SYMBOL(drm_rect_debug_print);
+
+/**
+ * drm_rect_rotate - Rotate the rectangle
+ * @r: rectangle to be rotated
+ * @width: Width of the coordinate space
+ * @height: Height of the coordinate space
+ * @rotation: Transformation to be applied
+ *
+ * Apply @rotation to the coordinates of rectangle @r.
+ *
+ * @width and @height combined with @rotation define
+ * the location of the new origin.
+ *
+ * @width correcsponds to the horizontal and @height
+ * to the vertical axis of the untransformed coordinate
+ * space.
+ */
+void drm_rect_rotate(struct drm_rect *r,
+int width, int height,
+unsigned int rotation)
+{
+   struct drm_rect tmp;
+
+   if (rotation & (BIT(DRM_REFLECT_X) | BIT(DRM_REFLECT_Y))) {
+   tmp = *r;
+
+   if (rotation & BIT(DRM_REFLECT_X)) {
+   r->x1 = width - tmp.x2;
+   r->x2 = width - tmp.x1;
+   }
+
+   if (rotation & BIT(DRM_REFLECT_Y)) {
+   r->y1 = height - tmp.y2;
+   r->y2 = height - tmp.y1;
+   }
+   }
+
+   switch (rotation & 0xf) {
+   case BIT(DRM_ROTATE_0):
+   break;
+   case BIT(DRM_ROTATE_90):
+   tmp = *r;
+   r->x1 = tmp.y1;
+   r->x2 = tmp.y2;
+   r->y1 = width - tmp.x2;
+   r->y2 = width - tmp.x1;
+   break;
+   case BIT(DRM_ROTATE_180):
+   tmp = *r;
+   r->x1 = width - tmp.x2;
+   r->x2 = width - tmp.x1;
+   r->y1 = height - tmp.y2;
+   r->y2 = height - tmp.y1;
+   break;
+   case BIT(DRM_ROTATE_270):
+   tmp = *r;
+   r->x1 = height - tmp.y2;
+   r->x2 = height - tmp.y1;
+   r->y1 = tmp.x1;
+   r->y2 = tmp.x2;
+   break;
+   default:
+   break;
+   }
+}
+EXPORT_SYMBOL(drm_rect_rotate);
+
+/**
+ * drm_rect_rotate_inv - Inverse rotate the rectangle
+ * @r: rectangle to be rotated
+ * @width: Width of the coordinate space
+ * @height: Height of the coordinate space
+ * @rotation: Transformation whose inverse is to be applied
+ *
+ * Apply the inverse of @rotation to the coordinates
+ * of rectangle @r.
+ *
+ * @width and @height combined with @rotation define
+ * the location of the new origin.
+ *
+ * @width correcsponds to the horizontal and @height
+ * to the vertical axis of the original untransformed
+ * coordinate space, so that you never have to flip
+ * them when doing a rotatation and its inverse.
+ * That is, if you do:
+ *
+ * drm_rotate(&r, width, height, rotation);
+ * drm_rotate_inv(&r, width, height, rotation);
+ *
+ * you will always get back the original rectangle.
+ */
+void drm_rect_rotate_inv(struct drm_rect *r,
+int width, int height,
+unsigned int rotation)
+{
+   struct drm_rect tmp;
+
+   switch (rotation & 0xf) {
+   case BIT(DRM_ROTATE_0):
+   break;
+   case BIT(DRM_ROTATE_90):
+   tmp = *r;
+   r->x1 = width - tmp.y2;
+   r->x2 = width - tmp.y1;
+   r->y1 = tmp.x1;
+   r->y2 = tmp.x2;
+   break;
+   case BIT(DRM_ROTATE_180):
+   tmp = *r;
+   r->x1 = width - tmp.x2;
+   r->x2 = width - tmp.x1;
+   r->y1 = height - tmp.y2;
+   r->y2 = height - tmp.y1;
+   break;
+   case BIT(DRM_ROTATE_270):
+   tmp = *r;
+   r->x1 = tmp.y1;
+   r->x2 = tmp.y2;
+   r->y1 = height - tmp.x2;
+   r->y2 = height - tmp.x1;
+   break;
+   default:
+   break;
+   }
+
+   if (rotation & (BIT(DRM_REFLECT_X) | BIT(DRM_REFLECT_Y))) {
+   tmp = *r;
+
+   if (rotation & BIT(DRM_REFLECT_X)) {
+   r->x1 = width - tmp.x2;
+   r->x2 = width - tmp.x1;
+   }
+
+   if (rotation & BIT(DRM_REFLECT_Y)) {
+   r->y1 = height - tmp.y2;
+   r->y2 = height - tmp.y1;
+   }
+   }
+}
+E

[Bug 69961] Regression: Xserver fails to start

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69961

Alex Deucher  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #3 from Alex Deucher  ---
Sorry, issue is there there.  You need to enable Xv when you build glamor. 
E.g., pass --enable-xv when you configure glamor.

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


[Bug 69961] Regression: Xserver fails to start

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69961

Alex Deucher  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Alex Deucher  ---
Fixed in git.
http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=cbb99f659ee7b18ded0008a606e41ded38c1a194
http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=2d791370dfc5570eb74d7a1fb3baf4d4c8ecf243

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


Re: [Mesa-dev] [r600g] Mesa CVS 4e9aa67: vdpau has only MPEG1/2 on RV730

2013-09-30 Thread Dieter Nützel

Am 30.09.2013 10:47, schrieb Grigori Goronzy:

On 30.09.2013 10:06, Michel Dänzer wrote:

On Son, 2013-09-29 at 22:34 +0200, Dieter Nützel wrote:


after latest git pull I've only MPEG1, MPEG2_SIMPLE and MPEG2_MAIN 
with

my RV730 (AGP).




Same problem on PALM. Bisection shows that it is caused by commit
68f6dec32. The initialization order seems to be wrong, the check for
UVD is done too early. I'll send a patch in a minute.

Best regards
Grigori


Thank you Grigori and Marek (AMD!) ;-)

-Dieter


That probably means you lost UVD support for some reason. Assuming UVD
is still enabled in the kernel, can you bisect which Mesa change 
caused

the problem for you?


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


Re: [PATCH 3/8] [media] core: Don't use i2c_client->driver

2013-09-30 Thread Hans Verkuil
On 09/29/2013 10:51 AM, Lars-Peter Clausen wrote:
> The 'driver' field of the i2c_client struct is redundant and is going to be
> removed. The results of the expressions 'client->driver.driver->field' and
> 'client->dev.driver->field' are identical, so replace all occurrences of the
> former with the later.
> 
> Signed-off-by: Lars-Peter Clausen 

Acked-by: Hans Verkuil 

Regards,

Hans

> ---
>  drivers/media/v4l2-core/tuner-core.c  |  6 +++---
>  drivers/media/v4l2-core/v4l2-common.c | 10 +-
>  include/media/v4l2-common.h   |  2 +-
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/tuner-core.c 
> b/drivers/media/v4l2-core/tuner-core.c
> index ddc9379..4133af0 100644
> --- a/drivers/media/v4l2-core/tuner-core.c
> +++ b/drivers/media/v4l2-core/tuner-core.c
> @@ -43,7 +43,7 @@
>  
>  #define UNSET (-1U)
>  
> -#define PREFIX (t->i2c->driver->driver.name)
> +#define PREFIX (t->i2c->dev.driver->name)
>  
>  /*
>   * Driver modprobe parameters
> @@ -452,7 +452,7 @@ static void set_type(struct i2c_client *c, unsigned int 
> type,
>   }
>  
>   tuner_dbg("%s %s I2C addr 0x%02x with type %d used for 0x%02x\n",
> -   c->adapter->name, c->driver->driver.name, c->addr << 1, type,
> +   c->adapter->name, c->dev.driver->name, c->addr << 1, type,
> t->mode_mask);
>   return;
>  
> @@ -556,7 +556,7 @@ static void tuner_lookup(struct i2c_adapter *adap,
>   int mode_mask;
>  
>   if (pos->i2c->adapter != adap ||
> - strcmp(pos->i2c->driver->driver.name, "tuner"))
> + strcmp(pos->i2c->dev.driver->name, "tuner"))
>   continue;
>  
>   mode_mask = pos->mode_mask;
> diff --git a/drivers/media/v4l2-core/v4l2-common.c 
> b/drivers/media/v4l2-core/v4l2-common.c
> index 037d7a5..433d6d7 100644
> --- a/drivers/media/v4l2-core/v4l2-common.c
> +++ b/drivers/media/v4l2-core/v4l2-common.c
> @@ -236,14 +236,14 @@ void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, 
> struct i2c_client *client,
>   v4l2_subdev_init(sd, ops);
>   sd->flags |= V4L2_SUBDEV_FL_IS_I2C;
>   /* the owner is the same as the i2c_client's driver owner */
> - sd->owner = client->driver->driver.owner;
> + sd->owner = client->dev.driver->owner;
>   sd->dev = &client->dev;
>   /* i2c_client and v4l2_subdev point to one another */
>   v4l2_set_subdevdata(sd, client);
>   i2c_set_clientdata(client, sd);
>   /* initialize name */
>   snprintf(sd->name, sizeof(sd->name), "%s %d-%04x",
> - client->driver->driver.name, i2c_adapter_id(client->adapter),
> + client->dev.driver->name, i2c_adapter_id(client->adapter),
>   client->addr);
>  }
>  EXPORT_SYMBOL_GPL(v4l2_i2c_subdev_init);
> @@ -274,11 +274,11 @@ struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct 
> v4l2_device *v4l2_dev,
>  loaded. This delay-load mechanism doesn't work if other drivers
>  want to use the i2c device, so explicitly loading the module
>  is the best alternative. */
> - if (client == NULL || client->driver == NULL)
> + if (client == NULL || client->dev.driver == NULL)
>   goto error;
>  
>   /* Lock the module so we can safely get the v4l2_subdev pointer */
> - if (!try_module_get(client->driver->driver.owner))
> + if (!try_module_get(client->dev.driver->owner))
>   goto error;
>   sd = i2c_get_clientdata(client);
>  
> @@ -287,7 +287,7 @@ struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct 
> v4l2_device *v4l2_dev,
>   if (v4l2_device_register_subdev(v4l2_dev, sd))
>   sd = NULL;
>   /* Decrease the module use count to match the first try_module_get. */
> - module_put(client->driver->driver.owner);
> + module_put(client->dev.driver->owner);
>  
>  error:
>   /* If we have a client but no subdev, then something went wrong and
> diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
> index 16550c4..a707529 100644
> --- a/include/media/v4l2-common.h
> +++ b/include/media/v4l2-common.h
> @@ -35,7 +35,7 @@
>   printk(level "%s %d-%04x: " fmt, name, i2c_adapter_id(adapter), addr , 
> ## arg)
>  
>  #define v4l_client_printk(level, client, fmt, arg...)
> \
> - v4l_printk(level, (client)->driver->driver.name, (client)->adapter, \
> + v4l_printk(level, (client)->dev.driver->name, (client)->adapter, \
>  (client)->addr, fmt , ## arg)
>  
>  #define v4l_err(client, fmt, arg...) \
> 

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


[PATCH libdrm 2/3] drm: Sync the DRM_SET_CLIENT_CAP ioctl definition

2013-09-30 Thread Damien Lespiau
v2: SET_CAP -> SET_CLIENT_CAP renaming

Signed-off-by: Damien Lespiau 
---
 include/drm/drm.h | 16 
 1 file changed, 16 insertions(+)

diff --git a/include/drm/drm.h b/include/drm/drm.h
index f400642..725bf51 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -618,6 +618,21 @@ struct drm_get_cap {
__u64 value;
 };
 
+/**
+ * DRM_CLIENT_CAP_STEREO_3D
+ *
+ * if set to 1, the DRM core will expose the stereo 3D capabilities of the
+ * monitor by advertising the supported 3D layouts in the flags of struct
+ * drm_mode_modeinfo.
+ */
+#define DRM_CLIENT_CAP_STEREO_3D   1
+
+/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
+struct drm_set_client_cap {
+   __u64 capability;
+   __u64 value;
+};
+
 #define DRM_CLOEXEC O_CLOEXEC
 struct drm_prime_handle {
__u32 handle;
@@ -650,6 +665,7 @@ struct drm_prime_handle {
 #define DRM_IOCTL_GEM_FLINKDRM_IOWR(0x0a, struct drm_gem_flink)
 #define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open)
 #define DRM_IOCTL_GET_CAP  DRM_IOWR(0x0c, struct drm_get_cap)
+#define DRM_IOCTL_SET_CLIENT_CAP   DRM_IOW( 0x0d, struct 
drm_set_client_cap)
 
 #define DRM_IOCTL_SET_UNIQUE   DRM_IOW( 0x10, struct drm_unique)
 #define DRM_IOCTL_AUTH_MAGIC   DRM_IOW( 0x11, struct drm_auth)
-- 
1.8.3.1

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


[PATCH libdrm 3/3] drm: Introduce a drmSetClientCap() wrapper

2013-09-30 Thread Damien Lespiau
That wraps around the new DRM_SET_CLIENT_CAP ioctl.

v2: SET_CAP -> SET_CLIENT_CAP renaming

Signed-off-by: Damien Lespiau 
---
 xf86drm.c | 7 +++
 xf86drm.h | 2 ++
 2 files changed, 9 insertions(+)

diff --git a/xf86drm.c b/xf86drm.c
index 4791a05..720952f 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -823,6 +823,13 @@ int drmGetCap(int fd, uint64_t capability, uint64_t *value)
return 0;
 }
 
+int drmSetClientCap(int fd, uint64_t capability, uint64_t value)
+{
+   struct drm_set_client_cap cap  = { capability, value };
+
+   return drmIoctl(fd, DRM_IOCTL_SET_CLIENT_CAP, &cap);
+}
+
 /**
  * Free the bus ID information.
  *
diff --git a/xf86drm.h b/xf86drm.h
index 5ecb284..1e763a3 100644
--- a/xf86drm.h
+++ b/xf86drm.h
@@ -609,6 +609,8 @@ extern int   drmUpdateDrawableInfo(int fd, 
drm_drawable_t handle,
   unsigned int num, void *data);
 extern int   drmCtlInstHandler(int fd, int irq);
 extern int   drmCtlUninstHandler(int fd);
+extern int   drmSetClientCap(int fd, uint64_t capability,
+uint64_t value);
 
 /* General user-level programmer's API: authenticated client and/or X */
 extern int   drmMap(int fd,
-- 
1.8.3.1

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


[PATCH libdrm 1/3] drm: Synchronize the stereo 3D mode flags from the kernel headers

2013-09-30 Thread Damien Lespiau
v2: stereo layouts are now an enum (Daniel Vetter)

Signed-off-by: Damien Lespiau 
---
 include/drm/drm_mode.h | 39 +--
 xf86drmMode.h  | 38 --
 2 files changed, 49 insertions(+), 28 deletions(-)

diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
index d41d76b..c1bb1a3 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -42,20 +42,31 @@
 
 /* Video mode flags */
 /* bit compatible with the xorg definitions. */
-#define DRM_MODE_FLAG_PHSYNC   (1<<0)
-#define DRM_MODE_FLAG_NHSYNC   (1<<1)
-#define DRM_MODE_FLAG_PVSYNC   (1<<2)
-#define DRM_MODE_FLAG_NVSYNC   (1<<3)
-#define DRM_MODE_FLAG_INTERLACE(1<<4)
-#define DRM_MODE_FLAG_DBLSCAN  (1<<5)
-#define DRM_MODE_FLAG_CSYNC(1<<6)
-#define DRM_MODE_FLAG_PCSYNC   (1<<7)
-#define DRM_MODE_FLAG_NCSYNC   (1<<8)
-#define DRM_MODE_FLAG_HSKEW(1<<9) /* hskew provided */
-#define DRM_MODE_FLAG_BCAST(1<<10)
-#define DRM_MODE_FLAG_PIXMUX   (1<<11)
-#define DRM_MODE_FLAG_DBLCLK   (1<<12)
-#define DRM_MODE_FLAG_CLKDIV2  (1<<13)
+#define DRM_MODE_FLAG_PHSYNC   (1<<0)
+#define DRM_MODE_FLAG_NHSYNC   (1<<1)
+#define DRM_MODE_FLAG_PVSYNC   (1<<2)
+#define DRM_MODE_FLAG_NVSYNC   (1<<3)
+#define DRM_MODE_FLAG_INTERLACE(1<<4)
+#define DRM_MODE_FLAG_DBLSCAN  (1<<5)
+#define DRM_MODE_FLAG_CSYNC(1<<6)
+#define DRM_MODE_FLAG_PCSYNC   (1<<7)
+#define DRM_MODE_FLAG_NCSYNC   (1<<8)
+#define DRM_MODE_FLAG_HSKEW(1<<9) /* hskew provided */
+#define DRM_MODE_FLAG_BCAST(1<<10)
+#define DRM_MODE_FLAG_PIXMUX   (1<<11)
+#define DRM_MODE_FLAG_DBLCLK   (1<<12)
+#define DRM_MODE_FLAG_CLKDIV2  (1<<13)
+#define DRM_MODE_FLAG_3D_MASK  (0x1f<<14)
+#define  DRM_MODE_FLAG_3D_NONE (0<<14)
+#define  DRM_MODE_FLAG_3D_FRAME_PACKING(1<<14)
+#define  DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE(2<<14)
+#define  DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL(4<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH  (5<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH(6<<14)
+#define  DRM_MODE_FLAG_3D_TOP_AND_BOTTOM   (7<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF(8<<14)
+
 
 /* DPMS flags */
 /* bit compatible with the xorg definitions. */
diff --git a/xf86drmMode.h b/xf86drmMode.h
index 5bc60ee..7fc52b6 100644
--- a/xf86drmMode.h
+++ b/xf86drmMode.h
@@ -81,20 +81,30 @@ extern "C" {
 
 /* Video mode flags */
 /* bit compatible with the xorg definitions. */
-#define DRM_MODE_FLAG_PHSYNC(1<<0)
-#define DRM_MODE_FLAG_NHSYNC(1<<1)
-#define DRM_MODE_FLAG_PVSYNC(1<<2)
-#define DRM_MODE_FLAG_NVSYNC(1<<3)
-#define DRM_MODE_FLAG_INTERLACE (1<<4)
-#define DRM_MODE_FLAG_DBLSCAN   (1<<5)
-#define DRM_MODE_FLAG_CSYNC (1<<6)
-#define DRM_MODE_FLAG_PCSYNC(1<<7)
-#define DRM_MODE_FLAG_NCSYNC(1<<8)
-#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */
-#define DRM_MODE_FLAG_BCAST (1<<10)
-#define DRM_MODE_FLAG_PIXMUX(1<<11)
-#define DRM_MODE_FLAG_DBLCLK(1<<12)
-#define DRM_MODE_FLAG_CLKDIV2   (1<<13)
+#define DRM_MODE_FLAG_PHSYNC   (1<<0)
+#define DRM_MODE_FLAG_NHSYNC   (1<<1)
+#define DRM_MODE_FLAG_PVSYNC   (1<<2)
+#define DRM_MODE_FLAG_NVSYNC   (1<<3)
+#define DRM_MODE_FLAG_INTERLACE(1<<4)
+#define DRM_MODE_FLAG_DBLSCAN  (1<<5)
+#define DRM_MODE_FLAG_CSYNC(1<<6)
+#define DRM_MODE_FLAG_PCSYNC   (1<<7)
+#define DRM_MODE_FLAG_NCSYNC   (1<<8)
+#define DRM_MODE_FLAG_HSKEW(1<<9) /* hskew provided */
+#define DRM_MODE_FLAG_BCAST(1<<10)
+#define DRM_MODE_FLAG_PIXMUX   (1<<11)
+#define DRM_MODE_FLAG_DBLCLK   (1<<12)
+#define DRM_MODE_FLAG_CLKDIV2  (1<<13)
+#define DRM_MODE_FLAG_3D_MASK  (0x1f<<14)
+#define  DRM_MODE_FLAG_3D_NONE (0<<14)
+#define  DRM_MODE_FLAG_3D_FRAME_PACKING(1<<14)
+#define  DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE(2<<14)
+#define  DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL(4<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH  (5<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH(6<<14)
+#define  DRM_MODE_FLAG_3D_TOP_AND_BOTTOM   (7<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF(8<<14)
 
 /* DPMS flags */
 /* bit compatible with the xorg definitions. */
-- 
1.8.3.1

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


[libdrm] Stereo 3D v3

2013-09-30 Thread Damien Lespiau
v2 was:
  http://lists.freedesktop.org/archives/dri-devel/2013-September/045354.html

Only one change, the stereo part for the flags is now an enum instead of being
a bit field.

The kernel series has been pushed to drm-intel, the libdrm patches should
follow if there isn't any objection.

-- 
Damien

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


[Bug 69961] Regression: Xserver fails to start

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69961

samit vats  changed:

   What|Removed |Added

   Priority|medium  |high

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


[Bug 69961] Regression: Xserver fails to start

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69961

--- Comment #1 from samit vats  ---
Created attachment 86845
  --> https://bugs.freedesktop.org/attachment.cgi?id=86845&action=edit
xorg.log.ok

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


[Bug 69961] New: Regression: Xserver fails to start

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69961

  Priority: medium
Bug ID: 69961
  Assignee: dri-devel@lists.freedesktop.org
   Summary: Regression: Xserver fails to start
  Severity: critical
Classification: Unclassified
OS: All
  Reporter: hysv...@gmail.com
  Hardware: Other
Status: NEW
   Version: git
 Component: Drivers/Gallium/radeonsi
   Product: Mesa

Created attachment 86844
  --> https://bugs.freedesktop.org/attachment.cgi?id=86844&action=edit
xorg.log

Driver Stack Details:
=

1)Kernel-3.10.5-031005-generic
2)drm-2.4.46
3)Mesa-9.2   
4)Xorg-server-1.11.4
5)xf86-video-ati- master
6)glamor-0.5.1/0.5.0
7)LLVM-3.3

System Configuration:
=

Asic : CapeVerde XT (ID-683D)
O.S. : Ubuntu-13.04 (64 bit)


Details:


1) The Xserver start fine with driver build before 28th september commit.

2) X server crashes with Backtrace with git master :

(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(II) [KMS] Kernel modesetting enabled.
/usr/bin/X: symbol lookup error:
/home/atitest/install/lib/xorg/modules/drivers/radeon_drv.so: undefined symbol:
glamor_xv_init
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

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


Re: Flash 11.2 content displays in shades of green and purple only, and in a horizontally compressed space

2013-09-30 Thread Daniel Vetter
On Mon, Sep 30, 2013 at 2:04 PM, Dieter Nützel  wrote:
> Even so, I have no xorg.conf only /etc/X11/xorg.conf.d/ files.
> Which one should I create/change for testing, this?

Just add the snippet I've pasted into a new file in xorg.conf.d and X
should pick it up and integrate it into the autodetected config. You
can check in the Xorg.log whether it worked out.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: Flash 11.2 content displays in shades of green and purple only, and in a horizontally compressed space

2013-09-30 Thread Dieter Nützel

Am 30.09.2013 13:36, schrieb Daniel Vetter:

On Sat, Sep 28, 2013 at 12:49:24PM -0400, John Hupp wrote:

[I emailed the list with this same material on 9/13, but it has
received no response and someone on the Ubuntu kernel team suggested
that I change the email Subject from "Re: Moving a bug upstream per
downstream request, emailing the maintainers" to the more
descriptive one above.]

When I emailed the maintainers with the report below on 8/15 (and
archived at 
http://lists.freedesktop.org/archives/dri-devel/2013-August/043876.html),

a response came on 8/16:

"It's a flash bug. They ignore the format of the Window that they
PutImage to. (Worse, they create an image of the right depth or else X
would reject the PutImage with a BadMatch and then render incorrect
pixel data into it.)"

Despite that, someone on the Ubuntu kernel team asserted "at a
minimum a non-flash regression exists going from Quantal to Raring,"
and urged me to proceed with upstream kernel bisection.

I finally finished that, and arrived at the result:


Still a flash bug. This commit simply enables rgb555 in the kernel, 
which

sna likes to use on gen2/3. Flash is just too dense and always presumes
xrgb. Adding

Section "Screen"
Identifier "igd"
DefaultDepth 24
EndSection

to your xorg.conf will work around.
-Daniel


Hello Daniel, hello John,

I see the same shit thing with my Radeon RV730 AGP (HD4650) 'cause I 
have an old SSE1 system, only. The poor people at Adobe do NOT release 
any update (even a security one) for SSE1 systems since summer 2012!!!


Even so, I have no xorg.conf only /etc/X11/xorg.conf.d/ files.
Which one should I create/change for testing, this?

Thanks,
   Dieter

PS I only see this with 'hardware acceleration' (ha,ha, 2012..., only 
working right with SSE2, Adobe thinks,...)

PPS The little preview pictures during Flash search are right.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 19/51] DMA-API: media: dt3155v4l: replace dma_set_mask()+dma_set_coherent_mask() with new helper

2013-09-30 Thread Hans Verkuil
On 09/19/2013 11:44 PM, Russell King wrote:
> Replace the following sequence:
> 
>   dma_set_mask(dev, mask);
>   dma_set_coherent_mask(dev, mask);
> 
> with a call to the new helper dma_set_mask_and_coherent().
> 
> Signed-off-by: Russell King 

Acked-by: Hans Verkuil 

Regards,

Hans

> ---
>  drivers/staging/media/dt3155v4l/dt3155v4l.c |5 +
>  1 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/staging/media/dt3155v4l/dt3155v4l.c 
> b/drivers/staging/media/dt3155v4l/dt3155v4l.c
> index 90d6ac4..081407b 100644
> --- a/drivers/staging/media/dt3155v4l/dt3155v4l.c
> +++ b/drivers/staging/media/dt3155v4l/dt3155v4l.c
> @@ -901,10 +901,7 @@ dt3155_probe(struct pci_dev *pdev, const struct 
> pci_device_id *id)
>   int err;
>   struct dt3155_priv *pd;
>  
> - err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
> - if (err)
> - return -ENODEV;
> - err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
> + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
>   if (err)
>   return -ENODEV;
>   pd = kzalloc(sizeof(*pd), GFP_KERNEL);
> 

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


Re: Flash 11.2 content displays in shades of green and purple only, and in a horizontally compressed space

2013-09-30 Thread Daniel Vetter
On Sat, Sep 28, 2013 at 12:49:24PM -0400, John Hupp wrote:
> [I emailed the list with this same material on 9/13, but it has
> received no response and someone on the Ubuntu kernel team suggested
> that I change the email Subject from "Re: Moving a bug upstream per
> downstream request, emailing the maintainers" to the more
> descriptive one above.]
> 
> When I emailed the maintainers with the report below on 8/15 (and
> archived at 
> http://lists.freedesktop.org/archives/dri-devel/2013-August/043876.html),
> a response came on 8/16:
> 
> "It's a flash bug. They ignore the format of the Window that they
> PutImage to. (Worse, they create an image of the right depth or else X
> would reject the PutImage with a BadMatch and then render incorrect
> pixel data into it.)"
> 
> Despite that, someone on the Ubuntu kernel team asserted "at a
> minimum a non-flash regression exists going from Quantal to Raring,"
> and urged me to proceed with upstream kernel bisection.
> 
> I finally finished that, and arrived at the result:

Still a flash bug. This commit simply enables rgb555 in the kernel, which
sna likes to use on gen2/3. Flash is just too dense and always presumes
xrgb. Adding

Section "Screen"
Identifier "igd"
DefaultDepth 24
EndSection

to your xorg.conf will work around.
-Daniel

> 
> 57779d06367a915ee03e6cb918d7575f0a46e419 is the first bad commit
> commit 57779d06367a915ee03e6cb918d7575f0a46e419
> Author: Ville Syrjälä 
> Date: Wed Oct 31 17:50:14 2012 +0200
> 
> drm/i915: Fix display pixel format handling
> 
> Fix support for all RGB/BGR pixel formats (except the
> 16:16:16:16 float
> format).
> 
> Fix intel_init_framebuffer() to match hardware and driver limitations:
> * RGB332 is not supported at all
> * CI8 is supported
> * XRGB1555 & co. are supported on Gen3 and earlier
> * XRGB210101010 & co. are supported from Gen4 onwards
> * BGR formats are supported from Gen4 onwards
> * YUV formats are supported from Gen5 onwards (driver limitation)
> 
> Signed-off-by: Ville Syrjälä 
> Reviewed-by: Jesse Barnes 
> Signed-off-by: Daniel Vetter 
> 
> :04 04 334e1536b3513d0c329a8bb6360593d12065b71d
> bf0996ec13cbee07156c5e9f98dcdee30200e658 M drivers
> 
> -
> 
> The git bisect log:
> 
> git bisect start
> # good: [29594404d7fe73cd80eaa4ee8c43dcc53970c60e] Linux 3.7
> git bisect good 29594404d7fe73cd80eaa4ee8c43dcc53970c60e
> # bad: [9931faca02c604c22335f5a935a501bb2ace6e20] Linux 3.8-rc3
> git bisect bad 9931faca02c604c22335f5a935a501bb2ace6e20
> # good: [db5b0ae00712b5176d7405e7a1dd2bfd6e8f5070] Merge tag 'dt' of
> git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
> git bisect good db5b0ae00712b5176d7405e7a1dd2bfd6e8f5070
> # bad: [3c2e81ef344a90bb0a39d84af6878b4aeff568a2] Merge branch
> 'drm-next' of git://people.freedesktop.org/~airlied/linux
> git bisect bad 3c2e81ef344a90bb0a39d84af6878b4aeff568a2
> # good: [d8c532c40721f7507896d202b8cae3b3642d2b0d] Merge branch
> 'v4l_for_linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
> git bisect good d8c532c40721f7507896d202b8cae3b3642d2b0d
> # good: [2a74dbb9a86e8102dcd07d284135b4530a84826e] Merge branch
> 'for-linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
> git bisect good 2a74dbb9a86e8102dcd07d284135b4530a84826e
> # bad: [124ea297c8f0e0a3a567af0894fdbe05caaf80ec] drm/nouveau: unpin
> pushbuffer bo before destroying it
> git bisect bad 124ea297c8f0e0a3a567af0894fdbe05caaf80ec
> # bad: [12f3382bc0262e981a2e58aca900cbbdbbe66825] drm/i915:
> implement WaDisablePSDDualDispatchEnable on IVB & VLV
> git bisect bad 12f3382bc0262e981a2e58aca900cbbdbbe66825
> # good: [20474e90c948545c51da95689b8342a4f3bbaeb6] drm/i915: fix
> checks inside ironlake_crtc_{enable, disable}
> git bisect good 20474e90c948545c51da95689b8342a4f3bbaeb6
> # good: [00c09d70df6b30c980f20facc1db3def3f5a637e] drm/i915: create
> the DDI encoder
> git bisect good 00c09d70df6b30c980f20facc1db3def3f5a637e
> # bad: [a35f267946947b3798827a783d82d3d2aa55697d] drm/i915: remove
> IBX code from lpt_enable_pch_transcoder
> git bisect bad a35f267946947b3798827a783d82d3d2aa55697d
> # bad: [9256aa195d3badd009bf4addee6c3ae39879b8a6] drm/i915: move
> encoder->mode_set calls to crtc_mode_set
> git bisect bad 9256aa195d3badd009bf4addee6c3ae39879b8a6
> # good: [e7210c3c4f0d05e318b854bbd545fe335930c5cc] drm/i915: move
> more pte encoding to pte encode
> git bisect good e7210c3c4f0d05e318b854bbd545fe335930c5cc
> # bad: [90f9a336f56318d4f21a29e8ef063cb70fe7dd11] drm/i915: Check
> the framebuffer offset
> git bisect bad 90f9a336f56318d4f21a29e8ef063cb70fe7dd11
> # bad: [5d7bd705ddb362d5bd8ef2f3b294cd8f9d93c39e] drm/i915: Check
> framebuffer stride more thoroughly
> git bisect bad 5d7bd705ddb362d5bd8ef2f3b294cd8f9d93c39e
> # bad: [57779d06367a915ee03e6cb918d7575f0a46e419] drm/i915: Fix
> display pixel format handling
> git bisect bad 57779d

Re: linux-next: manual merge of the drm-intel tree

2013-09-30 Thread Daniel Vetter
On Mon, Sep 30, 2013 at 1:26 PM, Thierry Reding
 wrote:
> Today's linux-next merge of the drm-intel tree got conflicts in
>
> drivers/gpu/drm/i915/intel_display.c
>
> I fixed it up (see below). Please check if the resolution looks correct.

Looks good.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


linux-next: manual merge of the drm-intel tree

2013-09-30 Thread Thierry Reding
Today's linux-next merge of the drm-intel tree got conflicts in

drivers/gpu/drm/i915/intel_display.c

I fixed it up (see below). Please check if the resolution looks correct.

Thanks,
Thierry
---
diff --cc drivers/gpu/drm/i915/intel_display.c
index e5822e7,cbbdab6..76870f0
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@@ -4775,21 -4882,8 +4882,12 @@@ static void i9xx_set_pipeconf(struct in
  
pipeconf = 0;
  
 +  if (dev_priv->quirks & QUIRK_PIPEA_FORCE &&
 +  I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE)
 +  pipeconf |= PIPECONF_ENABLE;
 +
-   if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) {
-   /* Enable pixel doubling when the dot clock is > 90% of the 
(display)
-* core speed.
-*
-* XXX: No double-wide on 915GM pipe B. Is that the only reason 
for the
-* pipe == 0 check?
-*/
-   if (intel_crtc->config.requested_mode.clock >
-   dev_priv->display.get_display_clock_speed(dev) * 9 / 10)
-   pipeconf |= PIPECONF_DOUBLE_WIDE;
-   }
+   if (intel_crtc->config.double_wide)
+   pipeconf |= PIPECONF_DOUBLE_WIDE;
  
/* only g4x and later have fancy bpc/dither controls */
if (IS_G4X(dev) || IS_VALLEYVIEW(dev)) {
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] drm/exynos: release unhandled page flip events at postclose.

2013-09-30 Thread Inki Dae
This patch resolves a dead lock issue that could be incurred when
exynos_drm_crtc_dpms function was called.

The exynos_drm_crtc_dpms function waits for the completion of pended
page flip events. However, preclose callback - this releases all unhandled
page flip events - is called prior to the exynos_drm_crtc_dpms function call
when drm is closed. So at this time, this will make the exynos_drm_crtc_dpms
to wait infiniately for the completion of the page flip events.

This patch releases the unhandled page flip events at postclose instead
of preclose so that exynos_drm_crtc_dpms function can be waked up.

Signed-off-by: Inki Dae 
Signed-off-by: Kyungmin Park 
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c |   15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c 
b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index f727f98..9974294 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -167,10 +167,18 @@ static int exynos_drm_open(struct drm_device *dev, struct 
drm_file *file)
 static void exynos_drm_preclose(struct drm_device *dev,
struct drm_file *file)
 {
+   exynos_drm_subdrv_close(dev, file);
+}
+
+static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file)
+{
struct exynos_drm_private *private = dev->dev_private;
struct drm_pending_vblank_event *e, *t;
unsigned long flags;
 
+   if (!file->driver_priv)
+   return;
+
/* release events of current file */
spin_lock_irqsave(&dev->event_lock, flags);
list_for_each_entry_safe(e, t, &private->pageflip_event_list,
@@ -182,13 +190,6 @@ static void exynos_drm_preclose(struct drm_device *dev,
}
spin_unlock_irqrestore(&dev->event_lock, flags);
 
-   exynos_drm_subdrv_close(dev, file);
-}
-
-static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file)
-{
-   if (!file->driver_priv)
-   return;
 
kfree(file->driver_priv);
file->driver_priv = NULL;
-- 
1.7.9.5

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


[Bug 69514] R770 (Radeon 4850) screen/buffer corruption when waking up from sleep mode

2013-09-30 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69514

--- Comment #13 from Peter Asplund  ---
I haven't been able to disect anything yet, but I do have some updated
information. I switched back my BIOS settings to Hibernate via S3 instead of S1
(which I was forced to switch to because of Windows 7 somehow disabling my
hibernate possibility because of some "known issue with power management" or
something like it) and now my glitches are gone! The hibernate and wake-up
works perfectly. I have yet to try Sleep I think, but I think I tried and it
doesn't work at all since my motherboard only supports _either_ S1 or S3.
This is very strange though, since I'm fairly certain I've used both of them
before.

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


Re: [PATCH 6/8] ALSA: ppc: keywest: Don't use i2c_client->driver

2013-09-30 Thread Takashi Iwai
At Sun, 29 Sep 2013 10:51:04 +0200,
Lars-Peter Clausen wrote:
> 
> The 'driver' field of the i2c_client struct is redundant and is going to be
> removed. Use 'to_i2c_driver(client->dev.driver)' instead to get direct
> access to the i2c_driver struct.
> 
> Signed-off-by: Lars-Peter Clausen 

Acked-by: Takashi Iwai 


thanks,

Takashi

> ---
>  sound/ppc/keywest.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/ppc/keywest.c b/sound/ppc/keywest.c
> index 01aecc2..0d1c27e 100644
> --- a/sound/ppc/keywest.c
> +++ b/sound/ppc/keywest.c
> @@ -65,7 +65,7 @@ static int keywest_attach_adapter(struct i2c_adapter 
> *adapter)
>* already bound. If not it means binding failed, and then there
>* is no point in keeping the device instantiated.
>*/
> - if (!keywest_ctx->client->driver) {
> + if (!keywest_ctx->client->dev.driver) {
>   i2c_unregister_device(keywest_ctx->client);
>   keywest_ctx->client = NULL;
>   return -ENODEV;
> @@ -76,7 +76,7 @@ static int keywest_attach_adapter(struct i2c_adapter 
> *adapter)
>* This is safe because i2c-core holds the core_lock mutex for us.
>*/
>   list_add_tail(&keywest_ctx->client->detected,
> -   &keywest_ctx->client->driver->clients);
> +   &to_i2c_driver(keywest_ctx->client->dev.driver)->clients);
>   return 0;
>  }
>  
> -- 
> 1.8.0
> 
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [Mesa-dev] [r600g] Mesa CVS 4e9aa67: vdpau has only MPEG1/2 on RV730

2013-09-30 Thread Grigori Goronzy

On 30.09.2013 10:06, Michel Dänzer wrote:

On Son, 2013-09-29 at 22:34 +0200, Dieter Nützel wrote:


after latest git pull I've only MPEG1, MPEG2_SIMPLE and MPEG2_MAIN with
my RV730 (AGP).




Same problem on PALM. Bisection shows that it is caused by commit 
68f6dec32. The initialization order seems to be wrong, the check for UVD 
is done too early. I'll send a patch in a minute.


Best regards
Grigori


That probably means you lost UVD support for some reason. Assuming UVD
is still enabled in the kernel, can you bisect which Mesa change caused
the problem for you?



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


Re: [r600g] Mesa CVS 4e9aa67: vdpau has only MPEG1/2 on RV730

2013-09-30 Thread Michel Dänzer
On Son, 2013-09-29 at 22:34 +0200, Dieter Nützel wrote:
> 
> after latest git pull I've only MPEG1, MPEG2_SIMPLE and MPEG2_MAIN with 
> my RV730 (AGP).

That probably means you lost UVD support for some reason. Assuming UVD
is still enabled in the kernel, can you bisect which Mesa change caused
the problem for you?


-- 
Earthling Michel Dänzer|  http://www.amd.com
Libre software enthusiast  |Mesa and X developer

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


Re: [PATCH 1/7] drm/exynos: move hdmiphy related code to hdmiphy driver

2013-09-30 Thread Sylwester Nawrocki

On 09/28/2013 06:10 PM, Inki Dae wrote:

Any opinion from Device-Tree folks?

IMO, we should have same consensus on Shirish patches before proceeding.


Rahul, it seems that DT people have no interest in this issue. So let's
have a consensus about this issue internally.

To Mr. Kyungmin, Sylwester, Kukjin Kim, and Tomasz,
How about keeping hdmiphy config data in each board dts file?


Please don't use HTML and quote only relevant part of e-mails. Otherwise
there are good chances your messages end up in people's spam box.

It often helps to Cc a DT binding maintainer directly.

Then, you consider moving the HDMI phy configuration to the device tree.
As Sean suggested in this thread:

">> +static struct hdmiphy_config hdmiphy_4210_configs[] = {

+   {
+   .pixel_clock = 2700,
+   .conf = {
+   0x01, 0x05, 0x00, 0xD8, 0x10, 0x1C, 0x30, 0x40,
+   0x6B, 0x10, 0x02, 0x51, 0xDF, 0xF2, 0x54, 0x87,
+   0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10, 0xE0,
+   0x22, 0x40, 0xE3, 0x26, 0x00, 0x00, 0x00, 0x00,
+   },
+   },

[trimmed couple more entries]

+};


Are you aware of the effort to move these to dt? Since these are
board-specific values, it seems incorrect to apply them universally.
Shirish has uploaded a patch to the chromium review site to push these
into dt (https://chromium-review.googlesource.com/#/c/65581). Maybe
you can work that into your patch set?"


The configuration data is 64 bytes of the register values IIUC. Would it be
possible to figure out exact meaning of each byte ? Do all of these bytes
need to be changed per board ? Perhaps we can have per SoC static tables in
the PHY driver and be overwriting only some of the bytes with values read
from device tree ?

AFAIR firmware-like binary blobs (register address/value pairs) are not
supposed to be stored in DT.

If there is no detailed documentation for theese PHY configuration tables
I guess there is no choice but to put these raw 64 bytes in DT. Presumably
this should be a an required property defined only by board dts, since those
values are PCB design dependent.

However, if not all boards need tweaking this configuration data, then it
could make sense to define recommended per-SoC tables in the driver and
overwrite from DT only if it is specified there for a specific board.
If we can come up with universal configuration for a SoC and selected pixel
clock frequency then it could likely be better to store that in the driver
rather than in DT.

--
Thanks,
Sylwester
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel