Re: [PATCH 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Inki Dae
2013/1/10 Laurent Pinchart :
> Hi Vikas,
>
> Thank you for the patch.
>
> On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
>> On 3 January 2013 16:29, Tomasz Figa  wrote:
>> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
>> >> From: Vikas Sajjan 
>> >>
>> >> Signed-off-by: Vikas Sajjan 
>> >> ---
>> >>
>> >>  include/video/display.h |6 ++
>> >>  1 file changed, 6 insertions(+)
>> >>
>> >> diff --git a/include/video/display.h b/include/video/display.h
>> >> index b639fd0..fb2f437 100644
>> >> --- a/include/video/display.h
>> >> +++ b/include/video/display.h
>> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
>> >>
>> >>   void (*enable_hs)(struct video_source *src, bool enable);
>> >>
>> >> + /* frame related */
>> >> + int (*get_frame_done)(struct video_source *src);
>> >> + int (*clear_frame_done)(struct video_source *src);
>> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
>> >> + int (*set_blank_mode)(struct video_source *src, int power);
>> >> +
>> >
>> > I'm not sure if all those extra ops are needed in any way.
>> >
>> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
>> > FB_BLANK_UNBLANK status, which basically equals to the already existing
>> > enable operation, while set_early_blank mode handles only
>> > FB_BLANK_POWERDOWN, being equal to disable callback.
>>
>> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
>> of now, but FB_BLANK_NORMAL will be supported in future.
>> If not for Exynos, i think it will be need for other SoCs which
>> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.
>
> Could you please explain in a bit more details what the set_early_blank_mode
> and set_blank_mode operations do ?
>
>> > Both get_frame_done and clear_frame_done do not look at anything used at
>> > the moment and if frame done status monitoring will be ever needed, I
>> > think a better way should be implemented.
>>
>> You are right, as of now Exynos MIPI DSI Panels are NOT using these
>> callbacks, but as you mentioned we will need frame done status monitoring
>> anyways, so i included these callbacks here. Will check, if we can implement
>> any better method.
>
> Do you expect the entity drivers (and in particular the panel drivers) to
> require frame done notification ? If so, could you explain your use case(s) ?
>

Hi Laurent,

As you know, there are two types of MIPI-DSI based lcd panels, RGB and
CPU mode. In case of CPU mode lcd panel, it has its own framebuffer
internally and the image in the framebuffer is transferred on lcd
panel in 60Hz itself. But for this, there is something we should
consider. The display controller with CPU mode doens't transfer image
data to MIPI-DSI controller itself. So we should set trigger bit of
the display controller to 1 to do it and also check whether the data
transmission in the framebuffer is done on lcd panel to avoid tearing
issue and some confliction issue(A) between read and write operations
like below,

lcd_panel_frame_done_interrrupt_handler()
{
...
if (mipi-dsi frame done)
trigger display controller;
...
}

A. the issue that LCD panel can access its own framebuffer while some
new data from MIPI-DSI controller is being written in the framebuffer.

But I think there might be better way to avoid such thing.

Thanks,
Inki Dae

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


Re: [PATCH v4] drm/exynos: let drm handle edid allocations

2013-01-09 Thread Inki Dae
Applied.

Thanks,
Inki Dae

2013/1/4 Rahul Sharma :
> There's no need to allocate edid twice and do a memcpy when drm helpers
> exist to do just that. This patch cleans that interaction up, and
> doesn't keep the edid hanging around in the connector.
>
> v4:
> - removed error check for drm_mode_connector_update_edid_property
> which is expected to fail for Virtual Connectors like VIDI.
> Thanks to Seung-Woo Kim.
>
> v3:
> - removed MAX_EDID as it is not used anymore.
>
> v2:
> - changed vidi_get_edid callback inside vidi driver.
>
> Signed-off-by: Sean Paul 
> Signed-off-by: Rahul Sharma 
> Signed-off-by: Seung-Woo Kim 
> ---
> This patch is based on branch "exynos-drm-next" at
> http://git.kernel.org/?p=linux/kernel/git/daeinki/drm-exynos.git
>
>  drivers/gpu/drm/exynos/exynos_drm_connector.c | 33 
> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.h   |  4 ++--
>  drivers/gpu/drm/exynos/exynos_drm_hdmi.c  |  9 
>  drivers/gpu/drm/exynos/exynos_drm_hdmi.h  |  4 ++--
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c  | 19 ++-
>  drivers/gpu/drm/exynos/exynos_hdmi.c  | 25 
>  6 files changed, 46 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_connector.c 
> b/drivers/gpu/drm/exynos/exynos_drm_connector.c
> index ab37437..4c5b685 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_connector.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_connector.c
> @@ -18,7 +18,6 @@
>  #include "exynos_drm_drv.h"
>  #include "exynos_drm_encoder.h"
>
> -#define MAX_EDID 256
>  #define to_exynos_connector(x) container_of(x, struct exynos_drm_connector,\
> drm_connector)
>
> @@ -96,7 +95,9 @@ static int exynos_drm_connector_get_modes(struct 
> drm_connector *connector)
> to_exynos_connector(connector);
> struct exynos_drm_manager *manager = exynos_connector->manager;
> struct exynos_drm_display_ops *display_ops = manager->display_ops;
> -   unsigned int count;
> +   struct edid *edid = NULL;
> +   unsigned int count = 0;
> +   int ret;
>
> DRM_DEBUG_KMS("%s\n", __FILE__);
>
> @@ -114,27 +115,21 @@ static int exynos_drm_connector_get_modes(struct 
> drm_connector *connector)
>  * because lcd panel has only one mode.
>  */
> if (display_ops->get_edid) {
> -   int ret;
> -   void *edid;
> -
> -   edid = kzalloc(MAX_EDID, GFP_KERNEL);
> -   if (!edid) {
> -   DRM_ERROR("failed to allocate edid\n");
> -   return 0;
> +   edid = display_ops->get_edid(manager->dev, connector);
> +   if (IS_ERR_OR_NULL(edid)) {
> +   ret = PTR_ERR(edid);
> +   edid = NULL;
> +   DRM_ERROR("Panel operation get_edid failed %d\n", 
> ret);
> +   goto out;
> }
>
> -   ret = display_ops->get_edid(manager->dev, connector,
> -   edid, MAX_EDID);
> -   if (ret < 0) {
> -   DRM_ERROR("failed to get edid data.\n");
> -   kfree(edid);
> -   edid = NULL;
> -   return 0;
> +   count = drm_add_edid_modes(connector, edid);
> +   if (count < 0) {
> +   DRM_ERROR("Add edid modes failed %d\n", count);
> +   goto out;
> }
>
> drm_mode_connector_update_edid_property(connector, edid);
> -   count = drm_add_edid_modes(connector, edid);
> -   kfree(edid);
> } else {
> struct exynos_drm_panel_info *panel;
> struct drm_display_mode *mode = 
> drm_mode_create(connector->dev);
> @@ -161,6 +156,8 @@ static int exynos_drm_connector_get_modes(struct 
> drm_connector *connector)
> count = 1;
> }
>
> +out:
> +   kfree(edid);
> return count;
>  }
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h 
> b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> index b9e51bc..4606fac 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> @@ -148,8 +148,8 @@ struct exynos_drm_overlay {
>  struct exynos_drm_display_ops {
> enum exynos_drm_output_type type;
> bool (*is_connected)(struct device *dev);
> -   int (*get_edid)(struct device *dev, struct drm_connector *connector,
> -   u8 *edid, int len);
> +   struct edid *(*get_edid)(struct device *dev,
> +   struct drm_connector *connector);
> void *(*get_panel)(struct device *dev);
> int (*check_timing)(struct device *dev, void *timing);
> int (*power_on)(struct device *dev, int mode);
> diff --git a/drivers/gpu/drm/exynos/exyno

Re: [PATCH 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Vikas Sajjan
Hi Laurent,

On 10 January 2013 05:05, Laurent Pinchart
 wrote:
> Hi Vikas,
>
> Thank you for the patch.
>
> On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
>> On 3 January 2013 16:29, Tomasz Figa  wrote:
>> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
>> >> From: Vikas Sajjan 
>> >>
>> >> Signed-off-by: Vikas Sajjan 
>> >> ---
>> >>
>> >>  include/video/display.h |6 ++
>> >>  1 file changed, 6 insertions(+)
>> >>
>> >> diff --git a/include/video/display.h b/include/video/display.h
>> >> index b639fd0..fb2f437 100644
>> >> --- a/include/video/display.h
>> >> +++ b/include/video/display.h
>> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
>> >>
>> >>   void (*enable_hs)(struct video_source *src, bool enable);
>> >>
>> >> + /* frame related */
>> >> + int (*get_frame_done)(struct video_source *src);
>> >> + int (*clear_frame_done)(struct video_source *src);
>> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
>> >> + int (*set_blank_mode)(struct video_source *src, int power);
>> >> +
>> >
>> > I'm not sure if all those extra ops are needed in any way.
>> >
>> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
>> > FB_BLANK_UNBLANK status, which basically equals to the already existing
>> > enable operation, while set_early_blank mode handles only
>> > FB_BLANK_POWERDOWN, being equal to disable callback.
>>
>> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
>> of now, but FB_BLANK_NORMAL will be supported in future.
>> If not for Exynos, i think it will be need for other SoCs which
>> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.
>
> Could you please explain in a bit more details what the set_early_blank_mode
> and set_blank_mode operations do ?
>

with reference to Mr. Inki Dae's patch and discussion
http://lkml.indiana.edu/hypermail/linux/kernel/1109.1/00413.html
http://lkml.indiana.edu/hypermail/linux/kernel/1109.1/02247.html

set_early_blank_mode:
  - sets the framebuffer blank mode.
  - this callback should be called prior to fb_blank() by a client
driver only if needed
set_blank_mode:
  - sets framebuffer blank mode
  -  this callback should be called after fb_blank() by a client
driver only if needed.

In case of MIPI-DSI based video mode LCD Panel, for lcd power off, the
power off commands should be transferred to lcd panel with display and
mipi-dsi controller enabled, because the commands is set to lcd panel
at vsync porch period, hence set_early_blank_mode() was introduced and
should be called prior to fb_blank() as mentioned in the above 2
links.

I think Mr. Inki Dae can throw more light on this.

>> > Both get_frame_done and clear_frame_done do not look at anything used at
>> > the moment and if frame done status monitoring will be ever needed, I
>> > think a better way should be implemented.
>>
>> You are right, as of now Exynos MIPI DSI Panels are NOT using these
>> callbacks, but as you mentioned we will need frame done status monitoring
>> anyways, so i included these callbacks here. Will check, if we can implement
>> any better method.
>
> Do you expect the entity drivers (and in particular the panel drivers) to
> require frame done notification ? If so, could you explain your use case(s) ?
>
In our Exynos MIPI DSIM H/W, once MIPI DSIM transfers whole image
frame, interrupt will raised to indicate the same.
as part of the mipi_dsim_master_ops() we have get_dsim_frame_done()
and clear_dsim_frame_done() ops. But as of now we are also _NOT_ using
these ops in any particular use case. So i guess as of now we can park
it, later if we find any need for the same we can add it.

> --
> Regards,
>
> Laurent Pinchart
>

--
Thanks and Regards
 Vikas Sajjan
 SAMSUNG Research India - Banglore.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


RE: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Mohammed, Afzal
Hi Steffen,

On Thu, Jan 10, 2013 at 01:45:41, Steffen Trumtrar wrote:

> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK

To clarify,

This series was tested with DT boot (making use of the functionalities
provided by this series) on AM335X EVM & AM335X EVM-SK. DA850 EVM was
tested with non DT boot along with this series (to make sure that
non-DT boot on DA850 EVM is not broken, and it needed the additional
change that was mentioned earlier)

Sorry that my initial reply did not express what I wanted to.

Regards
Afzal


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


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

MX53QSB and another custom MX53 board.

> Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.
> 
> Thanks,
> Steffen

Best regards,
Marek Vasut
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> > Dear Steffen Trumtrar,
> > 
> > I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After
> > adding the following piece of code (quick hack), this works just fine.
> > Thanks!
> > 
> > diff --git a/drivers/staging/imx-drm/parallel-display.c
> > b/drivers/staging/imx- drm/parallel-display.c
> > index a8064fc..e45002a 100644
> > --- a/drivers/staging/imx-drm/parallel-display.c
> > +++ b/drivers/staging/imx-drm/parallel-display.c
> > @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct
> > drm_connector *connector)
> > 
> >  static int imx_pd_connector_get_modes(struct drm_connector *connector)
> >  {
> >  
> > struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> > 
> > +   struct device_node *np = imxpd->dev->of_node;
> > 
> > int num_modes = 0;
> > 
> > if (imxpd->edid) {
> > 
> > @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct
> > drm_connector *connector)
> > 
> > num_modes++;
> > 
> > }
> > 
> > +   if (np) {
> > +   struct drm_display_mode *mode =
> > drm_mode_create(connector->dev); +  
> > of_get_drm_display_mode(np, &imxpd->mode, 0);
> > +   drm_mode_copy(mode, &imxpd->mode);
> > +   mode->type |= DRM_MODE_TYPE_DRIVER |
> > DRM_MODE_TYPE_PREFERRED, +   drm_mode_probed_add(connector,
> > mode);
> > +   num_modes++;
> > +   }
> > +
> > 
> > return num_modes;
> >  
> >  }
> 
> Nice! I haven't tried the parallel display, but I think Philipp Zabel might
> already have a patch for it. If not, I will definitly keep your patch in my
> topic branch.

Works like charm here.

Make sure to adjust the patch and check for the return value of 
of_get_drm_display_mode(np, &imxpd->mode, 0); call, that's probably the only 
issue that needs fixing in that hack. Checking if np != NULL might not hurt 
either. I can roll you a real patch if it helps.

Best regards,
Marek Vasut
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.

I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After adding 
the following piece of code (quick hack), this works just fine. Thanks!

diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
drm/parallel-display.c
index a8064fc..e45002a 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
*connector)
 static int imx_pd_connector_get_modes(struct drm_connector *connector)
 {
struct imx_parallel_display *imxpd = con_to_imxpd(connector);
+   struct device_node *np = imxpd->dev->of_node;
int num_modes = 0;
 
if (imxpd->edid) {
@@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
*connector)
num_modes++;
}
 
+   if (np) {
+   struct drm_display_mode *mode = drm_mode_create(connector->dev);
+   of_get_drm_display_mode(np, &imxpd->mode, 0);
+   drm_mode_copy(mode, &imxpd->mode);
+   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+   drm_mode_probed_add(connector, mode);
+   num_modes++;
+   }
+
return num_modes;
 }

Best regards,
Marek Vasut
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: "Hangcheck timer elapsed... GPU hung" in 3.8.0-rc2

2013-01-09 Thread J. Bruce Fields
On Wed, Jan 09, 2013 at 12:27:22PM +0100, Daniel Vetter wrote:
> On Tue, Jan 8, 2013 at 3:37 PM, J. Bruce Fields  wrote:
> >> please grab the i915_error_state file from debugfs
> >
> > As I said in the original mail, I've already done that:
> >
> > http://fieldses.org/~bfields/3.8-hang/
> 
> Sorry, missed that the first time around.
> 
> >> and file a bug on
> >> bugs.freedesktop.org against DRM - DRI (Intel).
> >
> > Would it still be useful for me to file a bug?  (Just going through the
> > new-account confirmation dance now.)
> 
> Looks like the ilk bug tracked at
> https://bugs.freedesktop.org/show_bug.cgi?id=55984

OK, I'll add something there if I'm available to find a reproducer.
Thanks!

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


3.8-rc2: lockdep warning in nouveau driver

2013-01-09 Thread Arend van Spriel
Maybe this one is already known, but I did not find a post about it. So
here it is.

Regards,
Arend

==
[9.422018] usb 1-1.2: new high-speed USB device number 4 using ehci-pci
[9.436177] [TTM] Zone  kernel: Available graphics memory: 433698 kiB
[9.442676] [TTM] Zone highmem: Available graphics memory: 1678052 kiB
[9.449256] [TTM] Initializing pool allocator
[9.455462] nouveau  [ DRM] VRAM: 512 MiB
[9.459851] nouveau  [ DRM] GART: 512 MiB
[9.464227] nouveau  [ DRM] BIT BIOS found
[9.468709] nouveau  [ DRM] Bios version 70.18.53.00
[9.474040] nouveau  [ DRM] TMDS table version 2.0
[9.479196] nouveau  [ DRM] DCB version 4.0
[9.483746] nouveau  [ DRM] DCB outp 00: 048003b6 0f200014
[9.489580] nouveau  [ DRM] DCB outp 01: 02033300 
[9.495431] nouveau  [ DRM] DCB outp 02: 088223a6 0f220010
[9.501278] nouveau  [ DRM] DCB outp 03: 08022362 00020010
[9.507124] nouveau  [ DRM] DCB outp 04: 028113c6 0f220010
[9.512970] nouveau  [ DRM] DCB outp 05: 02011382 00020010
[9.518804] nouveau  [ DRM] DCB conn 00: 2047
[9.523059] hub 1-1.2:1.0: USB hub found
[9.523201] hub 1-1.2:1.0: 3 ports detected
[9.532105] nouveau  [ DRM] DCB conn 01: 00101146
[9.537360] nouveau  [ DRM] DCB conn 02: 00410246
[9.542450] nouveau  [ DRM] DCB conn 03: 0300
[9.588499]
[9.589986] =
[9.595365] [ INFO: possible recursive locking detected ]
[9.600745] 3.8.0-rc2-wl-testing-lockdep-2-ga524cf0 #1 Not tainted
[9.607248] -
[9.612626] modprobe/163 is trying to acquire lock:
[9.617486]  (&subdev->mutex){+.+.+.}, at: []
nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.626052]
[9.626052] but task is already holding lock:
[9.631865]  (&subdev->mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x55/0xc0 [nouveau]
[9.640593]
[9.640593] other info that might help us debug this:
[9.647096]  Possible unsafe locking scenario:
[9.647096]
[9.652995]CPU0
[9.655430]
[9.657867]   lock(&subdev->mutex);
[9.661365]   lock(&subdev->mutex);
[9.664863]
[9.664863]  *** DEADLOCK ***
[9.664863]
[9.670762]  May be due to missing lock nesting notation
[9.670762]
[9.677526] 4 locks held by modprobe/163:
[9.681520]  #0:  (&__lockdep_no_validate__){..}, at:
[] __driver_attach+0x50/0xa0
[9.690341]  #1:  (&__lockdep_no_validate__){..}, at:
[] __driver_attach+0x5c/0xa0
[9.699156]  #2:  (drm_global_mutex){+.+.+.}, at: []
drm_get_pci_dev+0xa8/0x260 [drm]
[9.707899]  #3:  (&subdev->mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x55/0xc0 [nouveau]
[9.717075]
[9.717075] stack backtrace:
[9.721417] Pid: 163, comm: modprobe Not tainted
3.8.0-rc2-wl-testing-lockdep-2-ga524cf0 #1
[9.730085] Call Trace:
[9.732524]  [] __lock_acquire+0x12f3/0x1780
[9.737644]  [] ? noop_count+0x10/0x10
[9.742246]  [] ? check_usage+0x6b/0x410
[9.747021]  [] lock_acquire+0x84/0x120
[9.751721]  [] ? nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.757797]  [] mutex_lock_nested+0x64/0x2e0
[9.762929]  [] ? nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.769012]  [] ? nv50_fb_vram_new+0x5e/0x230 [nouveau]
[9.775096]  [] nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.781008]  [] nv50_instobj_ctor+0xae/0xf0 [nouveau]
[9.786918]  [] nouveau_object_ctor+0x3b/0xe0 [nouveau]
[9.793001]  [] nv50_instmem_alloc+0x2d/0x40 [nouveau]
[9.798996]  [] nouveau_gpuobj_create_+0x232/0x2b0 [nouveau]
[9.805501]  [] ? _raw_spin_unlock_irqrestore+0x36/0x70
[9.811574]  [] ? trace_hardirqs_on_caller+0xf4/0x180
[9.817483]  [] nouveau_engctx_create_+0x220/0x260 [nouveau]
[9.824002]  [] nv50_disp_data_ctor+0xaf/0xc0 [nouveau]
[9.830086]  [] nouveau_object_ctor+0x3b/0xe0 [nouveau]
[9.836168]  [] nouveau_object_new+0xe9/0x220 [nouveau]
[9.842258]  [] nv50_display_create+0x18c/0x850 [nouveau]
[9.848505]  [] ? __cancel_work_timer+0x5a/0xb0
[9.853884]  [] ? trace_hardirqs_on_caller+0xf4/0x180
[9.859783]  [] ? __cancel_work_timer+0x6a/0xb0
[9.865181]  [] nouveau_display_create+0x415/0x6a0 [nouveau]
[9.871700]  [] nouveau_drm_load+0x28b/0x5d0 [nouveau]
[9.877688]  [] ? device_register+0x17/0x20
[9.882727]  [] ? drm_sysfs_device_add+0x7a/0xa0 [drm]
[9.888719]  [] ? drm_get_minor+0x220/0x2b0 [drm]
[9.894279]  [] drm_get_pci_dev+0x14b/0x260 [drm]
[9.899833]  [] ? __pci_set_master+0x27/0x80
[9.904969]  [] nouveau_drm_probe+0x20e/0x250 [nouveau]
[9.911042]  [] pci_device_probe+0x83/0xc0
[9.915989]  [] driver_probe_device+0x64/0x1f0
[9.921282]  [] __driver_attach+0x99/0xa0
[9.926143]  [] ? driver_probe_device+0x1f0/0x1f0
[9.931696]  [] bus_for_each_dev+0x42/0x70
[9.936

[PATCH] [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

 Made necessary changes in s6e8ax0 panel driver as per the CDF-T.
 it also removes the dependency on backlight and lcd framework.

Signed-off-by: Vikas Sajjan 
---
 drivers/video/exynos/s6e8ax0.c |  602 ++--
 1 file changed, 328 insertions(+), 274 deletions(-)

diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
index 05d080b..5d9be51 100644
--- a/drivers/video/exynos/s6e8ax0.c
+++ b/drivers/video/exynos/s6e8ax0.c
@@ -38,8 +38,7 @@
 #define POWER_IS_OFF(pwr)  ((pwr) == FB_BLANK_POWERDOWN)
 #define POWER_IS_NRM(pwr)  ((pwr) == FB_BLANK_NORMAL)
 
-#define lcd_to_master(a)   (a->dsim_dev->master)
-#define lcd_to_master_ops(a)   ((lcd_to_master(a))->master_ops)
+#define to_panel(p) container_of(p, struct s6e8ax0, entity)
 
 enum {
DSIM_NONE_STATE = 0,
@@ -47,20 +46,34 @@ enum {
DSIM_FRAME_DONE = 2,
 };
 
+/* This structure defines all the properties of a backlight */
+struct backlight_prop {
+   /* Current User requested brightness (0 - max_brightness) */
+   int brightness;
+   /* Maximal value for brightness (read-only) */
+   int max_brightness;
+};
+
+struct panel_platform_data {
+   unsigned intreset_delay;
+   unsigned intpower_on_delay;
+   unsigned intpower_off_delay;
+   const char  *video_source_name;
+};
+
 struct s6e8ax0 {
-   struct device   *dev;
-   unsigned intpower;
-   unsigned intid;
-   unsigned intgamma;
-   unsigned intacl_enable;
-   unsigned intcur_acl;
-
-   struct lcd_device   *ld;
-   struct backlight_device *bd;
-
-   struct mipi_dsim_lcd_device *dsim_dev;
-   struct lcd_platform_data*ddi_pd;
+   struct platform_device  *pdev;
+   struct video_source *src;
+   struct display_entity   entity;
+   unsigned intpower;
+   unsigned intid;
+   unsigned intgamma;
+   unsigned intacl_enable;
+   unsigned intcur_acl;
+   boolpanel_reverse;
+   struct panel_platform_data  *plat_data;
struct mutexlock;
+   struct backlight_prop   bl_prop;
bool  enabled;
 };
 
@@ -70,39 +83,42 @@ static struct regulator_bulk_data supplies[] = {
{ .supply = "vci", },
 };
 
-static void s6e8ax0_regulator_enable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_enable(struct s6e8ax0 *panel)
 {
int ret = 0;
-   struct lcd_platform_data *pd = NULL;
+   struct panel_platform_data *plat_data = NULL;
+
+   plat_data = panel->plat_data;
 
-   pd = lcd->ddi_pd;
-   mutex_lock(&lcd->lock);
-   if (!lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (!panel->enabled) {
ret = regulator_bulk_enable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;
 
-   lcd->enabled = true;
+   panel->enabled = true;
}
-   msleep(pd->power_on_delay);
+   msleep(plat_data->power_on_delay);
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }
 
-static void s6e8ax0_regulator_disable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_disable(struct s6e8ax0 *panel)
 {
int ret = 0;
 
-   mutex_lock(&lcd->lock);
-   if (lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (panel->enabled) {
ret = regulator_bulk_disable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;
 
-   lcd->enabled = false;
+   panel->enabled = false;
}
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }
 
 static const unsigned char s6e8ax0_22_gamma_30[] = {
@@ -283,10 +299,8 @@ static const unsigned char *s6e8ax0_22_gamma_table[] = {
s6e8ax0_22_gamma_300,
 };
 
-static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
+static void s6e8ax0_panel_cond(struct s6e8ax0 *panel)
 {
-   struct mipi_dsim_master_ops *ops = lcd_to_master_ops(lcd);
-
static const unsigned char data_to_send[] = {
0xf8, 0x3d, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3c, 0x7d,
0x08, 0x27, 0x7d, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08,
@@ -300,239 +314,218 @@ static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
0xc1, 0x01, 0x41, 0xc1, 0x00, 0xc1, 0xf6, 0xf6, 0xc1
};
 
-   if (lcd->dsim_dev->panel_reverse)
-   ops->cmd_write(lcd_to_master(lcd), MIPI_DSI_DCS_LONG_WRITE,
+   if (panel->panel_reverse)
+   panel->src->ops.dsi->dcs_write(panel->src, 
MIPI_DSI_DCS_LONG_WRITE,
data_to_send_panel_reverse,
ARRAY_SIZE(data_to_send_panel_reverse));
else

[PATCH] Make s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

Have made necessary chanages in s6e8ax0 panel driver, made an effort to remove
dependency on backlight and lcd framework, but its NOT fully done.

s6e8ax0_get_brightness() and s6e8ax0_set_brightness() functionalities have NOT
been modified. as backlight support in CDF are _NOT_ implemented yet.
Thought of adding these "get and set" as part of display_entity_control_ops(), 
but didn't modify as of now. Any thoughts on the same will be helpful.

removed the lcd_ops "set_power and get_power" and added as part of 
panel_set_state.

I _SHALL_ test these modificaions once i get the s6e8ax0 panel.

Vikas Sajjan (1):
  [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

 drivers/video/exynos/s6e8ax0.c |  582 ++--
 1 file changed, 314 insertions(+), 268 deletions(-)

-- 
1.7.9.5

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


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

MX53QSB and another custom MX53 board.

> Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.
> 
> Thanks,
> Steffen

Best regards,
Marek Vasut


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Laurent Pinchart
On Wednesday 09 January 2013 21:15:41 Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

I've used the sh-mobile-lcdcfb driver.

> Those are the people I know from the top of my head, that use or at least
> did use the patches in one of its iterations. If I forgot anyone, please
> speak up and possibly add your new HW to the list of tested devices.

-- 
Regards,

Laurent Pinchart



[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Thierry Reding
On Wed, Jan 09, 2013 at 09:15:41PM +0100, Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> > 
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using. Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.

I tested earlier versions on Tegra. The latest one was v15 I think.

Thierry
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130109/f25191c3/attachment.pgp>


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.
> 

So, any more criticism on the series? Any takers for the series as is?
I guess it could be merged via the fbdev-tree if David Airlie can agree
to the DRM patches ?! Does that sound about right?

I think the series was tested at least with
- imx6q: sabrelite, sabresd
- imx53: tqma53/mba53
- omap: DA850 EVM, AM335x EVM, EVM-SK

I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
are using. Those are the people I know from the top of my head, that use
or at least did use the patches in one of its iterations. If I forgot
anyone, please speak up and possibly add your new HW to the list of tested
devices.

Thanks,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> > Dear Steffen Trumtrar,
> > 
> > I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After
> > adding the following piece of code (quick hack), this works just fine.
> > Thanks!
> > 
> > diff --git a/drivers/staging/imx-drm/parallel-display.c
> > b/drivers/staging/imx- drm/parallel-display.c
> > index a8064fc..e45002a 100644
> > --- a/drivers/staging/imx-drm/parallel-display.c
> > +++ b/drivers/staging/imx-drm/parallel-display.c
> > @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct
> > drm_connector *connector)
> > 
> >  static int imx_pd_connector_get_modes(struct drm_connector *connector)
> >  {
> >  
> > struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> > 
> > +   struct device_node *np = imxpd->dev->of_node;
> > 
> > int num_modes = 0;
> > 
> > if (imxpd->edid) {
> > 
> > @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct
> > drm_connector *connector)
> > 
> > num_modes++;
> > 
> > }
> > 
> > +   if (np) {
> > +   struct drm_display_mode *mode =
> > drm_mode_create(connector->dev); +  
> > of_get_drm_display_mode(np, &imxpd->mode, 0);
> > +   drm_mode_copy(mode, &imxpd->mode);
> > +   mode->type |= DRM_MODE_TYPE_DRIVER |
> > DRM_MODE_TYPE_PREFERRED, +   drm_mode_probed_add(connector,
> > mode);
> > +   num_modes++;
> > +   }
> > +
> > 
> > return num_modes;
> >  
> >  }
> 
> Nice! I haven't tried the parallel display, but I think Philipp Zabel might
> already have a patch for it. If not, I will definitly keep your patch in my
> topic branch.

Works like charm here.

Make sure to adjust the patch and check for the return value of 
of_get_drm_display_mode(np, &imxpd->mode, 0); call, that's probably the only 
issue that needs fixing in that hack. Checking if np != NULL might not hurt 
either. I can roll you a real patch if it helps.

Best regards,
Marek Vasut


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
Hi!

On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> Dear Steffen Trumtrar,
> 
> I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After 
> adding 
> the following piece of code (quick hack), this works just fine. Thanks!
> 
> diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
> drm/parallel-display.c
> index a8064fc..e45002a 100644
> --- a/drivers/staging/imx-drm/parallel-display.c
> +++ b/drivers/staging/imx-drm/parallel-display.c
> @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
> *connector)
>  static int imx_pd_connector_get_modes(struct drm_connector *connector)
>  {
> struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> +   struct device_node *np = imxpd->dev->of_node;
> int num_modes = 0;
>  
> if (imxpd->edid) {
> @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
> *connector)
> num_modes++;
> }
>  
> +   if (np) {
> +   struct drm_display_mode *mode = 
> drm_mode_create(connector->dev);
> +   of_get_drm_display_mode(np, &imxpd->mode, 0);
> +   drm_mode_copy(mode, &imxpd->mode);
> +   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
> +   drm_mode_probed_add(connector, mode);
> +   num_modes++;
> +   }
> +
> return num_modes;
>  }
> 

Nice! I haven't tried the parallel display, but I think Philipp Zabel might
already have a patch for it. If not, I will definitly keep your patch in my
topic branch.

Regards,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |


[PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.

I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After adding 
the following piece of code (quick hack), this works just fine. Thanks!

diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
drm/parallel-display.c
index a8064fc..e45002a 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
*connector)
 static int imx_pd_connector_get_modes(struct drm_connector *connector)
 {
struct imx_parallel_display *imxpd = con_to_imxpd(connector);
+   struct device_node *np = imxpd->dev->of_node;
int num_modes = 0;

if (imxpd->edid) {
@@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
*connector)
num_modes++;
}

+   if (np) {
+   struct drm_display_mode *mode = drm_mode_create(connector->dev);
+   of_get_drm_display_mode(np, &imxpd->mode, 0);
+   drm_mode_copy(mode, &imxpd->mode);
+   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+   drm_mode_probed_add(connector, mode);
+   num_modes++;
+   }
+
return num_modes;
 }

Best regards,
Marek Vasut


[PATCH] build: Add --disable-manpages configure option

2013-01-09 Thread Colin Walters
It's not enough to check for xsltproc - the system may not have the
docbook stylesheets installed.  This patch also allows builders to
override the generation/installation of manpages entirely; for
example, manpages are of no use for embedded systems, so it's better
to not even waste the power building them.
---
 configure.ac|   10 --
 man/Makefile.am |4 ++--
 2 files changed, 10 insertions(+), 4 deletions(-)


-- next part --
A non-text attachment was scrubbed...
Name: 0001-build-Add-disable-manpages-configure-option.patch
Type: text/x-patch
Size: 2070 bytes
Desc: not available
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130109/656948d8/attachment.bin>


[Bug 58354] [bisected] r600g: use DMA engine for VM page table updates on cayman locks in Unigine Tropics

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

--- Comment #17 from Alexandre Demers  ---
(In reply to comment #16)
> Does a 3.8 kernel it work ok if you revert mesa back to
> cf5632094ba0c19d570ea47025cf6da75ef8457a?
> 
> I think
> r600g: rework flusing and synchronization pattern v7
> http://cgit.freedesktop.org/mesa/mesa/commit/
> ?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
> may be problematic on cayman.

If it is, not for this bug. Went back to cf563, applied a fix for glcpp,
reloaded libraries and still locks at the same point, even after rebooting.

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


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Leela Krishna Amudala
Hi Steffen,

On Thu, Jan 10, 2013 at 1:45 AM, Steffen Trumtrar
 wrote:
>
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> >
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> >
>
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
>
> I think the series was tested at least with
> - imx6q: sabrelite, sabresd
> - imx53: tqma53/mba53
> - omap: DA850 EVM, AM335x EVM, EVM-SK
>
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

I tested V16 patches with Exynos: smdk5250 board and it works fine for me.

> Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.
>
> Thanks,
> Steffen
>
> --
> Pengutronix e.K.   | |
> Industrial Linux Solutions | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
> Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 59172] [r300g] flashing and corruption with MSAA 6x and 1920x1080

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59172

--- Comment #1 from Alex Deucher  ---
This is probably related to memory bandwidth since MSAA compression is not
currently implemented.

-- 
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/20130109/0cda9d42/attachment.html>


[PATCH 1/2] radeon/kms: fix dma relocation checking

2013-01-09 Thread Alex Deucher
On Wed, Jan 9, 2013 at 4:40 PM,   wrote:
> From: Jerome Glisse 
>
> We were checking the index against the size of the relocation buffer
> instead of against the last index. This fix kernel segfault when
> userspace submit ill formated command stream/relocation buffer pair.
>
> Signed-off-by: Jerome Glisse 

Added to my -fixes queue.  thanks!

Alex


Re: [PATCH 1/1] drm: Fix comment about drm_exit which has been replaced by drm_platform_exit in 2.6.39

2013-01-09 Thread Dave Airlie
On Tue, Jan 8, 2013 at 12:10 AM, Philippe De Swert
 wrote:
> Trivial comment fix. Since drm_exit() was removed in 2.6.39 (commit 8410ea3b 
> ). As such the comment
> is incorrect. drm_put_dev() is now called from drm_platform_exit() or when 
> the pci device is "unplugged".
>
> Signed-off-by: Philippe De Swert 
> ---
>  drivers/gpu/drm/drm_stub.c |2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
> index 200e104..b39f591 100644
> --- a/drivers/gpu/drm/drm_stub.c
> +++ b/drivers/gpu/drm/drm_stub.c
> @@ -445,7 +445,7 @@ static void drm_unplug_minor(struct drm_minor *minor)
>  }
>
>  /**
> - * Called via drm_exit() at module unload time or when pci device is
> + * Called via drm_platform_exit() at module unload time or when pci device is
>   * unplugged.

Not really correct, its called from drm_pci_exit, drm_usb_exit and
drm_platform_exit now.

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


[PATCH] build: Add --disable-manpages configure option

2013-01-09 Thread Colin Walters
It's not enough to check for xsltproc - the system may not have the
docbook stylesheets installed.  This patch also allows builders to
override the generation/installation of manpages entirely; for
example, manpages are of no use for embedded systems, so it's better
to not even waste the power building them.
---
 configure.ac|   10 --
 man/Makefile.am |4 ++--
 2 files changed, 10 insertions(+), 4 deletions(-)


>From eb0f352dc35e5b4a75abd27f1877b37bd1d536c6 Mon Sep 17 00:00:00 2001
From: Colin Walters 
Date: Wed, 9 Jan 2013 19:35:05 -0500
Subject: [PATCH] build: Add --disable-manpages configure option

It's not enough to check for xsltproc - the system may not have the
docbook stylesheets installed.  This patch also allows builders to
override the generation/installation of manpages entirely; for
example, manpages are of no use for embedded systems, so it's better
to not even waste the power building them.

This is equivalent to the code in systemd and kmod's configure.ac.
---
 configure.ac|   10 --
 man/Makefile.am |4 ++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0e6db86..273b9b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -226,8 +226,14 @@ if test "x$HAVE_LIBUDEV" = xyes; then
 fi
 AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes])
 
-AC_PATH_PROG(XSLTPROC, xsltproc)
-AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
+AC_ARG_ENABLE([manpages],
+AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]),
+	[], enable_manpages=yes)
+AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" = "xyes"])
+AC_PATH_PROG([XSLTPROC], [xsltproc], [no])
+AS_IF([test "x$XSLTPROC" = "xno" && test "x$enable_manpages" = "xyes"], [
+	AC_MSG_ERROR([xsltproc command not found, try ./configure --disable-manpages])
+])
 
 if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno"; then
 # Check for atomic intrinsics
diff --git a/man/Makefile.am b/man/Makefile.am
index 32acd07..42c3616 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -22,7 +22,7 @@ CLEANFILES =
 EXTRA_DIST =
 man_MANS =
 
-if HAVE_XSLTPROC
+if BUILD_MANPAGES
 
 CLEANFILES += $(MANPAGES) $(MANPAGES_ALIASES)
 EXTRA_DIST += $(MANPAGES) $(MANPAGES_ALIASES) $(XML_FILES)
@@ -51,4 +51,4 @@ XSLTPROC_PROCESS_MAN = \
 %.7: %.xml
 	$(XSLTPROC_PROCESS_MAN)
 
-endif # HAVE_XSLTPROC
+endif # BUILD_MANPAGES
-- 
1.7.1

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


[Bug 59172] New: [r300g] flashing and corruption with MSAA 6x and 1920x1080

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59172

  Priority: medium
Bug ID: 59172
  Assignee: dri-devel at lists.freedesktop.org
   Summary: [r300g] flashing and corruption with MSAA 6x and
1920x1080
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: fabio.ped at libero.it
  Hardware: x86 (IA32)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r300
   Product: Mesa

When running some applications such as supertuxkart 0.8 with a high resolution
(1920x1080) and MSAA 6x the screen flashes, shows massive corruptions and gets
very slow. Just changing MSAA to 4x the problem is no longer reproducible.

Tested on current git with:
r300: DRM version: 2.18.0, Name: ATI RV530, ID: 0x71c5, GB: 1, Z: 2
r300: GART size: 509 MB, VRAM size: 256 MB
r300: AA compression RAM: YES, Z compression RAM: YES, HiZ RAM: YES

-- 
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/20130109/34949d2b/attachment-0001.html>


[PATCH 2/2] radeon/kms: cleanup async dma packet checking

2013-01-09 Thread j.gli...@gmail.com
From: Jerome Glisse 

This simplify and cleanup the async dma checking.

Signed-off-by: Jerome Glisse 
---
 drivers/gpu/drm/radeon/evergreen.c|  16 +-
 drivers/gpu/drm/radeon/evergreen_cs.c | 807 +-
 drivers/gpu/drm/radeon/evergreend.h   |  29 +-
 3 files changed, 417 insertions(+), 435 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index f92f6bb..28f8d4f 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3223,14 +3223,14 @@ void evergreen_dma_fence_ring_emit(struct radeon_device 
*rdev,
struct radeon_ring *ring = &rdev->ring[fence->ring];
u64 addr = rdev->fence_drv[fence->ring].gpu_addr;
/* write the fence */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0));
radeon_ring_write(ring, addr & 0xfffc);
radeon_ring_write(ring, (upper_32_bits(addr) & 0xff));
radeon_ring_write(ring, fence->seq);
/* generate an interrupt */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0));
/* flush HDP */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0));
radeon_ring_write(ring, (0xf << 16) | HDP_MEM_COHERENCY_FLUSH_CNTL);
radeon_ring_write(ring, 1);
 }
@@ -3253,7 +3253,7 @@ void evergreen_dma_ring_ib_execute(struct radeon_device 
*rdev,
while ((next_rptr & 7) != 5)
next_rptr++;
next_rptr += 3;
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_WRITE, 0, 0, 1));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_WRITE, 0, 1));
radeon_ring_write(ring, ring->next_rptr_gpu_addr & 0xfffc);
radeon_ring_write(ring, upper_32_bits(ring->next_rptr_gpu_addr) 
& 0xff);
radeon_ring_write(ring, next_rptr);
@@ -3263,8 +3263,8 @@ void evergreen_dma_ring_ib_execute(struct radeon_device 
*rdev,
 * Pad as necessary with NOPs.
 */
while ((ring->wptr & 7) != 5)
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0));
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_INDIRECT_BUFFER, 0, 0, 
0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_NOP, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_INDIRECT_BUFFER, 0, 0));
radeon_ring_write(ring, (ib->gpu_addr & 0xFFE0));
radeon_ring_write(ring, (ib->length_dw << 12) | 
(upper_32_bits(ib->gpu_addr) & 0xFF));

@@ -3323,7 +3323,7 @@ int evergreen_copy_dma(struct radeon_device *rdev,
if (cur_size_in_dw > 0xF)
cur_size_in_dw = 0xF;
size_in_dw -= cur_size_in_dw;
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 0, 
cur_size_in_dw));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 
cur_size_in_dw));
radeon_ring_write(ring, dst_offset & 0xfffc);
radeon_ring_write(ring, src_offset & 0xfffc);
radeon_ring_write(ring, upper_32_bits(dst_offset) & 0xff);
@@ -3431,7 +3431,7 @@ static int evergreen_startup(struct radeon_device *rdev)
ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX];
r = radeon_ring_init(rdev, ring, ring->ring_size, 
R600_WB_DMA_RPTR_OFFSET,
 DMA_RB_RPTR, DMA_RB_WPTR,
-2, 0x3fffc, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0));
+2, 0x3fffc, DMA_PACKET(DMA_PACKET_NOP, 0, 0));
if (r)
return r;

diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c 
b/drivers/gpu/drm/radeon/evergreen_cs.c
index 7a44566..32c07bb 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -2858,16 +2858,6 @@ int evergreen_cs_parse(struct radeon_cs_parser *p)
return 0;
 }

-/*
- *  DMA
- */
-
-#define GET_DMA_CMD(h) (((h) & 0xf000) >> 28)
-#define GET_DMA_COUNT(h) ((h) & 0x000f)
-#define GET_DMA_T(h) (((h) & 0x0080) >> 23)
-#define GET_DMA_NEW(h) (((h) & 0x0400) >> 26)
-#define GET_DMA_MISC(h) (((h) & 0x070) >> 20)
-
 /**
  * evergreen_dma_cs_parse() - parse the DMA IB
  * @p: parser structure holding parsing context.
@@ -2881,9 +2871,9 @@ int evergreen_dma_cs_parse(struct radeon_cs_parser *p)
 {
struct radeon_cs_chunk *ib_chunk = &p->chunks[p->chunk_ib_idx];
struct radeon_cs_reloc *src_reloc, *dst_reloc, *dst2_reloc;
-   u32 header, cmd, count, tiled, new_cmd, misc;
+   u32 header, cmd, count, sub_cmd;
volatile u32 *ib = p->ib.ptr;
-   u32 idx, idx_value;
+   u32 idx;
u64 src_offset, dst_offset, dst2_offset;
int r;

@@ -2897

[PATCH 1/2] radeon/kms: fix dma relocation checking

2013-01-09 Thread j.gli...@gmail.com
From: Jerome Glisse 

We were checking the index against the size of the relocation buffer
instead of against the last index. This fix kernel segfault when
userspace submit ill formated command stream/relocation buffer pair.

Signed-off-by: Jerome Glisse 
---
 drivers/gpu/drm/radeon/r600_cs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 9ea13d0..f91919e 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -2561,16 +2561,16 @@ int r600_dma_cs_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_chunk *relocs_chunk;
unsigned idx;

+   *cs_reloc = NULL;
if (p->chunk_relocs_idx == -1) {
DRM_ERROR("No relocation chunk !\n");
return -EINVAL;
}
-   *cs_reloc = NULL;
relocs_chunk = &p->chunks[p->chunk_relocs_idx];
idx = p->dma_reloc_idx;
-   if (idx >= relocs_chunk->length_dw) {
+   if (idx >= p->nrelocs) {
DRM_ERROR("Relocs at %d after relocations chunk end %d !\n",
- idx, relocs_chunk->length_dw);
+ idx, p->nrelocs);
return -EINVAL;
}
*cs_reloc = p->relocs_ptr[idx];
-- 
1.7.11.7



Re: [PATCH libdrm 0/4] Manpages for libdrm

2013-01-09 Thread Jesse Barnes
On Fri, 28 Sep 2012 23:44:18 +0200
David Herrmann  wrote:

> Hi
> 
> This is revision 2 of the manpages for libdrm. I converted everything to 
> docbook
> XML. This makes it easier to write them (troff is really hard to read) and
> allows us to integrate it into other documentation.
> 
> Other than that I only fixed typos and the small corrections you guys 
> mentioned.
> Thanks for reviewing!

I went ahead and pushed these finally.

Can you just apply for an fdo account though so we can let you push
things in the future?  :)

-- 
Jesse Barnes, Intel Open Source Technology Center
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH libdrm 0/4] Manpages for libdrm

2013-01-09 Thread Jesse Barnes
On Fri, 28 Sep 2012 23:44:18 +0200
David Herrmann  wrote:

> Hi
> 
> This is revision 2 of the manpages for libdrm. I converted everything to 
> docbook
> XML. This makes it easier to write them (troff is really hard to read) and
> allows us to integrate it into other documentation.
> 
> Other than that I only fixed typos and the small corrections you guys 
> mentioned.
> Thanks for reviewing!

I went ahead and pushed these finally.

Can you just apply for an fdo account though so we can let you push
things in the future?  :)

-- 
Jesse Barnes, Intel Open Source Technology Center


Re: [RFC 0/4] TI LCDC DRM driver

2013-01-09 Thread Dave Airlie
On Wed, Jan 9, 2013 at 2:11 PM, Rob Clark  wrote:
> Updated version of DRM driver for TI LCD Controller.  Since the initial
> version of the patch, which only supported TFP410 DVI output, I've added
> an output driver for LCD panels (for example, LCD3 or LCD7 cape for the
> beagle-bone), and initial support for HDMI output via NXP TDA19988 HDMI
> encoder (via i2c encoder-slave output driver).
>
> At this point, I think the basic lcdc drm driver plus TFP410 DVI output
> (first patch) is in reasonable shape (barring potential rename, if lcdc
> is too generic of a name... but I was not feeling creative enough yet to
> pick a new name).

I'd like at least tilcdc :-)

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


[Bug 59169] [radeons] wrong chip detection

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59169

Marek Ol??k  changed:

   What|Removed |Added

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

--- Comment #2 from Marek Ol??k  ---
This should be fixed by 1385c353cf06c6156d574cffba6164f2b59739e6. Closing.

-- 
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/20130109/c7b8ad3e/attachment.html>


Re: [PATCH 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Laurent Pinchart
Hi Vikas,

Thank you for the patch.

On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
> On 3 January 2013 16:29, Tomasz Figa  wrote:
> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
> >> From: Vikas Sajjan 
> >> 
> >> Signed-off-by: Vikas Sajjan 
> >> ---
> >> 
> >>  include/video/display.h |6 ++
> >>  1 file changed, 6 insertions(+)
> >> 
> >> diff --git a/include/video/display.h b/include/video/display.h
> >> index b639fd0..fb2f437 100644
> >> --- a/include/video/display.h
> >> +++ b/include/video/display.h
> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
> >> 
> >>   void (*enable_hs)(struct video_source *src, bool enable);
> >> 
> >> + /* frame related */
> >> + int (*get_frame_done)(struct video_source *src);
> >> + int (*clear_frame_done)(struct video_source *src);
> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
> >> + int (*set_blank_mode)(struct video_source *src, int power);
> >> +
> > 
> > I'm not sure if all those extra ops are needed in any way.
> > 
> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
> > FB_BLANK_UNBLANK status, which basically equals to the already existing
> > enable operation, while set_early_blank mode handles only
> > FB_BLANK_POWERDOWN, being equal to disable callback.
> 
> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
> of now, but FB_BLANK_NORMAL will be supported in future.
> If not for Exynos, i think it will be need for other SoCs which
> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.

Could you please explain in a bit more details what the set_early_blank_mode 
and set_blank_mode operations do ?

> > Both get_frame_done and clear_frame_done do not look at anything used at
> > the moment and if frame done status monitoring will be ever needed, I
> > think a better way should be implemented.
> 
> You are right, as of now Exynos MIPI DSI Panels are NOT using these
> callbacks, but as you mentioned we will need frame done status monitoring
> anyways, so i included these callbacks here. Will check, if we can implement
> any better method.

Do you expect the entity drivers (and in particular the panel drivers) to 
require frame done notification ? If so, could you explain your use case(s) ?

-- 
Regards,

Laurent Pinchart

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


[Bug 59169] [radeons] wrong chip detection

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59169

--- Comment #1 from Tomasz P.  ---
Confirm. My rv350 is detected as rv370.

-- 
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/20130109/9a70847a/attachment.html>


[Bug 59169] New: [radeons] wrong chip detection

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59169

  Priority: medium
Bug ID: 59169
  Assignee: dri-devel at lists.freedesktop.org
   Summary: [radeons] wrong chip detection
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: fabio.ped at libero.it
  Hardware: x86 (IA32)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r300
   Product: Mesa

I noticed my RV530 get "upgraded" by mesa to a R580:
GL_RENDERER   = Gallium 0.4 on ATI R580

Up to some days ago it was correctly reported as a RV530. Possible regression
of
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca474f98f2cda5cb333e9f851c7e0e31c9a6f823

-- 
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/20130109/0af01545/attachment.html>


Re: [PATCH 2/2] radeon: add support for forcing off lvds when mux switched away

2013-01-09 Thread Dave Airlie
On Thu, Jan 10, 2013 at 12:16 AM, Alex Deucher  wrote:
> On Mon, Jan 7, 2013 at 11:53 PM, Dave Airlie  wrote:
>> From: Dave Airlie 
>>
>> otherwise userspace can get very confused
>
>
> Thinking about this more, we probably want to check whether we have a
> muxed to mux-less system otherwise we'll be disconnecting the display
> when we switch.  Looks like the first patch is cognizant of that, but
> this one is not unless I'm missing something.

vga switcheroo is only for muxed systems, for muxless there is no "switching".

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


[PATCH] [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

 Made necessary changes in s6e8ax0 panel driver as per the CDF-T.
 it also removes the dependency on backlight and lcd framework.

Signed-off-by: Vikas Sajjan 
---
 drivers/video/exynos/s6e8ax0.c |  602 ++--
 1 file changed, 328 insertions(+), 274 deletions(-)

diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
index 05d080b..5d9be51 100644
--- a/drivers/video/exynos/s6e8ax0.c
+++ b/drivers/video/exynos/s6e8ax0.c
@@ -38,8 +38,7 @@
 #define POWER_IS_OFF(pwr)  ((pwr) == FB_BLANK_POWERDOWN)
 #define POWER_IS_NRM(pwr)  ((pwr) == FB_BLANK_NORMAL)

-#define lcd_to_master(a)   (a->dsim_dev->master)
-#define lcd_to_master_ops(a)   ((lcd_to_master(a))->master_ops)
+#define to_panel(p) container_of(p, struct s6e8ax0, entity)

 enum {
DSIM_NONE_STATE = 0,
@@ -47,20 +46,34 @@ enum {
DSIM_FRAME_DONE = 2,
 };

+/* This structure defines all the properties of a backlight */
+struct backlight_prop {
+   /* Current User requested brightness (0 - max_brightness) */
+   int brightness;
+   /* Maximal value for brightness (read-only) */
+   int max_brightness;
+};
+
+struct panel_platform_data {
+   unsigned intreset_delay;
+   unsigned intpower_on_delay;
+   unsigned intpower_off_delay;
+   const char  *video_source_name;
+};
+
 struct s6e8ax0 {
-   struct device   *dev;
-   unsigned intpower;
-   unsigned intid;
-   unsigned intgamma;
-   unsigned intacl_enable;
-   unsigned intcur_acl;
-
-   struct lcd_device   *ld;
-   struct backlight_device *bd;
-
-   struct mipi_dsim_lcd_device *dsim_dev;
-   struct lcd_platform_data*ddi_pd;
+   struct platform_device  *pdev;
+   struct video_source *src;
+   struct display_entity   entity;
+   unsigned intpower;
+   unsigned intid;
+   unsigned intgamma;
+   unsigned intacl_enable;
+   unsigned intcur_acl;
+   boolpanel_reverse;
+   struct panel_platform_data  *plat_data;
struct mutexlock;
+   struct backlight_prop   bl_prop;
bool  enabled;
 };

@@ -70,39 +83,42 @@ static struct regulator_bulk_data supplies[] = {
{ .supply = "vci", },
 };

-static void s6e8ax0_regulator_enable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_enable(struct s6e8ax0 *panel)
 {
int ret = 0;
-   struct lcd_platform_data *pd = NULL;
+   struct panel_platform_data *plat_data = NULL;
+
+   plat_data = panel->plat_data;

-   pd = lcd->ddi_pd;
-   mutex_lock(&lcd->lock);
-   if (!lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (!panel->enabled) {
ret = regulator_bulk_enable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;

-   lcd->enabled = true;
+   panel->enabled = true;
}
-   msleep(pd->power_on_delay);
+   msleep(plat_data->power_on_delay);
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }

-static void s6e8ax0_regulator_disable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_disable(struct s6e8ax0 *panel)
 {
int ret = 0;

-   mutex_lock(&lcd->lock);
-   if (lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (panel->enabled) {
ret = regulator_bulk_disable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;

-   lcd->enabled = false;
+   panel->enabled = false;
}
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }

 static const unsigned char s6e8ax0_22_gamma_30[] = {
@@ -283,10 +299,8 @@ static const unsigned char *s6e8ax0_22_gamma_table[] = {
s6e8ax0_22_gamma_300,
 };

-static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
+static void s6e8ax0_panel_cond(struct s6e8ax0 *panel)
 {
-   struct mipi_dsim_master_ops *ops = lcd_to_master_ops(lcd);
-
static const unsigned char data_to_send[] = {
0xf8, 0x3d, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3c, 0x7d,
0x08, 0x27, 0x7d, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08,
@@ -300,239 +314,218 @@ static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
0xc1, 0x01, 0x41, 0xc1, 0x00, 0xc1, 0xf6, 0xf6, 0xc1
};

-   if (lcd->dsim_dev->panel_reverse)
-   ops->cmd_write(lcd_to_master(lcd), MIPI_DSI_DCS_LONG_WRITE,
+   if (panel->panel_reverse)
+   panel->src->ops.dsi->dcs_write(panel->src, 
MIPI_DSI_DCS_LONG_WRITE,
data_to_send_panel_reverse,
ARRAY_SIZE(data_to_send_panel_reverse));
else
-   

[PATCH] Make s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

Have made necessary chanages in s6e8ax0 panel driver, made an effort to remove
dependency on backlight and lcd framework, but its NOT fully done.

s6e8ax0_get_brightness() and s6e8ax0_set_brightness() functionalities have NOT
been modified. as backlight support in CDF are _NOT_ implemented yet.
Thought of adding these "get and set" as part of display_entity_control_ops(), 
but didn't modify as of now. Any thoughts on the same will be helpful.

removed the lcd_ops "set_power and get_power" and added as part of 
panel_set_state.

I _SHALL_ test these modificaions once i get the s6e8ax0 panel.

Vikas Sajjan (1):
  [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

 drivers/video/exynos/s6e8ax0.c |  582 ++--
 1 file changed, 314 insertions(+), 268 deletions(-)

-- 
1.7.9.5



Re: [PATCH 1/2] radeon/kms: fix dma relocation checking

2013-01-09 Thread Alex Deucher
On Wed, Jan 9, 2013 at 4:40 PM,   wrote:
> From: Jerome Glisse 
>
> We were checking the index against the size of the relocation buffer
> instead of against the last index. This fix kernel segfault when
> userspace submit ill formated command stream/relocation buffer pair.
>
> Signed-off-by: Jerome Glisse 

Added to my -fixes queue.  thanks!

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


[Bug 58667] Random crashes on CAYMAN

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=58667

--- Comment #33 from Alex Deucher  ---
Does a 3.8 kernel it work ok if you revert mesa back to
cf5632094ba0c19d570ea47025cf6da75ef8457a?

I think
r600g: rework flusing and synchronization pattern v7
http://cgit.freedesktop.org/mesa/mesa/commit/?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
may be problematic on cayman.

-- 
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/20130109/c9154701/attachment.html>


[Bug 58354] [bisected] r600g: use DMA engine for VM page table updates on cayman locks in Unigine Tropics

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=58354

--- Comment #16 from Alex Deucher  ---
Does a 3.8 kernel it work ok if you revert mesa back to
cf5632094ba0c19d570ea47025cf6da75ef8457a?

I think
r600g: rework flusing and synchronization pattern v7
http://cgit.freedesktop.org/mesa/mesa/commit/?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
may be problematic on cayman.

-- 
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/20130109/f45450f0/attachment-0001.html>


[RFC v2 0/5] Common Display Framework

2013-01-09 Thread Rahul Sharma
Hi Laurent,

CDF will also be helpful in supporting Panels with integrated
audio (HDMI/DP) if we can add audio related control operations to
display_entity_control_ops. Video controls will be called by crtc
in DRM/V4L and audio controls from Alsa.

Secondly, if I need to support get_modes operation in hdmi/dp
panel, I need to implement edid parser inside the panel driver. It
will be meaningful to add get_edid control operation for hdmi/dp.

regards,
Rahul Sharma.

On Tue, Jan 8, 2013 at 9:43 PM, Rob Clark  wrote:
> On Tue, Jan 8, 2013 at 2:25 AM, Laurent Pinchart
>  wrote:
>> Hi Rob,
>>
>> On Thursday 27 December 2012 09:54:55 Rob Clark wrote:
>>> What I've done to avoid that so far is that the master device registers the
>>> drivers for it's output sub-devices before registering it's own device.
>>
>> I'm not sure to follow you here. The master device doesn't register anything,
>> do you mean the master device driver ? If so, how does the master device
>> driver register its own device ? Devices are not registered by their driver.
>
> sorry, that should have read "master driver registers drivers for it's
> sub-devices.."
>
> BR,
> -R
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 2/2] radeon/kms: cleanup async dma packet checking

2013-01-09 Thread j . glisse
From: Jerome Glisse 

This simplify and cleanup the async dma checking.

Signed-off-by: Jerome Glisse 
---
 drivers/gpu/drm/radeon/evergreen.c|  16 +-
 drivers/gpu/drm/radeon/evergreen_cs.c | 807 +-
 drivers/gpu/drm/radeon/evergreend.h   |  29 +-
 3 files changed, 417 insertions(+), 435 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index f92f6bb..28f8d4f 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3223,14 +3223,14 @@ void evergreen_dma_fence_ring_emit(struct radeon_device 
*rdev,
struct radeon_ring *ring = &rdev->ring[fence->ring];
u64 addr = rdev->fence_drv[fence->ring].gpu_addr;
/* write the fence */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0));
radeon_ring_write(ring, addr & 0xfffc);
radeon_ring_write(ring, (upper_32_bits(addr) & 0xff));
radeon_ring_write(ring, fence->seq);
/* generate an interrupt */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0));
/* flush HDP */
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0));
radeon_ring_write(ring, (0xf << 16) | HDP_MEM_COHERENCY_FLUSH_CNTL);
radeon_ring_write(ring, 1);
 }
@@ -3253,7 +3253,7 @@ void evergreen_dma_ring_ib_execute(struct radeon_device 
*rdev,
while ((next_rptr & 7) != 5)
next_rptr++;
next_rptr += 3;
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_WRITE, 0, 0, 1));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_WRITE, 0, 1));
radeon_ring_write(ring, ring->next_rptr_gpu_addr & 0xfffc);
radeon_ring_write(ring, upper_32_bits(ring->next_rptr_gpu_addr) 
& 0xff);
radeon_ring_write(ring, next_rptr);
@@ -3263,8 +3263,8 @@ void evergreen_dma_ring_ib_execute(struct radeon_device 
*rdev,
 * Pad as necessary with NOPs.
 */
while ((ring->wptr & 7) != 5)
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0));
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_INDIRECT_BUFFER, 0, 0, 
0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_NOP, 0, 0));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_INDIRECT_BUFFER, 0, 0));
radeon_ring_write(ring, (ib->gpu_addr & 0xFFE0));
radeon_ring_write(ring, (ib->length_dw << 12) | 
(upper_32_bits(ib->gpu_addr) & 0xFF));
 
@@ -3323,7 +3323,7 @@ int evergreen_copy_dma(struct radeon_device *rdev,
if (cur_size_in_dw > 0xF)
cur_size_in_dw = 0xF;
size_in_dw -= cur_size_in_dw;
-   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 0, 
cur_size_in_dw));
+   radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 
cur_size_in_dw));
radeon_ring_write(ring, dst_offset & 0xfffc);
radeon_ring_write(ring, src_offset & 0xfffc);
radeon_ring_write(ring, upper_32_bits(dst_offset) & 0xff);
@@ -3431,7 +3431,7 @@ static int evergreen_startup(struct radeon_device *rdev)
ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX];
r = radeon_ring_init(rdev, ring, ring->ring_size, 
R600_WB_DMA_RPTR_OFFSET,
 DMA_RB_RPTR, DMA_RB_WPTR,
-2, 0x3fffc, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0));
+2, 0x3fffc, DMA_PACKET(DMA_PACKET_NOP, 0, 0));
if (r)
return r;
 
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c 
b/drivers/gpu/drm/radeon/evergreen_cs.c
index 7a44566..32c07bb 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -2858,16 +2858,6 @@ int evergreen_cs_parse(struct radeon_cs_parser *p)
return 0;
 }
 
-/*
- *  DMA
- */
-
-#define GET_DMA_CMD(h) (((h) & 0xf000) >> 28)
-#define GET_DMA_COUNT(h) ((h) & 0x000f)
-#define GET_DMA_T(h) (((h) & 0x0080) >> 23)
-#define GET_DMA_NEW(h) (((h) & 0x0400) >> 26)
-#define GET_DMA_MISC(h) (((h) & 0x070) >> 20)
-
 /**
  * evergreen_dma_cs_parse() - parse the DMA IB
  * @p: parser structure holding parsing context.
@@ -2881,9 +2871,9 @@ int evergreen_dma_cs_parse(struct radeon_cs_parser *p)
 {
struct radeon_cs_chunk *ib_chunk = &p->chunks[p->chunk_ib_idx];
struct radeon_cs_reloc *src_reloc, *dst_reloc, *dst2_reloc;
-   u32 header, cmd, count, tiled, new_cmd, misc;
+   u32 header, cmd, count, sub_cmd;
volatile u32 *ib = p->ib.ptr;
-   u32 idx, idx_value;
+   u32 idx;
u64 src_offset, dst_offset, dst2_offset;
int r;
 
@@ -

[PATCH 1/2] radeon/kms: fix dma relocation checking

2013-01-09 Thread j . glisse
From: Jerome Glisse 

We were checking the index against the size of the relocation buffer
instead of against the last index. This fix kernel segfault when
userspace submit ill formated command stream/relocation buffer pair.

Signed-off-by: Jerome Glisse 
---
 drivers/gpu/drm/radeon/r600_cs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 9ea13d0..f91919e 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -2561,16 +2561,16 @@ int r600_dma_cs_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_chunk *relocs_chunk;
unsigned idx;
 
+   *cs_reloc = NULL;
if (p->chunk_relocs_idx == -1) {
DRM_ERROR("No relocation chunk !\n");
return -EINVAL;
}
-   *cs_reloc = NULL;
relocs_chunk = &p->chunks[p->chunk_relocs_idx];
idx = p->dma_reloc_idx;
-   if (idx >= relocs_chunk->length_dw) {
+   if (idx >= p->nrelocs) {
DRM_ERROR("Relocs at %d after relocations chunk end %d !\n",
- idx, relocs_chunk->length_dw);
+ idx, p->nrelocs);
return -EINVAL;
}
*cs_reloc = p->relocs_ptr[idx];
-- 
1.7.11.7

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


3.8-rc2: lockdep warning in nouveau driver

2013-01-09 Thread Arend van Spriel
Maybe this one is already known, but I did not find a post about it. So
here it is.

Regards,
Arend

==
[9.422018] usb 1-1.2: new high-speed USB device number 4 using ehci-pci
[9.436177] [TTM] Zone  kernel: Available graphics memory: 433698 kiB
[9.442676] [TTM] Zone highmem: Available graphics memory: 1678052 kiB
[9.449256] [TTM] Initializing pool allocator
[9.455462] nouveau  [ DRM] VRAM: 512 MiB
[9.459851] nouveau  [ DRM] GART: 512 MiB
[9.464227] nouveau  [ DRM] BIT BIOS found
[9.468709] nouveau  [ DRM] Bios version 70.18.53.00
[9.474040] nouveau  [ DRM] TMDS table version 2.0
[9.479196] nouveau  [ DRM] DCB version 4.0
[9.483746] nouveau  [ DRM] DCB outp 00: 048003b6 0f200014
[9.489580] nouveau  [ DRM] DCB outp 01: 02033300 
[9.495431] nouveau  [ DRM] DCB outp 02: 088223a6 0f220010
[9.501278] nouveau  [ DRM] DCB outp 03: 08022362 00020010
[9.507124] nouveau  [ DRM] DCB outp 04: 028113c6 0f220010
[9.512970] nouveau  [ DRM] DCB outp 05: 02011382 00020010
[9.518804] nouveau  [ DRM] DCB conn 00: 2047
[9.523059] hub 1-1.2:1.0: USB hub found
[9.523201] hub 1-1.2:1.0: 3 ports detected
[9.532105] nouveau  [ DRM] DCB conn 01: 00101146
[9.537360] nouveau  [ DRM] DCB conn 02: 00410246
[9.542450] nouveau  [ DRM] DCB conn 03: 0300
[9.588499]
[9.589986] =
[9.595365] [ INFO: possible recursive locking detected ]
[9.600745] 3.8.0-rc2-wl-testing-lockdep-2-ga524cf0 #1 Not tainted
[9.607248] -
[9.612626] modprobe/163 is trying to acquire lock:
[9.617486]  (&subdev->mutex){+.+.+.}, at: []
nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.626052]
[9.626052] but task is already holding lock:
[9.631865]  (&subdev->mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x55/0xc0 [nouveau]
[9.640593]
[9.640593] other info that might help us debug this:
[9.647096]  Possible unsafe locking scenario:
[9.647096]
[9.652995]CPU0
[9.655430]
[9.657867]   lock(&subdev->mutex);
[9.661365]   lock(&subdev->mutex);
[9.664863]
[9.664863]  *** DEADLOCK ***
[9.664863]
[9.670762]  May be due to missing lock nesting notation
[9.670762]
[9.677526] 4 locks held by modprobe/163:
[9.681520]  #0:  (&__lockdep_no_validate__){..}, at:
[] __driver_attach+0x50/0xa0
[9.690341]  #1:  (&__lockdep_no_validate__){..}, at:
[] __driver_attach+0x5c/0xa0
[9.699156]  #2:  (drm_global_mutex){+.+.+.}, at: []
drm_get_pci_dev+0xa8/0x260 [drm]
[9.707899]  #3:  (&subdev->mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x55/0xc0 [nouveau]
[9.717075]
[9.717075] stack backtrace:
[9.721417] Pid: 163, comm: modprobe Not tainted
3.8.0-rc2-wl-testing-lockdep-2-ga524cf0 #1
[9.730085] Call Trace:
[9.732524]  [] __lock_acquire+0x12f3/0x1780
[9.737644]  [] ? noop_count+0x10/0x10
[9.742246]  [] ? check_usage+0x6b/0x410
[9.747021]  [] lock_acquire+0x84/0x120
[9.751721]  [] ? nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.757797]  [] mutex_lock_nested+0x64/0x2e0
[9.762929]  [] ? nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.769012]  [] ? nv50_fb_vram_new+0x5e/0x230 [nouveau]
[9.775096]  [] nv50_fb_vram_new+0x92/0x230 [nouveau]
[9.781008]  [] nv50_instobj_ctor+0xae/0xf0 [nouveau]
[9.786918]  [] nouveau_object_ctor+0x3b/0xe0 [nouveau]
[9.793001]  [] nv50_instmem_alloc+0x2d/0x40 [nouveau]
[9.798996]  [] nouveau_gpuobj_create_+0x232/0x2b0 [nouveau]
[9.805501]  [] ? _raw_spin_unlock_irqrestore+0x36/0x70
[9.811574]  [] ? trace_hardirqs_on_caller+0xf4/0x180
[9.817483]  [] nouveau_engctx_create_+0x220/0x260 [nouveau]
[9.824002]  [] nv50_disp_data_ctor+0xaf/0xc0 [nouveau]
[9.830086]  [] nouveau_object_ctor+0x3b/0xe0 [nouveau]
[9.836168]  [] nouveau_object_new+0xe9/0x220 [nouveau]
[9.842258]  [] nv50_display_create+0x18c/0x850 [nouveau]
[9.848505]  [] ? __cancel_work_timer+0x5a/0xb0
[9.853884]  [] ? trace_hardirqs_on_caller+0xf4/0x180
[9.859783]  [] ? __cancel_work_timer+0x6a/0xb0
[9.865181]  [] nouveau_display_create+0x415/0x6a0 [nouveau]
[9.871700]  [] nouveau_drm_load+0x28b/0x5d0 [nouveau]
[9.877688]  [] ? device_register+0x17/0x20
[9.882727]  [] ? drm_sysfs_device_add+0x7a/0xa0 [drm]
[9.888719]  [] ? drm_get_minor+0x220/0x2b0 [drm]
[9.894279]  [] drm_get_pci_dev+0x14b/0x260 [drm]
[9.899833]  [] ? __pci_set_master+0x27/0x80
[9.904969]  [] nouveau_drm_probe+0x20e/0x250 [nouveau]
[9.911042]  [] pci_device_probe+0x83/0xc0
[9.915989]  [] driver_probe_device+0x64/0x1f0
[9.921282]  [] __driver_attach+0x99/0xa0
[9.926143]  [] ? driver_probe_device+0x1f0/0x1f0
[9.931696]  [] bus_for_each_dev+0x42/0x70
[9.936

Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Laurent Pinchart
On Wednesday 09 January 2013 21:15:41 Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

I've used the sh-mobile-lcdcfb driver.

> Those are the people I know from the top of my head, that use or at least
> did use the patches in one of its iterations. If I forgot anyone, please
> speak up and possibly add your new HW to the list of tested devices.

-- 
Regards,

Laurent Pinchart

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


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Thierry Reding
On Wed, Jan 09, 2013 at 09:15:41PM +0100, Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> > 
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using. Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.

I tested earlier versions on Tegra. The latest one was v15 I think.

Thierry


pgp4jWZ22YeJI.pgp
Description: PGP signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


"Hangcheck timer elapsed... GPU hung" in 3.8.0-rc2

2013-01-09 Thread Daniel Vetter
On Tue, Jan 8, 2013 at 3:37 PM, J. Bruce Fields  wrote:
>> please grab the i915_error_state file from debugfs
>
> As I said in the original mail, I've already done that:
>
> http://fieldses.org/~bfields/3.8-hang/

Sorry, missed that the first time around.

>> and file a bug on
>> bugs.freedesktop.org against DRM - DRI (Intel).
>
> Would it still be useful for me to file a bug?  (Just going through the
> new-account confirmation dance now.)

Looks like the ilk bug tracked at
https://bugs.freedesktop.org/show_bug.cgi?id=55984

-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.
> 

So, any more criticism on the series? Any takers for the series as is?
I guess it could be merged via the fbdev-tree if David Airlie can agree
to the DRM patches ?! Does that sound about right?

I think the series was tested at least with
- imx6q: sabrelite, sabresd
- imx53: tqma53/mba53
- omap: DA850 EVM, AM335x EVM, EVM-SK

I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
are using. Those are the people I know from the top of my head, that use
or at least did use the patches in one of its iterations. If I forgot
anyone, please speak up and possibly add your new HW to the list of tested
devices.

Thanks,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 36596] Major 2D performance bottleneck (most noticeable with compiz)

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=36596

--- Comment #14 from Tomasz P.  ---
is it still an issue with current mesa?

-- 
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/20130109/6fc572b3/attachment.html>


[Bug 47244] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=47244

--- Comment #3 from Tomasz P.  ---
Is it still an issue ?

-- 
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/20130109/94cf2a9e/attachment.html>


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
Hi!

On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> Dear Steffen Trumtrar,
> 
> I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After 
> adding 
> the following piece of code (quick hack), this works just fine. Thanks!
> 
> diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
> drm/parallel-display.c
> index a8064fc..e45002a 100644
> --- a/drivers/staging/imx-drm/parallel-display.c
> +++ b/drivers/staging/imx-drm/parallel-display.c
> @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
> *connector)
>  static int imx_pd_connector_get_modes(struct drm_connector *connector)
>  {
> struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> +   struct device_node *np = imxpd->dev->of_node;
> int num_modes = 0;
>  
> if (imxpd->edid) {
> @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
> *connector)
> num_modes++;
> }
>  
> +   if (np) {
> +   struct drm_display_mode *mode = 
> drm_mode_create(connector->dev);
> +   of_get_drm_display_mode(np, &imxpd->mode, 0);
> +   drm_mode_copy(mode, &imxpd->mode);
> +   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
> +   drm_mode_probed_add(connector, mode);
> +   num_modes++;
> +   }
> +
> return num_modes;
>  }
> 

Nice! I haven't tried the parallel display, but I think Philipp Zabel might
already have a patch for it. If not, I will definitly keep your patch in my
topic branch.

Regards,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 8/8] drm/exynos: fimd: add complete_scanout function

2013-01-09 Thread Prathyush K
On Tue, Jan 8, 2013 at 4:18 AM, Mandeep Singh Baines wrote:

> On Wed, Dec 26, 2012 at 3:27 AM, Prathyush K 
> wrote:
> > The wait_for_vblank interface is modified to the complete_scanout
> > function in fimd. This patch adds the fimd_complete_scanout function
> >
>
> With this series, you have a race if the rmfb happens before the flip
> has completed.
>
> How will there be a race? Can you explain the scenario in more detail?

If the current fb (fb1) is being removed, (i.e the shadow register has fb1),
then we wait for vblank before returning. This ensures that the flip has
been handled
before remove fb is complete.


> Why not just use reference counts as is done in the i915 driver: see
> unpin_work.
> The reference counts also allow you to avoid blocking in rmfb.
>
> Will look into it. Thanks.

Regards,
Prathyush



> Regards,
> Mandeep
>
> > Inside fimd_complete_scanout, we read the shadow register for each
> > window and compare it with the dma address of the framebuffer. If
> > the dma_address is in the shadow register, then the function waits
> > for the next vblank and returns.
> >
> > Signed-off-by: Prathyush K 
> > ---
> >  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 32
> +++-
> >  include/video/samsung_fimd.h |  1 +
> >  2 files changed, 32 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> > index 3aeedf5..190ffde9 100644
> > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> > @@ -46,6 +46,7 @@
> >  #define VIDOSD_D(win)  (VIDOSD_BASE + 0x0C + (win) * 16)
> >
> >  #define VIDWx_BUF_START(win, buf)  (VIDW_BUF_START(buf) + (win) * 8)
> > +#define VIDWx_BUF_START_S(win, buf)(VIDW_BUF_START_S(buf) + (win) *
> 8)
> >  #define VIDWx_BUF_END(win, buf)(VIDW_BUF_END(buf) +
> (win) * 8)
> >  #define VIDWx_BUF_SIZE(win, buf)   (VIDW_BUF_SIZE(buf) + (win) * 4)
> >
> > @@ -363,13 +364,42 @@ static void fimd_wait_for_vblank(struct device
> *dev)
> > fimd_disable_vblank(dev);
> >  }
> >
> > +static void fimd_complete_scanout(struct device *dev, dma_addr_t
> dma_addr,
> > +   unsigned long size)
> > +{
> > +   struct fimd_context *ctx = get_fimd_context(dev);
> > +   int win;
> > +   bool in_use = false;
> > +
> > +   if (ctx->suspended)
> > +   return;
> > +
> > +   for (win = 0; win < WINDOWS_NR; win++) {
> > +   dma_addr_t dma_addr_in_use;
> > +
> > +   if (!ctx->win_data[win].enabled)
> > +   continue;
> > +
> > +   dma_addr_in_use = readl(ctx->regs +
> VIDWx_BUF_START_S(win, 0));
> > +   if (dma_addr_in_use >= dma_addr &&
> > +   dma_addr_in_use < (dma_addr + size)) {
> > +   in_use = true;
> > +   break;
> > +   }
> > +   }
> > +
> > +   if (in_use)
> > +   fimd_wait_for_vblank(dev);
> > +   return;
> > +}
> > +
> >  static struct exynos_drm_manager_ops fimd_manager_ops = {
> > .dpms = fimd_dpms,
> > .apply = fimd_apply,
> > .commit = fimd_commit,
> > .enable_vblank = fimd_enable_vblank,
> > .disable_vblank = fimd_disable_vblank,
> > -   .wait_for_vblank = fimd_wait_for_vblank,
> > +   .complete_scanout = fimd_complete_scanout,
> >  };
> >
> >  static void fimd_win_mode_set(struct device *dev,
> > diff --git a/include/video/samsung_fimd.h b/include/video/samsung_fimd.h
> > index 7ae6c07..382eaec 100644
> > --- a/include/video/samsung_fimd.h
> > +++ b/include/video/samsung_fimd.h
> > @@ -274,6 +274,7 @@
> >
> >  /* Video buffer addresses */
> >  #define VIDW_BUF_START(_buff)  (0xA0 + ((_buff) * 8))
> > +#define VIDW_BUF_START_S(_buff)(0x40A0 +
> ((_buff) * 8))
> >  #define VIDW_BUF_START1(_buff) (0xA4 + ((_buff) * 8))
> >  #define VIDW_BUF_END(_buff)(0xD0 + ((_buff) * 8))
> >  #define VIDW_BUF_END1(_buff)   (0xD4 + ((_buff) * 8))
> > --
> > 1.8.0
> >
> > ___
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130109/4451a17d/attachment-0001.html>


Re: [PATCH 8/8] drm/exynos: fimd: add complete_scanout function

2013-01-09 Thread Mandeep Singh Baines
On Tue, Jan 8, 2013 at 9:43 PM, Prathyush K  wrote:
>
>
>
> On Tue, Jan 8, 2013 at 4:18 AM, Mandeep Singh Baines 
> wrote:
>>
>> On Wed, Dec 26, 2012 at 3:27 AM, Prathyush K 
>> wrote:
>> > The wait_for_vblank interface is modified to the complete_scanout
>> > function in fimd. This patch adds the fimd_complete_scanout function
>> >
>>
>> With this series, you have a race if the rmfb happens before the flip
>> has completed.
>>
> How will there be a race? Can you explain the scenario in more detail?
>

I'm sorry. There's no race. I had misunderstood something.

Reference counting might still be preferable to avoid blocking the
Xserver till vblank.

You can implement it by grabbing a reference on page_flip and release
the reference
on finish_page_flip (when flipping to a new fb).

Regards,
Mandeep

> If the current fb (fb1) is being removed, (i.e the shadow register has fb1),
> then we wait for vblank before returning. This ensures that the flip has
> been handled
> before remove fb is complete.
>
>>
>> Why not just use reference counts as is done in the i915 driver: see
>> unpin_work.
>> The reference counts also allow you to avoid blocking in rmfb.
>>
> Will look into it. Thanks.
>
> Regards,
> Prathyush
>
>
>>
>> Regards,
>> Mandeep
>>
>> > Inside fimd_complete_scanout, we read the shadow register for each
>> > window and compare it with the dma address of the framebuffer. If
>> > the dma_address is in the shadow register, then the function waits
>> > for the next vblank and returns.
>> >
>> > Signed-off-by: Prathyush K 
>> > ---
>> >  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 32
>> > +++-
>> >  include/video/samsung_fimd.h |  1 +
>> >  2 files changed, 32 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > index 3aeedf5..190ffde9 100644
>> > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > @@ -46,6 +46,7 @@
>> >  #define VIDOSD_D(win)  (VIDOSD_BASE + 0x0C + (win) * 16)
>> >
>> >  #define VIDWx_BUF_START(win, buf)  (VIDW_BUF_START(buf) + (win) *
>> > 8)
>> > +#define VIDWx_BUF_START_S(win, buf)(VIDW_BUF_START_S(buf) + (win) *
>> > 8)
>> >  #define VIDWx_BUF_END(win, buf)(VIDW_BUF_END(buf) +
>> > (win) * 8)
>> >  #define VIDWx_BUF_SIZE(win, buf)   (VIDW_BUF_SIZE(buf) + (win) * 4)
>> >
>> > @@ -363,13 +364,42 @@ static void fimd_wait_for_vblank(struct device
>> > *dev)
>> > fimd_disable_vblank(dev);
>> >  }
>> >
>> > +static void fimd_complete_scanout(struct device *dev, dma_addr_t
>> > dma_addr,
>> > +   unsigned long size)
>> > +{
>> > +   struct fimd_context *ctx = get_fimd_context(dev);
>> > +   int win;
>> > +   bool in_use = false;
>> > +
>> > +   if (ctx->suspended)
>> > +   return;
>> > +
>> > +   for (win = 0; win < WINDOWS_NR; win++) {
>> > +   dma_addr_t dma_addr_in_use;
>> > +
>> > +   if (!ctx->win_data[win].enabled)
>> > +   continue;
>> > +
>> > +   dma_addr_in_use = readl(ctx->regs +
>> > VIDWx_BUF_START_S(win, 0));
>> > +   if (dma_addr_in_use >= dma_addr &&
>> > +   dma_addr_in_use < (dma_addr + size)) {
>> > +   in_use = true;
>> > +   break;
>> > +   }
>> > +   }
>> > +
>> > +   if (in_use)
>> > +   fimd_wait_for_vblank(dev);
>> > +   return;
>> > +}
>> > +
>> >  static struct exynos_drm_manager_ops fimd_manager_ops = {
>> > .dpms = fimd_dpms,
>> > .apply = fimd_apply,
>> > .commit = fimd_commit,
>> > .enable_vblank = fimd_enable_vblank,
>> > .disable_vblank = fimd_disable_vblank,
>> > -   .wait_for_vblank = fimd_wait_for_vblank,
>> > +   .complete_scanout = fimd_complete_scanout,
>> >  };
>> >
>> >  static void fimd_win_mode_set(struct device *dev,
>> > diff --git a/include/video/samsung_fimd.h b/include/video/samsung_fimd.h
>> > index 7ae6c07..382eaec 100644
>> > --- a/include/video/samsung_fimd.h
>> > +++ b/include/video/samsung_fimd.h
>> > @@ -274,6 +274,7 @@
>> >
>> >  /* Video buffer addresses */
>> >  #define VIDW_BUF_START(_buff)  (0xA0 + ((_buff) * 8))
>> > +#define VIDW_BUF_START_S(_buff)(0x40A0 +
>> > ((_buff) * 8))
>> >  #define VIDW_BUF_START1(_buff) (0xA4 + ((_buff) * 8))
>> >  #define VIDW_BUF_END(_buff)(0xD0 + ((_buff) * 8))
>> >  #define VIDW_BUF_END1(_buff)   (0xD4 + ((_buff) * 8))
>> > --
>> > 1.8.0
>> >
>> > ___
>> > dri-devel mailing list
>> > dri-devel@lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
>> ___
>> dri-devel mailing

[PATCH 8/8] drm/exynos: fimd: add complete_scanout function

2013-01-09 Thread Mandeep Singh Baines
On Tue, Jan 8, 2013 at 9:43 PM, Prathyush K  wrote:
>
>
>
> On Tue, Jan 8, 2013 at 4:18 AM, Mandeep Singh Baines 
> wrote:
>>
>> On Wed, Dec 26, 2012 at 3:27 AM, Prathyush K 
>> wrote:
>> > The wait_for_vblank interface is modified to the complete_scanout
>> > function in fimd. This patch adds the fimd_complete_scanout function
>> >
>>
>> With this series, you have a race if the rmfb happens before the flip
>> has completed.
>>
> How will there be a race? Can you explain the scenario in more detail?
>

I'm sorry. There's no race. I had misunderstood something.

Reference counting might still be preferable to avoid blocking the
Xserver till vblank.

You can implement it by grabbing a reference on page_flip and release
the reference
on finish_page_flip (when flipping to a new fb).

Regards,
Mandeep

> If the current fb (fb1) is being removed, (i.e the shadow register has fb1),
> then we wait for vblank before returning. This ensures that the flip has
> been handled
> before remove fb is complete.
>
>>
>> Why not just use reference counts as is done in the i915 driver: see
>> unpin_work.
>> The reference counts also allow you to avoid blocking in rmfb.
>>
> Will look into it. Thanks.
>
> Regards,
> Prathyush
>
>
>>
>> Regards,
>> Mandeep
>>
>> > Inside fimd_complete_scanout, we read the shadow register for each
>> > window and compare it with the dma address of the framebuffer. If
>> > the dma_address is in the shadow register, then the function waits
>> > for the next vblank and returns.
>> >
>> > Signed-off-by: Prathyush K 
>> > ---
>> >  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 32
>> > +++-
>> >  include/video/samsung_fimd.h |  1 +
>> >  2 files changed, 32 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > index 3aeedf5..190ffde9 100644
>> > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> > @@ -46,6 +46,7 @@
>> >  #define VIDOSD_D(win)  (VIDOSD_BASE + 0x0C + (win) * 16)
>> >
>> >  #define VIDWx_BUF_START(win, buf)  (VIDW_BUF_START(buf) + (win) *
>> > 8)
>> > +#define VIDWx_BUF_START_S(win, buf)(VIDW_BUF_START_S(buf) + (win) *
>> > 8)
>> >  #define VIDWx_BUF_END(win, buf)(VIDW_BUF_END(buf) +
>> > (win) * 8)
>> >  #define VIDWx_BUF_SIZE(win, buf)   (VIDW_BUF_SIZE(buf) + (win) * 4)
>> >
>> > @@ -363,13 +364,42 @@ static void fimd_wait_for_vblank(struct device
>> > *dev)
>> > fimd_disable_vblank(dev);
>> >  }
>> >
>> > +static void fimd_complete_scanout(struct device *dev, dma_addr_t
>> > dma_addr,
>> > +   unsigned long size)
>> > +{
>> > +   struct fimd_context *ctx = get_fimd_context(dev);
>> > +   int win;
>> > +   bool in_use = false;
>> > +
>> > +   if (ctx->suspended)
>> > +   return;
>> > +
>> > +   for (win = 0; win < WINDOWS_NR; win++) {
>> > +   dma_addr_t dma_addr_in_use;
>> > +
>> > +   if (!ctx->win_data[win].enabled)
>> > +   continue;
>> > +
>> > +   dma_addr_in_use = readl(ctx->regs +
>> > VIDWx_BUF_START_S(win, 0));
>> > +   if (dma_addr_in_use >= dma_addr &&
>> > +   dma_addr_in_use < (dma_addr + size)) {
>> > +   in_use = true;
>> > +   break;
>> > +   }
>> > +   }
>> > +
>> > +   if (in_use)
>> > +   fimd_wait_for_vblank(dev);
>> > +   return;
>> > +}
>> > +
>> >  static struct exynos_drm_manager_ops fimd_manager_ops = {
>> > .dpms = fimd_dpms,
>> > .apply = fimd_apply,
>> > .commit = fimd_commit,
>> > .enable_vblank = fimd_enable_vblank,
>> > .disable_vblank = fimd_disable_vblank,
>> > -   .wait_for_vblank = fimd_wait_for_vblank,
>> > +   .complete_scanout = fimd_complete_scanout,
>> >  };
>> >
>> >  static void fimd_win_mode_set(struct device *dev,
>> > diff --git a/include/video/samsung_fimd.h b/include/video/samsung_fimd.h
>> > index 7ae6c07..382eaec 100644
>> > --- a/include/video/samsung_fimd.h
>> > +++ b/include/video/samsung_fimd.h
>> > @@ -274,6 +274,7 @@
>> >
>> >  /* Video buffer addresses */
>> >  #define VIDW_BUF_START(_buff)  (0xA0 + ((_buff) * 8))
>> > +#define VIDW_BUF_START_S(_buff)(0x40A0 +
>> > ((_buff) * 8))
>> >  #define VIDW_BUF_START1(_buff) (0xA4 + ((_buff) * 8))
>> >  #define VIDW_BUF_END(_buff)(0xD0 + ((_buff) * 8))
>> >  #define VIDW_BUF_END1(_buff)   (0xD4 + ((_buff) * 8))
>> > --
>> > 1.8.0
>> >
>> > ___
>> > dri-devel mailing list
>> > dri-devel at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
>> ___
>> dri-devel mail

[PATCH 1/4] drm: small fix in drm_send_vblank_event()

2013-01-09 Thread Alex Deucher
On Tue, Jan 8, 2013 at 11:08 PM, Rob Clark  wrote:
> Initialize e->pipe.. some drivers set this themselves, others do not.
> Setting it in drm_send_vblank_event() should help ensure more consistent
> behavior with the different drivers.
>
> Signed-off-by: Rob Clark 

Reviewed-by: Alex Deucher 

> ---
>  drivers/gpu/drm/drm_irq.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index 19c01ca..9bb83a5 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -863,6 +863,7 @@ void drm_send_vblank_event(struct drm_device *dev, int 
> crtc,
>
> now = get_drm_timestamp();
> }
> +   e->pipe = crtc;
> send_vblank_event(dev, e, seq, &now);
>  }
>  EXPORT_SYMBOL(drm_send_vblank_event);
> --
> 1.8.0.2
>
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


"Hangcheck timer elapsed... GPU hung" in 3.8.0-rc2

2013-01-09 Thread J. Bruce Fields
On Wed, Jan 09, 2013 at 12:27:22PM +0100, Daniel Vetter wrote:
> On Tue, Jan 8, 2013 at 3:37 PM, J. Bruce Fields  
> wrote:
> >> please grab the i915_error_state file from debugfs
> >
> > As I said in the original mail, I've already done that:
> >
> > http://fieldses.org/~bfields/3.8-hang/
> 
> Sorry, missed that the first time around.
> 
> >> and file a bug on
> >> bugs.freedesktop.org against DRM - DRI (Intel).
> >
> > Would it still be useful for me to file a bug?  (Just going through the
> > new-account confirmation dance now.)
> 
> Looks like the ilk bug tracked at
> https://bugs.freedesktop.org/show_bug.cgi?id=55984

OK, I'll add something there if I'm available to find a reproducer.
Thanks!

--b.


[PATCH 2/2] radeon: add support for forcing off lvds when mux switched away

2013-01-09 Thread Alex Deucher
On Mon, Jan 7, 2013 at 11:53 PM, Dave Airlie  wrote:
> From: Dave Airlie 
>
> otherwise userspace can get very confused


Thinking about this more, we probably want to check whether we have a
muxed to mux-less system otherwise we'll be disconnecting the display
when we switch.  Looks like the first patch is cognizant of that, but
this one is not unless I'm missing something.

Alex

> ---
>  drivers/gpu/drm/radeon/radeon_connectors.c |  4 
>  drivers/gpu/drm/radeon/radeon_device.c | 14 ++
>  drivers/gpu/drm/radeon/radeon_mode.h   |  2 ++
>  3 files changed, 20 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
> b/drivers/gpu/drm/radeon/radeon_connectors.c
> index 2399f25..e5a4a10 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -611,6 +611,10 @@ radeon_lvds_detect(struct drm_connector *connector, bool 
> force)
> struct radeon_connector *radeon_connector = 
> to_radeon_connector(connector);
> struct drm_encoder *encoder = radeon_best_single_encoder(connector);
> enum drm_connector_status ret = connector_status_disconnected;
> +   struct radeon_device *rdev = connector->dev->dev_private;
> +
> +   if (rdev->mode_info.mux_force_disconnected)
> +   return connector_status_disconnected;
>
> if (encoder) {
> struct radeon_encoder *radeon_encoder = 
> to_radeon_encoder(encoder);
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
> b/drivers/gpu/drm/radeon/radeon_device.c
> index cd75626..bf66f09 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -945,10 +945,24 @@ static bool radeon_switcheroo_can_switch(struct pci_dev 
> *pdev)
> return can_switch;
>  }
>
> +static void radeon_switcheroo_mux_switched(struct pci_dev *pdev, enum 
> vga_switcheroo_state state)
> +{
> +   struct drm_device *dev = pci_get_drvdata(pdev);
> +   struct radeon_device *rdev = dev->dev_private;
> +
> +   if (state == VGA_SWITCHEROO_OFF)
> +   rdev->mode_info.mux_force_disconnected = true;
> +   else
> +   rdev->mode_info.mux_force_disconnected = false;
> +
> +   drm_kms_helper_hotplug_event(dev);
> +}
> +
>  static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
> .set_gpu_state = radeon_switcheroo_set_state,
> .reprobe = NULL,
> .can_switch = radeon_switcheroo_can_switch,
> +   .mux_switched = radeon_switcheroo_mux_switched,
>  };
>
>  /**
> diff --git a/drivers/gpu/drm/radeon/radeon_mode.h 
> b/drivers/gpu/drm/radeon/radeon_mode.h
> index 4003f5a..172eed8 100644
> --- a/drivers/gpu/drm/radeon/radeon_mode.h
> +++ b/drivers/gpu/drm/radeon/radeon_mode.h
> @@ -256,6 +256,8 @@ struct radeon_mode_info {
> u16 firmware_flags;
> /* pointer to backlight encoder */
> struct radeon_encoder *bl_encoder;
> +
> +   bool mux_force_disconnected;
>  };
>
>  #define RADEON_MAX_BL_LEVEL 0xFF
> --
> 1.8.1
>
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 59172] [r300g] flashing and corruption with MSAA 6x and 1920x1080

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

--- Comment #1 from Alex Deucher  ---
This is probably related to memory bandwidth since MSAA compression is not
currently implemented.

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


[Bug 59172] New: [r300g] flashing and corruption with MSAA 6x and 1920x1080

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

  Priority: medium
Bug ID: 59172
  Assignee: dri-devel@lists.freedesktop.org
   Summary: [r300g] flashing and corruption with MSAA 6x and
1920x1080
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: fabio@libero.it
  Hardware: x86 (IA32)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r300
   Product: Mesa

When running some applications such as supertuxkart 0.8 with a high resolution
(1920x1080) and MSAA 6x the screen flashes, shows massive corruptions and gets
very slow. Just changing MSAA to 4x the problem is no longer reproducible.

Tested on current git with:
r300: DRM version: 2.18.0, Name: ATI RV530, ID: 0x71c5, GB: 1, Z: 2
r300: GART size: 509 MB, VRAM size: 256 MB
r300: AA compression RAM: YES, Z compression RAM: YES, HiZ RAM: YES

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


[Bug 59169] [radeons] wrong chip detection

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

Marek Olšák  changed:

   What|Removed |Added

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

--- Comment #2 from Marek Olšák  ---
This should be fixed by 1385c353cf06c6156d574cffba6164f2b59739e6. Closing.

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


[Bug 59169] [radeons] wrong chip detection

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

--- Comment #1 from Tomasz P.  ---
Confirm. My rv350 is detected as rv370.

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


[Bug 59169] New: [radeons] wrong chip detection

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

  Priority: medium
Bug ID: 59169
  Assignee: dri-devel@lists.freedesktop.org
   Summary: [radeons] wrong chip detection
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: fabio@libero.it
  Hardware: x86 (IA32)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r300
   Product: Mesa

I noticed my RV530 get "upgraded" by mesa to a R580:
GL_RENDERER   = Gallium 0.4 on ATI R580

Up to some days ago it was correctly reported as a RV530. Possible regression
of
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca474f98f2cda5cb333e9f851c7e0e31c9a6f823

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


Re: [PATCH 1/4] drm: small fix in drm_send_vblank_event()

2013-01-09 Thread Alex Deucher
On Tue, Jan 8, 2013 at 11:08 PM, Rob Clark  wrote:
> Initialize e->pipe.. some drivers set this themselves, others do not.
> Setting it in drm_send_vblank_event() should help ensure more consistent
> behavior with the different drivers.
>
> Signed-off-by: Rob Clark 

Reviewed-by: Alex Deucher 

> ---
>  drivers/gpu/drm/drm_irq.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index 19c01ca..9bb83a5 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -863,6 +863,7 @@ void drm_send_vblank_event(struct drm_device *dev, int 
> crtc,
>
> now = get_drm_timestamp();
> }
> +   e->pipe = crtc;
> send_vblank_event(dev, e, seq, &now);
>  }
>  EXPORT_SYMBOL(drm_send_vblank_event);
> --
> 1.8.0.2
>
> ___
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 2/2] radeon: add support for forcing off lvds when mux switched away

2013-01-09 Thread Alex Deucher
On Mon, Jan 7, 2013 at 11:53 PM, Dave Airlie  wrote:
> From: Dave Airlie 
>
> otherwise userspace can get very confused


Thinking about this more, we probably want to check whether we have a
muxed to mux-less system otherwise we'll be disconnecting the display
when we switch.  Looks like the first patch is cognizant of that, but
this one is not unless I'm missing something.

Alex

> ---
>  drivers/gpu/drm/radeon/radeon_connectors.c |  4 
>  drivers/gpu/drm/radeon/radeon_device.c | 14 ++
>  drivers/gpu/drm/radeon/radeon_mode.h   |  2 ++
>  3 files changed, 20 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c 
> b/drivers/gpu/drm/radeon/radeon_connectors.c
> index 2399f25..e5a4a10 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -611,6 +611,10 @@ radeon_lvds_detect(struct drm_connector *connector, bool 
> force)
> struct radeon_connector *radeon_connector = 
> to_radeon_connector(connector);
> struct drm_encoder *encoder = radeon_best_single_encoder(connector);
> enum drm_connector_status ret = connector_status_disconnected;
> +   struct radeon_device *rdev = connector->dev->dev_private;
> +
> +   if (rdev->mode_info.mux_force_disconnected)
> +   return connector_status_disconnected;
>
> if (encoder) {
> struct radeon_encoder *radeon_encoder = 
> to_radeon_encoder(encoder);
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
> b/drivers/gpu/drm/radeon/radeon_device.c
> index cd75626..bf66f09 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -945,10 +945,24 @@ static bool radeon_switcheroo_can_switch(struct pci_dev 
> *pdev)
> return can_switch;
>  }
>
> +static void radeon_switcheroo_mux_switched(struct pci_dev *pdev, enum 
> vga_switcheroo_state state)
> +{
> +   struct drm_device *dev = pci_get_drvdata(pdev);
> +   struct radeon_device *rdev = dev->dev_private;
> +
> +   if (state == VGA_SWITCHEROO_OFF)
> +   rdev->mode_info.mux_force_disconnected = true;
> +   else
> +   rdev->mode_info.mux_force_disconnected = false;
> +
> +   drm_kms_helper_hotplug_event(dev);
> +}
> +
>  static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
> .set_gpu_state = radeon_switcheroo_set_state,
> .reprobe = NULL,
> .can_switch = radeon_switcheroo_can_switch,
> +   .mux_switched = radeon_switcheroo_mux_switched,
>  };
>
>  /**
> diff --git a/drivers/gpu/drm/radeon/radeon_mode.h 
> b/drivers/gpu/drm/radeon/radeon_mode.h
> index 4003f5a..172eed8 100644
> --- a/drivers/gpu/drm/radeon/radeon_mode.h
> +++ b/drivers/gpu/drm/radeon/radeon_mode.h
> @@ -256,6 +256,8 @@ struct radeon_mode_info {
> u16 firmware_flags;
> /* pointer to backlight encoder */
> struct radeon_encoder *bl_encoder;
> +
> +   bool mux_force_disconnected;
>  };
>
>  #define RADEON_MAX_BL_LEVEL 0xFF
> --
> 1.8.1
>
> ___
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 58667] Random crashes on CAYMAN

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

--- Comment #33 from Alex Deucher  ---
Does a 3.8 kernel it work ok if you revert mesa back to
cf5632094ba0c19d570ea47025cf6da75ef8457a?

I think
r600g: rework flusing and synchronization pattern v7
http://cgit.freedesktop.org/mesa/mesa/commit/?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
may be problematic on cayman.

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


[Bug 58354] [bisected] r600g: use DMA engine for VM page table updates on cayman locks in Unigine Tropics

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

--- Comment #16 from Alex Deucher  ---
Does a 3.8 kernel it work ok if you revert mesa back to
cf5632094ba0c19d570ea47025cf6da75ef8457a?

I think
r600g: rework flusing and synchronization pattern v7
http://cgit.freedesktop.org/mesa/mesa/commit/?id=24b1206ab2dcd506aaac3ef656aebc8bc20cd27a
may be problematic on cayman.

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


[Bug 36596] Major 2D performance bottleneck (most noticeable with compiz)

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

--- Comment #14 from Tomasz P.  ---
is it still an issue with current mesa?

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


[Bug 47244] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !

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

--- Comment #3 from Tomasz P.  ---
Is it still an issue ?

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


Re: "Hangcheck timer elapsed... GPU hung" in 3.8.0-rc2

2013-01-09 Thread Daniel Vetter
On Tue, Jan 8, 2013 at 3:37 PM, J. Bruce Fields  wrote:
>> please grab the i915_error_state file from debugfs
>
> As I said in the original mail, I've already done that:
>
> http://fieldses.org/~bfields/3.8-hang/

Sorry, missed that the first time around.

>> and file a bug on
>> bugs.freedesktop.org against DRM - DRI (Intel).
>
> Would it still be useful for me to file a bug?  (Just going through the
> new-account confirmation dance now.)

Looks like the ilk bug tracked at
https://bugs.freedesktop.org/show_bug.cgi?id=55984

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


[Bug 58667] Random crashes on CAYMAN

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=58667

--- Comment #32 from Alexandre Demers  ---
You're using a Cayman card, but which model exactly?

-- 
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/20130109/46e71c48/attachment.html>


[Bug 58354] [bisected] r600g: use DMA engine for VM page table updates on cayman locks in Unigine Tropics

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=58354

--- Comment #15 from Alexandre Demers  ---
Created attachment 72694
  --> https://bugs.freedesktop.org/attachment.cgi?id=72694&action=edit
dmesg from killing Xorg remotely when frozen with patch 72013 applied

This is with patch 72013 applied.

-- 
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/20130109/ef192263/attachment-0001.html>


[Bug 58354] [bisected] r600g: use DMA engine for VM page table updates on cayman locks in Unigine Tropics

2013-01-09 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=58354

--- Comment #14 from Alexandre Demers  ---
(In reply to comment #13)
> Is there anything in the kernel log when this happens now that the mesa fix
> is applied?  Also does the patch in attachment 72013 [details] [review] help
> now that the mesa side is fixed?

With or without the patch, it still ends saying the kernel rejected the CS and
to check in dmesg. Then, it freezes. However, accessed through ssh, there is
nothing I could get from it.

I killed Xorg remotely, the screen blinked for a moment and only garbage was
displayed. I was able to retrieve something from dmesg. I killed it a second
time to only get some different garbage.

I'll attach the file right away.

-- 
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/20130109/f3aac4a9/attachment.html>


Re: [RFC v2 0/5] Common Display Framework

2013-01-09 Thread Rahul Sharma
Hi Laurent,

CDF will also be helpful in supporting Panels with integrated
audio (HDMI/DP) if we can add audio related control operations to
display_entity_control_ops. Video controls will be called by crtc
in DRM/V4L and audio controls from Alsa.

Secondly, if I need to support get_modes operation in hdmi/dp
panel, I need to implement edid parser inside the panel driver. It
will be meaningful to add get_edid control operation for hdmi/dp.

regards,
Rahul Sharma.

On Tue, Jan 8, 2013 at 9:43 PM, Rob Clark  wrote:
> On Tue, Jan 8, 2013 at 2:25 AM, Laurent Pinchart
>  wrote:
>> Hi Rob,
>>
>> On Thursday 27 December 2012 09:54:55 Rob Clark wrote:
>>> What I've done to avoid that so far is that the master device registers the
>>> drivers for it's output sub-devices before registering it's own device.
>>
>> I'm not sure to follow you here. The master device doesn't register anything,
>> do you mean the master device driver ? If so, how does the master device
>> driver register its own device ? Devices are not registered by their driver.
>
> sorry, that should have read "master driver registers drivers for it's
> sub-devices.."
>
> BR,
> -R
> ___
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/exynos: Get HDMI version from device tree

2013-01-09 Thread Mitch Bradley
On 1/8/2013 6:48 AM, Sean Paul wrote:
> On Tue, Jan 8, 2013 at 11:45 AM, Lucas Stach  wrote:
>> Am Montag, den 07.01.2013, 16:12 -0500 schrieb Sean Paul:
>>> On Mon, Jan 7, 2013 at 3:54 PM, Mitch Bradley  wrote:
 On 1/7/2013 10:43 AM, Sean Paul wrote:
> Add a property to the hdmi node so we can specify the HDMI version in
> the device tree instead of just defaulting to v1.4 with the existence of
> the dt node.
>
> Signed-off-by: Sean Paul 
> ---
>  .../devicetree/bindings/drm/exynos/hdmi.txt|3 +++
>  drivers/gpu/drm/exynos/exynos_hdmi.c   |   19 
> ++-
>  2 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
> b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
> index 589edee..d1c7d91 100644
> --- a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
> +++ b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
> @@ -11,6 +11,8 @@ Required properties:
>   c) pin function mode.
>   d) optional flags and pull up/down.
>   e) drive strength.
> +- samsung,supports-hdmi-1.4: Define if device supports HDMI v1.4
> +- samsung,supports-hdmi-1.3: Define if device supports HDMI v1.3

 a) This seems pretty generic, not at all samsung-specific, as the HDMI
 version numbering space is well-defined by the HDMI spec.

 b) It would be better to make it an integer property whose value
 encodes the version number, thus eliminating the need to add new
 properties as new HDMI versions appear.

>>>
>>> Thanks for the quick review, Mitch.
>>>
>>> How about:
>>>
>>> - hdmi-version: 0=v1.3, 1=v1.4
>> Why bother obfuscating the real version number? Why not just 13=v1.3,
>> 14=v1.4?

It's hard to predict how the HDMI committee will assign version numbers
in the future, but...

In the EDID structure that HDMI devices use for identification, the major.minor
version number is encoded as two bytes, one for major and one for minor, thus
it is conceivable that the minor could exceed 9.  (reference CEA-861-D section
A.2.5 or
http://en.wikipedia.org/wiki/Extended_display_identification_data#EDID_1.3_data_format

The EDID version number is not the same as the HDMI version number, but I expect
that the committees share people and thus ways of doing things.

I think it would be safer to encode the version number as (major<<8) | minor.

>>
> 
> Sure, that sounds good to me.
> 
> Sean
> 
>> Regards,
>> Lucas
>>
>>
> 
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [RFC v2 0/5] Common Display Framework

2013-01-09 Thread Rob Clark
On Tue, Jan 8, 2013 at 2:25 AM, Laurent Pinchart
 wrote:
> Hi Rob,
>
> On Thursday 27 December 2012 09:54:55 Rob Clark wrote:
>> What I've done to avoid that so far is that the master device registers the
>> drivers for it's output sub-devices before registering it's own device.
>
> I'm not sure to follow you here. The master device doesn't register anything,
> do you mean the master device driver ? If so, how does the master device
> driver register its own device ? Devices are not registered by their driver.

sorry, that should have read "master driver registers drivers for it's
sub-devices.."

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


Re: "Hangcheck timer elapsed... GPU hung" in 3.8.0-rc2

2013-01-09 Thread J. Bruce Fields
On Sun, Jan 06, 2013 at 07:06:52PM +0100, Daniel Vetter wrote:
> On Thu, Jan 03, 2013 at 06:11:23PM -0500, J. Bruce Fields wrote:
> > On Thu, Jan 03, 2013 at 04:16:24PM -0500, Josh Boyer wrote:
> > > On Thu, Jan 3, 2013 at 3:46 PM, J. Bruce Fields  
> > > wrote:
> > > > I got a crash after a few minutes of running 3.8.0-rc2, was able to
> > > > switch to a vt and look at dmesg:
> > > >
> > > >   [  490.962545] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer 
> > > > elapsed... GPU hung
> > > >   [  490.963019] [drm] capturing error event; look for more information 
> > > > in /debug/dri/0/i915_error_state
> > > >   [  492.961446] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer 
> > > > elapsed... GPU hung
> > > >   [  492.965613] [drm:i915_reset] *ERROR* GPU hanging too fast, 
> > > > declaring wedged!
> > > >   [  492.965621] [drm:i915_reset] *ERROR* Failed to reset chip.
> > > >
> > > > Previously I was on 3.6.10-2.fc17.x86_64, which didn't have any such
> > > > problem.
> > > 
> > > I'm not questioning that you haven't seen that error in F17, but we have
> > > had quite a few bug reports with similar error messages for a while now.
> > > Apparently there are lots of ways GPUs can get hung, so they might be
> > > different from what you're seeing.  Just wanted to point out that it
> > > might not be a new 3.8 change that caused it.
> > 
> > OK, sure.  It reproduced very quickly after the upgrade, so I assumed it
> > was a regression.
> > 
> > I'm running 3.7.0 now which hasn't shown any problem.
> > 
> > I'll try a newer kernel again to see if it's really that easy for me to
> > reproduce.
> 
> If you hit this again (even better if you have a way to reproduce)

Unfortunately I wasn't able to reproduce after working a couple more
hours on 3.8 again.  However:

> please grab the i915_error_state file from debugfs

As I said in the original mail, I've already done that:

http://fieldses.org/~bfields/3.8-hang/

> and file a bug on
> bugs.freedesktop.org against DRM - DRI (Intel).

Would it still be useful for me to file a bug?  (Just going through the
new-account confirmation dance now.)

--b.

> We do know of a few recent
> issues introduced around 3.7 kernels, preliminary patches are floating
> around. The error state should be good enough to decide whether you're
> hitting the same issues.
> 
> Thanks, Daniel
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel