drm/i915: CONFIG_DRM_I915_UMS

2014-07-26 Thread Daniel Vetter
On Fri, Jul 25, 2014 at 2:14 PM, Paul Bolle  wrote:
> Your commit 2225a28fd916 ("drm/i915: Ditch UMS config option") is
> included in today's linux-next (ie, next-20140725). It removes the
> Kconfig symbol DRM_I915_UMS.
>
> It didn't remove the two (negative) checks for CONFIG_DRM_I915_UMS.
> These checks are superfluous as they now will always evaluate to true.
> Is the trivial cleanup to remove them already queued somewhere?

No, and intentionally. Actually removing the code for
user-mode-setting isn't just removing these two blocks, but requires
the gutting of roughly 10k lines splattered all over the driver.
Essentially all the code that checks for
!drm_core_check_feature(DRIVER_MODESET) needs to go. That's not quite
as trivial, and before I do that I want to make really sure that
really no one misses this option.

So probably after 3.17 is out the door for a bit.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


[PATCH] drm/radeon: use packet2 for nop on hawaii with old firmware

2014-07-26 Thread Christian König
Am 25.07.2014 um 23:44 schrieb Alex Deucher:
> Older firmware didn't support the new nop packet.
>
> Signed-off-by: Alex Deucher 

Reviewed-by: Christian K?nig 

> ---
>   drivers/gpu/drm/radeon/cik.c | 16 +---
>   1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
> index 44d25da..80a7ce0 100644
> --- a/drivers/gpu/drm/radeon/cik.c
> +++ b/drivers/gpu/drm/radeon/cik.c
> @@ -8259,6 +8259,7 @@ restart_ih:
>   static int cik_startup(struct radeon_device *rdev)
>   {
>   struct radeon_ring *ring;
> + u32 nop;
>   int r;
>   
>   /* enable pcie gen2/3 link */
> @@ -8392,9 +8393,18 @@ static int cik_startup(struct radeon_device *rdev)
>   }
>   cik_irq_set(rdev);
>   
> + if (rdev->family == CHIP_HAWAII) {
> + if (rdev->new_fw)
> + nop = PACKET3(PACKET3_NOP, 0x3FFF);
> + else
> + nop = RADEON_CP_PACKET2;
> + } else {
> + nop = PACKET3(PACKET3_NOP, 0x3FFF);
> + }
> +
>   ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
>   r = radeon_ring_init(rdev, ring, ring->ring_size, 
> RADEON_WB_CP_RPTR_OFFSET,
> -  PACKET3(PACKET3_NOP, 0x3FFF));
> +  nop);
>   if (r)
>   return r;
>   
> @@ -8402,7 +8412,7 @@ static int cik_startup(struct radeon_device *rdev)
>   /* type-2 packets are deprecated on MEC, use type-3 instead */
>   ring = &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX];
>   r = radeon_ring_init(rdev, ring, ring->ring_size, 
> RADEON_WB_CP1_RPTR_OFFSET,
> -  PACKET3(PACKET3_NOP, 0x3FFF));
> +  nop);
>   if (r)
>   return r;
>   ring->me = 1; /* first MEC */
> @@ -8413,7 +8423,7 @@ static int cik_startup(struct radeon_device *rdev)
>   /* type-2 packets are deprecated on MEC, use type-3 instead */
>   ring = &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX];
>   r = radeon_ring_init(rdev, ring, ring->ring_size, 
> RADEON_WB_CP2_RPTR_OFFSET,
> -  PACKET3(PACKET3_NOP, 0x3FFF));
> +  nop);
>   if (r)
>   return r;
>   /* dGPU only have 1 MEC */



[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #91 from Luzipher  ---
Thanks Kai, for your answers. I got it working now as well - in fact I'm typing
from an accelerated xorg that's running for over an hour now.

I used:
- agd5f's kernel (drm-next-3.17-wip), including the "handle ASIC_ProfilingInfo
v3.1" patch
- ucode from comment #81 copied to "/lib/firmware/updates/$(uname -r)/radeon"
- xf86-video-ati with agd5f's patch from comment #81
- mesa git with glisse's patch from comment #86
- llvm git
- xorg-server 1.16
- glamor 0.6.0 (is that still necessary with xorg 1.16 ?)
- kernel command line parameters: radeon.dpm=0 drm.rnodes=1

I do not use any kind of login manager (gdm, kdm) for login, but plain old
text-mode, then typing startx.

Both xfce4 and cinnamon start up and work, but at least in cinnamon I get
massive flickering on mouse-overs or animated cursors (terminology). For
example the background image occupies the whole text-area where I type this
comment, whenever I move the mouse in or out (firefox). The same happens when I
type, but obly for 2-3 lines of the surrounding text.using the mouse-wheel to
scroll helps and corrects the display.

I am able to run glxgears. And I even tried World of Warcraft via wine, where I
could get to the character selection screen (3D character is displayed), but
upon entering the world, the machine crashed and I got the screen full of noise
as output (similar to what happened before the fix on crashes).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/d3e601ca/attachment.html>


[PATCH libdrm] drm: Implement drmCheckModesettingSupported() for DragonFly

2014-07-26 Thread François Tigeot
For the sake of simplicity, KMS support can always be considered
present on DragonFly.

If some particular version doesn't support KMS yet, appropriate
checks are already done in Dports's x11-drivers/ Makefiles and
KMS-enabled driver packages don't get built.

Signed-off-by: Fran?ois Tigeot 
---
 xf86drmMode.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xf86drmMode.c b/xf86drmMode.c
index 7ca89b3..60ce369 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -806,6 +806,8 @@ int drmCheckModesettingSupported(const char *busid)
return -EINVAL;
return (modesetting ? 0 : -ENOSYS);
}
+#elif defined(__DragonFly__)
+   return 0;
 #endif
return -ENOSYS;

-- 
2.0.0



[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #92 from Kai  ---
(In reply to comment #91)
> Thanks Kai, for your answers. I got it working now as well - in fact I'm
> typing from an accelerated xorg that's running for over an hour now.

yw; happy I could help.

> - glamor 0.6.0 (is that still necessary with xorg 1.16 ?)

No (as I've indicated in comment #85); my understanding is, that only the
integrated version is maintained at this point. You might even have overwritten
the integrated libglamoregl.so with the externel version? You can check which
one you loaded by looking in your Xorg.0.log for the following lines:
> (II) Loading sub module "glamoregl"
> (II) LoadModule: "glamoregl"
> (II) Loading /usr/lib/xorg/modules/libglamoregl.so
> (II) Module glamoregl: vendor="X.Org Foundation"
>   compiled for 1.16.0, module version = 1.0.0
>   ABI class: X.Org ANSI C Emulation, version 0.4
and check what version you see. The integrated version is 1.0.0 and as you can
see from attachment 103450, my X started correctly with that. I just get a GPU
stall when the desktop should be drawn/shown the frist time. The last image I
see is the KDE loading screen with all icons.

> - kernel command line parameters: radeon.dpm=0 drm.rnodes=1

Oh, I didn't try those so far. I'll look into that and see if I can KDE loading
with those.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/c4a7ac65/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #93 from Luzipher  ---
Created attachment 103497
  --> https://bugs.freedesktop.org/attachment.cgi?id=103497&action=edit
dmesg with working acceleration: GPU faults

I just looked at my dmesg (with the same running system as described in comment
#91) and noticed quite a few "GPU faults" logged there (see attachement).

My Xorg.0.log looks clean though (only the EDID information of one of my
monitors was printed out waaay after I started X, at timestamps 1705 and 3420.
But I believe that was when powersaving switched off the screens).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/6ea3a18a/attachment-0001.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #94 from Marek Ol??k  ---
(In reply to comment #86)
> Created attachment 103474 [details] [review]
> Hack to temporarily fix accel
> 
> If you want working desktop you can use this patch to disable the packet
> that is the issue. With that mesa patch i have stable acceleration and
> desktop.

I don't recommend this patch. It disables updates to resource descriptors in
some cases, which means you'll get resource bindings from old draw packets or
even old IBs, which will cause VM faults or even hangs. I think it also breaks
MSAA and might cause hangs there too (CMASK must be cleared).

Hawaii works without the patch very well here. I'm only using Alex's stuff from
comment 81 and my Mesa fixes. Nothing else.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/49d64f78/attachment.html>


[Bug 66281] DRI_PRIME=1 glxinfo crashes and causes session to restart

2014-07-26 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=66281

sven  changed:

   What|Removed |Added

 CC||sven.pilz+linux at gmail.com

--- Comment #8 from sven  ---
I guess I have the same problem on a T420, see
"https://bugs.freedesktop.org/show_bug.cgi?id=80769";.

Can you boot your system with setting the display to discrete (instead of
Optimus) in the BIOS? https://bugzilla.kernel.org/show_bug.cgi?id=80321

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[PATCH] drm/radeon: adjust default radeon_vm_block_size v2

2014-07-26 Thread Christian König
Hey Alex,

can you use this version instead of the one you already have in 
drm-next-3.17-wip? It depends on a change from drm-fixes-3.16, so you 
need to merge (or rebase) your -next branch to apply it.

Apart from that I also have a couple of more VM changes for 3.17, but 
those need a merge with the latest 3.16 fixes as well.

Thanks,
Christian.

Am 19.07.2014 um 13:55 schrieb Christian K?nig:
> From: Christian K?nig 
>
> v2: rebase on vm_size scale change. Adjust vm_size default to 8,
>  Better handle the default and smaller values.
>
> Signed-off-by: Christian K?nig 
> ---
>   drivers/gpu/drm/radeon/radeon_device.c | 14 +-
>   drivers/gpu/drm/radeon/radeon_drv.c|  6 +++---
>   2 files changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
> b/drivers/gpu/drm/radeon/radeon_device.c
> index a8537d7..38e13b0 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1077,7 +1077,19 @@ static void radeon_check_arguments(struct 
> radeon_device *rdev)
>   /* defines number of bits in page table versus page directory,
>* a page is 4KB so we have 12 bits offset, minimum 9 bits in the
>* page table and the remaining bits are in the page directory */
> - if (radeon_vm_block_size < 9) {
> + if (radeon_vm_block_size == -1) {
> +
> + /* Total bits covered by PD + PTs */
> + unsigned bits = ilog2(radeon_vm_size) + 17;
> +
> + /* Make sure the PD is 4K in size up to 8GB address space.
> +Above that split equal between PD and PTs */
> + if (radeon_vm_size <= 8)
> + radeon_vm_block_size = bits - 9;
> + else
> + radeon_vm_block_size = (bits + 3) / 2;
> +
> + } else if (radeon_vm_block_size < 9) {
>   dev_warn(rdev->dev, "VM page table size (%d) to small\n",
>radeon_vm_block_size);
>   radeon_vm_block_size = 9;
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c 
> b/drivers/gpu/drm/radeon/radeon_drv.c
> index e9e3610..59b74d2 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -173,8 +173,8 @@ int radeon_dpm = -1;
>   int radeon_aspm = -1;
>   int radeon_runtime_pm = -1;
>   int radeon_hard_reset = 0;
> -int radeon_vm_size = 4;
> -int radeon_vm_block_size = 9;
> +int radeon_vm_size = 8;
> +int radeon_vm_block_size = -1;
>   int radeon_deep_color = 0;
>   
>   MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
> @@ -246,7 +246,7 @@ module_param_named(hard_reset, radeon_hard_reset, int, 
> 0444);
>   MODULE_PARM_DESC(vm_size, "VM address space size in gigabytes (default 
> 4GB)");
>   module_param_named(vm_size, radeon_vm_size, int, 0444);
>   
> -MODULE_PARM_DESC(vm_block_size, "VM page table size in bits (default 9)");
> +MODULE_PARM_DESC(vm_block_size, "VM page table size in bits (default 
> depending on vm_size)");
>   module_param_named(vm_block_size, radeon_vm_block_size, int, 0444);
>   
>   MODULE_PARM_DESC(deep_color, "Deep Color support (1 = enable, 0 = disable 
> (default))");



[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #95 from Luzipher  ---
Thank again, Kai, indeed my xorg-server used glamor 0.6.0.

Ok, so it's not really trivial to get xorg-server-1.16 working right with the
built-in glamor 1.0.0 on gentoo. The ebuilds for xorg-server-1.16,
xorg-drivers-1.16 and xf86-video-ati are borked. I'll file a bugreport on their
bugtracker later. If anyone here is interested, I could attach the ebuilds I
altered here.

But back on topic, I finally got it all working with the built in glamor - and
with that I'm seeing exactly what Kai described in comment #82.

(In reply to comment #94)
> Hawaii works without the patch very well here. I'm only using Alex's stuff
> from comment 81 and my Mesa fixes. Nothing else.

Next I'll try your patches, Marek - I guess you mean the ones on the mailing
list ? Is there a git-repo where you have them ? I checked your stuff for mesa
on freedesktop, but couldn't see anything there.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/dc95f2c0/attachment.html>


[Bug 78788] [Radeon\VCE] Performance regression after using VCE

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78788

--- Comment #4 from Iaroslav Andrusyak  ---
Mesa-git  git-54a84d9
http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.17-wip
New firmware

Same problem, slow 3d after using VCE

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/ae3d739b/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #96 from Kai  ---
(In reply to comment #94)
> (In reply to comment #86)
> > Created attachment 103474 [details] [review] [review]
> > Hack to temporarily fix accel
> > 
> > If you want working desktop you can use this patch to disable the packet
> > that is the issue. With that mesa patch i have stable acceleration and
> > desktop.
> 
> I don't recommend this patch. It disables updates to resource descriptors in
> some cases, which means you'll get resource bindings from old draw packets
> or even old IBs, which will cause VM faults or even hangs. I think it also
> breaks MSAA and might cause hangs there too (CMASK must be cleared).
> 
> Hawaii works without the patch very well here. I'm only using Alex's stuff
> from comment 81 and my Mesa fixes. Nothing else.

IT WORKS! Thanks to Alex, Marek, J?r?me and all the others involved!
The stack I used was (base is Debian Testing):
GPU: Hawaii PRO [Radeon R9 290] (ChipID = 0x67b1)
Linux: ~agdf5/linux:drm-next-3.17-wip (calls itself 3.16-rc4?)
libdrm: 2.4.54-1
LLVM: 3.5 RC1
libclc: Git:master/0ec7437d9c
Mesa: Git:master/74e100affc + the three patches Marek named ("radeonsi: fix
CMASK and HTILE calculations for Hawaii"; "gallium/util: add a helper for
calculating primitive count from vertex count"; "radeonsi: fix a hang with
instancing on Hawaii") and can be found on mesa-dev.
DDX: 1:7.4.0-2 + Patch from
http://people.freedesktop.org/~agd5f/0001-radeon-enable-hawaii-accel-conditionally.patch
X: 2:1.16.0-1 (1.16.0)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/fed007b1/attachment-0001.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #97 from Luzipher  ---
Created attachment 103500
  --> https://bugs.freedesktop.org/attachment.cgi?id=103500&action=edit
dmesg with working acceleration (Marek's patches): WoW GPU reset

Yay, with your seven patches, Marek, it works with the built-in glamor-1.0.0 !
Thanks a lot !

The following patches were applied:

[Mesa-dev] [PATCH 1/2] r600g, radeonsi: add debug flags which disable tiling
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064127.html

[Mesa-dev] [PATCH 2/2] radeonsi: fix CMASK and HTILE calculations for Hawaii
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064128.html

[Mesa-dev] [PATCH 1/3] gallium/util: add a helper for calculating primitive
count from vertex count
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064129.html

[Mesa-dev] [PATCH 2/3] radeonsi: fix a hang with instancing on Hawaii
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064130.html

[Mesa-dev] [PATCH 3/3] radeonsi: fix a hang with streamout on Hawaii
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064131.html

[Mesa-dev] [PATCH] winsys/radeon: fix vram_size overflow with Hawaii
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064137.html

[Mesa-dev] [PATCH] radeonsi: fix occlusion queries on Hawaii
http://lists.freedesktop.org/archives/mesa-dev/2014-July/064138.html


With those the transparency and flickery effects I described in comment #91 are
gone !

World of Warcraft still crashes when entering the world, but not fatally
anymore (there is a GPU reset and black screens for a while, but it recovers
and only the game crashes). I attached the dmesg of the crash, Xorg.0.log
doesn't show anything. I'm not sure if the GPU faults / VM faults visible in
the log are related to the game, but they probably occured while I logged in
and selected a character.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/31e8b5c3/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #98 from Kai  ---
After some playing around, I do see some (minor) visual issues. See
https://imgur.com/a/uswfc for some screenshots and descriptions.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/97b7ea43/attachment.html>


[Bug 81644] Random crashes on RadeonSI with Chromium.

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=81644

--- Comment #7 from Aaron B  ---
Created attachment 103504
  --> https://bugs.freedesktop.org/attachment.cgi?id=103504&action=edit
Crash+recover

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/7e3500a7/attachment.html>


[Bug 81644] Random crashes on RadeonSI with Chromium.

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=81644

--- Comment #8 from Aaron B  ---
Created attachment 103505
  --> https://bugs.freedesktop.org/attachment.cgi?id=103505&action=edit
DMesg of crash+recover.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/a5c753db/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #99 from Marek Ol??k  ---
BTW, MSAA may be broken and I recommend turning it off for now.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/19efe935/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #100 from Kai  ---
(In reply to comment #99)
> BTW, MSAA may be broken and I recommend turning it off for now.

Ok, how do I do that? I'm only aware of the debug flag "msaa". My radeon(4) man
page didn't yield anything for MSAA either and a quick grep over the Mesa code
pointed only to code actually handling MSAA (or dealing with the debug flag).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/7e3c18c4/attachment.html>


[PATCH] radeon: fix typo in sample split / fixes MSAA on Hawaii

2014-07-26 Thread Marek Olšák
From: Marek Ol??k 

---
 radeon/radeon_surface.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/radeon/radeon_surface.c b/radeon/radeon_surface.c
index 9c3a192..8a1fe7d 100644
--- a/radeon/radeon_surface.c
+++ b/radeon/radeon_surface.c
@@ -1914,7 +1914,7 @@ static void cik_get_2d_params(struct 
radeon_surface_manager *surf_man,
 sample_split = 1;
 break;
 case CIK__SAMPLE_SPLIT__2:
-sample_split = 1;
+sample_split = 2;
 break;
 case CIK__SAMPLE_SPLIT__4:
 sample_split = 4;
-- 
1.9.1



[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #101 from Marek Ol??k  ---
You can either disable MSAA in your apps (graphics settings in games, etc.) or
you can apply this libdrm patch ;)
http://lists.freedesktop.org/archives/dri-devel/2014-July/064743.html

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/4bde7d1e/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #102 from Kai  ---
(In reply to comment #101)
> You can either disable MSAA in your apps (graphics settings in games, etc.)
> or you can apply this libdrm patch ;)
> http://lists.freedesktop.org/archives/dri-devel/2014-July/064743.html

Ah, ok. I thought there was some DRI option I was unaware of. I build libdrm
with the patch, seems the better solution to me. Thanks again!

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/b00443ba/attachment.html>


[Bug 81644] Random crashes on RadeonSI with Chromium.

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=81644

Aaron B  changed:

   What|Removed |Added

 Attachment #103504|0   |1
is obsolete||

--- Comment #9 from Aaron B  ---
Created attachment 103522
  --> https://bugs.freedesktop.org/attachment.cgi?id=103522&action=edit
Two crashes+recovers. Xorg.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/e4378608/attachment.html>


[Bug 81644] Random crashes on RadeonSI with Chromium.

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=81644

Aaron B  changed:

   What|Removed |Added

 Attachment #103505|0   |1
is obsolete||

--- Comment #10 from Aaron B  ---
Created attachment 103523
  --> https://bugs.freedesktop.org/attachment.cgi?id=103523&action=edit
Two crashes+recovers. Dmesg.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/b278b489/attachment.html>


[Bug 78453] [HAWAII] Get acceleration working

2014-07-26 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=78453

--- Comment #103 from Serkan Hosca  ---
Created attachment 103527
  --> https://bugs.freedesktop.org/attachment.cgi?id=103527&action=edit
dmesg with drm-next-3.17-wip

Not working for me. I've updated the firmware files and using agd5f's
drm-next-3.17-wip branch. I can't switch to other vt's, it gets stuck with the
boot messages on vt1. Haven't tried starting X yet.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20140726/a9a8e734/attachment.html>


[PATCH V6 4/8] drm/exynos: Move DP setup into commit()

2014-07-26 Thread Ajay Kumar
This patch moves the DP training and video enable from the hotplug
handler into commit().

Signed-off-by: Sean Paul 
Signed-off-by: Ajay Kumar 
---
 drivers/gpu/drm/exynos/exynos_dp_core.c |   24 +++-
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
b/drivers/gpu/drm/exynos/exynos_dp_core.c
index 845d766..4b6ad95 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -875,10 +875,18 @@ static irqreturn_t exynos_dp_irq_handler(int irq, void 
*arg)
 static void exynos_dp_hotplug(struct work_struct *work)
 {
struct exynos_dp_device *dp;
-   int ret;

dp = container_of(work, struct exynos_dp_device, hotplug_work);

+   if (dp->drm_dev)
+   drm_helper_hpd_irq_event(dp->drm_dev);
+}
+
+static void exynos_dp_commit(struct exynos_drm_display *display)
+{
+   struct exynos_dp_device *dp = display->ctx;
+   int ret;
+
ret = exynos_dp_detect_hpd(dp);
if (ret) {
/* Cable has been disconnected, we're done */
@@ -1050,8 +1058,10 @@ static void exynos_dp_phy_exit(struct exynos_dp_device 
*dp)
}
 }

-static void exynos_dp_poweron(struct exynos_dp_device *dp)
+static void exynos_dp_poweron(struct exynos_drm_display *display)
 {
+   struct exynos_dp_device *dp = display->ctx;
+
if (dp->dpms_mode == DRM_MODE_DPMS_ON)
return;

@@ -1059,10 +1069,13 @@ static void exynos_dp_poweron(struct exynos_dp_device 
*dp)
exynos_dp_phy_init(dp);
exynos_dp_init_dp(dp);
enable_irq(dp->irq);
+   exynos_dp_commit(display);
 }

-static void exynos_dp_poweroff(struct exynos_dp_device *dp)
+static void exynos_dp_poweroff(struct exynos_drm_display *display)
 {
+   struct exynos_dp_device *dp = display->ctx;
+
if (dp->dpms_mode != DRM_MODE_DPMS_ON)
return;

@@ -1078,12 +1091,12 @@ static void exynos_dp_dpms(struct exynos_drm_display 
*display, int mode)

switch (mode) {
case DRM_MODE_DPMS_ON:
-   exynos_dp_poweron(dp);
+   exynos_dp_poweron(display);
break;
case DRM_MODE_DPMS_STANDBY:
case DRM_MODE_DPMS_SUSPEND:
case DRM_MODE_DPMS_OFF:
-   exynos_dp_poweroff(dp);
+   exynos_dp_poweroff(display);
break;
default:
break;
@@ -1094,6 +1107,7 @@ static void exynos_dp_dpms(struct exynos_drm_display 
*display, int mode)
 static struct exynos_drm_display_ops exynos_dp_display_ops = {
.create_connector = exynos_dp_create_connector,
.dpms = exynos_dp_dpms,
+   .commit = exynos_dp_commit,
 };

 static struct exynos_drm_display exynos_dp_display = {
-- 
1.7.9.5



[PATCH V6 1/8] drm/panel: Add prepare, unprepare and get_modes routines

2014-07-26 Thread Ajay Kumar
Most of the panels need an init sequence as mentioned below:
-- poweron LCD unit/LCD_EN
-- start video data
-- poweron LED unit/BACKLIGHT_EN
And, a de-init sequence as mentioned below:
-- poweroff LED unit/BACKLIGHT_EN
-- stop video data
-- poweroff LCD unit/LCD_EN
With existing callbacks for drm panel, we cannot accomodate such panels,
since only two callbacks, i.e "panel_enable" and panel_disable are supported.

This patch adds:
-- "prepare" callback which can be called before
the actual video data is on, and then call the "enable"
callback after the video data is available.

-- "unprepare" callback which can be called after
the video data is off, and use "disable" callback
to do something before switching off the video data.

Now, we can easily map the above scenario as shown below:
poweron LCD unit/LCD_EN = "prepare" callback
poweron LED unit/BACKLIGHT_EN = "enable" callback
poweroff LED unit/BACKLIGHT_EN = "disable" callback
poweroff LCD unit/LCD_EN = "unprepare" callback

Also, a helper function for get_modes is added.

Signed-off-by: Ajay Kumar 
---
 include/drm/drm_panel.h |   26 ++
 1 file changed, 26 insertions(+)

diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index c2ab77a..efc63cc 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -31,7 +31,9 @@ struct drm_device;
 struct drm_panel;

 struct drm_panel_funcs {
+   int (*unprepare)(struct drm_panel *panel);
int (*disable)(struct drm_panel *panel);
+   int (*prepare)(struct drm_panel *panel);
int (*enable)(struct drm_panel *panel);
int (*get_modes)(struct drm_panel *panel);
 };
@@ -46,6 +48,14 @@ struct drm_panel {
struct list_head list;
 };

+static inline int drm_panel_unprepare(struct drm_panel *panel)
+{
+   if (panel && panel->funcs && panel->funcs->unprepare)
+   return panel->funcs->unprepare(panel);
+
+   return panel ? -ENOSYS : -EINVAL;
+}
+
 static inline int drm_panel_disable(struct drm_panel *panel)
 {
if (panel && panel->funcs && panel->funcs->disable)
@@ -54,6 +64,14 @@ static inline int drm_panel_disable(struct drm_panel *panel)
return panel ? -ENOSYS : -EINVAL;
 }

+static inline int drm_panel_prepare(struct drm_panel *panel)
+{
+   if (panel && panel->funcs && panel->funcs->prepare)
+   return panel->funcs->prepare(panel);
+
+   return panel ? -ENOSYS : -EINVAL;
+}
+
 static inline int drm_panel_enable(struct drm_panel *panel)
 {
if (panel && panel->funcs && panel->funcs->enable)
@@ -62,6 +80,14 @@ static inline int drm_panel_enable(struct drm_panel *panel)
return panel ? -ENOSYS : -EINVAL;
 }

+static inline int drm_panel_get_modes(struct drm_panel *panel)
+{
+   if (panel && panel->funcs && panel->funcs->get_modes)
+   return panel->funcs->get_modes(panel);
+
+   return 0;
+}
+
 void drm_panel_init(struct drm_panel *panel);

 int drm_panel_add(struct drm_panel *panel);
-- 
1.7.9.5



[PATCH V6 5/8] drm/exynos: dp: Modify driver to support drm_panel

2014-07-26 Thread Ajay Kumar
Add drm_panel controls to support powerup/down of the
eDP panel, if one is present at the sink side.

Signed-off-by: Ajay Kumar 
---
 drivers/gpu/drm/exynos/Kconfig  |1 +
 drivers/gpu/drm/exynos/exynos_dp_core.c |   88 ---
 drivers/gpu/drm/exynos/exynos_dp_core.h |3 +-
 3 files changed, 71 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/exynos/Kconfig b/drivers/gpu/drm/exynos/Kconfig
index 9ba1aae..7f9f6f9 100644
--- a/drivers/gpu/drm/exynos/Kconfig
+++ b/drivers/gpu/drm/exynos/Kconfig
@@ -53,6 +53,7 @@ config DRM_EXYNOS_DP
bool "EXYNOS DRM DP driver support"
depends on DRM_EXYNOS_FIMD && ARCH_EXYNOS && (DRM_PTN3460=n || 
DRM_PTN3460=y || DRM_PTN3460=DRM_EXYNOS)
default DRM_EXYNOS
+   select DRM_PANEL
help
  This enables support for DP device.

diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
b/drivers/gpu/drm/exynos/exynos_dp_core.c
index 4b6ad95..49356cc 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -16,7 +16,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -28,6 +27,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 

 #include "exynos_drm_drv.h"
@@ -41,7 +41,7 @@ struct bridge_init {
struct device_node *node;
 };

-static int exynos_dp_init_dp(struct exynos_dp_device *dp)
+static void exynos_dp_init_dp(struct exynos_dp_device *dp)
 {
exynos_dp_reset(dp);

@@ -58,8 +58,6 @@ static int exynos_dp_init_dp(struct exynos_dp_device *dp)

exynos_dp_init_hpd(dp);
exynos_dp_init_aux(dp);
-
-   return 0;
 }

 static int exynos_dp_detect_hpd(struct exynos_dp_device *dp)
@@ -887,6 +885,12 @@ static void exynos_dp_commit(struct exynos_drm_display 
*display)
struct exynos_dp_device *dp = display->ctx;
int ret;

+   /* Keep backlight disabled while we configure video */
+   if (dp->panel) {
+   if (drm_panel_disable(dp->panel))
+   DRM_ERROR("failed to disable panel backlight\n");
+   }
+
ret = exynos_dp_detect_hpd(dp);
if (ret) {
/* Cable has been disconnected, we're done */
@@ -917,6 +921,12 @@ static void exynos_dp_commit(struct exynos_drm_display 
*display)
ret = exynos_dp_config_video(dp);
if (ret)
dev_err(dp->dev, "unable to config video\n");
+
+   /* Safe to turn on backlight now */
+   if (dp->panel) {
+   if (drm_panel_enable(dp->panel))
+   DRM_ERROR("failed to enable panel backlight\n");
+   }
 }

 static enum drm_connector_status exynos_dp_detect(
@@ -941,15 +951,18 @@ static int exynos_dp_get_modes(struct drm_connector 
*connector)
struct exynos_dp_device *dp = ctx_from_connector(connector);
struct drm_display_mode *mode;

+   if (dp->panel)
+   return drm_panel_get_modes(dp->panel);
+
mode = drm_mode_create(connector->dev);
if (!mode) {
DRM_ERROR("failed to create a new display mode.\n");
return 0;
}

-   drm_display_mode_from_videomode(&dp->panel.vm, mode);
-   mode->width_mm = dp->panel.width_mm;
-   mode->height_mm = dp->panel.height_mm;
+   drm_display_mode_from_videomode(&dp->priv.vm, mode);
+   mode->width_mm = dp->priv.width_mm;
+   mode->height_mm = dp->priv.height_mm;
connector->display_info.width_mm = mode->width_mm;
connector->display_info.height_mm = mode->height_mm;

@@ -1029,7 +1042,10 @@ static int exynos_dp_create_connector(struct 
exynos_drm_display *display,
drm_connector_register(connector);
drm_mode_connector_attach_encoder(connector, encoder);

-   return 0;
+   if (dp->panel)
+   ret = drm_panel_attach(dp->panel, &dp->connector);
+
+   return ret;
 }

 static void exynos_dp_phy_init(struct exynos_dp_device *dp)
@@ -1065,6 +1081,13 @@ static void exynos_dp_poweron(struct exynos_drm_display 
*display)
if (dp->dpms_mode == DRM_MODE_DPMS_ON)
return;

+   if (dp->panel) {
+   if (drm_panel_prepare(dp->panel)) {
+   DRM_ERROR("failed to powerup the panel\n");
+   return;
+   }
+   }
+
clk_prepare_enable(dp->clock);
exynos_dp_phy_init(dp);
exynos_dp_init_dp(dp);
@@ -1079,10 +1102,22 @@ static void exynos_dp_poweroff(struct 
exynos_drm_display *display)
if (dp->dpms_mode != DRM_MODE_DPMS_ON)
return;

+   if (dp->panel) {
+   if (drm_panel_disable(dp->panel)) {
+   DRM_ERROR("failed to disable panel backlight\n");
+   return;
+   }
+   }
+
disable_irq(dp->irq);
flush_work(&dp->hotplug_work);
exynos_dp_phy_exit(dp);
clk_disable_unprepare(dp->clock);
+
+   if (dp->panel) {
+ 

[PATCH V6 6/8] drm/bridge: Modify drm_bridge core to support driver model

2014-07-26 Thread Ajay Kumar
This patch tries to seperate drm_bridge implementation
into 2 parts, a drm part and a non_drm part.

A set of helper functions are defined in this patch to make
bridge driver probe independent of the drm flow.

The bridge devices register themselves on a lookup table
when they get probed by calling "drm_bridge_add_for_lookup".

The parent encoder driver waits till the bridge is available in the
lookup table(by calling "of_drm_find_bridge") and then continues with
its initialization.

The encoder driver should call "drm_bridge_attach_encoder" to pass on
the drm_device and the encoder pointers to the bridge object.

Now that the drm_device pointer is available, the encoder then calls
"bridge->funcs->post_encoder_init" to allow the bridge to continue
registering itself with the drm core.

Also, non driver model based ptn3460 driver is removed in this patch.

Signed-off-by: Ajay Kumar 
---
 .../devicetree/bindings/drm/bridge/ptn3460.txt |   27 --
 drivers/gpu/drm/Makefile   |1 +
 drivers/gpu/drm/bridge/Kconfig |   12 +-
 drivers/gpu/drm/bridge/Makefile|2 -
 drivers/gpu/drm/bridge/ptn3460.c   |  343 
 drivers/gpu/drm/drm_bridge.c   |   89 +
 drivers/gpu/drm/drm_crtc.c |9 +-
 drivers/gpu/drm/exynos/Kconfig |3 +-
 drivers/gpu/drm/exynos/exynos_dp_core.c|   57 ++--
 drivers/gpu/drm/exynos/exynos_dp_core.h|1 +
 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c |3 +-
 include/drm/bridge/ptn3460.h   |   37 ---
 include/drm/drm_crtc.h |   16 +-
 13 files changed, 147 insertions(+), 453 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/drm/bridge/ptn3460.txt
 delete mode 100644 drivers/gpu/drm/bridge/ptn3460.c
 create mode 100644 drivers/gpu/drm/drm_bridge.c
 delete mode 100644 include/drm/bridge/ptn3460.h

diff --git a/Documentation/devicetree/bindings/drm/bridge/ptn3460.txt 
b/Documentation/devicetree/bindings/drm/bridge/ptn3460.txt
deleted file mode 100644
index 52b93b2..000
--- a/Documentation/devicetree/bindings/drm/bridge/ptn3460.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-ptn3460 bridge bindings
-
-Required properties:
-   - compatible: "nxp,ptn3460"
-   - reg: i2c address of the bridge
-   - powerdown-gpio: OF device-tree gpio specification
-   - reset-gpio: OF device-tree gpio specification
-   - edid-emulation: The EDID emulation entry to use
-   +---++--+
-   | Value | Resolution | Description  |
-   |   0   |  1024x768  | NXP Generic  |
-   |   1   |  1920x1080 | NXP Generic  |
-   |   2   |  1920x1080 | NXP Generic  |
-   |   3   |  1600x900  | Samsung LTM200KT |
-   |   4   |  1920x1080 | Samsung LTM230HT |
-   |   5   |  1366x768  | NXP Generic  |
-   |   6   |  1600x900  | ChiMei M215HGE   |
-   +---++--+
-
-Example:
-   lvds-bridge at 20 {
-   compatible = "nxp,ptn3460";
-   reg = <0x20>;
-   powerdown-gpio = <&gpy2 5 1 0 0>;
-   reset-gpio = <&gpx1 5 1 0 0>;
-   edid-emulation = <5>;
-   };
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index af9a609..14a8b45 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -20,6 +20,7 @@ drm-$(CONFIG_COMPAT) += drm_ioc32.o
 drm-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_gem_cma_helper.o
 drm-$(CONFIG_PCI) += ati_pcigart.o
 drm-$(CONFIG_DRM_PANEL) += drm_panel.o
+drm-$(CONFIG_DRM_BRIDGE) += drm_bridge.o

 drm-usb-y   := drm_usb.o

diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 884923f..1e2f96c 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -1,5 +1,9 @@
-config DRM_PTN3460
-   tristate "PTN3460 DP/LVDS bridge"
+config DRM_BRIDGE
+   tristate
depends on DRM
-   select DRM_KMS_HELPER
-   ---help---
+   help
+ Bridge registration and lookup framework.
+
+menu "bridge chips"
+   depends on DRM_BRIDGE
+endmenu
diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile
index b4733e1..be16eca 100644
--- a/drivers/gpu/drm/bridge/Makefile
+++ b/drivers/gpu/drm/bridge/Makefile
@@ -1,3 +1 @@
 ccflags-y := -Iinclude/drm
-
-obj-$(CONFIG_DRM_PTN3460) += ptn3460.o
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
deleted file mode 100644
index d466696..000
--- a/drivers/gpu/drm/bridge/ptn3460.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * NXP PTN3460 DP/LVDS bridge driver
- *
- * Copyright (C) 2013 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the

[PATCH V6 8/8] drm/bridge: Add i2c based driver for ps8622/ps8625 bridge

2014-07-26 Thread Ajay Kumar
From: Vincent Palatin 

This patch adds drm_bridge driver for parade DisplayPort
to LVDS bridge chip.

Signed-off-by: Vincent Palatin 
Signed-off-by: Andrew Bresticker 
Signed-off-by: Sean Paul 
Signed-off-by: Rahul Sharma 
Signed-off-by: Ajay Kumar 
---
 .../devicetree/bindings/vendor-prefixes.txt|1 +
 .../devicetree/bindings/video/bridge/ps8622.txt|   19 +
 drivers/gpu/drm/bridge/Kconfig |   10 +
 drivers/gpu/drm/bridge/Makefile|1 +
 drivers/gpu/drm/bridge/ps8622.c|  602 
 5 files changed, 633 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/video/bridge/ps8622.txt
 create mode 100644 drivers/gpu/drm/bridge/ps8622.c

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 46a311e..b4a99cc 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -96,6 +96,7 @@ nxp   NXP Semiconductors
 onnn   ON Semiconductor Corp.
 opencores  OpenCores.org
 panasonic  Panasonic Corporation
+parade Parade Technologies Inc.
 phytec PHYTEC Messtechnik GmbH
 picochip   Picochip Ltd
 plathome   Plat'Home Co., Ltd.
diff --git a/Documentation/devicetree/bindings/video/bridge/ps8622.txt 
b/Documentation/devicetree/bindings/video/bridge/ps8622.txt
new file mode 100644
index 000..fdeafb2
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/bridge/ps8622.txt
@@ -0,0 +1,19 @@
+ps8622-bridge bindings
+
+Required properties:
+   - compatible: "parade,ps8622" or "parade,ps8625"
+   - reg: first i2c address of the bridge
+   - sleep-gpios: OF device-tree gpio specification
+   - reset-gpios: OF device-tree gpio specification
+
+Optional properties:
+   - lane-count: number of DP lanes to use
+
+Example:
+   ps8622-bridge at 48 {
+   compatible = "parade,ps8622";
+   reg = <0x48>;
+   sleep-gpios = <&gpc3 6 1 0 0>;
+   reset-gpios = <&gpc3 1 1 0 0>;
+   lane-count = <1>
+   };
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 0b12d16..d73e474 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -16,4 +16,14 @@ config DRM_PTN3460
help
  ptn3460 eDP-LVDS bridge chip driver.

+config DRM_PS8622
+   tristate "Parade eDP/LVDS bridge"
+   depends on DRM && DRM_BRIDGE
+   depends on OF
+   depends on I2C
+   select DRM_PANEL
+   select BACKLIGHT_LCD_SUPPORT
+   select BACKLIGHT_CLASS_DEVICE
+   help
+ parade eDP-LVDS bridge chip driver.
 endmenu
diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile
index b4733e1..d1b5daa 100644
--- a/drivers/gpu/drm/bridge/Makefile
+++ b/drivers/gpu/drm/bridge/Makefile
@@ -1,3 +1,4 @@
 ccflags-y := -Iinclude/drm

 obj-$(CONFIG_DRM_PTN3460) += ptn3460.o
+obj-$(CONFIG_DRM_PS8622) += ps8622.o
diff --git a/drivers/gpu/drm/bridge/ps8622.c b/drivers/gpu/drm/bridge/ps8622.c
new file mode 100644
index 000..ec60fcf
--- /dev/null
+++ b/drivers/gpu/drm/bridge/ps8622.c
@@ -0,0 +1,602 @@
+/*
+ * Parade PS8622 eDP/LVDS bridge driver
+ *
+ * Copyright (C) 2014 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include "drmP.h"
+#include "drm_crtc.h"
+#include "drm_crtc_helper.h"
+
+struct ps8622_bridge {
+   struct drm_connector connector;
+   struct i2c_client *client;
+   struct drm_bridge *bridge;
+   struct drm_panel *panel;
+   struct regulator *v12;
+   struct backlight_device *bl;
+   struct mutex enable_mutex;
+
+   struct gpio_desc *gpio_slp_n;
+   struct gpio_desc *gpio_rst_n;
+
+   u8 max_lane_count;
+   u8 lane_count;
+
+   bool enabled;
+};
+
+struct ps8622_device_data {
+   u8 max_lane_count;
+};
+
+static const struct ps8622_device_data ps8622_data = {
+   .max_lane_count = 1,
+};
+
+static const struct ps8622_device_data ps8625_data = {
+   .max_lane_count = 2,
+};
+
+/* Brightness scale on the Parade chip */
+#define PS8622_MAX_BRIGHTNESS 0xff
+
+/* Timings taken from the version 1.7 datasheet for the PS8622/PS8625 */
+#define PS8622_POWER_RISE_T1_MIN_US 10
+#define PS8622_POWER_RISE_T1_MAX_US 1
+#define PS8622_RST_HIGH_T2_MIN_US 3000
+#define PS8622_RST_HIGH_T2_M

[PATCH V6 2/8] drm/panel: Add support for prepare and unprepare routines

2014-07-26 Thread Ajay Kumar
Now that we have 2 new callbacks(prepare and unprepare) for drm_panel,
make changes in all the drm drivers which use the drm_panel framework
to support the new callbacks.

Signed-off-by: Ajay Kumar 
---
 drivers/gpu/drm/exynos/exynos_drm_dpi.c |8 +++--
 drivers/gpu/drm/exynos/exynos_drm_dsi.c |7 +
 drivers/gpu/drm/panel/panel-ld9040.c|   18 +--
 drivers/gpu/drm/panel/panel-s6e8aa0.c   |   18 +--
 drivers/gpu/drm/panel/panel-simple.c|   51 ---
 drivers/gpu/drm/tegra/output.c  |2 ++
 6 files changed, 85 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c 
b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 3aa1c7e..fa08f05 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -125,14 +125,18 @@ static int exynos_dpi_create_connector(struct 
exynos_drm_display *display,

 static void exynos_dpi_poweron(struct exynos_dpi *ctx)
 {
-   if (ctx->panel)
+   if (ctx->panel) {
+   drm_panel_prepare(ctx->panel);
drm_panel_enable(ctx->panel);
+   }
 }

 static void exynos_dpi_poweroff(struct exynos_dpi *ctx)
 {
-   if (ctx->panel)
+   if (ctx->panel) {
drm_panel_disable(ctx->panel);
+   drm_panel_unprepare(ctx->panel);
+   }
 }

 static void exynos_dpi_dpms(struct exynos_drm_display *display, int mode)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c 
b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 5e78d45..2f58e45 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1333,6 +1333,12 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi)
if (ret < 0)
return ret;

+   ret = drm_panel_prepare(dsi->panel);
+   if (ret < 0) {
+   exynos_dsi_poweroff(dsi);
+   return ret;
+   }
+
ret = drm_panel_enable(dsi->panel);
if (ret < 0) {
exynos_dsi_poweroff(dsi);
@@ -1354,6 +1360,7 @@ static void exynos_dsi_disable(struct exynos_dsi *dsi)

exynos_dsi_set_display_enable(dsi, false);
drm_panel_disable(dsi->panel);
+   drm_panel_unprepare(dsi->panel);
exynos_dsi_poweroff(dsi);

dsi->state &= ~DSIM_STATE_ENABLED;
diff --git a/drivers/gpu/drm/panel/panel-ld9040.c 
b/drivers/gpu/drm/panel/panel-ld9040.c
index db1601f..046d9fe 100644
--- a/drivers/gpu/drm/panel/panel-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-ld9040.c
@@ -214,7 +214,7 @@ static int ld9040_power_off(struct ld9040 *ctx)
return regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
 }

-static int ld9040_disable(struct drm_panel *panel)
+static int ld9040_unprepare(struct drm_panel *panel)
 {
struct ld9040 *ctx = panel_to_ld9040(panel);

@@ -228,7 +228,12 @@ static int ld9040_disable(struct drm_panel *panel)
return ld9040_power_off(ctx);
 }

-static int ld9040_enable(struct drm_panel *panel)
+static int ld9040_disable(struct drm_panel *panel)
+{
+   return 0;
+}
+
+static int ld9040_prepare(struct drm_panel *panel)
 {
struct ld9040 *ctx = panel_to_ld9040(panel);
int ret;
@@ -242,11 +247,16 @@ static int ld9040_enable(struct drm_panel *panel)
ret = ld9040_clear_error(ctx);

if (ret < 0)
-   ld9040_disable(panel);
+   ld9040_unprepare(panel);

return ret;
 }

+static int ld9040_enable(struct drm_panel *panel)
+{
+   return 0;
+}
+
 static int ld9040_get_modes(struct drm_panel *panel)
 {
struct drm_connector *connector = panel->connector;
@@ -272,7 +282,9 @@ static int ld9040_get_modes(struct drm_panel *panel)
 }

 static const struct drm_panel_funcs ld9040_drm_funcs = {
+   .unprepare = ld9040_unprepare,
.disable = ld9040_disable,
+   .prepare = ld9040_prepare,
.enable = ld9040_enable,
.get_modes = ld9040_get_modes,
 };
diff --git a/drivers/gpu/drm/panel/panel-s6e8aa0.c 
b/drivers/gpu/drm/panel/panel-s6e8aa0.c
index 06e57a2..51c657a 100644
--- a/drivers/gpu/drm/panel/panel-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-s6e8aa0.c
@@ -887,7 +887,7 @@ static int s6e8aa0_power_off(struct s6e8aa0 *ctx)
return regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
 }

-static int s6e8aa0_disable(struct drm_panel *panel)
+static int s6e8aa0_unprepare(struct drm_panel *panel)
 {
struct s6e8aa0 *ctx = panel_to_s6e8aa0(panel);

@@ -900,7 +900,12 @@ static int s6e8aa0_disable(struct drm_panel *panel)
return s6e8aa0_power_off(ctx);
 }

-static int s6e8aa0_enable(struct drm_panel *panel)
+static int s6e8aa0_disable(struct drm_panel *panel)
+{
+   return 0;
+}
+
+static int s6e8aa0_prepare(struct drm_panel *panel)
 {
struct s6e8aa0 *ctx = panel_to_s6e8aa0(panel);
int ret;
@@ -913,11 +918,16 @@ static int s6e8aa0_enable(struct drm_panel *panel)
ret = ctx->error;

if (ret <

[PATCH V6 3/8] drm/panel: simple: Add support for auo_b133htn01 panel

2014-07-26 Thread Ajay Kumar
Add panel_desc structure for auo_b133htn01 eDP panel.

Also, modify the panel_simple routines to support timing_parameter
delays if mentioned in the panel_desc structure.

Signed-off-by: Ajay Kumar 
---
 .../devicetree/bindings/panel/auo,b133htn01.txt|7 +++
 drivers/gpu/drm/panel/panel-simple.c   |   47 
 2 files changed, 54 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/panel/auo,b133htn01.txt

diff --git a/Documentation/devicetree/bindings/panel/auo,b133htn01.txt 
b/Documentation/devicetree/bindings/panel/auo,b133htn01.txt
new file mode 100644
index 000..302226b
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/auo,b133htn01.txt
@@ -0,0 +1,7 @@
+AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
+
+Required properties:
+- compatible: should be "auo,b133htn01"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c 
b/drivers/gpu/drm/panel/panel-simple.c
index fb0cfe2..cbbb1b8 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -41,6 +41,13 @@ struct panel_desc {
unsigned int width;
unsigned int height;
} size;
+
+   struct {
+   unsigned int prepare_stage_delay;
+   unsigned int enable_stage_delay;
+   unsigned int disable_stage_delay;
+   unsigned int unprepare_stage_delay;
+   } timing_parameter;
 };

 struct panel_simple {
@@ -105,6 +112,8 @@ static int panel_simple_unprepare(struct drm_panel *panel)
gpiod_set_value_cansleep(p->enable_gpio, 0);

regulator_disable(p->supply);
+   if (p->desc)
+   msleep(p->desc->timing_parameter.unprepare_stage_delay);

p->panel_enabled = false;

@@ -123,6 +132,9 @@ static int panel_simple_disable(struct drm_panel *panel)
backlight_update_status(p->backlight);
}

+   if (p->desc)
+   msleep(p->desc->timing_parameter.disable_stage_delay);
+
p->backlight_enabled = false;

return 0;
@@ -142,6 +154,9 @@ static int panel_simple_prepare(struct drm_panel *panel)
return err;
}

+   if (p->desc)
+   msleep(p->desc->timing_parameter.prepare_stage_delay);
+
if (p->enable_gpio)
gpiod_set_value_cansleep(p->enable_gpio, 1);

@@ -157,6 +172,8 @@ static int panel_simple_enable(struct drm_panel *panel)
if (p->backlight_enabled)
return 0;

+   if (p->desc)
+   msleep(p->desc->timing_parameter.enable_stage_delay);
if (p->backlight) {
p->backlight->props.power = FB_BLANK_UNBLANK;
backlight_update_status(p->backlight);
@@ -342,6 +359,33 @@ static const struct panel_desc auo_b133xtn01 = {
},
 };

+static const struct drm_display_mode auo_b133htn01_mode = {
+   .clock = 150660,
+   .hdisplay = 1920,
+   .hsync_start = 1920 + 172,
+   .hsync_end = 1920 + 172 + 80,
+   .htotal = 1920 + 172 + 80 + 60,
+   .vdisplay = 1080,
+   .vsync_start = 1080 + 25,
+   .vsync_end = 1080 + 25 + 10,
+   .vtotal = 1080 + 25 + 10 + 10,
+   .vrefresh = 60,
+};
+
+static const struct panel_desc auo_b133htn01 = {
+   .modes = &auo_b133htn01_mode,
+   .num_modes = 1,
+   .size = {
+   .width = 293,
+   .height = 165,
+   },
+   .timing_parameter = {
+   .prepare_stage_delay = 105,
+   .enable_stage_delay = 20,
+   .prepare_stage_delay = 50,
+   },
+};
+
 static const struct drm_display_mode chunghwa_claa101wa01a_mode = {
.clock = 72070,
.hdisplay = 1366,
@@ -481,6 +525,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "auo,b101aw03",
.data = &auo_b101aw03,
}, {
+   .compatible = "auo,b133htn01",
+   .data = &auo_b133htn01,
+   }, {
.compatible = "auo,b133xtn01",
.data = &auo_b133xtn01,
}, {
-- 
1.7.9.5



[PATCH V2 7/8] drm/bridge: Add i2c based driver for ptn3460 bridge

2014-07-26 Thread Ajay Kumar
From: Sean Paul 

This patch adds ptn3460 as module_i2c_driver.

Signed-off-by: Sean Paul 
Signed-off-by: Ajay Kumar 
---
 .../devicetree/bindings/video/bridge/ptn3460.txt   |   27 ++
 drivers/gpu/drm/bridge/Kconfig |   10 +
 drivers/gpu/drm/bridge/Makefile|2 +
 drivers/gpu/drm/bridge/ptn3460.c   |  405 
 4 files changed, 444 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/video/bridge/ptn3460.txt
 create mode 100644 drivers/gpu/drm/bridge/ptn3460.c

diff --git a/Documentation/devicetree/bindings/video/bridge/ptn3460.txt 
b/Documentation/devicetree/bindings/video/bridge/ptn3460.txt
new file mode 100644
index 000..03366c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/bridge/ptn3460.txt
@@ -0,0 +1,27 @@
+ptn3460 bridge bindings
+
+Required properties:
+   - compatible: "nxp,ptn3460"
+   - reg: i2c address of the bridge
+   - powerdown-gpios: OF device-tree gpio specification
+   - reset-gpios: OF device-tree gpio specification
+   - edid-emulation: The EDID emulation entry to use
+   +---++--+
+   | Value | Resolution | Description  |
+   |   0   |  1024x768  | NXP Generic  |
+   |   1   |  1920x1080 | NXP Generic  |
+   |   2   |  1920x1080 | NXP Generic  |
+   |   3   |  1600x900  | Samsung LTM200KT |
+   |   4   |  1920x1080 | Samsung LTM230HT |
+   |   5   |  1366x768  | NXP Generic  |
+   |   6   |  1600x900  | ChiMei M215HGE   |
+   +---++--+
+
+Example:
+   lvds-bridge at 20 {
+   compatible = "nxp,ptn3460";
+   reg = <0x20>;
+   powerdown-gpios = <&gpy2 5 1 0 0>;
+   reset-gpios = <&gpx1 5 1 0 0>;
+   edid-emulation = <5>;
+   };
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 1e2f96c..0b12d16 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -6,4 +6,14 @@ config DRM_BRIDGE

 menu "bridge chips"
depends on DRM_BRIDGE
+
+config DRM_PTN3460
+   tristate "NXP ptn3460 eDP/LVDS bridge"
+   depends on DRM && DRM_BRIDGE
+   depends on OF
+   depends on I2C
+   select DRM_PANEL
+   help
+ ptn3460 eDP-LVDS bridge chip driver.
+
 endmenu
diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile
index be16eca..b4733e1 100644
--- a/drivers/gpu/drm/bridge/Makefile
+++ b/drivers/gpu/drm/bridge/Makefile
@@ -1 +1,3 @@
 ccflags-y := -Iinclude/drm
+
+obj-$(CONFIG_DRM_PTN3460) += ptn3460.o
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
new file mode 100644
index 000..f41302a
--- /dev/null
+++ b/drivers/gpu/drm/bridge/ptn3460.c
@@ -0,0 +1,405 @@
+/*
+ * NXP PTN3460 DP/LVDS bridge driver
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include "drmP.h"
+#include "drm_edid.h"
+#include "drm_crtc.h"
+#include "drm_crtc_helper.h"
+
+#define PTN3460_EDID_ADDR  0x0
+#define PTN3460_EDID_EMULATION_ADDR0x84
+#define PTN3460_EDID_ENABLE_EMULATION  0
+#define PTN3460_EDID_EMULATION_SELECTION   1
+#define PTN3460_EDID_SRAM_LOAD_ADDR0x85
+
+struct ptn3460_bridge {
+   struct drm_connector connector;
+   struct i2c_client *client;
+   struct drm_bridge *bridge;
+   struct drm_panel *panel;
+   struct edid *edid;
+   struct gpio_desc *gpio_pd_n;
+   struct gpio_desc *gpio_rst_n;
+   u32 edid_emulation;
+   bool enabled;
+};
+
+static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
+   u8 *buf, int len)
+{
+   int ret;
+
+   ret = i2c_master_send(ptn_bridge->client, &addr, 1);
+   if (ret <= 0) {
+   DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
+   return ret;
+   }
+
+   ret = i2c_master_recv(ptn_bridge->client, buf, len);
+   if (ret <= 0) {
+   DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret);
+   return ret;
+   }
+
+   return 0;
+}
+
+static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
+   char val)
+{
+   int ret;
+   char buf[2];
+
+   buf[0] = addr;
+   buf[1

[PATCH V6 0/8] drm/exynos: few patches to enhance bridge chip support

2014-07-26 Thread Ajay Kumar
This series is based on exynos-drm-next branch of Inki Dae's tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git

I have tested this after adding few DT changes for exynos5250-snow,
exynos5420-peach-pit and exynos5800-peach-pi boards.

The V4 series of this particular patchset was also tested by:
Rahul Sharma 
Javier Martinez Canillas 

Changes since V2:
-- Address comments from Jingoo Han for ps8622 driver
-- Address comments from Daniel, Rob and Thierry regarding
   bridge chaining
-- Address comments from Thierry regarding the names for
   new drm_panel functions

Changes since V3:
-- Remove hotplug based initialization of exynos_dp
-- Make exynos_dp work directly with drm_panel, remove
   dependency on panel_binder
-- Minor cleanups in panel_binder and panel_lvds driver

Changes since V4:
-- Use gpiod interface for panel-lvds and ps8622 drivers.
-- Address comments from Javier.
-- Fix compilation issues when PANEL_BINDER is selected as module.
-- Split Documentation patches from driver patches.
-- Rebase on top of the tree.

Changes since V5:
-- Modify bridge drivers to support driver model.
-- Drop the concept of bridge chain(sincle there are no 2 real bridges)
   Hence drop bridge-panel_binder layer.
-- Drop panel-lvds driver and accomodate the required changes in
   panel-simple driver.
-- Use gpiod interface in ptn3460 driver.
-- Address all comments by Thierry Reding for V5 series.
-- Address comments from Sean Paul for exynos_dp_commit issue.

Ajay Kumar (6):
  [PATCH V6 1/8] drm/panel: Add prepare, unprepare and get_modes routines
  [PATCH V6 2/8] drm/panel: Add support for prepare and unprepare routines
  [PATCH V6 3/8] drm/panel: simple: Add support for auo_b133htn01 panel
  [PATCH V6 4/8] drm/exynos: Move DP setup into commit()
  [PATCH V6 5/8] drm/exynos: dp: Modify driver to support drm_panel
  [PATCH V6 6/8] drm/bridge: Modify drm_bridge core to support driver model

Sean Paul (1):
  [PATCH V6 7/8] drm/bridge: Add i2c based driver for ptn3460 bridge

Vincent Palatin (1):
  [PATCH V6 8/8] drm/bridge: Add i2c based driver for ps8622/ps8625 bridge

 .../devicetree/bindings/drm/bridge/ptn3460.txt |   27 -
 .../devicetree/bindings/panel/auo,b133htn01.txt|7 +
 .../devicetree/bindings/vendor-prefixes.txt|1 +
 .../devicetree/bindings/video/bridge/ps8622.txt|   19 +
 .../devicetree/bindings/video/bridge/ptn3460.txt   |   27 +
 drivers/gpu/drm/Makefile   |1 +
 drivers/gpu/drm/bridge/Kconfig |   32 +-
 drivers/gpu/drm/bridge/Makefile|1 +
 drivers/gpu/drm/bridge/ps8622.c|  602 
 drivers/gpu/drm/bridge/ptn3460.c   |  212 ---
 drivers/gpu/drm/drm_bridge.c   |   89 +++
 drivers/gpu/drm/drm_crtc.c |9 +-
 drivers/gpu/drm/exynos/Kconfig |4 +-
 drivers/gpu/drm/exynos/exynos_dp_core.c|  165 --
 drivers/gpu/drm/exynos/exynos_dp_core.h|4 +-
 drivers/gpu/drm/exynos/exynos_drm_dpi.c|8 +-
 drivers/gpu/drm/exynos/exynos_drm_dsi.c|7 +
 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c |3 +-
 drivers/gpu/drm/panel/panel-ld9040.c   |   18 +-
 drivers/gpu/drm/panel/panel-s6e8aa0.c  |   18 +-
 drivers/gpu/drm/panel/panel-simple.c   |   96 +++-
 drivers/gpu/drm/tegra/output.c |2 +
 include/drm/bridge/ptn3460.h   |   37 --
 include/drm/drm_crtc.h |   16 +-
 include/drm/drm_panel.h|   26 +
 25 files changed, 1206 insertions(+), 225 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/drm/bridge/ptn3460.txt
 create mode 100644 Documentation/devicetree/bindings/panel/auo,b133htn01.txt
 create mode 100644 Documentation/devicetree/bindings/video/bridge/ps8622.txt
 create mode 100644 Documentation/devicetree/bindings/video/bridge/ptn3460.txt
 create mode 100644 drivers/gpu/drm/bridge/ps8622.c
 create mode 100644 drivers/gpu/drm/drm_bridge.c
 delete mode 100644 include/drm/bridge/ptn3460.h

-- 
1.7.9.5