[Bug 78221] 3.16 RC1: AMD R9 270 GPU locks up on some heavy 2D activity - GPU VM fault occurs. (possibly DMA copying issue strikes back?)

2015-07-10 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=78221

Linux Tester  changed:

   What|Removed |Added

 CC||linux.tester at sharklasers.co
   ||m

--- Comment #24 from Linux Tester  ---
After some updates to MESA and kernel this bug no longer happens at all - 2D
now rock solid for me on R9 270 and I can run even most troublesome workloads
for weeks without any issues. While I failed to pinpoint what exactly has fixed
bug, thanks anyway. I think it is now safe to close this bug as fixed. I bet
you've got dozens of other GPU lockups to chew on, so I'm glad to inform you at
least one nasty thing has been nailed down.

(it's me, original bug reporter who has forgot password on both original
mailbox and bugzilla account, dammit)

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


[Bug 86351] HDMI audio garbled output on Radeon R9 280X

2015-07-10 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=86351

Lorenzo Bona  changed:

   What|Removed |Added

 CC||lorenz.bona at gmail.com

--- Comment #14 from Lorenzo Bona  ---
Same issue on drm-fixes-4.2.

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


[PATCH v2 2/2] drm/rockchip: Drop owner assignment from platform_driver

2015-07-10 Thread Krzysztof Kozlowski
platform_driver does not need to set an owner because
platform_driver_register() will set it.

Signed-off-by: Krzysztof Kozlowski 

---
Changes since v1:
1. Split owner removal from rockchip to separate patch (spotted by Mark
   Yao).
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 01b558fe3695..9a0c2911272a 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -555,7 +555,6 @@ static struct platform_driver rockchip_drm_platform_driver 
= {
.probe = rockchip_drm_platform_probe,
.remove = rockchip_drm_platform_remove,
.driver = {
-   .owner = THIS_MODULE,
.name = "rockchip-drm",
.of_match_table = rockchip_drm_dt_ids,
.pm = &rockchip_drm_pm_ops,
-- 
1.9.1



[PATCH v2 1/2] drm/bridge: Drop owner assignment from i2c_driver

2015-07-10 Thread Krzysztof Kozlowski
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski 

---

The coccinelle script which generated the patch was sent here:
http://www.spinics.net/lists/kernel/msg2029903.html

Changes since v1:
1. Split owner removal from rockchip to separate patch (spotted by Mark
   Yao).
---
 drivers/gpu/drm/bridge/ps8622.c  | 1 -
 drivers/gpu/drm/bridge/ptn3460.c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ps8622.c b/drivers/gpu/drm/bridge/ps8622.c
index 1a6607beb29f..be881e9fef8f 100644
--- a/drivers/gpu/drm/bridge/ps8622.c
+++ b/drivers/gpu/drm/bridge/ps8622.c
@@ -668,7 +668,6 @@ static struct i2c_driver ps8622_driver = {
.remove = ps8622_remove,
.driver = {
.name   = "ps8622",
-   .owner  = THIS_MODULE,
.of_match_table = ps8622_devices,
},
 };
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
index 1b1bf2384815..0ffa3a6a206a 100644
--- a/drivers/gpu/drm/bridge/ptn3460.c
+++ b/drivers/gpu/drm/bridge/ptn3460.c
@@ -400,7 +400,6 @@ static struct i2c_driver ptn3460_driver = {
.remove = ptn3460_remove,
.driver = {
.name   = "nxp,ptn3460",
-   .owner  = THIS_MODULE,
.of_match_table = ptn3460_match,
},
 };
-- 
1.9.1



[PATCH] Drop owner assignment from i2c_driver (and platform left-overs)

2015-07-10 Thread Krzysztof Kozlowski
Hi,


The i2c drivers also do not have to set 'owner' field because
i2c_register_driver() will do it instead.

'owner' is removed from i2c drivers, which I was able to compile
with allyesconfig (arm, arm64, i386, x86_64, ppc64).
Only compile-tested.

The coccinelle script which generated the patch was sent here:
http://www.spinics.net/lists/kernel/msg2029903.html


Best regards,
Krzysztof


Krzysztof Kozlowski (2):
  drm/bridge: Drop owner assignment from i2c_driver
  drm/rockchip: Drop owner assignment from platform_driver

 drivers/gpu/drm/bridge/ps8622.c | 1 -
 drivers/gpu/drm/bridge/ptn3460.c| 1 -
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
 3 files changed, 3 deletions(-)

-- 
1.9.1



[PATCH v7 4/4] arm/dts/ls1021a: Add a TFT LCD panel dts node

2015-07-10 Thread Jianwei Wang
Add a TFT LCD panel. the TFT LCD panel is WQVGA "480x272",
and the bpp is 24.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---
 arch/arm/boot/dts/ls1021a-twr.dts | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/ls1021a-twr.dts 
b/arch/arm/boot/dts/ls1021a-twr.dts
index a2c591e..f6ad7ba 100644
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -56,6 +56,17 @@
enet0_sgmii_phy = &sgmii_phy2;
enet1_sgmii_phy = &sgmii_phy0;
};
+
+   panel: panel {
+   compatible = "nec,nl4827hc19_05b";
+   };
+
+};
+
+&dcu {
+   panel = <&panel>;
+   status = "okay";
+
 };

 &dspi1 {
-- 
2.1.0.27.g96db324



[PATCH v7 3/4] arm/dts/ls1021a: Add DCU dts node

2015-07-10 Thread Jianwei Wang
Add DCU node, DCU is a display controller of Freescale
named 2D-ACE.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---
 .../devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt| 49 ++
 MAINTAINERS|  1 +
 arch/arm/boot/dts/ls1021a.dtsi | 10 +
 3 files changed, 60 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt

diff --git a/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt 
b/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt
new file mode 100644
index 000..d65631d
--- /dev/null
+++ b/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt
@@ -0,0 +1,49 @@
+Device Tree bindings for Freescale DCU DRM Driver
+
+Required properties:
+- compatible:   Should be one of
+   * "fsl,ls1021a-dcu".
+   * "fsl,vf610-dcu".
+- reg:  Address and length of the register set for dcu.
+- clocks:   From common clock binding: handle to dcu clock.
+- clock-names:  From common clock binding: Shall be "dcu".
+- display:  The phandle to display node.
+
+Required properties:
+- bits-per-pixel:   <16> for RGB565,
+   <24> for RGB888,
+   <32> for RGB.
+
+Required timing node for dispplay sub-node:
+- display-timings:  Refer to binding doc display-timing.txt for details.
+
+Examples:
+dcu: dcu at 2ce {
+   compatible = "fsl,ls1021a-dcu";
+   reg = <0x0 0x2ce 0x0 0x1>;
+   clocks = <&platform_clk 0>;
+   clock-names = "dcu";
+   big-endian;
+   display = <&display>;
+
+   display: display at 0 {
+   bits-per-pixel = <24>;
+
+   display-timings {
+   native-mode = <&timing0>;
+   timing0: nl4827hc19 {
+   clock-frequency = <1087>;
+   hactive = <480>;
+   vactive = <272>;
+   hback-porch = <2>;
+   hfront-porch = <2>;
+   vback-porch = <1>;
+   vfront-porch = <1>;
+   hsync-len = <41>;
+   vsync-len = <2>;
+   hsync-active = <1>;
+   vsync-active = <1>;
+   };
+   };
+   };
+};
diff --git a/MAINTAINERS b/MAINTAINERS
index e191ded..fffb8c9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3410,6 +3410,7 @@ M:Alison Wang 
 L: dri-devel at lists.freedesktop.org
 S: Supported
 F: drivers/gpu/drm/fsl-dcu/
+F:  Documentation/devicetree/bindings/drm/fsl-dcu/
 F:  Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

 DRM DRIVERS FOR NVIDIA TEGRA
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index c70bb27..6d6e3e2 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -383,6 +383,16 @@
 <&platform_clk 1>;
};

+   dcu: dcu at 2ce {
+   compatible = "fsl,ls1021a-dcu";
+   reg = <0x0 0x2ce 0x0 0x1>;
+   interrupts = ;
+   clocks = <&platform_clk 0>;
+   clock-names = "dcu";
+   big-endian;
+   status = "disabled";
+   };
+
mdio0: mdio at 2d24000 {
compatible = "gianfar";
device_type = "mdio";
-- 
2.1.0.27.g96db324



[PATCH v7 2/4] drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel

2015-07-10 Thread Jianwei Wang
This adds support for the  NEC NL4827HC19-05B 480x272 panel to the DRM
simple panel driver.

Signed-off-by: Jianwei Wang 
---
 .../bindings/panel/nec,nl4827hc19_05b.txt  |  7 ++
 .../devicetree/bindings/vendor-prefixes.txt|  1 +
 MAINTAINERS|  1 +
 drivers/gpu/drm/panel/panel-simple.c   | 26 ++
 4 files changed, 35 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

diff --git a/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt 
b/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt
new file mode 100644
index 000..20e9473
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt
@@ -0,0 +1,7 @@
+NEC LCD Technologies,Ltd. WQVGA TFT LCD panel
+
+Required properties:
+- compatible: should be "nec,nl4827hc19_05b"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 8033919..9f22b3e 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -131,6 +131,7 @@ mundoreader Mundo Reader S.L.
 murata Murata Manufacturing Co., Ltd.
 mxicy  Macronix International Co., Ltd.
 national   National Semiconductor
+necNEC LCD Technologies, Ltd.
 neonodeNeonode Inc.
 netgearNETGEAR
 netlogic   Broadcom Corporation (formerly NetLogic Microsystems)
diff --git a/MAINTAINERS b/MAINTAINERS
index b25b948..e191ded 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3410,6 +3410,7 @@ M:Alison Wang 
 L: dri-devel at lists.freedesktop.org
 S: Supported
 F: drivers/gpu/drm/fsl-dcu/
+F:  Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

 DRM DRIVERS FOR NVIDIA TEGRA
 M: Thierry Reding 
diff --git a/drivers/gpu/drm/panel/panel-simple.c 
b/drivers/gpu/drm/panel/panel-simple.c
index f94201b..eee95f4 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1036,6 +1036,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = 
{
.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 };

+static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
+   .clock = 10870,
+   .hdisplay = 480,
+   .hsync_start = 480 + 2,
+   .hsync_end = 480 + 2 + 41,
+   .htotal = 480 + 2 + 41 + 2,
+   .vdisplay = 272,
+   .vsync_start = 272 + 2,
+   .vsync_end = 272 + 2 + 4,
+   .vtotal = 272 + 2 + 4 + 2,
+   .vrefresh = 74,
+};
+
+static const struct panel_desc nec_nl4827hc19_05b = {
+   .modes = &nec_nl4827hc19_05b_mode,
+   .num_modes = 1,
+   .size = {
+   .width = 480,
+   .height = 272,
+   },
+   .bus_format = MEDIA_BUS_FMT_RGB888_1X24
+};
+
 static const struct of_device_id platform_of_match[] = {
{
.compatible = "ampire,am800480r3tmqwa1h",
@@ -1125,6 +1148,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "shelly,sca07010-bfn-lnn",
.data = &shelly_sca07010_bfn_lnn,
}, {
+   .compatible = "nec,nl4827hc19_05b",
+   .data = &nec_nl4827hc19_05b,
+   }, {
/* sentinel */
}
 };
-- 
2.1.0.27.g96db324



[PATCH v7 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Jianwei Wang
This patch add support for Two Dimensional Animation and Compositing
Engine (2D-ACE) on the Freescale SoCs.

2D-ACE is a Freescale display controller. 2D-ACE describes
the functionality of the module extremely well its name is a value
that cannot be used as a token in programming languages.
Instead the valid token "DCU" is used to tag the register names and
function names.

The Display Controller Unit (DCU) module is a system master that
fetches graphics stored in internal or external memory and displays
them on a TFT LCD panel. A wide range of panel sizes is supported
and the timing of the interface signals is highly configurable.
Graphics are read directly from memory and then blended in real-time,
which allows for dynamic content creation with minimal CPU
intervention.

The features:
(1) Full RGB888 output to TFT LCD panel.
(2) For the current LCD panel, WQVGA "480x272" is supported.
(3) Blending of each pixel using up to 4 source layers
dependent on size of panel.
(4) Each graphic layer can be placed with one pixel resolution
in either axis.
(5) Each graphic layer support RGB565 and RGB888 direct colors
without alpha
channel and BGRA BGRA ARGB1555 direct colors with an
alpha channel and
YUV422 format.
(6) Each graphic layer support alpha blending with 8-bit
resolution.

This is a simplified version, only one primary plane, one
framebuffer created for
fbdev, one crtc, one connector for TFT LCD panel, an encoder.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---


Changed in V7

- Remove redundant functions and replace deprecated hooker
Adviced by Daniel Vetter
- Replace drm_platform_init with drm_dev_alloc/register
Adviced by Daniel Vetter

Changed in V6

- Add NEC nl4827hc19_05b panel to panel-simple.c
Adviced by Mark Yao
- Add DRIVER_ATOMIC for driver_features
Adviced by Mark Yao
- check fsl_dev if it's NULL at PM suspend/resume
Adviced by Mark Yao

Changed in V5

- Update commit message
- Add layer registers initialization
- Remove unused functions
- Rename driver folder
Adviced by Stefan Agner
- Move pixel clock control functions to fsl_dcu_drm_drv.c
- remove redundant enable the clock implicitly using regmap
- Add maintainer message

Changed in V4:

-This version doesn't have functionality changed
Just a minor adjustment.

Changed in V3:

- Test driver on Vybrid board and add compatible string
- Remove unused functions
- set default crtc for encoder
- replace legacy functions with atomic help functions
Adviced by Daniel Vetter
- Set the unique name of the DRM device
- Implement irq handle function for vblank interrupt

Changed in v2: 
- Add atomic support
Adviced by Daniel Vetter
- Modify bindings file
- Rename node for compatibility
- Move platform related code out for compatibility
Adviced by Stefan Agner


 MAINTAINERS |   7 +
 drivers/gpu/drm/Kconfig |   2 +
 drivers/gpu/drm/Makefile|   1 +
 drivers/gpu/drm/fsl-dcu/Kconfig |  18 ++
 drivers/gpu/drm/fsl-dcu/Makefile|   7 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c | 183 +++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h |  31 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c  | 159 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h  |  22 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c   | 401 
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h   | 223 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c |  26 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c   |  42 +++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h   |  17 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 195 
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h |  23 ++
 16 files changed, 1357 insertions(+)
 create mode 100644 drivers/gpu/drm/fsl-dcu/Kconfig
 create mode 100644 drivers/gpu/drm/fsl-dcu/Makefile
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 6761318..b25b948 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3404,6 +3404,13 @@ S:   Maintained
 F: drivers/gpu/drm/imx/
 F: Documentation/devicetree/bindings/drm/imx/

+DRM DRIVERS FOR FREESCALE DCU
+M: Jianwei Wang 
+M: Alison Wang 
+L: dri-devel at lists.freedesktop.org
+S: Sup

[PATCH] drm/i915: Use drm_for_each_fb in i915_debugfs.c

2015-07-10 Thread Daniel Vetter
Just so I have a user for this macro.

v2: Use the right macro - somehow I thought gcc should scream at me,
but list_for_each isn't really typesafe unfortunately. Spotted by
Ville.

Cc: Ville Syrjälä 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/i915/i915_debugfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 053adbb97037..ab8364984a89 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1855,6 +1855,7 @@ static int i915_gem_framebuffer_info(struct seq_file *m, 
void *data)
struct drm_device *dev = node->minor->dev;
struct intel_fbdev *ifbdev = NULL;
struct intel_framebuffer *fb;
+   struct drm_framebuffer *drm_fb;

 #ifdef CONFIG_DRM_I915_FBDEV
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -1874,7 +1875,8 @@ static int i915_gem_framebuffer_info(struct seq_file *m, 
void *data)
 #endif

mutex_lock(&dev->mode_config.fb_lock);
-   list_for_each_entry(fb, &dev->mode_config.fb_list, base.head) {
+   drm_for_each_fb(drm_fb, dev) {
+   fb = to_intel_framebuffer(drm_fb);
if (ifbdev && &fb->base == ifbdev->helper.fb)
continue;

-- 
2.1.4



[PATCH v7 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Daniel Vetter
On Fri, Jul 10, 2015 at 07:17:40PM +0800, Jianwei Wang wrote:
> This patch add support for Two Dimensional Animation and Compositing
> Engine (2D-ACE) on the Freescale SoCs.
> 
> 2D-ACE is a Freescale display controller. 2D-ACE describes
> the functionality of the module extremely well its name is a value
> that cannot be used as a token in programming languages.
> Instead the valid token "DCU" is used to tag the register names and
> function names.
> 
> The Display Controller Unit (DCU) module is a system master that
> fetches graphics stored in internal or external memory and displays
> them on a TFT LCD panel. A wide range of panel sizes is supported
> and the timing of the interface signals is highly configurable.
> Graphics are read directly from memory and then blended in real-time,
> which allows for dynamic content creation with minimal CPU
> intervention.
> 
> The features:
> (1) Full RGB888 output to TFT LCD panel.
> (2) For the current LCD panel, WQVGA "480x272" is supported.
> (3) Blending of each pixel using up to 4 source layers
> dependent on size of panel.
> (4) Each graphic layer can be placed with one pixel resolution
> in either axis.
> (5) Each graphic layer support RGB565 and RGB888 direct colors
> without alpha
> channel and BGRA BGRA ARGB1555 direct colors with an
> alpha channel and
> YUV422 format.
> (6) Each graphic layer support alpha blending with 8-bit
> resolution.
> 
> This is a simplified version, only one primary plane, one
> framebuffer created for
> fbdev, one crtc, one connector for TFT LCD panel, an encoder.
> 
> Signed-off-by: Alison Wang 
> Signed-off-by: Xiubo Li 
> Signed-off-by: Jianwei Wang 

Can't find any other use of deprecated functions or legacy code patterns
or anything else that we've recently started cleaning up, looks good. No
detailed review though (for one I lack hw docs).

Acked-by: Daniel Vetter 

Might be good to get some cross-review from some other arm soc drm driver
team, then send a pull request to Dave for 4.3.

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Daniel Vetter
On Fri, Jul 10, 2015 at 10:43:11AM +, Wang J.W. wrote:
> Hi Daniel,
> 
> Thank you very much for your review!
> See below...
> 
> > -Original Message-
> > From: Daniel Vetter [mailto:daniel.vetter at ffwll.ch] On Behalf Of Daniel
> > Vetter
> > Sent: Friday, July 10, 2015 4:00 PM
> > To: Wang Jianwei-B52261
> > Cc: dri-devel at lists.freedesktop.org; linux-kernel at vger.kernel.org; 
> > linux-
> > arm-kernel at lists.infradead.org; devicetree at vger.kernel.org;
> > airlied at linux.ie; daniel.vetter at ffwll.ch; mark.yao at rock-chips.com; 
> > Wood
> > Scott-B07421; Wang Huan-B18965; Xiubo Li
> > Subject: Re: [PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver
> > 
> > On Fri, Jul 10, 2015 at 03:26:52PM +0800, Jianwei Wang wrote:
> > > + .atomic_check = fsl_dcu_drm_encoder_atomic_check,
> > 
> > .atomic_check is optional
> > 
> 
> I try to remove .atomic_check, but it will cause CPU hang when starting up
> And I find this in drivers/gpu/drm/drm_atomic_helper.c
> 
>  293 if (funcs->atomic_check) {
>  294 ret = funcs->atomic_check(encoder, crtc_state,
>  295   conn_state);
>  296 if (ret) {
>  297 DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] check 
> failed\n",
>  298  encoder->base.id, 
> encoder->name);
>  299 return ret;
>  300 }
>  301 } else {
>  302 ret = funcs->mode_fixup(encoder, 
> &crtc_state->mode,
>  303 
> &crtc_state->adjusted_mode);
>  304 if (!ret) {
>  305 DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] fixup 
> failed\n",
>  306  encoder->base.id, 
> encoder->name);
>  307 return -EINVAL;
>  308 }
>  309 }
> It means that I have to implement at least one of atomic_check and mode_fixup.
> So I reserve atomic_check.
> Is there problem? Please give me some more comments if necessary. Thanks!

Ah sorry you are right, atomic check is not optional. Unfortunately the
optional-or-not thing has grown a bit organically so there's no clear
rules.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


Device enumeration support in libdrm

2015-07-10 Thread Emil Velikov
On 9 July 2015 at 03:26, Zhou, Jammy  wrote:
> Although I don't like the method of manually iterating sysfs, it seems the 
> last resort if we want to avoid introducing libudev dependency.
>
I have the same feeling, so if anyone can come with an better solution
I'm all ears.

> Besides, you mentioned that you would spend some time on the device 
> enumeration interface, do you have some chance to look at it?
>
Not really bth. Waiting for a month someone to ack the revert inspired
me to push this at the bottom on my list. Now that there is some
interest I'll bring it back up.

-Emil


[Intel-gfx] [v3 0/7] Crystalcove (CRC) PMIC based panel and pwm control

2015-07-10 Thread Shobhit Kumar
On Mon, Jun 29, 2015 at 3:48 AM, Paul Gortmaker
 wrote:
> [Re: [Intel-gfx] [v3 0/7] Crystalcove (CRC) PMIC based panel and pwm control] 
> On 26/06/2015 (Fri 20:47) Ville Syrjälä wrote:
>
>> On Fri, Jun 26, 2015 at 06:31:37PM +0200, Daniel Vetter wrote:
>> > On Fri, Jun 26, 2015 at 02:32:03PM +0530, Shobhit Kumar wrote:
>> > > Hi,
>> > > Next update of the series reviewed at
>> > > https://lkml.org/lkml/2015/6/22/155
>> > >
>> > > Major changes are few review comments from Varka and Ville being 
>> > > addressed. Also except
>> > > for intel-gfx patches, all patches reviesion history is moved out of 
>> > > commit message.
>> > >
>> > > Hope this series finally finds its mark.
>> > >
>> > > Regards
>> > > Shobhit
>> > >
>> > > Shobhit Kumar (7):
>> > >   gpiolib: Add support for removing registered consumer lookup table
>> > >   mfd: intel_soc_pmic_core: Add lookup table for Panel Control as GPIO
>> > > signal
>> > >   mfd: intel_soc_pmic_crc: Add PWM cell device for Crystalcove PMIC
>> > >   mfd: intel_soc_pmic_core: ADD PWM lookup table for CRC PMIC based PWM
>> > >   pwm: crc: Add Crystalcove (CRC) PWM driver
>> > >   drm/i915: Use the CRC gpio for panel enable/disable
>> > >   drm/i915: Backlight control using CRC PMIC based PWM driver
>> >
>> > I think we have r-b/acks on all the patches now. Ok if I pull this in
>> > through drm-intel.git for 4.3? Or should I make a topic branch with tag
>> > and then send out pull requests to everyone? Or will each maintainer merge
>> > on their own since it's all only coupled at runtime anyway? Any of these
>> > would suit me.
>>
>> I forgot to mention that I had a build failure due to
>> builtin_platform_driver() when I tried this (just changed it to
>> module_platform_driver() to get past it). So I'm not sure if this
>> now depends on some tree which isn't included in -nightly...
>
> builtin_platform_register does not yet exist in mainline; as Paul (the
> other one) said earlier.  So you can either open-code what it does for
> now, or use  module_platform_register.  If you do the latter, then
> ensure you (temorarily) also include module.h or you risk additional
> breakage in the future.
>

Guess its in mainline now. Whats the plan for the merge of these patches ?

Regards
Shobhit

> Paul.
> --
>
>>
>> --
>> Ville Syrjälä
>> Intel OTC
> ___
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Bug 91294] [R7 370] DPM and power profile change crash the system

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91294

--- Comment #4 from Elia Argentieri  ---
Created attachment 117037
  --> https://bugs.freedesktop.org/attachment.cgi?id=117037&action=edit
Xorg.log

-- 
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/20150710/1c4c1608/attachment-0001.html>


[Bug 91294] [R7 370] DPM and power profile change crash the system

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91294

Elia Argentieri  changed:

   What|Removed |Added

 Attachment #117032|0   |1
is obsolete||

--- Comment #3 from Elia Argentieri  ---
Created attachment 117036
  --> https://bugs.freedesktop.org/attachment.cgi?id=117036&action=edit
Full dmesg with radeon.dpm=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/20150710/51f84869/attachment.html>


[Bug 76490] Hang during boot when DPM is on (R9 270X)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=76490

--- Comment #43 from Tobias Droste  ---
I don't think the voltage is a problem as the voltage used by the linux driver
seems to be the same as by the windows driver.
For my card it's 1238mV for high(er) clocks in windows and linux. I even tried
to set 1238mV for all power profiles in the bios and it was still not working
as expected.

All these cards seem to use GDDR5 VRAM. Maybe the driver has to do something
different for this type of RAM?

-- 
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/20150710/700bdfba/attachment.html>


[Bug 91294] [R7 370] DPM and power profile change crash the system

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91294

--- Comment #2 from Elia Argentieri  ---
Created attachment 117035
  --> https://bugs.freedesktop.org/attachment.cgi?id=117035&action=edit
VBIOS MSI R7 370 Armor 2X

-- 
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/20150710/9a1abdd9/attachment.html>


[Bug 76490] Hang during boot when DPM is on (R9 270X)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=76490

--- Comment #42 from Daniel Exner  ---
My best guess is that clocks are propably ok, but voltage is too low, perhaps
confused by the fact that all of those cards are "factory overclocked".

-- 
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/20150710/5ceef297/attachment.html>


[Bug 91294] [R7 370] DPM and power profile change crash the system

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91294

--- Comment #1 from Alex Deucher  ---
Please attach your full dmesg output and xorg log.  Also attach a copy of your
vbios.

(as root)
(use lspci to get the bus id)
cd /sys/bus/pci/devices/
echo 1 > rom
cat rom > /tmp/vbios.rom
echo 0 > rom

-- 
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/20150710/de454fb4/attachment.html>


[Bug 76490] Hang during boot when DPM is on (R9 270X)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=76490

--- Comment #41 from Alex Deucher  ---
(In reply to Tobias Droste from comment #40)
> 
> Do you think it's a problem with the kernel code or with the firmware? Does
> windows use the same firmware for DPM?

I think it's probably a driver bug.  Windows and Linux use the same ucode.

-- 
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/20150710/a8b39ddf/attachment.html>


[Bug 76490] Hang during boot when DPM is on (R9 270X)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=76490

--- Comment #40 from Tobias Droste  ---
Ah sorry the difference in the bios versions was me. I fiddled with it to try
to get it to boot in linux without the workaround in the kernel. 
You are correct in linux and windows they are the same but GPU-Z seems to add
some padding to the end.

Here's another one with a pitcairn where DPM is not working:
http://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/open-source-amd-linux/809784-r7-370-msi-armor-2x-2gb

Do you think it's a problem with the kernel code or with the firmware? Does
windows use the same firmware for DPM?

-- 
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/20150710/23fd1c91/attachment.html>


[PATCH] drm/msm: Enable clocks during enable/disable_vblank() callbacks

2015-07-10 Thread Hai Li
AHB clock should be enabled before accessing registers during
enable/disable_vblank(). Since these 2 callbacks are called in
atomic context while clk_prepare may cause thread sleep, a work
is scheduled to control vblanks.

Signed-off-by: Hai Li 
---
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c |  9 
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c |  9 
 drivers/gpu/drm/msm/msm_drv.c   | 73 -
 drivers/gpu/drm/msm/msm_drv.h   |  8 
 4 files changed, 97 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c 
b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
index 7369ee7f..64d24fc 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
@@ -86,13 +86,22 @@ irqreturn_t mdp4_irq(struct msm_kms *kms)

 int mdp4_enable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
 {
+   struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
+
+   mdp4_enable(mdp4_kms);
mdp_update_vblank_mask(to_mdp_kms(kms),
mdp4_crtc_vblank(crtc), true);
+   mdp4_disable(mdp4_kms);
+
return 0;
 }

 void mdp4_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
 {
+   struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
+
+   mdp4_enable(mdp4_kms);
mdp_update_vblank_mask(to_mdp_kms(kms),
mdp4_crtc_vblank(crtc), false);
+   mdp4_disable(mdp4_kms);
 }
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c 
b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
index 33bd4c6..2a578f2 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
@@ -112,15 +112,24 @@ irqreturn_t mdp5_irq(struct msm_kms *kms)

 int mdp5_enable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
 {
+   struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(kms));
+
+   mdp5_enable(mdp5_kms);
mdp_update_vblank_mask(to_mdp_kms(kms),
mdp5_crtc_vblank(crtc), true);
+   mdp5_disable(mdp5_kms);
+
return 0;
 }

 void mdp5_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
 {
+   struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(kms));
+
+   mdp5_enable(mdp5_kms);
mdp_update_vblank_mask(to_mdp_kms(kms),
mdp5_crtc_vblank(crtc), false);
+   mdp5_disable(mdp5_kms);
 }

 /*
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index b7ef56e..5265933 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -116,6 +116,65 @@ u32 msm_readl(const void __iomem *addr)
return val;
 }

+struct vblank_event {
+   struct list_head node;
+   int crtc_id;
+   bool enable;
+};
+
+static void vblank_ctrl_worker(struct work_struct *work)
+{
+   struct msm_vblank_ctrl *vbl_ctrl = container_of(work,
+   struct msm_vblank_ctrl, work);
+   struct msm_drm_private *priv = container_of(vbl_ctrl,
+   struct msm_drm_private, vblank_ctrl);
+   struct msm_kms *kms = priv->kms;
+   struct vblank_event *vbl_ev, *tmp;
+   unsigned long flags;
+
+   spin_lock_irqsave(&vbl_ctrl->lock, flags);
+   list_for_each_entry_safe(vbl_ev, tmp, &vbl_ctrl->event_list, node) {
+   list_del(&vbl_ev->node);
+   spin_unlock_irqrestore(&vbl_ctrl->lock, flags);
+
+   if (vbl_ev->enable)
+   kms->funcs->enable_vblank(kms,
+   priv->crtcs[vbl_ev->crtc_id]);
+   else
+   kms->funcs->disable_vblank(kms,
+   priv->crtcs[vbl_ev->crtc_id]);
+
+   kfree(vbl_ev);
+
+   spin_lock_irqsave(&vbl_ctrl->lock, flags);
+   }
+
+   spin_unlock_irqrestore(&vbl_ctrl->lock, flags);
+}
+
+static int vblank_ctrl_queue_work(struct msm_drm_private *priv,
+   int crtc_id, bool enable)
+{
+   struct msm_vblank_ctrl *vbl_ctrl = &priv->vblank_ctrl;
+   struct vblank_event *vbl_ev;
+   unsigned long flags;
+
+   vbl_ev = kzalloc(sizeof(*vbl_ev), GFP_ATOMIC);
+   if (!vbl_ev)
+   return -ENOMEM;
+
+   vbl_ev->crtc_id = crtc_id;
+   vbl_ev->enable = enable;
+
+   spin_lock_irqsave(&vbl_ctrl->lock, flags);
+   list_add_tail(&vbl_ev->node, &vbl_ctrl->event_list);
+   spin_unlock_irqrestore(&vbl_ctrl->lock, flags);
+
+   queue_work(priv->wq, &vbl_ctrl->work);
+
+   return 0;
+}
+
 /*
  * DRM operations:
  */
@@ -125,6 +184,14 @@ static int msm_unload(struct drm_device *dev)
struct msm_drm_private *priv = dev->dev_private;
struct msm_kms *kms = priv->kms;
struct msm_gpu *gpu = priv->gpu;
+   struct msm_vblank_ctrl *vbl_ctrl = &priv->vblank_ctrl;
+   struct vblank_event *vbl_ev, *tmp;
+
+   cancel_work_sync(&vbl_ctrl-

[Bug 91294] [R7 370] DPM and power profile change crash the system

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91294

Bug ID: 91294
   Summary: [R7 370] DPM and power profile change crash the system
   Product: DRI
   Version: unspecified
  Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
  Severity: major
  Priority: medium
 Component: DRM/Radeon
  Assignee: dri-devel at lists.freedesktop.org
  Reporter: elia.argentieri at openmailbox.org

Created attachment 117032
  --> https://bugs.freedesktop.org/attachment.cgi?id=117032&action=edit
dmesg | grep radeon with radeon.dpm=0

My system is unable to boot with an MSI R7 370 Armor 2X unless I put
radeon.dpm=0 (or nomodeset) to the boot parameter.

Also any change to the power profile results in an immediate lock up with blank
screen or, sometimes, black and white vertical stripes.

I think my issue is related with #77394 and #76490. Probably wrong frequency or
voltages given that the MSI R7 370 Gaming 4G (which is the better version with
higher frequency) works with DPM
(http://www.phoronix.com/scan.php?page=article&item=linux-411-gallium&num=1)

Tested with Linux 3.16, 4.0 and 4.1.

lspci -nnk | grep VGA:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
[AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] [1002:6811] (rev 81)

-- 
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/20150710/62f980ed/attachment.html>


[PATCH] drm: Drop owner assignment from i2c_driver

2015-07-10 Thread Krzysztof Kozlowski
On 10.07.2015 15:50, Mark yao wrote:
> On 2015年07月10日 13:36, Krzysztof Kozlowski wrote:
>> i2c_driver does not need to set an owner because i2c_register_driver()
>> will set it.
>>
>> Signed-off-by: Krzysztof Kozlowski 
>>
>> ---
>>
>> The coccinelle script which generated the patch was sent here:
>> http://www.spinics.net/lists/kernel/msg2029903.html
>> ---
>>   drivers/gpu/drm/bridge/ps8622.c | 1 -
>>   drivers/gpu/drm/bridge/ptn3460.c| 1 -
>>   drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
>>   3 files changed, 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/bridge/ps8622.c
>> b/drivers/gpu/drm/bridge/ps8622.c
>> index 1a6607beb29f..be881e9fef8f 100644
>> --- a/drivers/gpu/drm/bridge/ps8622.c
>> +++ b/drivers/gpu/drm/bridge/ps8622.c
>> @@ -668,7 +668,6 @@ static struct i2c_driver ps8622_driver = {
>>   .remove= ps8622_remove,
>>   .driver= {
>>   .name= "ps8622",
>> -.owner= THIS_MODULE,
>>   .of_match_table = ps8622_devices,
>>   },
>>   };
>> diff --git a/drivers/gpu/drm/bridge/ptn3460.c
>> b/drivers/gpu/drm/bridge/ptn3460.c
>> index 1b1bf2384815..0ffa3a6a206a 100644
>> --- a/drivers/gpu/drm/bridge/ptn3460.c
>> +++ b/drivers/gpu/drm/bridge/ptn3460.c
>> @@ -400,7 +400,6 @@ static struct i2c_driver ptn3460_driver = {
>>   .remove= ptn3460_remove,
>>   .driver= {
>>   .name= "nxp,ptn3460",
>> -.owner= THIS_MODULE,
>>   .of_match_table = ptn3460_match,
>>   },
>>   };
>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>> b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>> index 01b558fe3695..9a0c2911272a 100644
>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>> @@ -555,7 +555,6 @@ static struct platform_driver
>> rockchip_drm_platform_driver = {
>>   .probe = rockchip_drm_platform_probe,
>>   .remove = rockchip_drm_platform_remove,
>>   .driver = {
>> -.owner = THIS_MODULE,
> 
> But rockchip drm is platform driver not i2c_driver, why remove its .owner ?

Oh, indeed. Thanks for spotting this.

The 'owner' is set by core for platform drivers as well. Most platform
drivers were already converted (I think by Wolfram Sang). I extended
existing coccinelle script to fix also i2c_drivers and sometimes did not
notice that it was platform_driver.

I can split it into two different patches. Would that be ok?

Best regards,
Krzysztof



[PATCH v6 4/4] arm/dts/ls1021a: Add a TFT LCD panel dts node

2015-07-10 Thread Jianwei Wang
Add a TFT LCD panel node. the TFT LCD panel is
WQVGA "480x272", and the bpp is 24.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---
 arch/arm/boot/dts/ls1021a-twr.dts | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/ls1021a-twr.dts 
b/arch/arm/boot/dts/ls1021a-twr.dts
index a2c591e..f6ad7ba 100644
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -56,6 +56,17 @@
enet0_sgmii_phy = &sgmii_phy2;
enet1_sgmii_phy = &sgmii_phy0;
};
+
+   panel: panel {
+   compatible = "nec,nl4827hc19_05b";
+   };
+
+};
+
+&dcu {
+   panel = <&panel>;
+   status = "okay";
+
 };

 &dspi1 {
-- 
2.1.0.27.g96db324



[PATCH v6 3/4] arm/dts/ls1021a: Add DCU dts node

2015-07-10 Thread Jianwei Wang
Add DCU node, DCU is a display controller of Freescale
named 2D-ACE.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---
 .../devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt| 49 ++
 MAINTAINERS|  1 +
 arch/arm/boot/dts/ls1021a.dtsi | 10 +
 3 files changed, 60 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt

diff --git a/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt 
b/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt
new file mode 100644
index 000..d65631d
--- /dev/null
+++ b/Documentation/devicetree/bindings/drm/fsl-dcu/fsl,dcu.txt
@@ -0,0 +1,49 @@
+Device Tree bindings for Freescale DCU DRM Driver
+
+Required properties:
+- compatible:   Should be one of
+   * "fsl,ls1021a-dcu".
+   * "fsl,vf610-dcu".
+- reg:  Address and length of the register set for dcu.
+- clocks:   From common clock binding: handle to dcu clock.
+- clock-names:  From common clock binding: Shall be "dcu".
+- display:  The phandle to display node.
+
+Required properties:
+- bits-per-pixel:   <16> for RGB565,
+   <24> for RGB888,
+   <32> for RGB.
+
+Required timing node for dispplay sub-node:
+- display-timings:  Refer to binding doc display-timing.txt for details.
+
+Examples:
+dcu: dcu at 2ce {
+   compatible = "fsl,ls1021a-dcu";
+   reg = <0x0 0x2ce 0x0 0x1>;
+   clocks = <&platform_clk 0>;
+   clock-names = "dcu";
+   big-endian;
+   display = <&display>;
+
+   display: display at 0 {
+   bits-per-pixel = <24>;
+
+   display-timings {
+   native-mode = <&timing0>;
+   timing0: nl4827hc19 {
+   clock-frequency = <1087>;
+   hactive = <480>;
+   vactive = <272>;
+   hback-porch = <2>;
+   hfront-porch = <2>;
+   vback-porch = <1>;
+   vfront-porch = <1>;
+   hsync-len = <41>;
+   vsync-len = <2>;
+   hsync-active = <1>;
+   vsync-active = <1>;
+   };
+   };
+   };
+};
diff --git a/MAINTAINERS b/MAINTAINERS
index 9047c2b..b8d6ef5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3410,6 +3410,7 @@ M:Alison Wang 
 L: dri-devel at lists.freedesktop.org
 S: Supported
 F: drivers/gpu/drm/fsl-dcu/
+F: Documentation/devicetree/bindings/drm/fsl-dcu/
 F: Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

 DRM DRIVERS FOR NVIDIA TEGRA
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index c70bb27..6d6e3e2 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -383,6 +383,16 @@
 <&platform_clk 1>;
};

+   dcu: dcu at 2ce {
+   compatible = "fsl,ls1021a-dcu";
+   reg = <0x0 0x2ce 0x0 0x1>;
+   interrupts = ;
+   clocks = <&platform_clk 0>;
+   clock-names = "dcu";
+   big-endian;
+   status = "disabled";
+   };
+
mdio0: mdio at 2d24000 {
compatible = "gianfar";
device_type = "mdio";
-- 
2.1.0.27.g96db324



[PATCH v6 2/4] drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel

2015-07-10 Thread Jianwei Wang
This adds support for the  NEC NL4827HC19-05B 480x272 panel to
the DRM simple panel driver.

Signed-off-by: Jianwei Wang 
---
 .../bindings/panel/nec,nl4827hc19_05b.txt  |  8 +++
 .../devicetree/bindings/vendor-prefixes.txt|  1 +
 MAINTAINERS|  1 +
 drivers/gpu/drm/panel/panel-simple.c   | 26 ++
 4 files changed, 36 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

diff --git a/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt 
b/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt
new file mode 100644
index 000..6f6dbdd
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt
@@ -0,0 +1,7 @@
+NEC LCD Technologies,Ltd. WQVGA TFT LCD panel
+
+Required properties:
+- compatible: should be "nec,nl4827hc19_05b"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 8033919..9f22b3e 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -131,6 +131,7 @@ mundoreader Mundo Reader S.L.
 murata Murata Manufacturing Co., Ltd.
 mxicy  Macronix International Co., Ltd.
 national   National Semiconductor
+necNEC LCD Technologies, Ltd.
 neonodeNeonode Inc.
 netgearNETGEAR
 netlogic   Broadcom Corporation (formerly NetLogic Microsystems)
diff --git a/MAINTAINERS b/MAINTAINERS
index b25b948..9047c2b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3410,6 +3410,7 @@ M:Alison Wang 
 L: dri-devel at lists.freedesktop.org
 S: Supported
 F: drivers/gpu/drm/fsl-dcu/
+F: Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt

 DRM DRIVERS FOR NVIDIA TEGRA
 M: Thierry Reding 
diff --git a/drivers/gpu/drm/panel/panel-simple.c 
b/drivers/gpu/drm/panel/panel-simple.c
index f94201b..eee95f4 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1036,6 +1036,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = 
{
.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 };

+static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
+   .clock = 10870,
+   .hdisplay = 480,
+   .hsync_start = 480 + 2,
+   .hsync_end = 480 + 2 + 41,
+   .htotal = 480 + 2 + 41 + 2,
+   .vdisplay = 272,
+   .vsync_start = 272 + 2,
+   .vsync_end = 272 + 2 + 4,
+   .vtotal = 272 + 2 + 4 + 2,
+   .vrefresh = 74,
+};
+
+static const struct panel_desc nec_nl4827hc19_05b = {
+   .modes = &nec_nl4827hc19_05b_mode,
+   .num_modes = 1,
+   .size = {
+   .width = 480,
+   .height = 272,
+   },
+   .bus_format = MEDIA_BUS_FMT_RGB888_1X24
+};
+
 static const struct of_device_id platform_of_match[] = {
{
.compatible = "ampire,am800480r3tmqwa1h",
@@ -1125,6 +1148,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "shelly,sca07010-bfn-lnn",
.data = &shelly_sca07010_bfn_lnn,
}, {
+   .compatible = "nec,nl4827hc19_05b",
+   .data = &nec_nl4827hc19_05b,
+   }, {
/* sentinel */
}
 };
--
2.1.0.27.g96db324



[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Jianwei Wang
This patch add support for Two Dimensional Animation and Compositing
Engine (2D-ACE) on the Freescale SoCs.

2D-ACE is a Freescale display controller. 2D-ACE describes
the functionality of the module extremely well its name is a value
that cannot be used as a token in programming languages.
Instead the valid token "DCU" is used to tag the register names and
function names.

The Display Controller Unit (DCU) module is a system master that
fetches graphics stored in internal or external memory and displays
them on a TFT LCD panel. A wide range of panel sizes is supported
and the timing of the interface signals is highly configurable.
Graphics are read directly from memory and then blended in real-time,
which allows for dynamic content creation with minimal CPU
intervention.

The features:
(1) Full RGB888 output to TFT LCD panel.
(2) For the current LCD panel, WQVGA "480x272" is supported.
(3) Blending of each pixel using up to 4 source layers
dependent on size of panel.
(4) Each graphic layer can be placed with one pixel resolution
in either axis.
(5) Each graphic layer support RGB565 and RGB888 direct colors
without alpha
channel and BGRA BGRA ARGB1555 direct colors with an
alpha channel and
YUV422 format.
(6) Each graphic layer support alpha blending with 8-bit
resolution.

This is a simplified version, only one primary plane, one
framebuffer created for
fbdev, one crtc, one connector for TFT LCD panel, an encoder.

Signed-off-by: Alison Wang 
Signed-off-by: Xiubo Li 
Signed-off-by: Jianwei Wang 
---


Changed in V6

- Add NEC nl4827hc19_05b panel to panel-simple.c
Adviced by Mark Yao
- Add DRIVER_ATOMIC for driver_features
Adviced by Mark Yao
- check fsl_dev if it's NULL at PM suspend/resume
Adviced by Mark Yao

Changed in V5

- Update commit message
- Add layer registers initialization
- Remove unused functions
- Rename driver folder
Adviced by Stefan Agner
- Move pixel clock control functions to fsl_dcu_drm_drv.c
- remove redundant enable the clock implicitly using regmap
- Add maintainer message

Changed in V4:

-This version doesn't have functionality changed
Just a minor adjustment.

Changed in V3:

- Test driver on Vybrid board and add compatible string
- Remove unused functions
- set default crtc for encoder
- replace legacy functions with atomic help functions
Adviced by Daniel Vetter
- Set the unique name of the DRM device
- Implement irq handle function for vblank interrupt

Changed in v2: 
- Add atomic support
Adviced by Daniel Vetter
- Modify bindings file
- Rename node for compatibility
- Move platform related code out for compatibility
Adviced by Stefan Agner


 MAINTAINERS |   7 +
 drivers/gpu/drm/Kconfig |   2 +
 drivers/gpu/drm/Makefile|   1 +
 drivers/gpu/drm/fsl-dcu/Kconfig |  18 ++
 drivers/gpu/drm/fsl-dcu/Makefile|   7 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c | 200 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h |  31 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c  | 172 +++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h  |  22 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c   | 379 
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h   | 223 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c |  26 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c   |  42 +++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h   |  17 ++
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 195 
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h |  23 ++
 16 files changed, 1365 insertions(+)
 create mode 100644 drivers/gpu/drm/fsl-dcu/Kconfig
 create mode 100644 drivers/gpu/drm/fsl-dcu/Makefile
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
 create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 6761318..b25b948 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3404,6 +3404,13 @@ S:   Maintained
 F: drivers/gpu/drm/imx/
 F: Documentation/devicetree/bindings/drm/imx/

+DRM DRIVERS FOR FREESCALE DCU
+M: Jianwei Wang 
+M: Alison Wang 
+L: dri-devel at lists.freedesktop.org
+S: Supported
+F: drivers/gpu/drm/fsl-dcu/
+
 DRM DRIVERS FOR NVIDIA TEGRA
 M: Thierry Reding 
 M: Terje Bergström 
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm

[alsa-devel] [PATCH v2 02/12] device: property: find dependencies of a firmware node

2015-07-10 Thread Tomeu Vizoso
On 2 July 2015 at 02:02, Rafael J. Wysocki  wrote:
> On Wednesday, July 01, 2015 11:40:57 AM Tomeu Vizoso wrote:
>> Adds API that allows callers to find out what other firmware nodes a
>> node depends on.
>>
>> Implementors of bindings documentation can register callbacks that
>> return the dependencies of a node.
>>
>> Dependency information can be used to change the order in which devices
>> are probed, or to print a warning when a device node is going to be
>> probed without all its dependencies fulfilled.
>>
>> Signed-off-by: Tomeu Vizoso 
>
> I'd like to see a description of the new API in English in the changelog.

Agreed.

>> ---
>>
>> Changes in v2:
>> - Allow bindings implementations register a function instead of using
>>   class callbacks, as not only subsystems implement firmware bindings.
>>
>>  drivers/base/property.c  | 91 
>> 
>>  include/linux/fwnode.h   |  5 +++
>>  include/linux/property.h | 12 +++
>>  3 files changed, 108 insertions(+)
>>
>> diff --git a/drivers/base/property.c b/drivers/base/property.c
>> index 8ead1ba..9d38ede 100644
>> --- a/drivers/base/property.c
>> +++ b/drivers/base/property.c
>> @@ -19,7 +19,13 @@
>>  #include 
>>  #include 
>>
>
> Please add a comment describing this structure.  In particular, what it is
> supposed to be used for and how it is supposed to be used.

Ok.

>> +struct dependency_parser {
>> + struct list_head parser;
>
> I'd rather call this "list_node" or something like that.

Ok.

>> + void (*func)(struct fwnode_handle *fwnode, struct list_head *deps);
>> +};
>> +
>>  static bool fwnode_match_enable = false;
>> +static LIST_HEAD(dependency_parsers);
>>
>>  /**
>>   * device_add_property_set - Add a collection of properties to a device 
>> object.
>> @@ -553,6 +559,27 @@ bool device_dma_is_coherent(struct device *dev)
>>  EXPORT_SYMBOL_GPL(device_dma_is_coherent);
>>
>>  /**
>> + * fwnode_add_dependency - add firmware node to the passed dependency list
>> + * @fwnode: Firmware node to add to dependency list
>> + * @list: Dependency list to add the fwnode to
>> + */
>> +void fwnode_add_dependency(struct fwnode_handle *fwnode,
>> +struct list_head *list)
>> +{
>> + struct fwnode_dependency *dep;
>> +
>> + dep = kzalloc(sizeof(*dep), GFP_KERNEL);
>> + if (!dep)
>> + return;
>> +
>> + INIT_LIST_HEAD(&dep->dependency);
>> + dep->fwnode = fwnode;
>> +
>> + list_add_tail(&dep->dependency, list);
>> +}
>> +EXPORT_SYMBOL_GPL(fwnode_add_dependency);
>> +
>> +/**
>>   * fwnode_get_parent - return the parent node of a device node
>>   * @fwnode: Device node to find the parent node of
>>   */
>> @@ -600,6 +627,70 @@ bool fwnode_is_compatible(struct fwnode_handle *fwnode, 
>> const char *compatible)
>>  EXPORT_SYMBOL_GPL(fwnode_is_compatible);
>>
>>  /**
>> + * fwnode_add_dependency_parser - register dependency parser
>> + * @func: Function that will be called to find out dependencies of a node
>> + *
>> + * Registers a callback that will be called when collecting the dependencies
>> + * of a firmware node. The callback should inspect the properties of the 
>> node
>> + * and call fwnode_add_dependency() for each dependency it recognizes, from
>> + * the bindings documentation.
>> + */
>> +void fwnode_add_dependency_parser(
>> + void (*func)(struct fwnode_handle *fwnode, struct list_head *deps))
>> +{
>> + struct dependency_parser *parser;
>> +
>> + parser = kzalloc(sizeof(*parser), GFP_KERNEL);
>> + if (!parser)
>> + return;
>> +
>> + INIT_LIST_HEAD(&parser->parser);
>> + parser->func = func;
>> +
>> + list_add_tail(&parser->parser, &dependency_parsers);
>
> We're modifying a global list here.  Any locking needed?  RCU?  Whatever?

Oops.

>> +}
>> +EXPORT_SYMBOL_GPL(fwnode_add_dependency_parser);
>> +
>> +/**
>> + * fwnode_remove_dependency_parser - unregister dependency parser
>> + * @func: Function that was to be called to find out dependencies of a node
>> + */
>> +void fwnode_remove_dependency_parser(
>> + void (*func)(struct fwnode_handle *fwnode, struct list_head *deps))
>> +{
>> + struct dependency_parser *parser, *tmp;
>> +
>> + list_for_each_entry_safe(parser, tmp, &dependency_parsers, parser) {
>> + if (parser->func == func) {
>> + list_del(&parser->parser);
>> + kfree(parser);
>> + return;
>> + }
>> + }
>> +}
>> +EXPORT_SYMBOL_GPL(fwnode_remove_dependency_parser);
>> +
>> +/**
>> + * fwnode_get_dependencies - find out what dependencies a firmware node has
>> + * @fwnode: firmware node to find its dependencies
>> + * @deps: list of struct fwnode_dependency in which dependencies will be 
>> placed
>> + */
>> +void fwnode_get_dependencies(struct fwnode_handle *fwnode,
>> +  struct list_head *deps)
>> +{
>> + struct dependency_parser *parser;
>> + struct fwnode_handl

[PATCH] drm: Drop owner assignment from i2c_driver

2015-07-10 Thread Mark yao
On 2015年07月10日 15:01, Krzysztof Kozlowski wrote:
> On 10.07.2015 15:50, Mark yao wrote:
>> On 2015年07月10日 13:36, Krzysztof Kozlowski wrote:
>>> i2c_driver does not need to set an owner because i2c_register_driver()
>>> will set it.
>>>
>>> Signed-off-by: Krzysztof Kozlowski 
>>>
>>> ---
>>>
>>> The coccinelle script which generated the patch was sent here:
>>> http://www.spinics.net/lists/kernel/msg2029903.html
>>> ---
>>>drivers/gpu/drm/bridge/ps8622.c | 1 -
>>>drivers/gpu/drm/bridge/ptn3460.c| 1 -
>>>drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
>>>3 files changed, 3 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/bridge/ps8622.c
>>> b/drivers/gpu/drm/bridge/ps8622.c
>>> index 1a6607beb29f..be881e9fef8f 100644
>>> --- a/drivers/gpu/drm/bridge/ps8622.c
>>> +++ b/drivers/gpu/drm/bridge/ps8622.c
>>> @@ -668,7 +668,6 @@ static struct i2c_driver ps8622_driver = {
>>>.remove= ps8622_remove,
>>>.driver= {
>>>.name= "ps8622",
>>> -.owner= THIS_MODULE,
>>>.of_match_table = ps8622_devices,
>>>},
>>>};
>>> diff --git a/drivers/gpu/drm/bridge/ptn3460.c
>>> b/drivers/gpu/drm/bridge/ptn3460.c
>>> index 1b1bf2384815..0ffa3a6a206a 100644
>>> --- a/drivers/gpu/drm/bridge/ptn3460.c
>>> +++ b/drivers/gpu/drm/bridge/ptn3460.c
>>> @@ -400,7 +400,6 @@ static struct i2c_driver ptn3460_driver = {
>>>.remove= ptn3460_remove,
>>>.driver= {
>>>.name= "nxp,ptn3460",
>>> -.owner= THIS_MODULE,
>>>.of_match_table = ptn3460_match,
>>>},
>>>};
>>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>>> b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>>> index 01b558fe3695..9a0c2911272a 100644
>>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>>> @@ -555,7 +555,6 @@ static struct platform_driver
>>> rockchip_drm_platform_driver = {
>>>.probe = rockchip_drm_platform_probe,
>>>.remove = rockchip_drm_platform_remove,
>>>.driver = {
>>> -.owner = THIS_MODULE,
>> But rockchip drm is platform driver not i2c_driver, why remove its .owner ?
> Oh, indeed. Thanks for spotting this.
>
> The 'owner' is set by core for platform drivers as well. Most platform
> drivers were already converted (I think by Wolfram Sang). I extended
> existing coccinelle script to fix also i2c_drivers and sometimes did not
> notice that it was platform_driver.
>
> I can split it into two different patches. Would that be ok?
>
> Best regards,
> Krzysztof
>
Ok, Thanks for the fix.:-)

-- 
ï¼­ark




[PATCH] drm: Drop owner assignment from i2c_driver

2015-07-10 Thread Mark yao
On 2015年07月10日 13:36, Krzysztof Kozlowski wrote:
> i2c_driver does not need to set an owner because i2c_register_driver()
> will set it.
>
> Signed-off-by: Krzysztof Kozlowski 
>
> ---
>
> The coccinelle script which generated the patch was sent here:
> http://www.spinics.net/lists/kernel/msg2029903.html
> ---
>   drivers/gpu/drm/bridge/ps8622.c | 1 -
>   drivers/gpu/drm/bridge/ptn3460.c| 1 -
>   drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
>   3 files changed, 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/ps8622.c b/drivers/gpu/drm/bridge/ps8622.c
> index 1a6607beb29f..be881e9fef8f 100644
> --- a/drivers/gpu/drm/bridge/ps8622.c
> +++ b/drivers/gpu/drm/bridge/ps8622.c
> @@ -668,7 +668,6 @@ static struct i2c_driver ps8622_driver = {
>   .remove = ps8622_remove,
>   .driver = {
>   .name   = "ps8622",
> - .owner  = THIS_MODULE,
>   .of_match_table = ps8622_devices,
>   },
>   };
> diff --git a/drivers/gpu/drm/bridge/ptn3460.c 
> b/drivers/gpu/drm/bridge/ptn3460.c
> index 1b1bf2384815..0ffa3a6a206a 100644
> --- a/drivers/gpu/drm/bridge/ptn3460.c
> +++ b/drivers/gpu/drm/bridge/ptn3460.c
> @@ -400,7 +400,6 @@ static struct i2c_driver ptn3460_driver = {
>   .remove = ptn3460_remove,
>   .driver = {
>   .name   = "nxp,ptn3460",
> - .owner  = THIS_MODULE,
>   .of_match_table = ptn3460_match,
>   },
>   };
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c 
> b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index 01b558fe3695..9a0c2911272a 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -555,7 +555,6 @@ static struct platform_driver 
> rockchip_drm_platform_driver = {
>   .probe = rockchip_drm_platform_probe,
>   .remove = rockchip_drm_platform_remove,
>   .driver = {
> - .owner = THIS_MODULE,

But rockchip drm is platform driver not i2c_driver, why remove its .owner ?

-Mark
>   .name = "rockchip-drm",
>   .of_match_table = rockchip_drm_dt_ids,
>   .pm = &rockchip_drm_pm_ops,



[PATCH] drm: Drop owner assignment from i2c_driver

2015-07-10 Thread Krzysztof Kozlowski
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski 

---

The coccinelle script which generated the patch was sent here:
http://www.spinics.net/lists/kernel/msg2029903.html
---
 drivers/gpu/drm/bridge/ps8622.c | 1 -
 drivers/gpu/drm/bridge/ptn3460.c| 1 -
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
 3 files changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ps8622.c b/drivers/gpu/drm/bridge/ps8622.c
index 1a6607beb29f..be881e9fef8f 100644
--- a/drivers/gpu/drm/bridge/ps8622.c
+++ b/drivers/gpu/drm/bridge/ps8622.c
@@ -668,7 +668,6 @@ static struct i2c_driver ps8622_driver = {
.remove = ps8622_remove,
.driver = {
.name   = "ps8622",
-   .owner  = THIS_MODULE,
.of_match_table = ps8622_devices,
},
 };
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
index 1b1bf2384815..0ffa3a6a206a 100644
--- a/drivers/gpu/drm/bridge/ptn3460.c
+++ b/drivers/gpu/drm/bridge/ptn3460.c
@@ -400,7 +400,6 @@ static struct i2c_driver ptn3460_driver = {
.remove = ptn3460_remove,
.driver = {
.name   = "nxp,ptn3460",
-   .owner  = THIS_MODULE,
.of_match_table = ptn3460_match,
},
 };
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 01b558fe3695..9a0c2911272a 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -555,7 +555,6 @@ static struct platform_driver rockchip_drm_platform_driver 
= {
.probe = rockchip_drm_platform_probe,
.remove = rockchip_drm_platform_remove,
.driver = {
-   .owner = THIS_MODULE,
.name = "rockchip-drm",
.of_match_table = rockchip_drm_dt_ids,
.pm = &rockchip_drm_pm_ops,
-- 
1.9.1



[PATCH] Drop owner assignment from i2c_driver (and platform left-overs)

2015-07-10 Thread Krzysztof Kozlowski
Hi,


The i2c drivers also do not have to set 'owner' field because
i2c_register_driver() will do it instead.

'owner' is removed from i2c drivers, which I was able to compile
with allyesconfig (arm, arm64, i386, x86_64, ppc64).
Only compile-tested.

The coccinelle script which generated the patch was sent here:
http://www.spinics.net/lists/kernel/msg2029903.html


Best regards,
Krzysztof


Krzysztof Kozlowski (1):
  drm: Drop owner assignment from i2c_driver

 drivers/gpu/drm/bridge/ps8622.c | 1 -
 drivers/gpu/drm/bridge/ptn3460.c| 1 -
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 -
 3 files changed, 3 deletions(-)

-- 
1.9.1



[PATCH v3 2/2] SMAF: add CMA allocator

2015-07-10 Thread Benjamin Gaignard
SMAF CMA allocator implement helpers functions to allow SMAF
to allocate contiguous memory.

match() each if at least one of the attached devices have coherent_dma_mask
set to DMA_BIT_MASK(32).

For allocation it use dma_alloc_attrs() with DMA_ATTR_WRITE_COMBINE and not
dma_alloc_writecombine to be compatible with ARM 64bits architecture

Signed-off-by: Benjamin Gaignard 
---
 drivers/smaf/Kconfig|   6 ++
 drivers/smaf/Makefile   |   1 +
 drivers/smaf/smaf-cma.c | 200 
 3 files changed, 207 insertions(+)
 create mode 100644 drivers/smaf/smaf-cma.c

diff --git a/drivers/smaf/Kconfig b/drivers/smaf/Kconfig
index d36651a..058ec4c 100644
--- a/drivers/smaf/Kconfig
+++ b/drivers/smaf/Kconfig
@@ -3,3 +3,9 @@ config SMAF
depends on DMA_SHARED_BUFFER
help
  Choose this option to enable Secure Memory Allocation Framework
+
+config SMAF_CMA
+   tristate "SMAF CMA allocator"
+   depends on SMAF && HAVE_DMA_ATTRS
+   help
+ Choose this option to enable CMA allocation within SMAF
diff --git a/drivers/smaf/Makefile b/drivers/smaf/Makefile
index 40cd882..05bab01 100644
--- a/drivers/smaf/Makefile
+++ b/drivers/smaf/Makefile
@@ -1 +1,2 @@
 obj-$(CONFIG_SMAF) += smaf-core.o
+obj-$(CONFIG_SMAF_CMA) += smaf-cma.o
diff --git a/drivers/smaf/smaf-cma.c b/drivers/smaf/smaf-cma.c
new file mode 100644
index 000..ab38717
--- /dev/null
+++ b/drivers/smaf/smaf-cma.c
@@ -0,0 +1,200 @@
+/*
+ * smaf-cma.c
+ *
+ * Copyright (C) Linaro SA 2015
+ * Author: Benjamin Gaignard  for Linaro.
+ * License terms:  GNU General Public License (GPL), version 2
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+struct smaf_cma_buffer_info {
+   struct device *dev;
+   size_t size;
+   void *vaddr;
+   dma_addr_t paddr;
+};
+
+/**
+ * find_matching_device - iterate over the attached devices to find one
+ * with coherent_dma_mask correctly set to DMA_BIT_MASK(32).
+ * Matching device (if any) will be used to aim CMA area.
+ */
+static struct device *find_matching_device(struct dma_buf *dmabuf)
+{
+   struct dma_buf_attachment *attach_obj;
+
+   list_for_each_entry(attach_obj, &dmabuf->attachments, node) {
+   if (attach_obj->dev->coherent_dma_mask == DMA_BIT_MASK(32))
+   return attach_obj->dev;
+   }
+
+   return NULL;
+}
+
+/**
+ * smaf_cma_match - return true if at least one device has been found
+ */
+static bool smaf_cma_match(struct dma_buf *dmabuf)
+{
+   return !!find_matching_device(dmabuf);
+}
+
+static void smaf_cma_release(struct dma_buf *dmabuf)
+{
+   struct smaf_cma_buffer_info *info = dmabuf->priv;
+   DEFINE_DMA_ATTRS(attrs);
+
+   dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
+
+   dma_free_attrs(info->dev, info->size, info->vaddr, info->paddr, &attrs);
+
+   kfree(info);
+}
+
+static struct sg_table *smaf_cma_map(struct dma_buf_attachment *attachment,
+enum dma_data_direction direction)
+{
+   struct smaf_cma_buffer_info *info = attachment->dmabuf->priv;
+   struct sg_table *sgt;
+   int ret;
+
+   sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+   if (!sgt)
+   return NULL;
+
+   ret = dma_get_sgtable(info->dev, sgt, info->vaddr,
+ info->paddr, info->size);
+   if (ret < 0)
+   goto out;
+
+   sg_dma_address(sgt->sgl) = info->paddr;
+   return sgt;
+
+out:
+   kfree(sgt);
+   return NULL;
+}
+
+static void smaf_cma_unmap(struct dma_buf_attachment *attachment,
+  struct sg_table *sgt,
+  enum dma_data_direction direction)
+{
+   /* do nothing */
+}
+
+static int smaf_cma_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma)
+{
+   struct smaf_cma_buffer_info *info = dmabuf->priv;
+   int ret;
+   DEFINE_DMA_ATTRS(attrs);
+
+   dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
+
+   if (info->size < vma->vm_end - vma->vm_start)
+   return -EINVAL;
+
+   vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP;
+   ret = dma_mmap_attrs(info->dev, vma, info->vaddr, info->paddr,
+info->size, &attrs);
+
+   return ret;
+}
+
+static void *smaf_cma_vmap(struct dma_buf *dmabuf)
+{
+   struct smaf_cma_buffer_info *info = dmabuf->priv;
+
+   return info->vaddr;
+}
+
+static void *smaf_kmap_atomic(struct dma_buf *dmabuf, unsigned long offset)
+{
+   struct smaf_cma_buffer_info *info = dmabuf->priv;
+
+   return (void *)info->paddr + offset;
+}
+
+static struct dma_buf_ops smaf_cma_ops = {
+   .map_dma_buf = smaf_cma_map,
+   .unmap_dma_buf = smaf_cma_unmap,
+   .mmap = smaf_cma_mmap,
+   .release = smaf_cma_release,
+   .kmap_atomic = smaf_kmap_atomic,
+   .kmap = smaf_kmap_atomic,
+   .vmap = smaf_cma_vmap,
+};
+
+static struct dma_buf *smaf_cma_allocate(struct 

[PATCH v3 1/2] create SMAF module

2015-07-10 Thread Benjamin Gaignard
Secure Memory Allocation Framework goal is to be able
to allocate memory that can be securing.
There is so much ways to allocate and securing memory that SMAF
doesn't do it by itself but need help of additional modules.
To be sure to use the correct allocation method SMAF implement
deferred allocation (i.e. allocate memory when only really needed)

Allocation modules (smaf-alloctor.h):
SMAF could manage with multiple allocation modules at same time.
To select the good one SMAF call match() to be sure that a module
can allocate memory for a given list of devices. It is to the module
to check if the devices are compatible or not with it allocation
method.

Securing module (smaf-secure.h):
The way of how securing memory it is done is platform specific.
Secure module is responsible of grant/revoke memory access.

Signed-off-by: Benjamin Gaignard 
---
 drivers/Kconfig|   2 +
 drivers/Makefile   |   1 +
 drivers/smaf/Kconfig   |   5 +
 drivers/smaf/Makefile  |   1 +
 drivers/smaf/smaf-core.c   | 735 +
 include/linux/smaf-allocator.h |  54 +++
 include/linux/smaf-secure.h|  62 
 include/uapi/linux/smaf.h  |  52 +++
 8 files changed, 912 insertions(+)
 create mode 100644 drivers/smaf/Kconfig
 create mode 100644 drivers/smaf/Makefile
 create mode 100644 drivers/smaf/smaf-core.c
 create mode 100644 include/linux/smaf-allocator.h
 create mode 100644 include/linux/smaf-secure.h
 create mode 100644 include/uapi/linux/smaf.h

diff --git a/drivers/Kconfig b/drivers/Kconfig
index c0cc96b..2421fcb 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -182,4 +182,6 @@ source "drivers/thunderbolt/Kconfig"

 source "drivers/android/Kconfig"

+source "drivers/smaf/Kconfig"
+
 endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index 46d2554..0cca66e 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -165,3 +165,4 @@ obj-$(CONFIG_RAS)   += ras/
 obj-$(CONFIG_THUNDERBOLT)  += thunderbolt/
 obj-$(CONFIG_CORESIGHT)+= hwtracing/coresight/
 obj-$(CONFIG_ANDROID)  += android/
+obj-$(CONFIG_SMAF) += smaf/
diff --git a/drivers/smaf/Kconfig b/drivers/smaf/Kconfig
new file mode 100644
index 000..d36651a
--- /dev/null
+++ b/drivers/smaf/Kconfig
@@ -0,0 +1,5 @@
+config SMAF
+   tristate "Secure Memory Allocation Framework"
+   depends on DMA_SHARED_BUFFER
+   help
+ Choose this option to enable Secure Memory Allocation Framework
diff --git a/drivers/smaf/Makefile b/drivers/smaf/Makefile
new file mode 100644
index 000..40cd882
--- /dev/null
+++ b/drivers/smaf/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_SMAF) += smaf-core.o
diff --git a/drivers/smaf/smaf-core.c b/drivers/smaf/smaf-core.c
new file mode 100644
index 000..90a7a97
--- /dev/null
+++ b/drivers/smaf/smaf-core.c
@@ -0,0 +1,735 @@
+/*
+ * smaf.c
+ *
+ * Copyright (C) Linaro SA 2015
+ * Author: Benjamin Gaignard  for Linaro.
+ * License terms:  GNU General Public License (GPL), version 2
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+struct smaf_handle {
+   struct dma_buf *dmabuf;
+   struct smaf_allocator *allocator;
+   struct dma_buf *db_alloc;
+   size_t length;
+   unsigned int flags;
+   int fd;
+   bool is_secure;
+   void *secure_ctx;
+};
+
+/**
+ * struct smaf_device - smaf device node private data
+ * @misc_dev:  the misc device
+ * @head:  list of allocator
+ * @lock:  list and secure pointer mutex
+ * @secure:pointer to secure functions helpers
+ */
+struct smaf_device {
+   struct miscdevice misc_dev;
+   struct list_head head;
+   /* list and secure pointer lock*/
+   struct mutex lock;
+   struct smaf_secure *secure;
+};
+
+static struct smaf_device smaf_dev;
+
+/**
+ * smaf_allow_cpu_access return true if CPU can access to memory
+ * if their is no secure module associated to SMAF assume that CPU can get
+ * access to the memory.
+ */
+static bool smaf_allow_cpu_access(struct smaf_handle *handle,
+ unsigned long flags)
+{
+   if (!handle->is_secure)
+   return true;
+
+   if (!smaf_dev.secure)
+   return true;
+
+   if (!smaf_dev.secure->allow_cpu_access)
+   return true;
+
+   return smaf_dev.secure->allow_cpu_access(handle->secure_ctx, flags);
+}
+
+static int smaf_grant_access(struct smaf_handle *handle, struct device *dev,
+dma_addr_t addr, size_t size,
+enum dma_data_direction dir)
+{
+   if (!handle->is_secure)
+   return 0;
+
+   if (!smaf_dev.secure)
+   return -EINVAL;
+
+   if (!smaf_dev.secure->grant_access)
+   return -EINVAL;
+
+   return smaf_dev.secure->grant_access(handle->secure_ctx,
+

[PATCH v3 0/2] RFC: Secure Memory Allocation Framework

2015-07-10 Thread Benjamin Gaignard
version 3 changes:
 - Remove ioctl for allocator selection instead provide the name of
   the targeted allocator with allocation request.
   Selecting allocator from userland isn't the prefered way of working
   but is needed when the first user of the buffer is a software component.
 - Fix issues in case of error while creating smaf handle.
 - Fix module license.
 - Update libsmaf and tests to care of the SMAF API evolution
   https://git.linaro.org/people/benjamin.gaignard/libsmaf.git

version 2 changes:
 - Add one ioctl to allow allocator selection from userspace.
   This is required for the uses case where the first user of
   the buffer is a software IP which can't perform dma_buf attachement.
 - Add name and ranking to allocator structure to be able to sort them.
 - Create a tiny library to test SMAF:
   https://git.linaro.org/people/benjamin.gaignard/libsmaf.git
 - Fix one issue when try to secure buffer without secure module registered

The outcome of the previous RFC about how do secure data path was the need
of a secure memory allocator (https://lkml.org/lkml/2015/5/5/551)

SMAF goal is to provide a framework that allow allocating and securing
memory by using dma_buf. Each platform have it own way to perform those two
features so SMAF design allow to register helper modules to perform them.

To be sure to select the best allocation method for devices SMAF implement
deferred allocation mechanism: memory allocation is only done when the first
device effectively required it.
Allocator modules have to implement a match() to let SMAF know if they are
compatibles with devices needs.
This patch set provide an example of allocator module which use
dma_{alloc/free/mmap}_attrs() and check if at least one device have
coherent_dma_mask set to DMA_BIT_MASK(32) in match function. 
I have named smaf-cma.c like it is done for drm_gem_cma_helper.c even if 
a better name could be found for this file.

Secure modules are responsibles of granting and revoking devices access rights
on the memory. Secure module is also called to check if CPU map memory into
kernel and user address spaces.
An example of secure module implementation can be found here:
http://git.linaro.org/people/benjamin.gaignard/optee-sdp.git
This code isn't yet part of the patch set because it depends on generic TEE
which is still under discussion (https://lwn.net/Articles/644646/)

For allocation part of SMAF code I get inspirated by Sumit Semwal work about
constraint aware allocator.

Benjamin Gaignard (2):
  create SMAF module
  SMAF: add CMA allocator

 drivers/Kconfig|   2 +
 drivers/Makefile   |   1 +
 drivers/smaf/Kconfig   |  11 +
 drivers/smaf/Makefile  |   2 +
 drivers/smaf/smaf-cma.c| 200 +++
 drivers/smaf/smaf-core.c   | 735 +
 include/linux/smaf-allocator.h |  54 +++
 include/linux/smaf-secure.h|  62 
 include/uapi/linux/smaf.h  |  52 +++
 9 files changed, 1119 insertions(+)
 create mode 100644 drivers/smaf/Kconfig
 create mode 100644 drivers/smaf/Makefile
 create mode 100644 drivers/smaf/smaf-cma.c
 create mode 100644 drivers/smaf/smaf-core.c
 create mode 100644 include/linux/smaf-allocator.h
 create mode 100644 include/linux/smaf-secure.h
 create mode 100644 include/uapi/linux/smaf.h

-- 
1.9.1



Wayland and GLES1 (Re: R200 DRM/KMS)

2015-07-10 Thread Steven Newbury


On Thu Jul 9 17:02:12 2015 GMT+0100, Steven Newbury wrote:
> On Thu Jul 9 16:04:35 2015 GMT+0100, Alex Deucher wrote:
> > On Thu, Jul 9, 2015 at 2:58 AM, Steven Newbury  
> > wrote:
> > >
> > >
> > > On Thu Jul 9 03:32:40 2015 GMT+0100, Michel Dänzer wrote:
> > >> On 09.07.2015 06:01, Steven Newbury wrote:
> > >> > On Wed, 2015-07-08 at 21:56 +0100, Steven Newbury wrote:
> > >> >> On Tue, 2015-07-07 at 09:18 +0300, Pekka Paalanen wrote:
> > >> >>> On Mon, 06 Jul 2015 22:50:30 +0100 Steven Newbury
> > >> >>>  wrote:
> > >> >>>
> > >>  Would gles1 be sufficient to run a Wayland compositor, I'm
> > >>  guessing probably not..?
> > >> >>>
> > >> >>> If you can find a Wayland compositor that is written to composite
> > >> >>>  with GLES1, that's all you need from the "Wayland side". (Yeah,
> > >> >>> this has nothing to do with Wayland per se.) Compositing in
> > >> >>> itself without any effects is very simple, as long as you get the
> > >> >>> textures up.
> > >> >>>
> > >> >>> Or, if you find a Wayland compositor written to use desktop
> > >> >>> OpenGL for compositing and does not use features your GL driver
> > >> >>> does not expose, that's good too.
> > >> >>>
> > >> >> Is desktop OpenGL accessible from "EGL_PLATFORM=drm"?
> > >> >>
> > >> > To answer my own question, it seems that is possible.  I wonder if
> > >> > it works with mutter/cogl???
> > >>
> > >> It does.
> > >>
> > >> However, your problem seems rather that gnome-shell/mutter doesn't
> > >> support R200 anymore.
> > > Yes, that's true. I wonder if I can revert the incompatible change or 
> > > better create a env variable to revert to the compatible behaviour or 
> > > something? I'll need to take a look...
> > 
> > I'm not sure how valid this is any more:
> > https://bugs.freedesktop.org/show_bug.cgi?id=51658
> > 
> > Basic issue is that r1xx/r2xx hw only has a limited number of render
> > buffer formats while they support a lot of texture formats.  Gnome
> > shell expects to be able to render to the same formats they can
> > texture from.
> > 
> It looks like a bit of a hack, it's a pity to lose valid texture formats, but 
> I've applied the patches from the bug after a little manual intervention. 
> It's building now, will take some time!  

Didn't work.  Still get the same error! :-(

On the other hand, I've got muffin to work compositor is actually okay, so 
thought I'd try cinnamon, but it's trying to use 1.5GB which isn't going to 
work! ;-)

Will probably revert to Xfce... 

-- 
Sent from my Jolla


Wayland and GLES1 (Re: R200 DRM/KMS)

2015-07-10 Thread Steven Newbury


On Thu Jul 9 17:02:12 2015 GMT+0100, Steven Newbury wrote:
> On Thu Jul 9 16:04:35 2015 GMT+0100, Alex Deucher wrote:
> > On Thu, Jul 9, 2015 at 2:58 AM, Steven Newbury  
> > wrote:
> > >
> > >
> > > On Thu Jul 9 03:32:40 2015 GMT+0100, Michel Dänzer wrote:
> > >> On 09.07.2015 06:01, Steven Newbury wrote:
> > >> > On Wed, 2015-07-08 at 21:56 +0100, Steven Newbury wrote:
> > >> >> On Tue, 2015-07-07 at 09:18 +0300, Pekka Paalanen wrote:
> > >> >>> On Mon, 06 Jul 2015 22:50:30 +0100 Steven Newbury
> > >> >>>  wrote:
> > >> >>>
> > >>  Would gles1 be sufficient to run a Wayland compositor, I'm
> > >>  guessing probably not..?
> > >> >>>
> > >> >>> If you can find a Wayland compositor that is written to composite
> > >> >>>  with GLES1, that's all you need from the "Wayland side". (Yeah,
> > >> >>> this has nothing to do with Wayland per se.) Compositing in
> > >> >>> itself without any effects is very simple, as long as you get the
> > >> >>> textures up.
> > >> >>>
> > >> >>> Or, if you find a Wayland compositor written to use desktop
> > >> >>> OpenGL for compositing and does not use features your GL driver
> > >> >>> does not expose, that's good too.
> > >> >>>
> > >> >> Is desktop OpenGL accessible from "EGL_PLATFORM=drm"?
> > >> >>
> > >> > To answer my own question, it seems that is possible.  I wonder if
> > >> > it works with mutter/cogl???
> > >>
> > >> It does.
> > >>
> > >> However, your problem seems rather that gnome-shell/mutter doesn't
> > >> support R200 anymore.
> > > Yes, that's true. I wonder if I can revert the incompatible change or 
> > > better create a env variable to revert to the compatible behaviour or 
> > > something? I'll need to take a look...
> > 
> > I'm not sure how valid this is any more:
> > https://bugs.freedesktop.org/show_bug.cgi?id=51658
> > 
> > Basic issue is that r1xx/r2xx hw only has a limited number of render
> > buffer formats while they support a lot of texture formats.  Gnome
> > shell expects to be able to render to the same formats they can
> > texture from.
> > 
> It looks like a bit of a hack, it's a pity to lose valid texture formats, but 
> I've applied the patches from the bug after a little manual intervention. 
> It's building now, will take some time!  

Didn't work.  Still get the same error! :-(

On the other hand, I've got muffin to work compositor is actually okay, so 
thought I'd try cinnamon, but it's trying to use 1.5GB which isn't going to 
work! ;-)

Will probably revert to Xfce... 

-- 
Sent from my Jolla


[PATCH v2 01/12] device: property: delay device-driver matches

2015-07-10 Thread Tomeu Vizoso
On 2 July 2015 at 01:29, Rafael J. Wysocki  wrote:
> On Wednesday, July 01, 2015 11:40:56 AM Tomeu Vizoso wrote:
>> Delay matches of platform devices until late_initcall, when we are sure
>> that all built-in drivers have been registered already. This is needed
>> to prevent deferred probes because of some dependencies' drivers not
>> having registered yet.
>>
>> This reduces the total amount of work that the kernel does during boot
>> because it won't try to match devices to drivers when built-in drivers
>> are still registering but also reduces some parallelism, so total boot
>> time might slightly increase or decrease depending on the platform and
>> kernel configuration.
>>
>> This change will make make possible to prevent any deferred probes once
>> devices are probed in dependency order.
>>
>> Signed-off-by: Tomeu Vizoso 
>> ---
>>
>> Changes in v2:
>> - Instead of delaying all probes until late_initcall, only delay matches
>>   of platform devices that have a firmware node attached.
>>
>>  drivers/base/property.c | 29 +
>>  1 file changed, 29 insertions(+)
>>
>> diff --git a/drivers/base/property.c b/drivers/base/property.c
>> index 8528eb9..8ead1ba 100644
>> --- a/drivers/base/property.c
>> +++ b/drivers/base/property.c
>> @@ -16,8 +16,11 @@
>>  #include 
>>  #include 
>>  #include 
>> +#include 
>>  #include 
>>
>> +static bool fwnode_match_enable = false;
>> +
>>  /**
>>   * device_add_property_set - Add a collection of properties to a device 
>> object.
>>   * @dev: Device to add properties to.
>> @@ -604,6 +607,15 @@ EXPORT_SYMBOL_GPL(fwnode_is_compatible);
>>  bool fwnode_driver_match_device(struct device *dev,
>>   const struct device_driver *drv)
>>  {
>> + /*
>> +  * Delay matches of platform devices until late_initcall, when we are
>> +  * sure that all built-in drivers have been registered already. This
>> +  * is needed to prevent deferred probes because of some drivers
>> +  * not having registered yet.
>> +  */
>> + if(dev->bus == &platform_bus_type && !fwnode_match_enable)
>> + return false;
>
> I'm not particularly enthusiastic about referring to specific bus types in
> generic code like that.

Agreed.

> What about having a special version of fwnode_driver_match_device() 
> specifically
> for the platform bus type that will do the check?

Have moved all this code to base/platform.c instead, as I don't see
any reason to have it in property.c.

Thanks,

Tomeu

>> +
>>   if (is_of_node(dev->fwnode))
>>   return of_driver_match_device(dev, drv);
>>   else if (is_acpi_node(dev->fwnode))
>> @@ -612,3 +624,20 @@ bool fwnode_driver_match_device(struct device *dev,
>>   return false;
>>  }
>>  EXPORT_SYMBOL_GPL(fwnode_driver_match_device);
>> +
>> +static int __device_attach(struct device *dev, void *data)
>> +{
>> + device_initial_probe(dev);
>> +
>> + return 0;
>> +}
>> +
>> +static int fwnode_match_initcall(void)
>> +{
>> + fwnode_match_enable = true;
>> +
>> + bus_for_each_dev(&platform_bus_type, NULL, NULL, __device_attach);
>> +
>> + return 0;
>> +}
>> +late_initcall(fwnode_match_initcall);
>>
>
> --
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


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

2015-07-10 Thread Stephen Rothwell
Hi all,

Today's linux-next merge of the drm-intel tree got a conflict in:

  drivers/gpu/drm/i915/intel_ringbuffer.h

between commit:

  ee412ecc74c4 ("drm/i915: Snapshot seqno of most recently submitted request.")

from the drm-intel-fixes tree and commit:

  bccca494f75c ("drm/i915: Remove the now obsolete 'outstanding_lazy_request'")

from the drm-intel tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwellsfr at canb.auug.org.au

diff --cc drivers/gpu/drm/i915/intel_ringbuffer.h
index 4be66f60504d,0ea89ea30182..
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@@ -271,17 -292,6 +292,13 @@@ struct  intel_engine_cs 
 */
struct list_head request_list;

 +  /**
-* Do we have some not yet emitted requests outstanding?
-*/
-   struct drm_i915_gem_request *outstanding_lazy_request;
-   /**
 +   * Seqno of request most recently submitted to request_list.
 +   * Used exclusively by hang checker to avoid grabbing lock while
 +   * inspecting request list.
 +   */
 +  u32 last_submitted_seqno;
 +
bool gpu_caches_dirty;

wait_queue_head_t irq_queue;
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150710/523b57a9/attachment.sig>


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

2015-07-10 Thread Stephen Rothwell
Hi all,

Today's linux-next merge of the drm-intel tree got a conflict in:

  drivers/gpu/drm/i915/i915_drv.h

between commit:

  8146ba1637a7 ("drm/i915: Store device pointer in contexts for late tracepoint 
usafe")

from the drm-intel-fixes tree and commit:

  b1b38278e12b ("drm/i915: add a context parameter to {en, dis}able zero 
address mapping")

from the drm-intel tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwellsfr at canb.auug.org.au

diff --cc drivers/gpu/drm/i915/i915_drv.h
index 580762001f31,52d07fbd9cc8..
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@@ -826,7 -866,7 +866,8 @@@ struct intel_context 
struct kref ref;
int user_handle;
uint8_t remap_slice;
 +  struct drm_i915_private *i915;
+   int flags;
struct drm_i915_file_private *file_priv;
struct i915_ctx_hang_stats hang_stats;
struct i915_hw_ppgtt *ppgtt;
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150710/a2ed76e2/attachment.sig>


[Bug 91279] agd5f drm tonga occasional traps error:0 in libdrm_amdgpu.so.1.0.0

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91279

--- Comment #3 from Andy Furniss  ---
Should add - I've been playing around quite a bit with vdpau/uvd with mplayer,
mpv and ffmpeg - AFAICT I haven't managed to trigger this using them.

-- 
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/20150710/9e1dd7e3/attachment.html>


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Wang J.W.
Hi Emil,

Thank you for your guidance. I'll pay attention about this next time.

BR.
Jianwei

> -Original Message-
> From: linux-kernel-owner at vger.kernel.org [mailto:linux-kernel-
> owner at vger.kernel.org] On Behalf Of Emil Velikov
> Sent: Friday, July 10, 2015 4:42 PM
> To: Wang Jianwei-B52261
> Cc: mark.yao; devicetree at vger.kernel.org; Xiubo Li; Wang Huan-B18965;
> daniel.vetter at ffwll.ch; linux-kernel at vger.kernel.org; dri-
> devel at lists.freedesktop.org; Wood Scott-B07421; linux-arm-
> kernel at lists.infradead.org
> Subject: Re: [PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver
> 
> Hi Jianwei,
> 
> On 10 July 2015 at 08:47, Wang J.W.  wrote:
> > Hi Mark,
> >
> > Thank you very much for your review! I have update my DRM driver.
> > All your three comments have been applied in this latest version.
> > I replied the last email several times, but all refused the mailist.
> I'd suspect that the ML automatically refused the email due to its size.
> To avoid that in the future you can trim the email to include only the
> relevant parts (not applicable in this case I know). At the same time it
> makes reading a bit easier, and missing buried comments harder :-)
> 
> Hope that helps,
> Emil
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org More majordomo info at
> http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


R200 DRM/KMS

2015-07-10 Thread Steven John Newbury
On Wed, 2015-07-08 at 23:44 +0100, Emil Velikov wrote:
...
> 
> > 
> > I guess it doesn't really matter since patching out the code 
> > "fixes"
> > it...
> As you wish. Personally I tend to give it a bit more before giving 
> up.
> 
I typically would, but it isn't my machine, and my priority is getting
the system up as that's what I promised to do!  Also, given there
doesn't really seem to be any point to the call to
drmSetInterfaceVersion(), as has been pointed out, simply removing it
doesn't hurt - although it admittedly irks me as to how/why it can be
failing.

> As this is getting a bit long/messy I'd suspect that a bugzilla entry
> with information/logs might be good. It's up-to you, as I won't be
> able to help much more.

Simply getting feedback has been helpful.  Yes, I should open a
bugzilla entry, I'll get to it after I have the system up and running. 
 It's probably getting tough to maintain R200 support at this point,
particularly on ancient pre-millennial PCI only systems with buggy*
BIOSes! ;-)



* The BIOS option to disable the onboard video is present, and the help
test lists 3 options, Enabled - 512KB, Enabled - 1MB, Disabled.  Only
the first two options actually appear on the menu!  Even better, the
system only (re-)boots on the second attempt, first attempt always
hangs post-POST, before attempting to read from boot media!


[Bug 91291] kernel panic and freeze on resume in [radeon] [ttm]

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91291

--- Comment #2 from Kamil Páral  ---
Created attachment 117027
  --> https://bugs.freedesktop.org/attachment.cgi?id=117027&action=edit
kernel trace - shot2

-- 
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/20150710/d4d8ca23/attachment.html>


[Bug 91291] kernel panic and freeze on resume in [radeon] [ttm]

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91291

--- Comment #1 from Kamil Páral  ---
Created attachment 117026
  --> https://bugs.freedesktop.org/attachment.cgi?id=117026&action=edit
kernel trace - shot1

-- 
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/20150710/ebac6921/attachment.html>


[Bug 91291] kernel panic and freeze on resume in [radeon] [ttm]

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91291

Bug ID: 91291
   Summary: kernel panic and freeze on resume in [radeon] [ttm]
   Product: DRI
   Version: XOrg git
  Hardware: Other
OS: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
  Assignee: dri-devel at lists.freedesktop.org
  Reporter: kparal at redhat.com

A few times in a month, my computer fails to resume and just hangs, with black
screen, and needs hard reset. This time I got lucky and kernel panic text was
shown on my screen, so I took a shot of it. There's a lot of [ttm] and [radeon]
strings in it, so it looks like it is related to my Radeon card. The text on
the screen has "scrolled" once in a while (it seemed to be rotation), I hope I
captured everything important.

Components:
Radeon R9 270:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
[AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] [1002:6811]
fully updated Fedora 22:
kernel-4.0.7-300.fc22.x86_64
xorg-x11-server-Xorg-1.17.2-1.fc22.x86_64
xorg-x11-drv-ati-7.5.0-3.fc22.x86_64
libdrm-2.4.61-3.fc22.x86_64
mesa-dri-drivers-10.6.1-1.20150629.fc22.x86_64


Please tell me if I can add more useful information somehow. That issue is not
easily reproducible, it happens rarely and usually I just see a black screen,
so I can't even tell whether it is always the same issue or not.

-- 
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/20150710/9839e126/attachment.html>


[Bug 91279] agd5f drm tonga occasional traps error:0 in libdrm_amdgpu.so.1.0.0

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91279

--- Comment #2 from Andy Furniss  ---
(In reply to Michel Dänzer from comment #1)
> Can you get a gdb backtrace of such a crash?

Yea - should have thought to enable core dumps.

So it seems it's flash (even though I have an apparently functioning flashblock
enabled in seamonkey)

Core was generated by `/usr/lib/seamonkey-2.33.1/plugin-container
/usr/lib/mozilla/plugins/libflashpla'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  list_del (item=0x5a5a5a5a5a5a5a5a) at ../util_double_list.h:79
79  item->prev->next = item->next;
(gdb) bt
#0  list_del (item=0x5a5a5a5a5a5a5a5a) at ../util_double_list.h:79
#1  amdgpu_vamgr_deinit (mgr=0x7fa26ec0b4c0 ) at amdgpu_vamgr.c:47
#2  amdgpu_vamgr_reference (dst=0x7fa274e19ea0, src=0x0) at amdgpu_vamgr.c:67
#3  0x7fa26ea07d82 in amdgpu_device_free_internal (dev=0x7fa274e19c00) at
amdgpu_device.c:228
#4  0x7fa26ea07e09 in amdgpu_device_reference
(dst=dst at entry=0x7ffd04cca7a8, src=src at entry=0x0) at amdgpu_device.c:246
#5  0x7fa26ea08125 in amdgpu_device_deinitialize (dev=0x7fa274e19c00) at
amdgpu_device.c:238
#6  0x7fa26f54fa1f in amdgpu_winsys_destroy (rws=0x7fa274e91800) at
amdgpu_winsys.c:296
#7  0x7fa26f553f5f in r600_destroy_common_screen (rscreen=0x7fa274e1a000)
at r600_pipe_common.c:963
#8  0x7fa26f46a7a1 in vl_screen_destroy (vscreen=0x7fa274e2cb00) at
vl/vl_winsys_dri.c:431
#9  0x7fa26f464776 in vlVdpDeviceFree (dev=dev at entry=0x7fa274eb3140) at
device.c:230
#10 0x7fa26f464874 in DeviceReference (dev=0x0, ptr=) at
vdpau_private.h:553
#11 vlVdpDeviceDestroy (device=1) at device.c:215
#12 0x7fa273ea8df8 in ?? () from /usr/lib/mozilla/plugins/libflashplayer.so
#13 0x7fa273b08475 in ?? () from /usr/lib/mozilla/plugins/libflashplayer.so

-- 
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/20150710/d5a347e4/attachment.html>


[Intel-gfx] [PATCH 06/14] drm/i915: Use drm_for_each_fb in i915_debugfs.c

2015-07-10 Thread Ville Syrjälä
On Thu, Jul 09, 2015 at 11:44:29PM +0200, Daniel Vetter wrote:
> Just so I have a user for this macro.
> 
> Signed-off-by: Daniel Vetter 
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
> b/drivers/gpu/drm/i915/i915_debugfs.c
> index 053adbb97037..60eebf5f6da8 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1855,6 +1855,7 @@ static int i915_gem_framebuffer_info(struct seq_file 
> *m, void *data)
>   struct drm_device *dev = node->minor->dev;
>   struct intel_fbdev *ifbdev = NULL;
>   struct intel_framebuffer *fb;
> + struct drm_framebuffer *drm_fb;
>  
>  #ifdef CONFIG_DRM_I915_FBDEV
>   struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -1874,7 +1875,8 @@ static int i915_gem_framebuffer_info(struct seq_file 
> *m, void *data)
>  #endif
>  
>   mutex_lock(&dev->mode_config.fb_lock);
> - list_for_each_entry(fb, &dev->mode_config.fb_list, base.head) {
> + drm_for_each_plane(drm_fb, dev) {
 ^

That's no fb.

> + fb = to_intel_framebuffer(drm_fb);
>   if (ifbdev && &fb->base == ifbdev->helper.fb)
>   continue;
>  
> -- 
> 2.1.4
> 
> ___
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Wang J.W.
Hi Daniel,

Thank you very much for your review!
See below...

> -Original Message-
> From: Daniel Vetter [mailto:daniel.vetter at ffwll.ch] On Behalf Of Daniel
> Vetter
> Sent: Friday, July 10, 2015 4:00 PM
> To: Wang Jianwei-B52261
> Cc: dri-devel at lists.freedesktop.org; linux-kernel at vger.kernel.org; 
> linux-
> arm-kernel at lists.infradead.org; devicetree at vger.kernel.org;
> airlied at linux.ie; daniel.vetter at ffwll.ch; mark.yao at rock-chips.com; 
> Wood
> Scott-B07421; Wang Huan-B18965; Xiubo Li
> Subject: Re: [PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver
> 
> On Fri, Jul 10, 2015 at 03:26:52PM +0800, Jianwei Wang wrote:
> > This patch add support for Two Dimensional Animation and Compositing
> > Engine (2D-ACE) on the Freescale SoCs.
> >
> > 2D-ACE is a Freescale display controller. 2D-ACE describes
> > the functionality of the module extremely well its name is a value
> > that cannot be used as a token in programming languages.
> > Instead the valid token "DCU" is used to tag the register names and
> > function names.
> >
> > The Display Controller Unit (DCU) module is a system master that
> > fetches graphics stored in internal or external memory and displays
> > them on a TFT LCD panel. A wide range of panel sizes is supported
> > and the timing of the interface signals is highly configurable.
> > Graphics are read directly from memory and then blended in real-time,
> > which allows for dynamic content creation with minimal CPU
> > intervention.
> >
> > The features:
> > (1) Full RGB888 output to TFT LCD panel.
> > (2) For the current LCD panel, WQVGA "480x272" is supported.
> > (3) Blending of each pixel using up to 4 source layers
> > dependent on size of panel.
> > (4) Each graphic layer can be placed with one pixel resolution
> > in either axis.
> > (5) Each graphic layer support RGB565 and RGB888 direct colors
> > without alpha
> > channel and BGRA BGRA ARGB1555 direct colors with an
> > alpha channel and
> > YUV422 format.
> > (6) Each graphic layer support alpha blending with 8-bit
> > resolution.
> >
> > This is a simplified version, only one primary plane, one
> > framebuffer created for
> > fbdev, one crtc, one connector for TFT LCD panel, an encoder.
> >
> > Signed-off-by: Alison Wang 
> > Signed-off-by: Xiubo Li 
> > Signed-off-by: Jianwei Wang 
> 
> A few small things to polish that I spotted.
> -Daniel
> 
> > ---
> >
> >
> > Changed in V6
> >
> > - Add NEC nl4827hc19_05b panel to panel-simple.c
> > Adviced by Mark Yao
> > - Add DRIVER_ATOMIC for driver_features
> > Adviced by Mark Yao
> > - check fsl_dev if it's NULL at PM suspend/resume
> > Adviced by Mark Yao
> >
> > Changed in V5
> >
> > - Update commit message
> > - Add layer registers initialization
> > - Remove unused functions
> > - Rename driver folder
> > Adviced by Stefan Agner
> > - Move pixel clock control functions to fsl_dcu_drm_drv.c
> > - remove redundant enable the clock implicitly using regmap
> > - Add maintainer message
> >
> > Changed in V4:
> >
> > -This version doesn't have functionality changed
> > Just a minor adjustment.
> >
> > Changed in V3:
> >
> > - Test driver on Vybrid board and add compatible string
> > - Remove unused functions
> > - set default crtc for encoder
> > - replace legacy functions with atomic help functions
> > Adviced by Daniel Vetter
> > - Set the unique name of the DRM device
> > - Implement irq handle function for vblank interrupt
> >
> > Changed in v2:
> > - Add atomic support
> > Adviced by Daniel Vetter
> > - Modify bindings file
> > - Rename node for compatibility
> > - Move platform related code out for compatibility
> > Adviced by Stefan Agner
> >
> >
> >  MAINTAINERS |   7 +
> >  drivers/gpu/drm/Kconfig |   2 +
> >  drivers/gpu/drm/Makefile|   1 +
> >  drivers/gpu/drm/fsl-dcu/Kconfig |  18 ++
> >  drivers/gpu/drm/fsl-dcu/Makefile|   7 +
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c | 200 +
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h |  31 ++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c  | 172 +++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h  |  22 ++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c   | 379
> 
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h   | 223 ++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c |  26 ++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c   |  42 +++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h   |  17 ++
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 195 
> >  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h |  23 ++
> >  16 files changed, 1365 insertions(+)
> >  create mode 100644 drivers/gpu/drm/fsl-dcu/Kconfig
> >  create mode 100644 drivers/gpu/drm/fsl-dcu/Makefile
> >  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c
> >  create mode 100644 drivers

[Bug 89987] Slow VDPAU (rv770_restrict_performance_levels_before_switch failed)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=89987

--- Comment #8 from Christian König  ---
(In reply to James Le Cuirot from comment #7)
> And still a problem in 4.2.0-rc1. Is there nothing I can do to move this
> along? It's really irritating. I have tried my best to fix it myself but to
> no avail.

The only thing which came to my mind we haven't tried so far is if you are sure
that it works with the 3.17 release (with UVD acceleration) and not 3.18 you
could try to bisect the changes between the two.

But apart from that I unfortunately don't have any idea either.

-- 
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/20150710/69d10cdc/attachment.html>


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Daniel Vetter
On Fri, Jul 10, 2015 at 03:26:52PM +0800, Jianwei Wang wrote:
> This patch add support for Two Dimensional Animation and Compositing
> Engine (2D-ACE) on the Freescale SoCs.
> 
> 2D-ACE is a Freescale display controller. 2D-ACE describes
> the functionality of the module extremely well its name is a value
> that cannot be used as a token in programming languages.
> Instead the valid token "DCU" is used to tag the register names and
> function names.
> 
> The Display Controller Unit (DCU) module is a system master that
> fetches graphics stored in internal or external memory and displays
> them on a TFT LCD panel. A wide range of panel sizes is supported
> and the timing of the interface signals is highly configurable.
> Graphics are read directly from memory and then blended in real-time,
> which allows for dynamic content creation with minimal CPU
> intervention.
> 
> The features:
> (1) Full RGB888 output to TFT LCD panel.
> (2) For the current LCD panel, WQVGA "480x272" is supported.
> (3) Blending of each pixel using up to 4 source layers
> dependent on size of panel.
> (4) Each graphic layer can be placed with one pixel resolution
> in either axis.
> (5) Each graphic layer support RGB565 and RGB888 direct colors
> without alpha
> channel and BGRA BGRA ARGB1555 direct colors with an
> alpha channel and
> YUV422 format.
> (6) Each graphic layer support alpha blending with 8-bit
> resolution.
> 
> This is a simplified version, only one primary plane, one
> framebuffer created for
> fbdev, one crtc, one connector for TFT LCD panel, an encoder.
> 
> Signed-off-by: Alison Wang 
> Signed-off-by: Xiubo Li 
> Signed-off-by: Jianwei Wang 

A few small things to polish that I spotted.
-Daniel

> ---
> 
> 
> Changed in V6
> 
> - Add NEC nl4827hc19_05b panel to panel-simple.c
> Adviced by Mark Yao
> - Add DRIVER_ATOMIC for driver_features
> Adviced by Mark Yao
> - check fsl_dev if it's NULL at PM suspend/resume
> Adviced by Mark Yao
> 
> Changed in V5
> 
> - Update commit message
> - Add layer registers initialization
> - Remove unused functions
> - Rename driver folder
> Adviced by Stefan Agner
> - Move pixel clock control functions to fsl_dcu_drm_drv.c
> - remove redundant enable the clock implicitly using regmap
> - Add maintainer message
> 
> Changed in V4:
> 
> -This version doesn't have functionality changed
> Just a minor adjustment.
> 
> Changed in V3:
> 
> - Test driver on Vybrid board and add compatible string
> - Remove unused functions
> - set default crtc for encoder
> - replace legacy functions with atomic help functions
> Adviced by Daniel Vetter
> - Set the unique name of the DRM device
> - Implement irq handle function for vblank interrupt
> 
> Changed in v2: 
> - Add atomic support
> Adviced by Daniel Vetter
> - Modify bindings file
> - Rename node for compatibility
> - Move platform related code out for compatibility
> Adviced by Stefan Agner
> 
> 
>  MAINTAINERS |   7 +
>  drivers/gpu/drm/Kconfig |   2 +
>  drivers/gpu/drm/Makefile|   1 +
>  drivers/gpu/drm/fsl-dcu/Kconfig |  18 ++
>  drivers/gpu/drm/fsl-dcu/Makefile|   7 +
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c | 200 +
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h |  31 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c  | 172 +++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h  |  22 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c   | 379 
> 
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h   | 223 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c |  26 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c   |  42 +++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h   |  17 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 195 
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h |  23 ++
>  16 files changed, 1365 insertions(+)
>  create mode 100644 drivers/gpu/drm/fsl-dcu/Kconfig
>  create mode 100644 drivers/gpu/drm/fsl-dcu/Makefile
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6761318..b25b948 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3404,6 +3404,13 @@ S: Maintained
>  F:   drivers/gpu/drm

[PATCH v2 12/23] drm/exynos: don't track enabled state at exynos_crtc

2015-07-10 Thread Joonyoung Shim
On 07/10/2015 07:56 AM, Gustavo Padovan wrote:
> 2015-07-09 Joonyoung Shim :
> 
>> +Cc Andrzej,
>>
>> On 07/07/2015 02:41 AM, Daniel Vetter wrote:
>>> On Mon, Jul 06, 2015 at 11:20:13AM -0300, Gustavo Padovan wrote:
 From: Gustavo Padovan 

 struct drm_crtc already stores the enabled state of the crtc
 thus we don't need to replicate enabled in exynos_drm_crtc.

>>
>> I think exynos_crtc->enabled can replace flags for power state of each
>> hw driver(e.g. "powered" of mixer driver, "suspended" of fimd driver).
>> Further, we can add other flag bit for instead of using special flag
>> in hw driver like vsync state("int_en" of mixer driver, "irq_flags" of
>> fimd driver.)
> 
> The reason I removed it is because crtc->state->active already stores
> the same information as exynos_crtc->enabled. I think we could rely
> on active as well for mixer powered and suspended.
> 

Then it may need another stuff on struct exynos_crtc if we try to
replace other hw flag like int_en or irq_flags.

Anyway, the reason that you remove it is ok to me now.

Thanks.


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Emil Velikov
Hi Jianwei,

On 10 July 2015 at 08:47, Wang J.W.  wrote:
> Hi Mark,
>
> Thank you very much for your review! I have update my DRM driver.
> All your three comments have been applied in this latest version.
> I replied the last email several times, but all refused the mailist.
I'd suspect that the ML automatically refused the email due to its
size. To avoid that in the future you can trim the email to include
only the relevant parts (not applicable in this case I know). At the
same time it makes reading a bit easier, and missing buried comments
harder :-)

Hope that helps,
Emil


[RFCv3 0/5] enable migration of driver pages

2015-07-10 Thread Gioh Kim


2015-07-09 오후 10:08에 Daniel Vetter 이(가) 쓴 글:
> Also there's a bit a lack of gpu drivers from the arm world in upstream,
> which is probabyl why this patch series doesn't come with a user. Might be
> better to first upstream the driver before talking about additional
> infrastructure that it needs.
> -Daniel

I'm not from ARM but I just got the idea of driver page migration
during I worked with ARM gpu driver.
I'm sure this patch is good for zram and balloon
and hope it can be applied to drivers consuming many pages and generating 
fragmentation,
such as GPU or gfx driver.


[PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver

2015-07-10 Thread Wang J.W.
Hi Mark,

Thank you very much for your review! I have update my DRM driver.
All your three comments have been applied in this latest version.
I replied the last email several times, but all refused the mailist.
Any other comments for this driver?

BR.
Jianwei

> -Original Message-
> From: Jianwei Wang [mailto:jianwei.wang at freescale.com]
> Sent: Friday, July 10, 2015 3:27 PM
> To: dri-devel at lists.freedesktop.org
> Cc: linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
> devicetree at vger.kernel.org; airlied at linux.ie; daniel.vetter at ffwll.ch;
> mark.yao at rock-chips.com; Wood Scott-B07421; Wang Jianwei-B52261; Wang
> Huan-B18965; Xiubo Li
> Subject: [PATCH v6 1/4] drm/layerscape: Add Freescale DCU DRM driver
> 
> This patch add support for Two Dimensional Animation and Compositing
> Engine (2D-ACE) on the Freescale SoCs.
> 
> 2D-ACE is a Freescale display controller. 2D-ACE describes the
> functionality of the module extremely well its name is a value that cannot
> be used as a token in programming languages.
> Instead the valid token "DCU" is used to tag the register names and
> function names.
> 
> The Display Controller Unit (DCU) module is a system master that fetches
> graphics stored in internal or external memory and displays them on a TFT
> LCD panel. A wide range of panel sizes is supported and the timing of the
> interface signals is highly configurable.
> Graphics are read directly from memory and then blended in real-time,
> which allows for dynamic content creation with minimal CPU intervention.
> 
> The features:
> (1) Full RGB888 output to TFT LCD panel.
> (2) For the current LCD panel, WQVGA "480x272" is supported.
> (3) Blending of each pixel using up to 4 source layers dependent on size
> of panel.
> (4) Each graphic layer can be placed with one pixel resolution in either
> axis.
> (5) Each graphic layer support RGB565 and RGB888 direct colors without
> alpha channel and BGRA BGRA ARGB1555 direct colors with an alpha
> channel and
> YUV422 format.
> (6) Each graphic layer support alpha blending with 8-bit resolution.
> 
> This is a simplified version, only one primary plane, one framebuffer
> created for fbdev, one crtc, one connector for TFT LCD panel, an encoder.
> 
> Signed-off-by: Alison Wang 
> Signed-off-by: Xiubo Li 
> Signed-off-by: Jianwei Wang 
> ---
> 
> 
> Changed in V6
> 
> - Add NEC nl4827hc19_05b panel to panel-simple.c Adviced by Mark Yao
> - Add DRIVER_ATOMIC for driver_features
> Adviced by Mark Yao
> - check fsl_dev if it's NULL at PM suspend/resume Adviced by Mark Yao
> 
> Changed in V5
> 
> - Update commit message
> - Add layer registers initialization
> - Remove unused functions
> - Rename driver folder
> Adviced by Stefan Agner
> - Move pixel clock control functions to fsl_dcu_drm_drv.c
> - remove redundant enable the clock implicitly using regmap
> - Add maintainer message
> 
> Changed in V4:
> 
> -This version doesn't have functionality changed Just a minor adjustment.
> 
> Changed in V3:
> 
> - Test driver on Vybrid board and add compatible string
> - Remove unused functions
> - set default crtc for encoder
> - replace legacy functions with atomic help functions Adviced by Daniel
> Vetter
> - Set the unique name of the DRM device
> - Implement irq handle function for vblank interrupt
> 
> Changed in v2:
> - Add atomic support
> Adviced by Daniel Vetter
> - Modify bindings file
> - Rename node for compatibility
> - Move platform related code out for compatibility Adviced by Stefan Agner
> 
> 
>  MAINTAINERS |   7 +
>  drivers/gpu/drm/Kconfig |   2 +
>  drivers/gpu/drm/Makefile|   1 +
>  drivers/gpu/drm/fsl-dcu/Kconfig |  18 ++
>  drivers/gpu/drm/fsl-dcu/Makefile|   7 +
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.c | 200 +
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h |  31 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c  | 172 +++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h  |  22 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c   | 379
> 
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h   | 223 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c |  26 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c   |  42 +++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.h   |  17 ++
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 195 
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h |  23 ++
>  16 files changed, 1365 insertions(+)
>  create mode 100644 drivers/gpu/drm/fsl-dcu/Kconfig  create mode 100644
> drivers/gpu/drm/fsl-dcu/Makefile  create mode 100644 drivers/gpu/drm/fsl-
> dcu/fsl_dcu_drm_connector.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_connector.h
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
>  create mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h
>  creat

[git pull] drm fixes

2015-07-10 Thread Dave Airlie

Hi Linus,

back from vacation (another one is coming up in August though), thanks for
taking care of direct pulls while I was out.

a bunch of fixes for radeon, intel, omap and one amdkfd fix.

radeon fixes are all over, but it does fix some cursor corruption across 
suspend/resume
i915 should fix the second warn you were seeing, so let us know if not.
omap is a bunch of small fixes,

Regards,
Dave.

The following changes since commit c4b5fd3fb2058b650447372472ad24e2a989f9f6:

  Merge branch 'hpfs-patches' (patches from Mikulas Patocka) (2015-07-09 
13:35:39 -0700)

are available in the git repository at:

  git://people.freedesktop.org/~airlied/linux drm-fixes

for you to fetch changes up to 2d28b633c3fa8f53b919a5de86eb1c8e78dde818:

  Merge tag 'omapdrm-4.2-fixes' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-fixes 
(2015-07-10 15:59:35 +1000)


Alex Deucher (2):
  Revert "Revert "drm/radeon: dont switch vt on suspend""
  drm/radeon: disable vce init on cayman (v2)

Chris Wilson (1):
  drm/i915: Declare the swizzling unknown for L-shaped configurations

Christian König (3):
  drm/radeon: allways add the VM clear duplicate
  drm/radeon: check if BO_VA is set before adding it to the invalidation 
list
  drm/amdgpu: fix timeout calculation

Dan Carpenter (1):
  drm/radeon: fix underflow in r600_cp_dispatch_texture()

Daniel Vetter (2):
  drm/i915: Check crtc->active in intel_crtc_disable_planes
  drm/i915: Use crtc_state->active in primary check_plane func

Dave Airlie (4):
  Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux 
into drm-fixes
  Merge tag 'drm-amdkfd-fixes-2015-07-09' of 
git://people.freedesktop.org/~gabbayo/linux into drm-fixes
  Merge tag 'drm-intel-fixes-2015-07-09' of 
git://anongit.freedesktop.org/drm-intel into drm-fixes
  Merge tag 'omapdrm-4.2-fixes' of git://git.kernel.org/.../tomba/linux 
into drm-fixes

Fabian Frederick (1):
  drm/omap: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN

Grigori Goronzy (4):
  drm/radeon: use RCU query for GEM_BUSY syscall
  drm/radeon: fix HDP flushing
  drm/radeon: default to 2048 MB GART size on SI+
  drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2)

Imre Deak (1):
  drm/i915/chv: fix HW readout of the port PLL fractional divider

Maninder Singh (1):
  drm/amdkfd: validate pdd where it acquired first

Mario Kleiner (2):
  drm/radeon: Handle irqs only based on irq ring, not irq status regs.
  drm/amdgpu: Handle irqs only based on irq ring, not irq status regs.

Michel Dänzer (2):
  drm/radeon: Clean up reference counting and pinning of the cursor BOs
  drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor()

Tomi Valkeinen (6):
  drm/omap: return error if dma_alloc_writecombine fails
  drm/omap: check that plane is inside crtc
  drm/omap: increase DMM transaction timeout
  drm/omap: fix omap_framebuffer_unpin() error handling
  drm/omap: fix omap_gem_put_paddr() error handling
  drm/omap: fix align_pitch() for 24 bits per pixel

Tvrtko Ursulin (1):
  drm/i915: Restore all GGTT VMAs on resume

Ville Syrjälä (1):
  Revert "drm/i915: Allocate context objects from stolen"

 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c  |   2 +-
 drivers/gpu/drm/amd/amdgpu/dce_v10_0.c   |  22 +-
 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c   |  22 +-
 drivers/gpu/drm/amd/amdgpu/dce_v8_0.c|  22 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c |   9 +-
 drivers/gpu/drm/i915/i915_gem_context.c  |   4 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c  |  23 +-
 drivers/gpu/drm/i915/i915_gem_tiling.c   |  12 +-
 drivers/gpu/drm/i915/intel_display.c |  12 +-
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c |   2 +-
 drivers/gpu/drm/omapdrm/omap_drv.h   |   6 +-
 drivers/gpu/drm/omapdrm/omap_fb.c|  16 +-
 drivers/gpu/drm/omapdrm/omap_fbdev.c |   2 +-
 drivers/gpu/drm/omapdrm/omap_gem.c   |  26 +-
 drivers/gpu/drm/omapdrm/omap_plane.c |  26 ++
 drivers/gpu/drm/radeon/cik.c | 336 ++
 drivers/gpu/drm/radeon/evergreen.c   | 392 +--
 drivers/gpu/drm/radeon/ni.c  |  25 +-
 drivers/gpu/drm/radeon/r600.c| 155 ++--
 drivers/gpu/drm/radeon/r600_cp.c |   2 +-
 drivers/gpu/drm/radeon/radeon_cursor.c   | 109 -
 drivers/gpu/drm/radeon/radeon_device.c   |  66 --
 drivers/gpu/drm/radeon/radeon_fb.c   |   1 +
 drivers/gpu/drm/radeon/radeon_gem.c  |  12 +-
 drivers/gpu/drm/radeon/radeon_mode.h |   1 -
 drivers/gpu/drm/radeon/radeon_vm.c   |  40 ++--
 drivers/gpu/drm/radeon/si.c  | 336 ++
 27 files changed, 964 insertions(+), 717 deletions(-)


[Bug 91263] R600 Segfault in finalize_textures

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91263

Michel Dänzer  changed:

   What|Removed |Added

  Component|Drivers/Gallium/r600|Mesa core
   Assignee|dri-devel at lists.freedesktop |mesa-dev at 
lists.freedesktop.
   |.org|org
 QA Contact|dri-devel at lists.freedesktop |mesa-dev at 
lists.freedesktop.
   |.org|org

--- Comment #1 from Michel Dänzer  ---
ctx->FragmentProgram._Current is NULL.

#0  0x7fffe50d in finalize_textures (st=0xd21d70) at
../../../src/mesa/state_tracker/st_atom_texture.c:519
#1  0x7fffe5095265 in st_validate_state (st=st at entry=0xd21d70) at
../../../src/mesa/state_tracker/st_atom.c:214
#2  0x7fffe509c580 in st_BlitFramebuffer (ctx=0xcdfb40, readFB=0x1285450,
drawFB=0xa8ecf0, srcX0=0, srcY0=0, srcX1=376, srcY1=413, dstX0=12, dstY0=175,
dstX1=388, dstY1=588, mask=16384, filter=9728) at
../../../src/mesa/state_tracker/st_cb_blit.c:95
#3  0x7fffe4e67a3e in _mesa_blit_framebuffer (func=0x7fffe5593dc8
"glBlitFramebuffer", filter=9728, mask=16384, dstY1=588, dstX1=388, dstY0=175,
dstX0=12, srcY1=413, srcX1=376, srcY0=0, srcX0=0, drawFb=,
readFb=, 
ctx=) at ../../../src/mesa/main/blit.c:525
#4  _mesa_BlitFramebuffer (srcX0=0, srcY0=0, srcX1=376, srcY1=413, dstX0=12,
dstY0=175, dstX1=388, dstY1=588, mask=16384, filter=9728) at
../../../src/mesa/main/blit.c:553
#5  0x77254352 in gdk_cairo_draw_from_gl () from
/usr/lib/x86_64-linux-gnu/libgdk-3.so.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/20150710/ed1c65b3/attachment-0001.html>


[Bug 76490] Hang during boot when DPM is on (R9 270X)

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=76490

--- Comment #39 from Alex Deucher  ---
(In reply to Tobias Droste from comment #35)
> 3) This card works fine with any sclk/mclk combination with the same vddc
> (1238mV) in windows and I can overclock there!

There is apparently some aspect of the set up that we are not programming
correctly that manifests with higher clocks on certain boards.

> 
> I'm also wondering why I get a different VBIOS size if I get the bios in
> windows (gpu-z) and linux. Is it because different firmware gets loaded? The
> (working) vbios under windows is twice as large as the linux one (see
> attachments).

The vbios is loaded from rom on the card.  The firmware for the various
micro-controllers on the GPU are loaded by the driver and are not part of the
vbios.  I'm not sure off hand why they differ.  Perhaps gpuz always returns a
128K image regardless of what size the actual bios is?  Or maybe it asks the
driver windows driver for a copy and the windows driver always stores 128K
images regardless of the actual image size.  I quick look at the tables and I
only see one small difference in the overdrive table:
-OD max sclk: 14, max mclk: 162500 (win)
+OD max sclk: 107000, max mclk: 14 (linux)
Everything else appears to be the same.  I'm guessing the windows driver
patched that and gpuz fetches the copy from the driver.

-- 
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/20150710/1f8cb3d6/attachment.html>


[Bug 91279] agd5f drm tonga occasional traps error:0 in libdrm_amdgpu.so.1.0.0

2015-07-10 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=91279

--- Comment #1 from Michel Dänzer  ---
Can you get a gdb backtrace of such a crash?

-- 
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/20150710/bafaadce/attachment.html>