Re: [PATCH v3 1/3] ARM: dts: imx6ul: Add csi node

2019-08-19 Thread Shawn Guo
On Wed, Jul 31, 2019 at 06:32:57PM +0200, Sébastien Szymanski wrote:
> Add csi node for i.MX6UL SoC.
> 
> Reviewed-by: Fabio Estevam 
> Signed-off-by: Sébastien Szymanski 

Applied, thanks.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2 10/15] ARM: dts: imx7s: add multiplexer controls

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:45PM +0100, Rui Miguel Silva wrote:
> The IOMUXC General Purpose Register has bitfield to control video bus
> multiplexer to control the CSI input between the MIPI-CSI2 and parallel
> interface. Add that register and mask.
> 
> Signed-off-by: Rui Miguel Silva 
> ---
>  arch/arm/boot/dts/imx7s.dtsi | 9 -
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
> index d913c3f9c284..3027d6a62021 100644
> --- a/arch/arm/boot/dts/imx7s.dtsi
> +++ b/arch/arm/boot/dts/imx7s.dtsi
> @@ -534,8 +534,15 @@
>  
>   gpr: iomuxc-gpr@3034 {
>   compatible = "fsl,imx7d-iomuxc-gpr",
> - "fsl,imx6q-iomuxc-gpr", "syscon";
> + "fsl,imx6q-iomuxc-gpr", "syscon", 
> "simple-mfd";
>   reg = <0x3034 0x1>;
> +
> + mux: mux-controller {
> + compatible = "mmio-mux";
> + #mux-control-cells = <1>;
> +

The newline in between property list is not really necessary.

Shawn

> + mux-reg-masks = <0x14 0x0010>;
> + };
>   };
>  
>   ocotp: ocotp-ctrl@3035 {
> -- 
> 2.17.0
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2 07/15] ARM: dts: increase default cma size to 40MB

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:42PM +0100, Rui Miguel Silva wrote:
> To support camera in i.MX7 the cma heap is used to allocate frame buffers. The
> default size of CMA is 16MB which is not enough for higher resolutions (ex:
> 1600x1200).
> 
> So, increase the default CMA size to 40MB.
> 
> Signed-off-by: Rui Miguel Silva 

CMA size can be adjusted by kernel cmdline.  I'm not sure it's necessary
to make it fixed in DT.

Shawn

> ---
>  arch/arm/boot/dts/imx7s.dtsi | 14 ++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
> index 4d42335c0dee..142ea709d296 100644
> --- a/arch/arm/boot/dts/imx7s.dtsi
> +++ b/arch/arm/boot/dts/imx7s.dtsi
> @@ -182,6 +182,20 @@
> IRQ_TYPE_LEVEL_LOW)>;
>   };
>  
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + /* global autoconfigured region for contiguous allocations */
> + linux,cma {
> + compatible = "shared-dma-pool";
> + reusable;
> + size = <0x280>;
> + linux,cma-default;
> + };
> + };
> +
>   soc {
>   #address-cells = <1>;
>   #size-cells = <1>;
> -- 
> 2.17.0
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2 04/15] clk: imx7d: reset parent for mipi csi root

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:39PM +0100, Rui Miguel Silva wrote:
> To guarantee that we do not get Overflow in image FIFO the outer bandwidth has
> to be faster than inputer bandwidth. For that it must be possible to set a
> faster frequency clock. So set new parent to sys_pfd3 clock for the mipi csi
> block.
> 
> Cc: linux-...@vger.kernel.org
> Signed-off-by: Rui Miguel Silva <rui.si...@linaro.org>
> ---
>  drivers/clk/imx/clk-imx7d.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
> index f7f4db2e6fa6..9a1a18ceb132 100644
> --- a/drivers/clk/imx/clk-imx7d.c
> +++ b/drivers/clk/imx/clk-imx7d.c
> @@ -891,6 +891,9 @@ static void __init imx7d_clocks_init(struct device_node 
> *ccm_node)
>   clk_set_parent(clks[IMX7D_PLL_AUDIO_MAIN_BYPASS], 
> clks[IMX7D_PLL_AUDIO_MAIN]);
>   clk_set_parent(clks[IMX7D_PLL_VIDEO_MAIN_BYPASS], 
> clks[IMX7D_PLL_VIDEO_MAIN]);
>  
> + clk_set_parent(clks[IMX7D_MIPI_CSI_ROOT_SRC],
> +clks[IMX7D_PLL_SYS_PFD3_CLK]);
> +

For i.MX clock driver, we intentionally ignore line over 80 columns
warning to make the file easier for read.  So I would suggest you keep
it on a single line to stay consistent with other clk_set_parent() calls.

Other than that,

Acked-by: Shawn Guo <shawn...@kernel.org>

>   /* use old gpt clk setting, gpt1 root clk must be twice as gpt counter 
> freq */
>   clk_set_parent(clks[IMX7D_GPT1_ROOT_SRC], clks[IMX7D_OSC_24M_CLK]);
>  
> -- 
> 2.17.0
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] mtd: nand: Rename nand.h into rawnand.h

2017-08-09 Thread Shawn Guo
On Fri, Aug 04, 2017 at 05:29:10PM +0200, Boris Brezillon wrote:
> We are planning to share more code between different NAND based
> devices (SPI NAND, OneNAND and raw NANDs), but before doing that
> we need to move the existing include/linux/mtd/nand.h file into
> include/linux/mtd/rawnand.h so we can later create a nand.h header
> containing all common structure and function prototypes.
> 
> Signed-off-by: Boris Brezillon <boris.brezil...@free-electrons.com>
> Signed-off-by: Peter Pan <peterpand...@micron.com>
...
>  arch/arm/mach-imx/mach-qong.c       | 2 +-

Acked-by: Shawn Guo <shawn...@kernel.org>
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 3/3] MAINTAINERS: add maintainer for i.MX DRM driver

2014-11-04 Thread Shawn Guo
On Tue, Nov 4, 2014 at 6:52 PM, Philipp Zabel p.za...@pengutronix.de wrote:
 Add myself as the maintainer of the i.MX DRM driver.

 Signed-off-by: Philipp Zabel p.za...@pengutronix.de

Acked-by: Shawn Guo shawn@linaro.org

 ---
  MAINTAINERS | 7 +++
  1 file changed, 7 insertions(+)

 diff --git a/MAINTAINERS b/MAINTAINERS
 index df2aecf..ddf191d 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -3183,6 +3183,13 @@ F:   drivers/gpu/drm/exynos/
  F: include/drm/exynos*
  F: include/uapi/drm/exynos*

 +DRM DRIVERS FOR FREESCALE IMX
 +M: Philipp Zabel p.za...@pengutronix.de
 +L: dri-de...@lists.freedesktop.org
 +S: Maintained
 +F: drivers/gpu/drm/imx/
 +F: Documentation/devicetree/bindings/drm/imx/
 +
  DRM DRIVERS FOR NVIDIA TEGRA
  M: Thierry Reding thierry.red...@gmail.com
  M: Terje Bergström tbergst...@nvidia.com
 --
 2.1.1

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


[PATCH] imx-drm: ipuv3-plane: remove function ipu_plane_dpms()

2014-09-10 Thread Shawn Guo
All those ipu_*_put() calls in ipu_plane_dpms() are unnecessary,
because the only occurrence of ipu_plane_dpms() with 'mode' not being
DRM_MODE_DPMS_ON is in function ipu_disable_plane(), which already
has a ipu_plane_put_resources() call to put those ipu resources right
after ipu_plane_dpms().

So with those redundant ipu_*_put() calls removed from ipu_plane_dpms(),
the only left code in the function is ipu_plane_enable|disable().  Thus,
we can just call ipu_plane_enable|disable() as needed directly and
remove the ipu_plane_dpms() function completely.

Suggested-by: Philipp Zabel p.za...@pengutronix.de
Signed-off-by: Shawn Guo shawn@freescale.com
---
Greg,

This cleanup patch is based on Russell's fix -'imx-drm: ipuv3-plane:
fix ipu_plane_dpms()'.

Shawn

 drivers/staging/imx-drm/ipuv3-plane.c | 29 -
 1 file changed, 4 insertions(+), 25 deletions(-)

diff --git a/drivers/staging/imx-drm/ipuv3-plane.c 
b/drivers/staging/imx-drm/ipuv3-plane.c
index 50de10a550e9..06a0cb9c6b26 100644
--- a/drivers/staging/imx-drm/ipuv3-plane.c
+++ b/drivers/staging/imx-drm/ipuv3-plane.c
@@ -263,29 +263,6 @@ void ipu_plane_disable(struct ipu_plane *ipu_plane)
ipu_dp_disable(ipu_plane-ipu);
 }
 
-static void ipu_plane_dpms(struct ipu_plane *ipu_plane, int mode)
-{
-   bool enable;
-
-   DRM_DEBUG_KMS(mode = %d, mode);
-
-   enable = (mode == DRM_MODE_DPMS_ON);
-
-   if (enable == ipu_plane-enabled)
-   return;
-
-   if (enable) {
-   ipu_plane_enable(ipu_plane);
-   } else {
-   ipu_plane_disable(ipu_plane);
-
-   ipu_idmac_put(ipu_plane-ipu_ch);
-   ipu_dmfc_put(ipu_plane-dmfc);
-   if (ipu_plane-dp)
-   ipu_dp_put(ipu_plane-dp);
-   }
-}
-
 /*
  * drm_plane API
  */
@@ -319,7 +296,8 @@ static int ipu_update_plane(struct drm_plane *plane, struct 
drm_crtc *crtc,
plane-crtc, crtc);
plane-crtc = crtc;
 
-   ipu_plane_dpms(ipu_plane, DRM_MODE_DPMS_ON);
+   if (!ipu_plane-enabled)
+   ipu_plane_enable(ipu_plane);
 
return 0;
 }
@@ -330,7 +308,8 @@ static int ipu_disable_plane(struct drm_plane *plane)
 
DRM_DEBUG_KMS([%d] %s\n, __LINE__, __func__);
 
-   ipu_plane_dpms(ipu_plane, DRM_MODE_DPMS_OFF);
+   if (ipu_plane-enabled)
+   ipu_plane_disable(ipu_plane);
 
ipu_plane_put_resources(ipu_plane);
 
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH RESEND] imx-drm: imx-drm-core: add basic suspend/resume support

2014-09-10 Thread Shawn Guo
HDMI currently stops working after a system suspend/resume cycle.  The
cause is that the mode setting states in hardware gets lost and isn't
restored across the suspend/resume cycle.

The patch adds a very basic suspend/resume support to imx-drm driver,
and calls drm_helper_resume_force_mode() in .resume hook to restore the
mode setting states, so that HDMI can continue working after a system
suspend/resume cycle.

Since the suspend/resume hook can be called with drm_device pointer
being NULL from driver data, we need a check on the pointer in the
hooks.  And to avoid using a stale pointer from driver data, it also
clears driver data in .unload hook.

Signed-off-by: Shawn Guo shawn@freescale.com
---
Greg,

This is a resend of '[PATCH v3] imx-drm: imx-drm-core: add suspend/resume
support' [1], with a tiny change on the subject only.

Shawn

[1] http://thread.gmane.org/gmane.linux.ports.arm.kernel/349360

 drivers/staging/imx-drm/imx-drm-core.c | 33 +
 1 file changed, 33 insertions(+)

diff --git a/drivers/staging/imx-drm/imx-drm-core.c 
b/drivers/staging/imx-drm/imx-drm-core.c
index 6b22106534d8..41ff896d2ca9 100644
--- a/drivers/staging/imx-drm/imx-drm-core.c
+++ b/drivers/staging/imx-drm/imx-drm-core.c
@@ -87,6 +87,8 @@ static int imx_drm_driver_unload(struct drm_device *drm)
drm_vblank_cleanup(drm);
drm_mode_config_cleanup(drm);
 
+   platform_set_drvdata(drm-platformdev, NULL);
+
return 0;
 }
 
@@ -647,6 +649,36 @@ static int imx_drm_platform_remove(struct platform_device 
*pdev)
return 0;
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int imx_drm_suspend(struct device *dev)
+{
+   struct drm_device *drm_dev = dev_get_drvdata(dev);
+
+   /* The drm_dev is NULL before .load hook is called */
+   if (drm_dev == NULL)
+   return 0;
+
+   drm_kms_helper_poll_disable(drm_dev);
+
+   return 0;
+}
+
+static int imx_drm_resume(struct device *dev)
+{
+   struct drm_device *drm_dev = dev_get_drvdata(dev);
+
+   if (drm_dev == NULL)
+   return 0;
+
+   drm_helper_resume_force_mode(drm_dev);
+   drm_kms_helper_poll_enable(drm_dev);
+
+   return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(imx_drm_pm_ops, imx_drm_suspend, imx_drm_resume);
+
 static const struct of_device_id imx_drm_dt_ids[] = {
{ .compatible = fsl,imx-display-subsystem, },
{ /* sentinel */ },
@@ -659,6 +691,7 @@ static struct platform_driver imx_drm_pdrv = {
.driver = {
.owner  = THIS_MODULE,
.name   = imx-drm,
+   .pm = imx_drm_pm_ops,
.of_match_table = imx_drm_dt_ids,
},
 };
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 0/2] Two imx-drm oops fixes

2014-09-09 Thread Shawn Guo
On Mon, Sep 08, 2014 at 12:09:49PM -0700, Greg Kroah-Hartman wrote:
 On Mon, Sep 08, 2014 at 12:08:59PM -0700, Greg Kroah-Hartman wrote:
  On Mon, Sep 01, 2014 at 06:07:12PM +0100, Russell King - ARM Linux wrote:
   Greg,
   
   Here's two oops fixes for imx-drm, which I've had queued up for a number
   of months now.  Shawn posted different fixes for the same oops recently
   as well.
  
  So do I take your patches, or Shawn's?
 
 Actually, yours are smaller, so I'll defer to you and take yours...

Greg,

My patch is bigger than Russell's because I cleaned up the code a little
bit along the way of fixing the bug.

I will send you the cleanup as an incremental patch based on Russell's
fixes.

Shawn
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v14 05/10] ARM: dts: imx5*, imx6*: correct display-timings nodes.

2014-06-24 Thread Shawn Guo
On Tue, Jun 24, 2014 at 04:01:58PM +0100, Russell King - ARM Linux wrote:
 On Mon, Jun 16, 2014 at 12:11:19PM +0200, Denis Carikli wrote:
  The imx-drm driver can't use the de-active and
  pixelclk-active display-timings properties yet.
  
  Instead the data-enable and the pixel data clock
  polarity are hardcoded in the imx-drm driver.
  
  So theses properties are now set to keep
  the same behaviour when imx-drm will start
  using them.
  
  Signed-off-by: Denis Carikli de...@eukrea.com
 
 This patch needs either an ack from the arm-soc/iMX maintainers, or
 they need to merge it.  As there's little positive agreement on the
 series, I can understand why there's reluctance to merge it.
 
 So, can we start having some acks from people please, or at least
 commitments to merge this patch when the others are deemed to be
 acceptable.  If not, can we have explanations why this should not
 be merged.

I will be happy to merge dts change through IMX tree once the
binding/diver part gets accepted/applied.

Shawn
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] imx-drm: imx-hdmi: fix hdmi hotplug detection initial state

2014-06-09 Thread Shawn Guo
On Mon, Jun 09, 2014 at 11:29:28AM -0300, Fabio Estevam wrote:
 On Mon, Jun 9, 2014 at 11:06 AM, Russell King - ARM Linux
 li...@arm.linux.org.uk wrote:
 
  Please check the status in /sys/class/drm/card0-HDMI-A-1/status.  This
  should report the current state of the hotplug detection.
 
 /sys/class/drm/card0-HDMI-A-1/status returns the correct state for
 HDMI cable connection.
 
  Remember that this code detects off the HPD signal - if the HPD signal
  has not been correctly wired up, this patch is not going to help (really
  it comes down to a hardware fault, which I'm not trying to solve with
  this patch.)
 
  What I'm trying to resolve with this patch is that the state detected
  on properly wired up systems corresponds with the real initial state of
  the interface at initialisation time.
 
  The problem with the current code is that we start off assuming that the
  interface is disconnected, and we rely on an interrupt arriving to change
  that state.  If for whatever reason that interrupt does not arrive, then,
  even if the HPD signal is active, we continue believing that the interface
  is not connected.
 
  I seem to remember discussion in the past that the HPD signal is not
  wired up on SabreSD.  Really, this needs to be a DT flag to indicate
 
 It is sabrelite board that does not have HPD signal not wired up.
 
 sabresd does have HPD signal connected.
 
 The HDMI undetected issue I am seeing on sabresd seems to be related
 to the simultaneous usage of HDMI and LVDS.
 
 If I remove the ldb node from the imx6qdl-sabresd.dtsi, then the HDMI
 cable is correctly detected and HDMI is shown right after boot.

This is a known limitation.

http://thread.gmane.org/gmane.linux.ports.arm.kernel/315968/focus=318559

Shawn
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v12][ 06/12] ARM: dts: imx5*, imx6*: correct display-timings nodes.

2014-04-08 Thread Shawn Guo
On Mon, Apr 07, 2014 at 02:44:45PM +0200, Denis Carikli wrote:
 The imx-drm driver can't use the de-active and
 pixelclk-active display-timings properties yet.
 
 Instead the data-enable and the pixel data clock
 polarity are hardcoded in the imx-drm driver.
 
 So theses properties are now set to keep
 the same behaviour when imx-drm will start
 using them.
 
 Signed-off-by: Denis Carikli de...@eukrea.com
 ---
 ChangeLog v9-v10:
 - New patch that was splitted out of:
   staging imx-drm: Use de-active and pixelclk-active
   display-timings.
 ---
  arch/arm/boot/dts/imx51-babbage.dts   |2 ++
  arch/arm/boot/dts/imx53-m53evk.dts|2 ++
  arch/arm/boot/dts/imx53-tx53-x03x.dts |2 +-
  arch/arm/boot/dts/imx6qdl-gw53xx.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-sabreauto.dtsi  |2 ++
  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi  |2 ++
  arch/arm/boot/dts/imx6qdl-sabresd.dtsi|2 ++
  9 files changed, 17 insertions(+), 1 deletion(-)

...

 diff --git a/arch/arm/boot/dts/imx53-tx53-x03x.dts 
 b/arch/arm/boot/dts/imx53-tx53-x03x.dts
 index 0217dde3..4092a81 100644
 --- a/arch/arm/boot/dts/imx53-tx53-x03x.dts
 +++ b/arch/arm/boot/dts/imx53-tx53-x03x.dts
 @@ -93,7 +93,7 @@
   hsync-active = 0;
   vsync-active = 0;
   de-active = 1;
 - pixelclk-active = 1;
 + pixelclk-active = 0;

@Lothar, is this change correct?

Shawn

   };
  
   ET0500 {

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v12][ 12/12] ARM: imx_v6_v7_defconfig: Add more drm drivers.

2014-04-08 Thread Shawn Guo
On Mon, Apr 07, 2014 at 02:44:51PM +0200, Denis Carikli wrote:
 The DRM_PANEL_SIMPLE is needed by the eukrea
 mbimxsd51's displays.
 
 Signed-off-by: Denis Carikli de...@eukrea.com

Applied, thanks.

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v5 00/11] imx-drm dt bindings

2014-04-06 Thread Shawn Guo
On Tue, Mar 11, 2014 at 11:46:11AM +0800, Shawn Guo wrote:
 I just came across a couple problems when testing the series on
 my imx6dl-sabresd board in dual display case - HDMI + LVDS.  I tested it
 using Russell's branch below, which I believe has all the pieces put
 together.
 
   git://ftp.arm.linux.org.uk/~rmk/linux-arm.git imx-drm-staging
 
 - When I enable HDMI and LVDS support in both kernel build and device
   tree, HDMI seems working fine but LVDS color is corrupted quite badly.

Philipp,

Did you get any chance to reproduce this dual display issue?  Now it
shows on mainline kernel.

And I see another HDMI regression with my testing on mainline kernel.  I
can have my HDMI work at 1920x1080 with v3.14 kernel, but it can only
probes 1024x768 with the mainline today.  The Xorg.0.log are attached
below.  The hardware and user space are same, so I guess this is another
issue introduced by the recently kernel driver changes?

Shawn

mainline kernel
===

[20.606] (II) LoadModule: modesetting
[20.607] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[20.609] (II) Module modesetting: vendor=X.Org Foundation
[20.609]compiled for 1.12.1.902, module version = 0.3.0
[20.610]Module class: X.Org Video Driver
[20.610]ABI class: X.Org Video Driver, version 12.0
[20.610] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[20.610] (++) using VT number 7

[20.624] (WW) Falling back to old probe method for modesetting
[20.624] (II) modesetting(0): using default device
[20.627] (II) modesetting(0): Creating default Display subsection in Screen 
section
Default Screen Section for depth/fbbpp 24/32
[20.627] (==) modesetting(0): Depth 24, (==) framebuffer bpp 32
[20.628] (==) modesetting(0): RGB weight 888
[20.628] (==) modesetting(0): Default visual is TrueColor
[20.628] (II) modesetting(0): ShadowFB: preferred NO, enabled NO
[20.628] (II) modesetting(0): Output HDMI-0 has no monitor section
[20.629] (II) modesetting(0): EDID for output HDMI-0
[20.629] (II) modesetting(0): Printing probed modes for output HDMI-0
[20.629] (II) modesetting(0): Modeline 1024x768x60.0   65.00  1024 1048 
1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[20.629] (II) modesetting(0): Modeline 800x600x60.3   40.00  800 840 968 
1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[20.629] (II) modesetting(0): Modeline 800x600x56.2   36.00  800 824 896 
1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[20.630] (II) modesetting(0): Modeline 848x480x60.0   33.75  848 864 976 
1088  480 486 494 517 +hsync +vsync (31.0 kHz e)
[20.630] (II) modesetting(0): Modeline 640x480x59.9   25.18  640 656 752 
800  480 489 492 525 -hsync -vsync (31.5 kHz e)
[20.630] (II) modesetting(0): Output HDMI-0 connected
[20.630] (II) modesetting(0): Using exact sizes for initial modes
[20.630] (II) modesetting(0): Output HDMI-0 using initial mode 1024x768
[20.630] (II) modesetting(0): Using default gamma of (1.0, 1.0, 1.0) unless 
otherwise stated.
[20.630] (==) modesetting(0): DPI set to (96, 96)

v3.14 kernel


[20.214] (II) LoadModule: modesetting
[20.215] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[20.217] (II) Module modesetting: vendor=X.Org Foundation
[20.217]compiled for 1.12.1.902, module version = 0.3.0
[20.217]Module class: X.Org Video Driver
[20.217]ABI class: X.Org Video Driver, version 12.0
[20.217] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[20.217] (++) using VT number 7

[20.240] (WW) Falling back to old probe method for modesetting
[20.241] (II) modesetting(0): using default device
[20.241] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[20.244] (II) modesetting(0): Creating default Display subsection in Screen 
section
Default Screen Section for depth/fbbpp 24/32
[20.244] (==) modesetting(0): Depth 24, (==) framebuffer bpp 32
[20.244] (==) modesetting(0): RGB weight 888
[20.244] (==) modesetting(0): Default visual is TrueColor
[20.244] (II) modesetting(0): ShadowFB: preferred NO, enabled NO
[20.282] (II) modesetting(0): Output HDMI-0 has no monitor section
[20.329] (II) modesetting(0): EDID for output HDMI-0
[20.330] (II) modesetting(0): Manufacturer: RAW  Model: 0  Serial#: 1
[20.330] (II) modesetting(0): Year: 2012  Week: 6
[20.330] (II) modesetting(0): EDID Version: 1.3
[20.331] (II) modesetting(0): Digital Display Input
[20.331] (II) modesetting(0): Indeterminate output size
[20.331] (II) modesetting(0): Gamma: 2.20
[20.331] (II) modesetting(0): No DPMS capabilities specified
[20.331] (II) modesetting(0): Supported color encodings: RGB 4:4:4 YCrCb 
4:4:4 
[20.332] (II) modesetting(0): First detailed timing is preferred mode
[20.332] (II) modesetting(0): redX: 0.636 redY: 0.349

Re: [PATCH v5 00/11] imx-drm dt bindings

2014-03-11 Thread Shawn Guo
On Tue, Mar 11, 2014 at 12:42:08PM +0100, Philipp Zabel wrote:
 Hi Shawn,
 
 Am Dienstag, den 11.03.2014, 11:46 +0800 schrieb Shawn Guo:
  On Wed, Mar 05, 2014 at 10:20:51AM +0100, Philipp Zabel wrote:
   Hi,
   
   this latest version of the imx-drm DT binding patches applies
   on top of staging-next and also depends on the OF graph binding
   patchset that moves the v4l2_of helpers to drivers/of.
   Currently, the two patchsets are also available at:
   git://git.pengutronix.de/git/pza/linux.git topic/of-graph
   git://git.pengutronix.de/git/pza/linux.git topic/imx-drm-dt
  
  Hi Philipp,
  
  I just came across a couple problems when testing the series on
  my imx6dl-sabresd board in dual display case - HDMI + LVDS.  I tested it
  using Russell's branch below, which I believe has all the pieces put
  together.
  
git://ftp.arm.linux.org.uk/~rmk/linux-arm.git imx-drm-staging
  
  - When I enable HDMI and LVDS support in both kernel build and device
tree, HDMI seems working fine but LVDS color is corrupted quite badly.
  
  - When I enable HDMI and LVDS support in kernel build but only LVDS in
device tree (keep HDMI disabled in device tree by not changing
'status' of HDMI node to 'okay'), LVDS does not even work.  In this
case, it seems that the binding of display-subsystem does not succeed.
 
 Can you check if you get the bound messages from
 drivers/base/component.c:
 
 imx-drm display-subsystem.11: bound imx-ipuv3-crtc.0 (ops ipu_crtc_ops)
 imx-drm display-subsystem.11: bound imx-ipuv3-crtc.1 (ops ipu_crtc_ops)
 imx-drm display-subsystem.11: bound ldb.10 (ops imx_ldb_ops)
 
 I have tried this branch with a Phytec phyFLEX i.MX6S on PBAB01
 baseboard with EDT 800x480 LVDS panel, and it seems to work.
 The check in drivers/staging/imx-drm/imx-drm-core.c:675 should make sure
 that unavailable (status=disabled) devices are just skipped.

Sorry, Philipp.  The setup in my report is incorrect.  The correct setup
to see this issue consists of:

1) build a kernel without HDMI support, i.e. !CONFIG_DRM_IMX_HDMI

2) enable HDMI device in DT, i.e. adding the lines below in board dts.

hdmi {
   status = okay;
};

Sorry for the confusion.

Shawn

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v5 00/11] imx-drm dt bindings

2014-03-11 Thread Shawn Guo
On Tue, Mar 11, 2014 at 02:34:38PM +0100, Lucas Stach wrote:
  Sorry, Philipp.  The setup in my report is incorrect.  The correct setup
  to see this issue consists of:
  
  1) build a kernel without HDMI support, i.e. !CONFIG_DRM_IMX_HDMI
  
  2) enable HDMI device in DT, i.e. adding the lines below in board dts.
  
  hdmi {
 status = okay;
  };
  
  Sorry for the confusion.
  
 This isn't a supported use-case, the componentized device stuff is there
 exactly to ensure that the DRM device is only brought up after all
 active components have an driver attached to them.

Ah, yes.  I was in the impression that LVDS should still work in this
setup, but that was the case before Philipp's series.  In Russell's
original imx-drm setup, LVDS still works even if I enable the HDMI
device in DT, as long as I do not reference it from 'connectors'.

imx_drm: imx-drm {
compatible = fsl,imx-drm;
crtcs = ipu1 0, ipu1 1;
connectors = ldb;
};

Thanks for the clarification.

Shawn

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v5 00/11] imx-drm dt bindings

2014-03-10 Thread Shawn Guo
On Wed, Mar 05, 2014 at 10:20:51AM +0100, Philipp Zabel wrote:
 Hi,
 
 this latest version of the imx-drm DT binding patches applies
 on top of staging-next and also depends on the OF graph binding
 patchset that moves the v4l2_of helpers to drivers/of.
 Currently, the two patchsets are also available at:
 git://git.pengutronix.de/git/pza/linux.git topic/of-graph
 git://git.pengutronix.de/git/pza/linux.git topic/imx-drm-dt

Hi Philipp,

I just came across a couple problems when testing the series on
my imx6dl-sabresd board in dual display case - HDMI + LVDS.  I tested it
using Russell's branch below, which I believe has all the pieces put
together.

  git://ftp.arm.linux.org.uk/~rmk/linux-arm.git imx-drm-staging

- When I enable HDMI and LVDS support in both kernel build and device
  tree, HDMI seems working fine but LVDS color is corrupted quite badly.

- When I enable HDMI and LVDS support in kernel build but only LVDS in
  device tree (keep HDMI disabled in device tree by not changing
  'status' of HDMI node to 'okay'), LVDS does not even work.  In this
  case, it seems that the binding of display-subsystem does not succeed.

Please confirm if they are real problems or I'm missing something here.

Shawn

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH RFC v2 00/35] Second preview of imx-drm cleanup series

2014-02-12 Thread Shawn Guo
On Mon, Feb 10, 2014 at 12:28:03PM +, Russell King - ARM Linux wrote:
 This is the latest revision of my series cleaning up imx-drm and
 hopefully getting it ready to be moved out of drivers/staging.
 This series is updated to v3.14-rc2.
 
 Since the last round of patches were posted, the component support
 has been merged into mainline, and thus dropped from this series.
 Greg has taken the first three patches and merged them into his
 linux-next tree - however, I include them here for completness.
 
 Most of the comments from last time still apply, and I'll look at
 incorporating some of the other patches that were posted in the
 coming week.
 
 If I can have some acks for this, I'll start sending some of it to
 Greg - I'd like to at least get the five or six initial imx-hdmi
 patches to Greg and queued up for the next merge window sooner
 rather than later, preferably getting most of this ready for that
 window too.

For the series,

Acked-by: Shawn Guo shawn@linaro.org

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH v2] staging: imx-hdmi: use rx sense status for plug detection if hpd is unreliable

2014-01-10 Thread Shawn Guo
On Fri, Jan 10, 2014 at 03:22:24PM +0100, Philipp Zabel wrote:
 Due to the voltage divider on the HPD line, the HDMI connector on
 imx6q-sabrelite doesn't reliably detect connected DVI monitors.
 This patch allows to use the RX_SENSE0 signal as a workaround when
 enabled by a boolean device tree property 'hpd-unreliable'.

If it's a fsl/imx specific property, it should have a 'fsl,' prefix.
It should be added into binding doc.  Oh, we do not even have a binding
doc for this imx-hdmi yet.

Shawn

 
 Signed-off-by: Philipp Zabel p.za...@pengutronix.de
 ---
 This patch is based on Russell's recent 46-patch imx-drm cleanup series.
 Changes since v1:
  - Store the status and polarity bits in struct imx_hdmi
 ---
  drivers/staging/imx-drm/imx-hdmi.c | 36 ++--
  1 file changed, 26 insertions(+), 10 deletions(-)
 
 diff --git a/drivers/staging/imx-drm/imx-hdmi.c 
 b/drivers/staging/imx-drm/imx-hdmi.c
 index fb3177d..62cb531 100644
 --- a/drivers/staging/imx-drm/imx-hdmi.c
 +++ b/drivers/staging/imx-drm/imx-hdmi.c
 @@ -140,6 +140,9 @@ struct imx_hdmi {
   struct regmap *regmap;
   struct i2c_adapter *ddc;
   void __iomem *regs;
 + u8 sink_detect_polarity;
 + u8 sink_detect_status;
 + u8 sink_detect_mask;
  
   unsigned int sample_rate;
   int ratio;
 @@ -1317,10 +1320,10 @@ static int imx_hdmi_fb_registered(struct imx_hdmi 
 *hdmi)
   HDMI_PHY_I2CM_CTLINT_ADDR);
  
   /* enable cable hot plug irq */
 - hdmi_writeb(hdmi, (u8)~HDMI_PHY_HPD, HDMI_PHY_MASK0);
 + hdmi_writeb(hdmi, hdmi-sink_detect_mask, HDMI_PHY_MASK0);
  
   /* Clear Hotplug interrupts */
 - hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
 + hdmi_writeb(hdmi, hdmi-sink_detect_status, HDMI_IH_PHY_STAT0);
  
   return 0;
  }
 @@ -1392,6 +1395,7 @@ static enum drm_connector_status 
 imx_hdmi_connector_detect(struct drm_connector
  {
   struct imx_hdmi *hdmi = container_of(connector, struct imx_hdmi,
connector);
 +
   return hdmi-connector_status;
  }
  
 @@ -1530,18 +1534,20 @@ static irqreturn_t imx_hdmi_irq(int irq, void *dev_id)
  
   phy_int_pol = hdmi_readb(hdmi, HDMI_PHY_POL0);
  
 - if (intr_stat  HDMI_IH_PHY_STAT0_HPD) {
 - if (phy_int_pol  HDMI_PHY_HPD) {
 + if (intr_stat  hdmi-sink_detect_status) {
 + int pol_bit = hdmi-sink_detect_polarity;
 +
 + if (phy_int_pol  pol_bit) {
   dev_dbg(hdmi-dev, EVENT=plugin\n);
  
 - hdmi_modb(hdmi, 0, HDMI_PHY_HPD, HDMI_PHY_POL0);
 + hdmi_modb(hdmi, 0, pol_bit, HDMI_PHY_POL0);
  
   hdmi-connector_status = connector_status_connected;
   imx_hdmi_poweron(hdmi);
   } else {
   dev_dbg(hdmi-dev, EVENT=plugout\n);
  
 - hdmi_modb(hdmi, HDMI_PHY_HPD, HDMI_PHY_HPD, 
 HDMI_PHY_POL0);
 + hdmi_modb(hdmi, pol_bit, pol_bit, HDMI_PHY_POL0);
  
   hdmi-connector_status = connector_status_disconnected;
   imx_hdmi_poweroff(hdmi);
 @@ -1550,7 +1556,7 @@ static irqreturn_t imx_hdmi_irq(int irq, void *dev_id)
   }
  
   hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0);
 - hdmi_writeb(hdmi, ~HDMI_IH_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
 + hdmi_writeb(hdmi, ~hdmi-sink_detect_status, HDMI_IH_MUTE_PHY_STAT0);
  
   return IRQ_HANDLED;
  }
 @@ -1702,14 +1708,24 @@ static int imx_hdmi_bind(struct device *dev, struct 
 device *master, void *data)
*/
   hdmi_init_clk_regenerator(hdmi);
  
 + hdmi-sink_detect_status = HDMI_IH_PHY_STAT0_HPD;
 + hdmi-sink_detect_polarity = HDMI_PHY_HPD;
 + hdmi-sink_detect_mask = ~HDMI_PHY_HPD;
 +
 + if (of_property_read_bool(np, hpd-unreliable)) {
 + hdmi-sink_detect_status = HDMI_IH_PHY_STAT0_RX_SENSE0;
 + hdmi-sink_detect_polarity = HDMI_PHY_RX_SENSE0;
 + hdmi-sink_detect_mask = ~HDMI_PHY_RX_SENSE0;
 + }
 +
   /*
* Configure registers related to HDMI interrupt
* generation before registering IRQ.
*/
 - hdmi_writeb(hdmi, HDMI_PHY_HPD, HDMI_PHY_POL0);
 + hdmi_writeb(hdmi, hdmi-sink_detect_polarity, HDMI_PHY_POL0);
  
   /* Clear Hotplug interrupts */
 - hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
 + hdmi_writeb(hdmi, hdmi-sink_detect_status, HDMI_IH_PHY_STAT0);
  
   ret = imx_hdmi_fb_registered(hdmi);
   if (ret)
 @@ -1720,7 +1736,7 @@ static int imx_hdmi_bind(struct device *dev, struct 
 device *master, void *data)
   goto err_iahb;
  
   /* Unmute interrupts */
 - hdmi_writeb(hdmi, ~HDMI_IH_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
 + hdmi_writeb(hdmi, ~hdmi-sink_detect_status, HDMI_IH_MUTE_PHY_STAT0);
  
   ret = snd_dw_hdmi_probe(hdmi-audio, dev, hdmi-regs, irq, hdmi);
   if (ret)
 

Re: [PATCH RFC 24/46] imx-drm: provide common connector mode validation function

2014-01-06 Thread Shawn Guo
On Thu, Jan 02, 2014 at 09:27:48PM +, Russell King wrote:
 diff --git a/drivers/staging/imx-drm/imx-drm.h 
 b/drivers/staging/imx-drm/imx-drm.h
 index 5649f180dc44..4eb594ce9cff 100644
 --- a/drivers/staging/imx-drm/imx-drm.h
 +++ b/drivers/staging/imx-drm/imx-drm.h
 @@ -68,4 +68,7 @@ int imx_drm_encoder_get_mux_id(struct drm_encoder *encoder);
  int imx_drm_encoder_add_possible_crtcs(struct imx_drm_encoder 
 *imx_drm_encoder,
   struct device_node *np);
  
 +int imx_drm_connector_mode_valid(struct drm_connector *connector,
 + struct drm_display_mode *mode);
 +
  #endif /* _IMX_DRM_H_ */

  CC  drivers/staging/imx-drm/ipu-v3/ipu-dc.o
  LD  net/ethernet/built-in.o
In file included from drivers/staging/imx-drm/ipu-v3/ipu-dc.c:23:0:
drivers/staging/imx-drm/ipu-v3/../imx-drm.h:56:9: warning: ‘struct 
drm_display_mode’ declared inside parameter list [enabled by default]
drivers/staging/imx-drm/ipu-v3/../imx-drm.h:56:9: warning: its scope is only 
this definition or declaration, which is probably not what you want [enabled by 
default]

Shawn

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH RFC 30/46] imx-drm: remove separate imx-fbdev

2014-01-06 Thread Shawn Guo
On Thu, Jan 02, 2014 at 09:28:19PM +, Russell King wrote:
 @@ -449,6 +458,24 @@ static int imx_drm_driver_load(struct drm_device *drm, 
 unsigned long flags)
   }
   }
  
 + /*
 +  * All components are now initialised, so setup the fb helper.
 +  * The fb helper takes copies of key hardware information, so the
 +  * crtcs/connectors/encoders must not change after this point.
 +  */
 +#if IS_ENABLED(CONFIG_DRM_IMX_FB_HELPER)
 + if (legacyfb_depth != 16  legacyfb_depth != 32) {
 + dev_warn(drm-dev, Invalid legacyfb_depth.  Defaulting to 
 16bpp\n);
 + legacyfb_depth = 16;
 + }
 + imxdrm-fbhelper = drm_fbdev_cma_init(drm, legacyfb_depth,
 + drm-mode_config.num_crtc, 4);

s/4/MAX_CRTC

imx-drm-core.c has the macro.

Shawn

 + if (IS_ERR(imxdrm-fbhelper)) {
 + ret = PTR_ERR(imxdrm-fbhelper);
 + imxdrm-fbhelper = NULL;
 + goto err_unbind;
 + }
 +#endif
   return 0;
  
  err_unbind:

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 2/3] imx-drm: imx-drm-core: avoid going the long route round for drm_device

2013-12-17 Thread Shawn Guo
On Tue, Dec 17, 2013 at 07:10:47PM +, Russell King wrote:
 We have the drm_device available, so rather than storing it and then
 using the stored version, us the one we already have available to us.
 
 Signed-off-by: Russell King rmk+ker...@arm.linux.org.uk
 ---
  drivers/staging/imx-drm/imx-drm-core.c |   16 
  1 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/staging/imx-drm/imx-drm-core.c 
 b/drivers/staging/imx-drm/imx-drm-core.c
 index 9aa5eaab6539..242e8db218ac 100644
 --- a/drivers/staging/imx-drm/imx-drm-core.c
 +++ b/drivers/staging/imx-drm/imx-drm-core.c
 @@ -88,9 +88,9 @@ static int imx_drm_driver_unload(struct drm_device *drm)
  
   imx_drm_device_put();
  
 - drm_vblank_cleanup(imxdrm-drm);
 - drm_kms_helper_poll_fini(imxdrm-drm);
 - drm_mode_config_cleanup(imxdrm-drm);
 + drm_vblank_cleanup(drm);
 + drm_kms_helper_poll_fini(drm);
 + drm_mode_config_cleanup(drm);

With the changes, 'imxdrm' in this function becomes an unused variable.

Other than that, for the series:

Acked-by: Shawn Guo shawn@linaro.org
Tested-by: Shawn Guo shawn@linaro.org

Shawn

  
   return 0;
  }
 @@ -424,15 +424,15 @@ static int imx_drm_driver_load(struct drm_device *drm, 
 unsigned long flags)
  
   mutex_lock(imxdrm-mutex);
  
 - drm_kms_helper_poll_init(imxdrm-drm);
 + drm_kms_helper_poll_init(drm);
  
   /* setup the grouping for the legacy output */
 - ret = drm_mode_group_init_legacy_group(imxdrm-drm,
 - imxdrm-drm-primary-mode_group);
 + ret = drm_mode_group_init_legacy_group(drm,
 + drm-primary-mode_group);
   if (ret)
   goto err_kms;
  
 - ret = drm_vblank_init(imxdrm-drm, MAX_CRTC);
 + ret = drm_vblank_init(drm, MAX_CRTC);
   if (ret)
   goto err_kms;
  
 @@ -441,7 +441,7 @@ static int imx_drm_driver_load(struct drm_device *drm, 
 unsigned long flags)
* by drm timer once a current process gives up ownership of
* vblank event.(after drm_vblank_put function is called)
*/
 - imxdrm-drm-vblank_disable_allowed = true;
 + drm-vblank_disable_allowed = true;
  
   if (!imx_drm_device_get()) {
   ret = -EINVAL;
 -- 
 1.7.4.4
 

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 3/4] imx-drm: fix missing symbol exports

2013-12-16 Thread Shawn Guo
On Mon, Dec 16, 2013 at 11:34:05AM +, Russell King wrote:
 Trying to build a modular imx-drm results in a number of missing symbol
 exports, caused by the recent changes to this driver.  Add the necessary
 exports, and the missing MODULE_LICENSE() tag.

Since commit 9c74360 (staging: imx-drm: Fix modular build of
DRM_IMX_IPUV3) is in place now, I'm not sure if we still need this
patch.

Shawn

 
 Signed-off-by: Russell King rmk+ker...@arm.linux.org.uk
 ---
  drivers/staging/imx-drm/ipuv3-plane.c |   10 ++
  1 files changed, 10 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/staging/imx-drm/ipuv3-plane.c 
 b/drivers/staging/imx-drm/ipuv3-plane.c
 index d97454a0dffd..745fc8171df0 100644
 --- a/drivers/staging/imx-drm/ipuv3-plane.c
 +++ b/drivers/staging/imx-drm/ipuv3-plane.c
 @@ -40,6 +40,7 @@ int ipu_plane_irq(struct ipu_plane *ipu_plane)
   return ipu_idmac_channel_irq(ipu_plane-ipu, ipu_plane-ipu_ch,
IPU_IRQ_EOF);
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_irq);
  
  static int calc_vref(struct drm_display_mode *mode)
  {
 @@ -81,6 +82,7 @@ int ipu_plane_set_base(struct ipu_plane *ipu_plane, struct 
 drm_framebuffer *fb,
  
   return 0;
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_set_base);
  
  int ipu_plane_mode_set(struct ipu_plane *ipu_plane, struct drm_crtc *crtc,
  struct drm_display_mode *mode,
 @@ -184,6 +186,7 @@ int ipu_plane_mode_set(struct ipu_plane *ipu_plane, 
 struct drm_crtc *crtc,
  
   return 0;
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_mode_set);
  
  void ipu_plane_put_resources(struct ipu_plane *ipu_plane)
  {
 @@ -194,6 +197,7 @@ void ipu_plane_put_resources(struct ipu_plane *ipu_plane)
   if (!IS_ERR_OR_NULL(ipu_plane-ipu_ch))
   ipu_idmac_put(ipu_plane-ipu_ch);
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_put_resources);
  
  int ipu_plane_get_resources(struct ipu_plane *ipu_plane)
  {
 @@ -228,6 +232,7 @@ int ipu_plane_get_resources(struct ipu_plane *ipu_plane)
  
   return ret;
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_get_resources);
  
  void ipu_plane_enable(struct ipu_plane *ipu_plane)
  {
 @@ -238,6 +243,7 @@ void ipu_plane_enable(struct ipu_plane *ipu_plane)
  
   ipu_plane-enabled = true;
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_enable);
  
  void ipu_plane_disable(struct ipu_plane *ipu_plane)
  {
 @@ -250,6 +256,7 @@ void ipu_plane_disable(struct ipu_plane *ipu_plane)
   ipu_idmac_disable_channel(ipu_plane-ipu_ch);
   ipu_dmfc_disable_channel(ipu_plane-dmfc);
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_disable);
  
  static void ipu_plane_dpms(struct ipu_plane *ipu_plane, int mode)
  {
 @@ -373,3 +380,6 @@ struct ipu_plane *ipu_plane_init(struct drm_device *dev, 
 struct ipu_soc *ipu,
  
   return ipu_plane;
  }
 +EXPORT_SYMBOL_GPL(ipu_plane_init);
 +
 +MODULE_LICENSE(GPL);
 -- 
 1.7.4.4
 

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 0/8] Fix some bugs/races in imx-drm

2013-12-16 Thread Shawn Guo
On Mon, Dec 16, 2013 at 12:38:23PM +, Russell King - ARM Linux wrote:
 Russell King (8):
   imx-drm: imx-drm-core: fix error cleanup path for imx_drm_add_crtc()
   imx-drm: imx-drm-core: fix DRM cleanup paths
   imx-drm: fix missing symbol exports

Except the little doubt I replied on this one, for the whole series:

Acked-by: Shawn Guo shawn@linaro.org
Tested-by: Shawn Guo shawn@linaro.org

   imx-drm: ipu-v3: fix potential CRTC device registration race
   imx-drm: imx-tve: don't call sleeping functions beneath enable_lock 
 spinlo
   imx-drm: imx-drm-core: use defined constant for number of CRTCs.
   imx-drm: imx-drm-core: make imx_drm_crtc_register() safer
   imx-drm: imx-drm-core: improve safety of imx_drm_add_crtc()
 

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/3] drm: Add LCD display clock polarity flags

2013-12-03 Thread Shawn Guo
On Mon, Dec 02, 2013 at 04:39:26PM +0100, Marek Vasut wrote:
 Add DRM flags for the LCD display clock polarity so the pixelclk-active DT
 property can be properly handled by drivers using the DRM API.
 
 Signed-off-by: Marek Vasut ma...@denx.de
 Cc: Dave Airlie airl...@gmail.com
 Cc: Greg Kroah-Hartman gre...@linuxfoundation.org
 Cc: Philipp Zabel p.za...@pengutronix.de
 Cc: Sascha Hauer s.ha...@pengutronix.de
 Cc: Shawn Guo shawn@linaro.org
 ---
  drivers/gpu/drm/drm_modes.c | 5 +
  include/uapi/drm/drm_mode.h | 3 +++
  2 files changed, 8 insertions(+)
 
 diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
 index 85071a1..d1f3bfc 100644
 --- a/drivers/gpu/drm/drm_modes.c
 +++ b/drivers/gpu/drm/drm_modes.c
 @@ -537,6 +537,11 @@ int drm_display_mode_from_videomode(const struct 
 videomode *vm,
   dmode-flags |= DRM_MODE_FLAG_DBLSCAN;
   if (vm-flags  DISPLAY_FLAGS_DOUBLECLK)
   dmode-flags |= DRM_MODE_FLAG_DBLCLK;
 + if (vm-flags  DISPLAY_FLAGS_PIXDATA_POSEDGE)
 + dmode-flags |= DRM_MODE_FLAG_PIXELCLK_PPOL;
 + else if (vm-flags  DISPLAY_FLAGS_PIXDATA_NEGEDGE)
 + dmode-flags |= DRM_MODE_FLAG_PIXELCLK_NPOL;
 +
   drm_mode_set_name(dmode);
  
   return 0;
 diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
 index f104c26..a6169ca 100644
 --- a/include/uapi/drm/drm_mode.h
 +++ b/include/uapi/drm/drm_mode.h
 @@ -73,6 +73,9 @@
  #define  DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (714)
  #define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF  (814)
  
 +/* CRTC LCD clock polarity flags. */
 +#define DRM_MODE_FLAG_PIXELCLK_PPOL  (119)
 +#define DRM_MODE_FLAG_PIXELCLK_NPOL  (120)

Marek,

It looks that Denis (copied) is working on the same problem, so you may
want to be aware of his effort [1][2].

Shawn

[1] http://thread.gmane.org/gmane.linux.drivers.driver-project.devel/42832
[2] 
http://thread.gmane.org/gmane.linux.drivers.driver-project.devel/42850/focus=279646

  
  /* DPMS flags */
  /* bit compatible with the xorg definitions. */
 -- 
 1.8.4.2
 

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel