CDF meeting @FOSDEM report

2013-02-05 Thread Laurent Pinchart
Hello,

We've hosted a CDF meeting at the FOSDEM on Sunday morning. Here's a summary 
of the discussions.

I would like to start with a big thank to UrLab, the ULB university hacker 
space, for providing us with a meeting room.

The meeting would of course not have been successful without the wide range of 
participants, so I also want to thank all the people who woke up on Sunday 
morning to attend the meeting :-)

(The CC list is pretty long, please let me know - by private e-mail in order 
not to spam the list - if you would like not to receive future CDF-related e-
mails directly)

0. Abbreviations


DBI - Display Bus Interface, a parallel video control and data bus that 
transmits data using parallel data, read/write, chip select and address 
signals, similarly to 8051-style microcontroller parallel busses. This is a 
mixed video control and data bus.

DPI - Display Pixel Interface, a parallel video data bus that transmits data 
using parallel data, h/v sync and clock signals. This is a video data bus 
only.

DSI - Display Serial Interface, a serial video control and data bus that 
transmits data using one or more differential serial lines. This is a mixed 
video control and data bus.

DT - Device Tree, a representation of a hardware system as a tree of physical 
devices with associated properties.

SFI - Simple Firmware Interface, a lightweight method for firmware to export 
static tables to the operating system. Those tables can contain display device 
topology information.

VBT - Video BIOS Table, a block of data residing in the video BIOS that can 
contain display device topology information.

1. Goals


The meeting started with a brief discussion about the CDF goals.

Tomi Valkeinin and Tomasz Figa have sent RFC patches to show their views of 
what CDF could/should be. Many others have provided very valuable feedback. 
Given the early development stage propositions were sometimes contradictory, 
and focused on different areas of interest. We have thus started the meeting 
with a discussion about what CDF should try to achieve, and what it shouldn't.

CDF has two main purposes. The original goal was to support display panels in 
a platform- and subsystem-independent way. While mostly useful for embedded 
systems, the emergence of platforms such as Intel Medfield and ARM-based PCs 
that blends the embedded and PC worlds makes panel support useful for the PC 
world as well. 

The second purpose is to provide a cross-subsystem interface to support video 
encoders. The idea originally came from a generalisation of the original RFC 
that supported panels only. While encoder support is considered as lower 
priority than display panel support by developers focussed on display 
controller driver (Intel, Renesas, ST Ericsson, TI), companies that produce 
video encoders (Analog Devices, and likely others) don't share that point of 
view and would like to provide a single encoder driver that can be used in 
both KMS and V4L2 drivers.

Both display panels and encoders are thus the target of a lot of attention, 
depending on the audience. As long as none of them is forgotten in CDF, the 
overall agreement was that focussing on panels first is acceptable. Care shall 
be taken in that case to avoid any architecture that would make encoders 
support difficult or impossible.

2. Subsystems
-

Display panels are used in conjunction with FBDEV and KMS drivers. There was 
to the audience knowledge no V4L2 driver that needs to explicitly handle 
display panels. Even though at least one V4L2 output drivers (omap_vout) can 
output video to a display panel, it does so in conjunction with the KMS and/or 
FBDEV APIs that handle panel configuration. Panels are thus not exposed to 
V4L2 drivers.

Encoders, on the other hand, are widely used in the V4L2 subsystem. Many V4L2 
devices output video in either analog (Composite, S-Video, VGA) or digital 
(DVI, HDMI) way.

Display panel drivers don't need to be shared with the V4L2 subsystem. 
Furthermore, as the general opinion during the meeting was that the FBDEV 
subsystem should be considered as legacy and deprecate in the future, 
restricting panel support to KMS hasn't been considered by anyone as an issue. 
KMS will thus be the main target of display panel support in CDF, and FBDEV 
will be supported if that doesn't bring any drawback from an architecture 
point of view.

Encoder drivers need to be shared with the V4L2 subsystem. Similarly to panel 
drivers, excluding FBDEV support from CDF isn't considered as an issue.

3. KMS Extensions
-

The usefulness of V4L2 for output devices was questioned, and the possibility 
of using KMS for complex video devices usually associated with V4L2 was 
raised. The TI DaVinci 8xxx family is an example of chips that could benefit 
from KMS support.

The KMS API is lacking support for deep-pipelining ("framebuffers" that are 
sourced from a data stream instead of a memory buffer) today. 

[PATCH] drm/fb-helper: improve kerneldoc

2013-02-05 Thread Daniel Vetter
Now that the fbdev helper interface for drivers is trimmed down,
update the kerneldoc for all the remaining exported functions.

I've tried to beat the DocBook a bit by reordering the function
references a bit into a more sensible ordering. But that didn't work
out at all. Hence just extend the in-code DOC: section a bit.

Also remove the LOCKING: sections - especially for the setup functions
they're totally bogus. But that's not a documentation problem, but
simply an artifact of the current rather hazardous locking around drm
init and even more so around fbdev setup ...

v2: Some further improvements:
- Also add documentation for drm_fb_helper_single_add_all_connectors,
  Dave Airlie didn't want me to kill this one from the fb helper
  interface.
- Update docs for drm_fb_helper_fill_var/fix - they should be used
  from the driver's ->fb_probe callback to setup the fbdev info
  structure.
- Clarify what the ->fb_probe callback should all do - it needs to
  setup both the fbdev info and allocate the drm framebuffer used as
  backing storage.
- Add basic documentaation for the drm_fb_helper_funcs driver callback
  vfunc.

v3: Implement clarifications Lauren Pinchart suggested in his review.

Cc: Laurent Pinchart 
Signed-off-by: Daniel Vetter 
---
 Documentation/DocBook/drm.tmpl  |1 +
 drivers/gpu/drm/drm_fb_helper.c |  148 +++
 include/drm/drm_fb_helper.h |   12 
 3 files changed, 146 insertions(+), 15 deletions(-)

diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 6c11d77..14ad829 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -2139,6 +2139,7 @@ void intel_crt_init(struct drm_device *dev)
   fbdev Helper Functions Reference
 !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers
 !Edrivers/gpu/drm/drm_fb_helper.c
+!Iinclude/drm/drm_fb_helper.h
 
 
   Display Port Helper Functions Reference
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 5a92470..b4cbef3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -52,9 +52,36 @@ static LIST_HEAD(kernel_fb_helper_list);
  * mode setting driver. They can be used mostly independantely from the crtc
  * helper functions used by many drivers to implement the kernel mode setting
  * interfaces.
+ *
+ * Initialization is done as a three-step process with drm_fb_helper_init(),
+ * drm_fb_helper_single_add_all_connectors() and 
drm_fb_helper_initial_config().
+ * Drivers with fancier requirements than the default beheviour can override 
the
+ * second step with their own code.  Teardown is done with 
drm_fb_helper_fini().
+ *
+ * At runtime drivers should restore the fbdev console by calling
+ * drm_fb_helper_restore_fbdev_mode() from their ->lastclose callback. They
+ * should also notify the fb helper code from updates to the output
+ * configuration by calling drm_fb_helper_hotplug_event(). For easier
+ * integration with the output polling code in drm_crtc_helper.c the modeset
+ * code proves a ->output_poll_changed callback.
+ *
+ * All other functions exported by the fb helper library can be used to
+ * implement the fbdev driver interface by the driver.
  */

-/* simple single crtc case helper function */
+/**
+ * drm_fb_helper_single_add_all_connectors() - add all connectors to fbdev
+ *emulation helper
+ * @fb_helper: fbdev initialized with drm_fb_helper_init
+ *
+ * This functions adds all the available connectors for use with the given
+ * fb_helper. This is a separate step to allow drivers to freely assign
+ * connectors to the fbdev, e.g. if some are reserved for special purposes or
+ * not adequate to be used for the fbcon.
+ *
+ * Since this is part of the initial setup before the fbdev is published, no
+ * locking is required.
+ */
 int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
 {
struct drm_device *dev = fb_helper->dev;
@@ -163,6 +190,10 @@ static void drm_fb_helper_restore_lut_atomic(struct 
drm_crtc *crtc)
crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, 
crtc->gamma_size);
 }

+/**
+ * drm_fb_helper_debug_enter - implementation for ->fb_debug_enter
+ * @info: fbdev registered by the helper
+ */
 int drm_fb_helper_debug_enter(struct fb_info *info)
 {
struct drm_fb_helper *helper = info->par;
@@ -208,6 +239,10 @@ static struct drm_framebuffer *drm_mode_config_fb(struct 
drm_crtc *crtc)
return NULL;
 }

+/**
+ * drm_fb_helper_debug_leave - implementation for ->fb_debug_leave
+ * @info: fbdev registered by the helper
+ */
 int drm_fb_helper_debug_leave(struct fb_info *info)
 {
struct drm_fb_helper *helper = info->par;
@@ -243,9 +278,9 @@ EXPORT_SYMBOL(drm_fb_helper_debug_leave);
  * drm_fb_helper_restore_fbdev_mode - restore fbdev configuration
  * @fb_helper: fbcon to restore
  *
- * This should be called from driver's drm->lastclose callback 

[PATCH] drm/fb-helper: improve kerneldoc

2013-02-05 Thread Daniel Vetter
On Fri, Feb 01, 2013 at 01:21:29PM +0100, Laurent Pinchart wrote:
> Hi Daniel,
> 
> Thanks for improving the documentation :-)
> 
> On Sunday 27 January 2013 18:42:16 Daniel Vetter wrote:
> > Now that the fbdev helper interface for drivers is trimmed down,
> > update the kerneldoc for all the remaining exported functions.
> > 
> > I've tried to beat the DocBook a bit by reordering the function
> > references a bit into a more sensible ordering. But that didn't work
> > out at all. Hence just extend the in-code DOC: section a bit.
> > 
> > Also remove the LOCKING: sections - especially for the setup functions
> > they're totally bogus. But that's not a documentation problem, but
> > simply an artifact of the current rather hazardous locking around drm
> > init and even more so around fbdev setup ...
> 
> Please see below for comments (I've reflowed the text to ease review).
> 
> > v2: Some further improvements:
> > - Also add documentation for drm_fb_helper_single_add_all_connectors,
> >   Dave Airlie didn't want me to kill this one from the fb helper
> >   interface.
> > - Update docs for drm_fb_helper_fill_var/fix - they should be used
> >   from the driver's ->fb_probe callback to setup the fbdev info
> >   structure.
> > - Clarify what the ->fb_probe callback should all do - it needs to
> >   setup both the fbdev info and allocate the drm framebuffer used as
> >   backing storage.
> > - Add basic documentaation for the drm_fb_helper_funcs driver callback
> >   vfunc.
> > 
> > Signed-off-by: Daniel Vetter 
> > 
> > moar kerneldoc
> > ---
> >  Documentation/DocBook/drm.tmpl  |1 +
> >  drivers/gpu/drm/drm_fb_helper.c |  146 
> >  include/drm/drm_fb_helper.h |   11 +++
> >  3 files changed, 143 insertions(+), 15 deletions(-)
> > 
> > diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
> > index 6c11d77..14ad829 100644
> > --- a/Documentation/DocBook/drm.tmpl
> > +++ b/Documentation/DocBook/drm.tmpl
> > @@ -2139,6 +2139,7 @@ void intel_crt_init(struct drm_device *dev)
> >fbdev Helper Functions Reference
> >  !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers
> >  !Edrivers/gpu/drm/drm_fb_helper.c
> > +!Iinclude/drm/drm_fb_helper.h
> >  
> >  
> >Display Port Helper Functions Reference
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c
> > b/drivers/gpu/drm/drm_fb_helper.c index 5a92470..a7538cc 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -52,9 +52,34 @@ static LIST_HEAD(kernel_fb_helper_list);
> >   * mode setting driver. They can be used mostly independantely from the
> 
> Now that you have removed one of the dependencies on the crtc helpers in your 
> "drm/fb-helper: don't disable everything in initial_config" patch, are there 
> others ? If not you can s/mostly //.

It's getting better, but a few of the driver callbacks used by the fb
helper are still in the crtc helper function tables. And there's the fb
helper private way to safe/restore gamma tables. But at least semantically
there's no dependency any longer after these patches I think.

> 
> >   * crtc helper functions used by many drivers to implement the kernel mode
> >   * setting interfaces.
> > + *
> > + * Initialization is done as a three-step process with
> > + * drm_fb_helper_init(), drm_fb_helper_single_add_all_connectors() and
> > + * drm_fb_helper_initial_config(). Drivers with fancier requirements than
> > + * the default beheviour can override the second step with their own code.
> > + * Teardown is done with drm_fb_helper_fini().
> > + *
> > + * At runtime drivers should restore the fbdev console by calling
> > + * drm_fb_helper_restore_fbdev_mode() from their ->lastclose callback. They
> > + * can also notify the fb helper code from updates to the output
> 
> Is it "can" or "must" ? If "can", in what conditions should they call 
> drm_fb_helper_restore_fbdev_mode() and in what conditions shouldn't they ?

I've figured that hpd support is optional, hence no "must". I've opted for
a should instead. Also added a bit of text to suggest a good place to put
this call.

> 
> > + * configuration by calling drm_fb_helper_hotplug_event().
> > + *
> > + * All other functions exported by the fb helper library can be used to
> > + * implement the fbdev driver interface by the driver.
> >   */
> > 
> > -/* simple single crtc case helper function */
> > +/**
> > + * drm_fb_helper_single_add_all_connectors() - add all connectors to fbdev
> > + *emulation helper
> > + * @fb_helper: fbdev initialized with drm_fb_helper_init
> > + *
> > + * This functions adds all the available connectors for use with the given
> > + * fb_helper. This is a separate step to allow drivers to freely assign or
> > + * connectors to the fbdev, e.g. if some are reserved for special purposes
> > + * not adequate to be used for the fbcon.
> > + *
> > + * Since this is part of the initial 

答复: [PATCH]Siliconmotion initial patch

2013-02-05 Thread Daniel Vetter
On Tue, Feb 05, 2013 at 03:51:55PM +0800, Aaron.Chen  ??? wrote:
> This is an initial patch for Siliconmotion Graphics chips. It add SM750
> chip support with 2d accelerate and hw curser support. It is a complete
> new driver. So the patch is a little bit big. Is it OK for review?

Adding a new fbdev driver while established consensus pretty much boils
down to fbdev being a dead subsystem which should only be used for legacy
applications and drivers: Not good. You should implement this as a drm
modesetting driver, and if required base your 2d acceleration on top of
the drm fb helpers. Or just implement a drm/gem driver to expose this.

Additionally you should include the appropriate mailing lists, which is
linux-fbdev for fbdev drivers.

On a very quick read the patch has serious issues:

- checkpatch.pl:

total: 2 errors, 779 warnings, 7961 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile

- Remants of hungarian notation (dunno whether checkpatch checks for
  those, too much other stuff flying by, but it really stuck out).

- Not using the linux i2c layer in the ddk750_hwi2c.c file.

- Reimplementing i2c bit-banging code in the ddk750_swi2c.c

- Adding a new implementation of a sil 164 dvi driver, we already have at
  least two in drivers/gpu/drm/i2c/sil164_drv.c and
  drivers/gpu/drm/i915/dvo_sil164.c.  This should be unified and probably
  use the drm encoder slave framework.

At that point I've given up on further review, since there's clearly a lot
of work left to do. Please review SubmittingPatches from the kernel
documentation carefully. Also cc'ing our dear staging maintainer, he
should be able to point you at further useful resources for getting this
going.

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


[Bug 59332] Problems building 32bit Mesa

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59332

Matt Turner  changed:

   What|Removed |Added

 Blocks|59304   |

-- 
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/20130205/256e6c3f/attachment-0001.html>


[Bug 59332] Problems building 32bit Mesa

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59332

Mike Lothian  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #11 from Mike Lothian  ---
Seems I had a rogue /usr/lib32/libstdc++.so causing problems with my 32bit
builds

Everything is working fine now with LLVM enabled

-- 
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/20130205/a7886ed0/attachment.html>


[Bug 26891] Radeon KMS fails with inaccessible AtomBIOS on systems with (U)EFI boot

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=26891

--- Comment #53 from Benjamin Lee  ---
I can also confirm that Radeon KMS works on my MacBookPro8,2 with kernel
version 3.8-rc6 and EFI stub boot.  I also needed to add a device section to my
xorg.conf.

I don't see any video BIOS in /dev/mem so I guess it is loading from ACPI
instead.  Out of curiosity, I tried to load fglrx and it failed to find a valid
VBIOS so fglrx must not have the ACPI loading method.

blee at supra ~ $ sudo dd if=/dev/mem of=/dev/stdout bs=65536 skip=12 count=1
2>/dev/null | hexdump
000        
*
001

[2.589927] [drm] Initialized drm 1.1.0 20060810
[2.589966] [drm] radeon defaulting to kernel modesetting.
[2.589969] [drm] radeon kernel modesetting enabled.
[2.590189] [drm] initializing kernel modesetting (TURKS 0x1002:0x6741
0x106B
:0x00E2).
[2.590226] [drm] register mmio base: 0xB080
[2.590229] [drm] register mmio size: 131072
[2.590253] ATOM BIOS: Apple
[2.590264] [drm] GPU not posted. posting now...
[2.599466] radeon :01:00.0: VRAM: 1024M 0x -
0x3
FFF (1024M used)
[2.599472] radeon :01:00.0: GTT: 512M 0x4000 -
0x5FF
F
[2.604787] [drm] Detected VRAM RAM=1024M, BAR=256M
[2.604793] [drm] RAM width 128bits DDR
[2.604843] [TTM] Zone  kernel: Available graphics memory: 4042710 kiB
[2.604846] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[2.604849] [TTM] Initializing pool allocator
[2.604858] [TTM] Initializing DMA pool allocator
[2.604893] [drm] radeon: 1024M of VRAM memory ready
[2.604896] [drm] radeon: 512M of GTT memory ready.
[2.604917] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[2.604920] [drm] Driver supports precise vblank timestamp query.
[2.604982] radeon :01:00.0: irq 45 for MSI/MSI-X
[2.604993] radeon :01:00.0: radeon: using MSI.
[2.605028] [drm] radeon: irq initialized.
[2.605033] [drm] GART: num cpu pages 131072, num gpu pages 131072
[2.605463] [drm] probing gen 2 caps for device 8086:101 = 2/0
[2.605470] [drm] PCIE gen 2 link speeds already enabled
[2.605534] [drm] Loading TURKS Microcode

-- 
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/20130205/65281a80/attachment.html>


[Bug 43751] [TTM] Out of kernel memory

2013-02-05 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=43751





--- Comment #9 from cyberbat   2013-02-05 20:11:50 ---
Created an attachment (id=92571)
 --> (https://bugzilla.kernel.org/attachment.cgi?id=92571)
Config of working linux-3.7.4

Tried a kernel 3.7.4 for some days and it seems to work with config attached.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.


[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Stephen Warren
On 02/05/2013 05:56 PM, Sean Paul wrote:
> On Tue, Feb 5, 2013 at 4:42 PM, Stephen Warren  
> wrote:
>> On 02/05/2013 05:37 PM, Sean Paul wrote:
>>> On Tue, Feb 5, 2013 at 4:22 PM, Stephen Warren  
>>> wrote:
 n 02/05/2013 04:42 PM, Sean Paul wrote:
> Use the compatible string in the device tree to determine which
> registers/functions to use in the HDMI driver. Also changes the
> references from v13 to 4210 and v14 to 4212 to reflect the IP
> block version instead of the HDMI version.

> diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
> b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt

 Binding looks sane to me.

> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
> b/drivers/gpu/drm/exynos/exynos_hdmi.c

>  #ifdef CONFIG_OF
>  static struct of_device_id hdmi_match_types[] = {
>   {
> - .compatible = "samsung,exynos5-hdmi",
> - .data   = (void *)HDMI_TYPE14,
> + .compatible = "samsung,exynos4-hdmi",
>   }, {
>   /* end node */
>   }

 Why not fill in all the "base" compatible values there (I think you need
 this anyway so that DTs don't all have to be compatible with
 samsung,exynos4-hdmi), with .data containing the HDMI_VER_EXYNOS*
 values, then ...

>>>
>>> At the moment, all DTs have to be compatible with exynos4-hdmi since
>>> it provides the base for the current driver. The driver uses 4210 and
>>> 4212 to differentiate between different register addresses and
>>> features, but most things are just exynos4-hdmi compatible.
>>
>> The DT nodes should include only the compatible values that the HW is
>> actually compatible with. If the HW isn't compatible with exynos4-hdmi,
>> that value shouldn't be in the compatible property, but instead whatever
>> the "base" value that the HW really is compatible with. The driver can
>> support multiple "base" compatible values from this table.
> 
> All devices that use this driver are compatible, at some level, with
> exynos4-hdmi, so I think its usage is correct here.

But can a driver that only knows about the original exynos4-hdmi operate
any of the HW correctly without any additional knowledge? If not, the
new HW isn't compatible with the old.

> @@ -2218,17 +2217,18 @@ static int hdmi_probe(struct platform_device 
> *pdev)

> +
> + if (of_device_is_compatible(dev->of_node, 
> "samsung,exynos4210-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS4210;
> + if (of_device_is_compatible(dev->of_node, 
> "samsung,exynos4212-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS4212;
> + if (of_device_is_compatible(dev->of_node, 
> "samsung,exynos5250-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS5250;

 Instead of that, do roughly:

 match = of_match_device(hdmi_match_types, >dev);
 if (match)
 hdata->version |= (int)match->data;

 That way, it's all table-based. Any future additions to
 hdmi_match_types[] won't require another if statement to be added to
 probe().
>>>
>>> I don't think it's that easy. of_match_device returns the first match
>>> from the device table, so I'd still need to iterate through the
>>> matches. I could still break this out into a table, but I don't think
>>> of_match_device is the right way to probe it.
>>
>> You shouldn't have to iterate over multiple matches. of_match_device()
>> is supposed to return the match for the first entry in the compatible
>> property, then if there was no match, move on to looking at the next
>> entry in the compatible property, etc. In practice, I think it's still
>> not implemented quite correctly for this, but you can make it work by
>> putting the newest compatible value first in the match table.
> 
> I think the only way that works is if you hardcode the compatible
> versions in the driver, like this:
> 
> static struct of_device_id hdmi_match_types[] = {
> {
> .compatible = "samsung,exynos5250-hdmi",
> .data = (void *)(HDMI_VER_EXYNOS5250 | HDMI_VER_EXYNOS4212);
> }, {
> .compatible = "samsung,exynos4212-hdmi",
> .data = (void *)HDMI_VER_EXYNOS4212;
> }, {
> .compatible = "samsung,exynos4210-hdmi",
> .data = (void *)HDMI_VER_EXYNOS4210;
> }, {
> /* end node */
> }
> };
> 
> In that case, it eliminates the benefit of using device tree to
> determine the compatible bits. I hope I'm just being thick and missing
> something.

The table above looks /almost/ exactly correct to me, although I'm
unsure why samsung,exynos5250-hdmi has *two* version values; surely
there's a 1:1 mapping between the compatible values and the HW
compatibility they represent? That's certainly the intent.

Perhaps the "two values" think is because 

[PATCH v17 4/7] fbmon: add videomode helpers

2013-02-05 Thread Steffen Trumtrar
Hi!

On Fri, Feb 01, 2013 at 06:29:50PM +0900, Jingoo Han wrote:
> On Friday, January 25, 2013 6:02 PM, Steffen Trumtrar wrote
> > 
> > +   fbmode->sync = 0;
> > +   fbmode->vmode = 0;
> > +   if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH)
> > +   fbmode->sync |= FB_SYNC_HOR_HIGH_ACT;
> > +   if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH)
> 
> Um, it seems to be a type. 'H'SYNC -> 'V'SYNC
> Thus, it would be changed as below:
> 
> VESA_DMT_HSYNC_HIGH -> VESA_DMT_VSYNC_HIGH

Damn. You are right, that is a typo. But I guess some maintainer (Dave) really,
really wants to take the series now and this can wait for an -rc. No?!  ;-)

Thanks,
Steffen

> 
> > +   fbmode->sync |= FB_SYNC_VERT_HIGH_ACT;
> > +   if (vm->data_flags & DISPLAY_FLAGS_INTERLACED)
> > +   fbmode->vmode |= FB_VMODE_INTERLACED;
> > +   if (vm->data_flags & DISPLAY_FLAGS_DOUBLESCAN)
> > +   fbmode->vmode |= FB_VMODE_DOUBLE;
> > +   fbmode->flag = 0;
> > +

-- 
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- |


[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Stephen Warren
On 02/05/2013 05:37 PM, Sean Paul wrote:
> On Tue, Feb 5, 2013 at 4:22 PM, Stephen Warren  
> wrote:
>> n 02/05/2013 04:42 PM, Sean Paul wrote:
>>> Use the compatible string in the device tree to determine which
>>> registers/functions to use in the HDMI driver. Also changes the
>>> references from v13 to 4210 and v14 to 4212 to reflect the IP
>>> block version instead of the HDMI version.
>>
>>> diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
>>> b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
>>
>> Binding looks sane to me.
>>
>>> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
>>> b/drivers/gpu/drm/exynos/exynos_hdmi.c
>>
>>>  #ifdef CONFIG_OF
>>>  static struct of_device_id hdmi_match_types[] = {
>>>   {
>>> - .compatible = "samsung,exynos5-hdmi",
>>> - .data   = (void *)HDMI_TYPE14,
>>> + .compatible = "samsung,exynos4-hdmi",
>>>   }, {
>>>   /* end node */
>>>   }
>>
>> Why not fill in all the "base" compatible values there (I think you need
>> this anyway so that DTs don't all have to be compatible with
>> samsung,exynos4-hdmi), with .data containing the HDMI_VER_EXYNOS*
>> values, then ...
>>
> 
> At the moment, all DTs have to be compatible with exynos4-hdmi since
> it provides the base for the current driver. The driver uses 4210 and
> 4212 to differentiate between different register addresses and
> features, but most things are just exynos4-hdmi compatible.

The DT nodes should include only the compatible values that the HW is
actually compatible with. If the HW isn't compatible with exynos4-hdmi,
that value shouldn't be in the compatible property, but instead whatever
the "base" value that the HW really is compatible with. The driver can
support multiple "base" compatible values from this table.

>>> @@ -2218,17 +2217,18 @@ static int hdmi_probe(struct platform_device *pdev)
>>
>>> +
>>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4210-hdmi"))
>>> + hdata->version |= HDMI_VER_EXYNOS4210;
>>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4212-hdmi"))
>>> + hdata->version |= HDMI_VER_EXYNOS4212;
>>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos5250-hdmi"))
>>> + hdata->version |= HDMI_VER_EXYNOS5250;
>>
>> Instead of that, do roughly:
>>
>> match = of_match_device(hdmi_match_types, >dev);
>> if (match)
>> hdata->version |= (int)match->data;
>>
>> That way, it's all table-based. Any future additions to
>> hdmi_match_types[] won't require another if statement to be added to
>> probe().
> 
> I don't think it's that easy. of_match_device returns the first match
> from the device table, so I'd still need to iterate through the
> matches. I could still break this out into a table, but I don't think
> of_match_device is the right way to probe it.

You shouldn't have to iterate over multiple matches. of_match_device()
is supposed to return the match for the first entry in the compatible
property, then if there was no match, move on to looking at the next
entry in the compatible property, etc. In practice, I think it's still
not implemented quite correctly for this, but you can make it work by
putting the newest compatible value first in the match table.


[PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Joonyoung Shim
On 02/05/2013 12:03 PM, Inki Dae wrote:
> 2013/2/4 Sachin Kamat :
>> On 1 February 2013 18:28, Inki Dae  wrote:
>>>
>>>
>>>
>>> 2013. 2. 1. ?? 8:52 Inki Dae  ??:
>>>

> -Original Message-
> From: linux-media-owner at vger.kernel.org [mailto:linux-media-
> owner at vger.kernel.org] On Behalf Of Sachin Kamat
> Sent: Friday, February 01, 2013 8:40 PM
> To: Inki Dae
> Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
> media at vger.kernel.org; dri-devel at lists.freedesktop.org; devicetree-
> discuss at lists.ozlabs.org; patches at linaro.org
> Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
> support for G2D
>
> On 1 February 2013 17:02, Inki Dae  wrote:
>> How about using like below?
>>Compatible = ""samsung,exynos4x12-fimg-2d" /* for Exynos4212,
>> Exynos4412  */
>> It looks odd to use "samsung,exynos4212-fimg-2d" saying that this ip is
> for
>> exynos4212 and exynos4412.
> AFAIK, compatible strings are not supposed to have any wildcard
 characters.
> Compatible string should suggest the first SoC that contained this IP.
> Hence IMO 4212 is OK.
>
>>> Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, 
>>> we should use "samsung,exynos4210-fimg-2d" as comparible string and add it 
>>> to exynos4210.dtsi?
>> Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
>> comptible string will be used for this one too.
>>
>>> And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
>>> different, we might need to add ip version property or compatible string to 
>>> each dtsi file to identify the ip version.
>> AFAIK, they both have the same IP (v4.1).
>>
> Ok, let's use the below,
>
> For exynos4210 SoC,
> compatible = "samsung,exynos4210-g2d"
>
> For exynos4x12 SoCs,
> compatible = "samsung,exynos4212-g2d"
>
> For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
> has same ip)
> compatible = "samsung,exynos5250-g2d"
>
> To other guys,
> The device tree is used by not only v4l2 side but also drm side so we
> should reach an arrangement. So please give me ack if you agree to my
> opinion. Otherwise please, give me your opinions.

I like this compatible, also we can use rule like this to HDMI of
drm/exynos.

>
> Thanks,
> Inki Dae
>
>
>>> Sorry but give me your opinions.
>>>
>>> Thanks,
>>> Inki Dae
>>>
>>>
 Got it. Please post it again.

> --
> With warm regards,
> Sachin
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
 ___
 dri-devel mailing list
 dri-devel at lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>>
>> --
>> With warm regards,
>> Sachin
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Stephen Warren
n 02/05/2013 04:42 PM, Sean Paul wrote:
> Use the compatible string in the device tree to determine which
> registers/functions to use in the HDMI driver. Also changes the
> references from v13 to 4210 and v14 to 4212 to reflect the IP
> block version instead of the HDMI version.

> diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
> b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt

Binding looks sane to me.

> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
> b/drivers/gpu/drm/exynos/exynos_hdmi.c

>  #ifdef CONFIG_OF
>  static struct of_device_id hdmi_match_types[] = {
>   {
> - .compatible = "samsung,exynos5-hdmi",
> - .data   = (void *)HDMI_TYPE14,
> + .compatible = "samsung,exynos4-hdmi",
>   }, {
>   /* end node */
>   }

Why not fill in all the "base" compatible values there (I think you need
this anyway so that DTs don't all have to be compatible with
samsung,exynos4-hdmi), with .data containing the HDMI_VER_EXYNOS*
values, then ...

> @@ -2218,17 +2217,18 @@ static int hdmi_probe(struct platform_device *pdev)

> +
> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4210-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS4210;
> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4212-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS4212;
> + if (of_device_is_compatible(dev->of_node, "samsung,exynos5250-hdmi"))
> + hdata->version |= HDMI_VER_EXYNOS5250;

Instead of that, do roughly:

match = of_match_device(hdmi_match_types, >dev);
if (match)
hdata->version |= (int)match->data;

That way, it's all table-based. Any future additions to
hdmi_match_types[] won't require another if statement to be added to
probe().


[PATCH v2] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Borislav Petkov
On Tue, Feb 05, 2013 at 04:38:35PM +0100, Maarten Lankhorst wrote:
> Argh, next attempt, based on i915's Kconfig.
> 
> It seems that not only I have to select ACPI_VIDEO, I also have to select all 
> the dependencies.
> Is this a Kconfig bug or working as intended? i915 seems to have a 
> workaround, so I copied it from
> there. Except it's currently missing select THERMAL, so I guess it didn't get 
> updated when that got
> added.
> 
> >8
> Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
> module
> if some of the deps for acpi_video have not been met, which would result in a 
> linking
> failure. Solve this by selecting all dependencies as well.
> 
> Signed-off-by: Maarten Lankhorst 

Yep, this takes care of all deps,

Tested-by: Borislav Petkov 

Thanks.

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #10 from Paul Heldens  ---
Yes for me this effect varies also

if I open , say a browser with a complex webpage, and then start xonotic again
the text may be garbled the 2nd start

its as if video memory or some caches get corrupted

-- 
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/20130205/59e6f7ad/attachment.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #9 from Andy Furniss  ---
(In reply to comment #0)
> bisected to this commit
> 
> 325422c49449acdd8df1eb2ca8ed81f7696c38cc is the first bad commit
> commit 325422c49449acdd8df1eb2ca8ed81f7696c38cc
> Author: Jerome Glisse 
> Date:   Mon Jan 7 17:45:59 2013 -0500
> 
> r600g: add async for staging buffer upload v2
> 
> v2: Add virtual address to dma src/dst offset for cayman
> 
> Signed-off-by: Jerome Glisse 
> 
> :04 04 4ef6e784f3acb7f21da0c5e1923810c78917d16d
> 55f0ce7d9793ce04d392fc7943059545053a9d79 Msrc

Looks correct to me on rv790.

I get nothing like the corruption in the screens, for me it's just the band at
the bottom of the screen and it's not always there (but seems to be reliable
first test after boot from power off).

I tested a couple of cycles with mesa reset just before this commit and
couldn't see the problem. With mesa on this commit I can see it.

Kernel is drm-fixes.

-- 
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/20130205/7f328719/attachment.html>


[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Sean Paul
On Tue, Feb 5, 2013 at 4:42 PM, Stephen Warren  wrote:
> On 02/05/2013 05:37 PM, Sean Paul wrote:
>> On Tue, Feb 5, 2013 at 4:22 PM, Stephen Warren  
>> wrote:
>>> n 02/05/2013 04:42 PM, Sean Paul wrote:
 Use the compatible string in the device tree to determine which
 registers/functions to use in the HDMI driver. Also changes the
 references from v13 to 4210 and v14 to 4212 to reflect the IP
 block version instead of the HDMI version.
>>>
 diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
 b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
>>>
>>> Binding looks sane to me.
>>>
 diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
 b/drivers/gpu/drm/exynos/exynos_hdmi.c
>>>
  #ifdef CONFIG_OF
  static struct of_device_id hdmi_match_types[] = {
   {
 - .compatible = "samsung,exynos5-hdmi",
 - .data   = (void *)HDMI_TYPE14,
 + .compatible = "samsung,exynos4-hdmi",
   }, {
   /* end node */
   }
>>>
>>> Why not fill in all the "base" compatible values there (I think you need
>>> this anyway so that DTs don't all have to be compatible with
>>> samsung,exynos4-hdmi), with .data containing the HDMI_VER_EXYNOS*
>>> values, then ...
>>>
>>
>> At the moment, all DTs have to be compatible with exynos4-hdmi since
>> it provides the base for the current driver. The driver uses 4210 and
>> 4212 to differentiate between different register addresses and
>> features, but most things are just exynos4-hdmi compatible.
>
> The DT nodes should include only the compatible values that the HW is
> actually compatible with. If the HW isn't compatible with exynos4-hdmi,
> that value shouldn't be in the compatible property, but instead whatever
> the "base" value that the HW really is compatible with. The driver can
> support multiple "base" compatible values from this table.
>

All devices that use this driver are compatible, at some level, with
exynos4-hdmi, so I think its usage is correct here.

 @@ -2218,17 +2217,18 @@ static int hdmi_probe(struct platform_device *pdev)
>>>
 +
 + if (of_device_is_compatible(dev->of_node, "samsung,exynos4210-hdmi"))
 + hdata->version |= HDMI_VER_EXYNOS4210;
 + if (of_device_is_compatible(dev->of_node, "samsung,exynos4212-hdmi"))
 + hdata->version |= HDMI_VER_EXYNOS4212;
 + if (of_device_is_compatible(dev->of_node, "samsung,exynos5250-hdmi"))
 + hdata->version |= HDMI_VER_EXYNOS5250;
>>>
>>> Instead of that, do roughly:
>>>
>>> match = of_match_device(hdmi_match_types, >dev);
>>> if (match)
>>> hdata->version |= (int)match->data;
>>>
>>> That way, it's all table-based. Any future additions to
>>> hdmi_match_types[] won't require another if statement to be added to
>>> probe().
>>
>> I don't think it's that easy. of_match_device returns the first match
>> from the device table, so I'd still need to iterate through the
>> matches. I could still break this out into a table, but I don't think
>> of_match_device is the right way to probe it.
>
> You shouldn't have to iterate over multiple matches. of_match_device()
> is supposed to return the match for the first entry in the compatible
> property, then if there was no match, move on to looking at the next
> entry in the compatible property, etc. In practice, I think it's still
> not implemented quite correctly for this, but you can make it work by
> putting the newest compatible value first in the match table.

I think the only way that works is if you hardcode the compatible
versions in the driver, like this:

static struct of_device_id hdmi_match_types[] = {
{
.compatible = "samsung,exynos5250-hdmi",
.data = (void *)(HDMI_VER_EXYNOS5250 | HDMI_VER_EXYNOS4212);
}, {
.compatible = "samsung,exynos4212-hdmi",
.data = (void *)HDMI_VER_EXYNOS4212;
}, {
.compatible = "samsung,exynos4210-hdmi",
.data = (void *)HDMI_VER_EXYNOS4210;
}, {
/* end node */
}
};

In that case, it eliminates the benefit of using device tree to
determine the compatible bits. I hope I'm just being thick and missing
something.

Sean


[PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread 김승우
Hi Inki,

On 2013? 02? 05? 12:03, Inki Dae wrote:
> 2013/2/4 Sachin Kamat :
>> On 1 February 2013 18:28, Inki Dae  wrote:
>>>
>>>
>>>
>>>
>>> 2013. 2. 1. ?? 8:52 Inki Dae  ??:
>>>


> -Original Message-
> From: linux-media-owner at vger.kernel.org [mailto:linux-media-
> owner at vger.kernel.org] On Behalf Of Sachin Kamat
> Sent: Friday, February 01, 2013 8:40 PM
> To: Inki Dae
> Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
> media at vger.kernel.org; dri-devel at lists.freedesktop.org; devicetree-
> discuss at lists.ozlabs.org; patches at linaro.org
> Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
> support for G2D
>
> On 1 February 2013 17:02, Inki Dae  wrote:
>>
>> How about using like below?
>>Compatible = ""samsung,exynos4x12-fimg-2d" /* for Exynos4212,
>> Exynos4412  */
>> It looks odd to use "samsung,exynos4212-fimg-2d" saying that this ip is
> for
>> exynos4212 and exynos4412.
>
> AFAIK, compatible strings are not supposed to have any wildcard
 characters.
> Compatible string should suggest the first SoC that contained this IP.
> Hence IMO 4212 is OK.
>
>>>
>>> Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, 
>>> we should use "samsung,exynos4210-fimg-2d" as comparible string and add it 
>>> to exynos4210.dtsi?
>>
>> Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
>> comptible string will be used for this one too.
>>
>>> And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
>>> different, we might need to add ip version property or compatible string to 
>>> each dtsi file to identify the ip version.
>>
>> AFAIK, they both have the same IP (v4.1).
>>
> 
> Ok, let's use the below,
> 
> For exynos4210 SoC,
> compatible = "samsung,exynos4210-g2d"
> 
> For exynos4x12 SoCs,
> compatible = "samsung,exynos4212-g2d"
> 
> For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
> has same ip)
> compatible = "samsung,exynos5250-g2d"
> 
> To other guys,
> The device tree is used by not only v4l2 side but also drm side so we
> should reach an arrangement. So please give me ack if you agree to my
> opinion. Otherwise please, give me your opinions.

This seems good to me.

Best Regards,
- Seung-Woo Kim

> 
> Thanks,
> Inki Dae
> 
> 
>>>
>>> Sorry but give me your opinions.
>>>
>>> Thanks,
>>> Inki Dae
>>>
>>>

 Got it. Please post it again.

>
> --
> With warm regards,
> Sachin
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

 ___
 dri-devel mailing list
 dri-devel at lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>>
>>
>> --
>> With warm regards,
>> Sachin
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
> 

-- 
Seung-Woo Kim
Samsung Software R Center
--



[PATCH v2] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Maarten Lankhorst
Op 05-02-13 15:52, Borislav Petkov schreef:
> On Mon, Feb 04, 2013 at 04:41:22PM +0100, Maarten Lankhorst wrote:
>> Hey,
>>
>> Op 04-02-13 16:23, Borislav Petkov schreef:
>>> Hi,
>>>
>>> I'm guessing someone has already triggered this on latest Linus' tree
>>> and has a fix?
>>>
>>> drivers/built-in.o: In function `nouveau_acpi_edid':
>>> /w/kernel/linux/drivers/gpu/drm/nouveau/nouveau_acpi.c:420: undefined 
>>> reference to `acpi_video_get_edid'
>>> make: *** [vmlinux] Error 1
>>>
>>> Btw, I got CONFIG_ACPI_VIDEO=m while CONFIG_DRM_NOUVEAU=y and this is
>>> probably the reason for the vmlinux link error.
>>>
>>> Thanks.
>>>
>> Does this fix things?
>>
>> -->8
>> Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
>> module if some of the deps for acpi_video
>> have not been met, which would result in a linking failure. Solve this by 
>> only requiring ACPI && X86 to select ACPI_VIDEO.
>>
>> Signed-off-by: Maarten Lankhorst 
>>
>> ---
>> diff --git a/drivers/gpu/drm/nouveau/Kconfig 
>> b/drivers/gpu/drm/nouveau/Kconfig
>> index 8a55bee..f08b9b6 100644
>> --- a/drivers/gpu/drm/nouveau/Kconfig
>> +++ b/drivers/gpu/drm/nouveau/Kconfig
>> @@ -10,7 +10,7 @@ config DRM_NOUVEAU
>>  select FB
>>  select FRAMEBUFFER_CONSOLE if !EXPERT
>>  select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
>> -select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && 
>> VIDEO_OUTPUT_CONTROL && INPUT
>> +select ACPI_VIDEO if ACPI && X86
>>  select ACPI_WMI if ACPI
>>  select MXM_WMI if ACPI
>>  select POWER_SUPPLY
> Not really.
>
> drivers/built-in.o: In function `acpi_video_bus_put_one_device':
> /root/kernel/linux/drivers/acpi/video.c:1407: undefined reference to 
> `thermal_cooling_device_unregister'
> drivers/built-in.o: In function `acpi_video_device_find_cap':
> /root/kernel/linux/drivers/acpi/video.c:842: undefined reference to 
> `thermal_cooling_device_register'
> make: *** [vmlinux] Error 1
>
> It is CONFIG_THERMAL=m this time.
>
> Thanks.
>
Argh, next attempt, based on i915's Kconfig.

It seems that not only I have to select ACPI_VIDEO, I also have to select all 
the dependencies.
Is this a Kconfig bug or working as intended? i915 seems to have a workaround, 
so I copied it from
there. Except it's currently missing select THERMAL, so I guess it didn't get 
updated when that got
added.

>8
Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
module
if some of the deps for acpi_video have not been met, which would result in a 
linking
failure. Solve this by selecting all dependencies as well.

Signed-off-by: Maarten Lankhorst 

---
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig
index 8a55bee..e84763a 100644
--- a/drivers/gpu/drm/nouveau/Kconfig
+++ b/drivers/gpu/drm/nouveau/Kconfig
@@ -10,10 +10,16 @@ config DRM_NOUVEAU
select FB
select FRAMEBUFFER_CONSOLE if !EXPERT
select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
-   select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && 
VIDEO_OUTPUT_CONTROL && INPUT
select ACPI_WMI if ACPI
select MXM_WMI if ACPI
select POWER_SUPPLY
+   # Similar to i915, we need to select ACPI_VIDEO and it's dependencies
+   select BACKLIGHT_LCD_SUPPORT if ACPI && X86
+   select BACKLIGHT_CLASS_DEVICE if ACPI && X86
+   select VIDEO_OUTPUT_CONTROL if ACPI && X86
+   select INPUT if ACPI && X86
+   select THERMAL if ACPI && X86
+   select ACPI_VIDEO if ACPI && X86
help
  Choose this option for open-source nVidia support.




[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Sean Paul
On Tue, Feb 5, 2013 at 4:22 PM, Stephen Warren  wrote:
> n 02/05/2013 04:42 PM, Sean Paul wrote:
>> Use the compatible string in the device tree to determine which
>> registers/functions to use in the HDMI driver. Also changes the
>> references from v13 to 4210 and v14 to 4212 to reflect the IP
>> block version instead of the HDMI version.
>
>> diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
>> b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
>
> Binding looks sane to me.
>
>> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
>> b/drivers/gpu/drm/exynos/exynos_hdmi.c
>
>>  #ifdef CONFIG_OF
>>  static struct of_device_id hdmi_match_types[] = {
>>   {
>> - .compatible = "samsung,exynos5-hdmi",
>> - .data   = (void *)HDMI_TYPE14,
>> + .compatible = "samsung,exynos4-hdmi",
>>   }, {
>>   /* end node */
>>   }
>
> Why not fill in all the "base" compatible values there (I think you need
> this anyway so that DTs don't all have to be compatible with
> samsung,exynos4-hdmi), with .data containing the HDMI_VER_EXYNOS*
> values, then ...
>

At the moment, all DTs have to be compatible with exynos4-hdmi since
it provides the base for the current driver. The driver uses 4210 and
4212 to differentiate between different register addresses and
features, but most things are just exynos4-hdmi compatible.

>> @@ -2218,17 +2217,18 @@ static int hdmi_probe(struct platform_device *pdev)
>
>> +
>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4210-hdmi"))
>> + hdata->version |= HDMI_VER_EXYNOS4210;
>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos4212-hdmi"))
>> + hdata->version |= HDMI_VER_EXYNOS4212;
>> + if (of_device_is_compatible(dev->of_node, "samsung,exynos5250-hdmi"))
>> + hdata->version |= HDMI_VER_EXYNOS5250;
>
> Instead of that, do roughly:
>
> match = of_match_device(hdmi_match_types, >dev);
> if (match)
> hdata->version |= (int)match->data;
>
> That way, it's all table-based. Any future additions to
> hdmi_match_types[] won't require another if statement to be added to
> probe().

I don't think it's that easy. of_match_device returns the first match
from the device table, so I'd still need to iterate through the
matches. I could still break this out into a table, but I don't think
of_match_device is the right way to probe it.

Sean


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #8 from Paul Heldens  ---
OpenGL renderer string: Gallium 0.4 on AMD RV730

-- 
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/20130205/45787ec5/attachment.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #7 from Jerome Glisse  ---
And what GPU is this ? Because here it works ...

-- 
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/20130205/02806332/attachment.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #6 from Paul Heldens  ---
Tested it again to be sure 

Linux borgir 3.7.6 does NOT have the problem, pardon the mistake.

-- 
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/20130205/3b1d63da/attachment.html>


[PATCH] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Borislav Petkov
On Mon, Feb 04, 2013 at 04:41:22PM +0100, Maarten Lankhorst wrote:
> Hey,
> 
> Op 04-02-13 16:23, Borislav Petkov schreef:
> > Hi,
> >
> > I'm guessing someone has already triggered this on latest Linus' tree
> > and has a fix?
> >
> > drivers/built-in.o: In function `nouveau_acpi_edid':
> > /w/kernel/linux/drivers/gpu/drm/nouveau/nouveau_acpi.c:420: undefined 
> > reference to `acpi_video_get_edid'
> > make: *** [vmlinux] Error 1
> >
> > Btw, I got CONFIG_ACPI_VIDEO=m while CONFIG_DRM_NOUVEAU=y and this is
> > probably the reason for the vmlinux link error.
> >
> > Thanks.
> >
> Does this fix things?
> 
> -->8
> Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
> module if some of the deps for acpi_video
> have not been met, which would result in a linking failure. Solve this by 
> only requiring ACPI && X86 to select ACPI_VIDEO.
> 
> Signed-off-by: Maarten Lankhorst 
> 
> ---
> diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig
> index 8a55bee..f08b9b6 100644
> --- a/drivers/gpu/drm/nouveau/Kconfig
> +++ b/drivers/gpu/drm/nouveau/Kconfig
> @@ -10,7 +10,7 @@ config DRM_NOUVEAU
>   select FB
>   select FRAMEBUFFER_CONSOLE if !EXPERT
>   select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
> - select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && 
> VIDEO_OUTPUT_CONTROL && INPUT
> + select ACPI_VIDEO if ACPI && X86
>   select ACPI_WMI if ACPI
>   select MXM_WMI if ACPI
>   select POWER_SUPPLY

Not really.

drivers/built-in.o: In function `acpi_video_bus_put_one_device':
/root/kernel/linux/drivers/acpi/video.c:1407: undefined reference to 
`thermal_cooling_device_unregister'
drivers/built-in.o: In function `acpi_video_device_find_cap':
/root/kernel/linux/drivers/acpi/video.c:842: undefined reference to 
`thermal_cooling_device_register'
make: *** [vmlinux] Error 1

It is CONFIG_THERMAL=m this time.

Thanks.

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--


答复: [PATCH]Siliconmotion initial patch

2013-02-05 Thread Aaron.Chen 陈俊杰


This is an initial patch for Siliconmotion Graphics chips. It add SM750 chip 
support with 2d accelerate and hw curser support. It is a complete new driver. 
So the patch is a little bit big. Is it OK for review?



Here is what we changed.

drivers/video/Kconfig |   13 +

drivers/video/Makefile|1 +

drivers/video/lynxfb/Makefile |   63 ++

drivers/video/lynxfb/ddk750.h |   31 +

drivers/video/lynxfb/ddk750_chip.c|  586 

drivers/video/lynxfb/ddk750_chip.h|   97 ++

drivers/video/lynxfb/ddk750_display.c |  295 ++

drivers/video/lynxfb/ddk750_display.h |  124 +++

drivers/video/lynxfb/ddk750_dvi.c |  114 +++

drivers/video/lynxfb/ddk750_dvi.h |   84 ++

drivers/video/lynxfb/ddk750_help.c|   37 +

drivers/video/lynxfb/ddk750_help.h|   42 +

drivers/video/lynxfb/ddk750_hwi2c.c   |  290 ++

drivers/video/lynxfb/ddk750_hwi2c.h   |   28 +

drivers/video/lynxfb/ddk750_mode.c|  213 +

drivers/video/lynxfb/ddk750_mode.h|   59 ++

drivers/video/lynxfb/ddk750_power.c   |  243 +

drivers/video/lynxfb/ddk750_power.h   |   85 ++

drivers/video/lynxfb/ddk750_reg.h |  362 +++

drivers/video/lynxfb/ddk750_sii164.c  |  435 +

drivers/video/lynxfb/ddk750_sii164.h  |  187 

drivers/video/lynxfb/ddk750_swi2c.c   |  522 ++

drivers/video/lynxfb/ddk750_swi2c.h   |   98 ++

drivers/video/lynxfb/lynx_accel.c |  417 

drivers/video/lynxfb/lynx_accel.h |  161 

drivers/video/lynxfb/lynx_cursor.c|  223 +

drivers/video/lynxfb/lynx_cursor.h|   36 +

drivers/video/lynxfb/lynx_drv.c   | 1688 +

drivers/video/lynxfb/lynx_drv.h   |  271 ++

drivers/video/lynxfb/lynx_help.h  |  115 +++

drivers/video/lynxfb/lynx_hw750.c |  633 +

drivers/video/lynxfb/lynx_hw750.h |  120 +++

drivers/video/lynxfb/modedb.c |  238 +

drivers/video/lynxfb/ver.h|   38 +

34 files changed, 7949 insertions(+)

create mode 100644 drivers/video/lynxfb/Makefile

create mode 100644 drivers/video/lynxfb/ddk750.h

create mode 100644 drivers/video/lynxfb/ddk750_chip.c

create mode 100644 drivers/video/lynxfb/ddk750_chip.h

create mode 100644 drivers/video/lynxfb/ddk750_display.c

create mode 100644 drivers/video/lynxfb/ddk750_display.h

create mode 100644 drivers/video/lynxfb/ddk750_dvi.c

create mode 100644 drivers/video/lynxfb/ddk750_dvi.h

create mode 100644 drivers/video/lynxfb/ddk750_help.c

create mode 100644 drivers/video/lynxfb/ddk750_help.h

create mode 100644 drivers/video/lynxfb/ddk750_hwi2c.c

create mode 100644 drivers/video/lynxfb/ddk750_hwi2c.h

create mode 100644 drivers/video/lynxfb/ddk750_mode.c

create mode 100644 drivers/video/lynxfb/ddk750_mode.h

create mode 100644 drivers/video/lynxfb/ddk750_power.c

create mode 100644 drivers/video/lynxfb/ddk750_power.h

create mode 100644 drivers/video/lynxfb/ddk750_reg.h

create mode 100644 drivers/video/lynxfb/ddk750_sii164.c

create mode 100644 drivers/video/lynxfb/ddk750_sii164.h

create mode 100644 drivers/video/lynxfb/ddk750_swi2c.c

create mode 100644 drivers/video/lynxfb/ddk750_swi2c.h

create mode 100644 drivers/video/lynxfb/lynx_accel.c

create mode 100644 drivers/video/lynxfb/lynx_accel.h

create mode 100644 drivers/video/lynxfb/lynx_cursor.c

create mode 100644 drivers/video/lynxfb/lynx_cursor.h

create mode 100644 drivers/video/lynxfb/lynx_drv.c

create mode 100644 drivers/video/lynxfb/lynx_drv.h

create mode 100644 drivers/video/lynxfb/lynx_help.h

create mode 100644 drivers/video/lynxfb/lynx_hw750.c

create mode 100644 drivers/video/lynxfb/lynx_hw750.h

create mode 100644 drivers/video/lynxfb/modedb.c

create mode 100644 drivers/video/lynxfb/ver.h

-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130205/54b694b9/attachment-0001.html>
-- next part --
A non-text attachment was scrubbed...
Name: 0001-Siliconmotion-initial-patch.patch
Type: application/octet-stream
Size: 256151 bytes
Desc: 0001-Siliconmotion-initial-patch.patch
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130205/54b694b9/attachment-0001.obj>


[PATCH v3 2/3] ARM: Change exynos5-hdmi references to exynos4-hdmi

2013-02-05 Thread Sean Paul
With the change "drm/exynos: Get HDMI version from device tree",
exynos5-hdmi is no longer relevant. Update references to exynos4-hdmi
and update the hdmi compatibility string to accurately reflect the hdmi
driver.

Signed-off-by: Sean Paul 
---
 arch/arm/boot/dts/exynos5250.dtsi  |3 ++-
 arch/arm/mach-exynos/clock-exynos5.c   |4 ++--
 arch/arm/mach-exynos/mach-exynos5-dt.c |4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5250.dtsi 
b/arch/arm/boot/dts/exynos5250.dtsi
index 3acf594..70464bf 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -573,7 +573,8 @@
};

hdmi {
-   compatible = "samsung,exynos5-hdmi";
+   compatible = "samsung,exynos5250-hdmi",
+"samsung,exynos4212-hdmi", "samsung,exynos4-hdmi";
reg = <0x1453 0x7>;
interrupts = <0 95 0>;
};
diff --git a/arch/arm/mach-exynos/clock-exynos5.c 
b/arch/arm/mach-exynos/clock-exynos5.c
index e9d7b80..6eae39d 100644
--- a/arch/arm/mach-exynos/clock-exynos5.c
+++ b/arch/arm/mach-exynos/clock-exynos5.c
@@ -686,12 +686,12 @@ static struct clk exynos5_init_clocks_off[] = {
.ctrlbit= (1 << 0),
}, {
.name   = "hdmi",
-   .devname= "exynos5-hdmi",
+   .devname= "exynos4-hdmi",
.enable = exynos5_clk_ip_disp1_ctrl,
.ctrlbit= (1 << 6),
}, {
.name   = "hdmiphy",
-   .devname= "exynos5-hdmi",
+   .devname= "exynos4-hdmi",
.enable = exynos5_clk_hdmiphy_ctrl,
.ctrlbit= (1 << 0),
}, {
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c 
b/arch/arm/mach-exynos/mach-exynos5-dt.c
index e99d3d8..0ccda72 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -97,8 +97,8 @@ static const struct of_dev_auxdata 
exynos5250_auxdata_lookup[] __initconst = {
"exynos-gsc.2", NULL),
OF_DEV_AUXDATA("samsung,exynos5-gsc", EXYNOS5_PA_GSC3,
"exynos-gsc.3", NULL),
-   OF_DEV_AUXDATA("samsung,exynos5-hdmi", 0x1453,
-   "exynos5-hdmi", NULL),
+   OF_DEV_AUXDATA("samsung,exynos4-hdmi", 0x1453,
+   "exynos4-hdmi", NULL),
OF_DEV_AUXDATA("samsung,exynos5-mixer", 0x1445,
"exynos5-mixer", NULL),
OF_DEV_AUXDATA("samsung,mfc-v6", 0x1100, "s5p-mfc-v6", NULL),
-- 
1.7.7.3



[PATCH v3 1/3] drm/exynos: Get HDMI version from device tree

2013-02-05 Thread Sean Paul
Use the compatible string in the device tree to determine which
registers/functions to use in the HDMI driver. Also changes the
references from v13 to 4210 and v14 to 4212 to reflect the IP
block version instead of the HDMI version.

Signed-off-by: Sean Paul 
---
 .../devicetree/bindings/drm/exynos/hdmi.txt|9 +-
 drivers/gpu/drm/exynos/exynos_hdmi.c   |  354 ++--
 drivers/gpu/drm/exynos/regs-hdmi.h |   78 +++---
 3 files changed, 223 insertions(+), 218 deletions(-)

diff --git a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt 
b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
index 589edee..781b6bc 100644
--- a/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
+++ b/Documentation/devicetree/bindings/drm/exynos/hdmi.txt
@@ -1,7 +1,11 @@
 Device-Tree bindings for drm hdmi driver

 Required properties:
-- compatible: value should be "samsung,exynos5-hdmi".
+- compatible: suitable values are:
+   - "samsung,exynos5250-hdmi"
+   - "samsung,exynos4212-hdmi"
+   - "samsung,exynos4210-hdmi"
+   - "samsung,exynos4-hdmi"
 - reg: physical base address of the hdmi and length of memory mapped
region.
 - interrupts: interrupt number to the cpu.
@@ -15,7 +19,8 @@ Required properties:
 Example:

hdmi {
-   compatible = "samsung,exynos5-hdmi";
+   compatible = "samsung,exynos5250-hdmi",
+"samsung,exynos4212-hdmi", "samsung,exynos4-hdmi";
reg = <0x1453 0x10>;
interrupts = <0 95 0>;
hpd-gpio = < 7 0xf 1 3>;
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 9e3c2ad..622637f 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -73,9 +73,10 @@ enum HDMI_PACKET_TYPE {
HDMI_PACKET_TYPE_AUI = HDMI_PACKET_TYPE_INFOFRAME + 4
 };

-enum hdmi_type {
-   HDMI_TYPE13,
-   HDMI_TYPE14,
+enum hdmi_version {
+   HDMI_VER_EXYNOS4210 = 1 << 0,
+   HDMI_VER_EXYNOS4212 = 1 << 1,
+   HDMI_VER_EXYNOS5250 = 1 << 2,
 };

 struct hdmi_resources {
@@ -148,7 +149,7 @@ struct hdmi_core_regs {
u8 vact_space_6[2];
 };

-struct hdmi_v14_conf {
+struct hdmi_4212_conf {
int pixel_clock;
struct hdmi_core_regs core;
struct hdmi_tg_regs tg;
@@ -173,52 +174,51 @@ struct hdmi_context {

/* current hdmiphy conf index */
int cur_conf;
-   struct hdmi_v14_confmode_conf;
+   struct hdmi_4212_conf   mode_conf;

struct hdmi_resources   res;

int hpd_gpio;

-   enum hdmi_type  type;
+   int version;
 };

-/* HDMI Version 1.3 */
-static const u8 hdmiphy_v13_conf27[32] = {
+static const u8 hdmiphy_4210_conf27[32] = {
0x01, 0x05, 0x00, 0xD8, 0x10, 0x1C, 0x30, 0x40,
0x6B, 0x10, 0x02, 0x51, 0xDF, 0xF2, 0x54, 0x87,
0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10, 0xE0,
0x22, 0x40, 0xE3, 0x26, 0x00, 0x00, 0x00, 0x00,
 };

-static const u8 hdmiphy_v13_conf27_027[32] = {
+static const u8 hdmiphy_4210_conf27_027[32] = {
0x01, 0x05, 0x00, 0xD4, 0x10, 0x9C, 0x09, 0x64,
0x6B, 0x10, 0x02, 0x51, 0xDF, 0xF2, 0x54, 0x87,
0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10, 0xE0,
0x22, 0x40, 0xE3, 0x26, 0x00, 0x00, 0x00, 0x00,
 };

-static const u8 hdmiphy_v13_conf74_175[32] = {
+static const u8 hdmiphy_4210_conf74_175[32] = {
0x01, 0x05, 0x00, 0xD8, 0x10, 0x9C, 0xef, 0x5B,
0x6D, 0x10, 0x01, 0x51, 0xef, 0xF3, 0x54, 0xb9,
0x84, 0x00, 0x30, 0x38, 0x00, 0x08, 0x10, 0xE0,
0x22, 0x40, 0xa5, 0x26, 0x01, 0x00, 0x00, 0x00,
 };

-static const u8 hdmiphy_v13_conf74_25[32] = {
+static const u8 hdmiphy_4210_conf74_25[32] = {
0x01, 0x05, 0x00, 0xd8, 0x10, 0x9c, 0xf8, 0x40,
0x6a, 0x10, 0x01, 0x51, 0xff, 0xf1, 0x54, 0xba,
0x84, 0x00, 0x10, 0x38, 0x00, 0x08, 0x10, 0xe0,
0x22, 0x40, 0xa4, 0x26, 0x01, 0x00, 0x00, 0x00,
 };

-static const u8 hdmiphy_v13_conf148_5[32] = {
+static const u8 hdmiphy_4210_conf148_5[32] = {
0x01, 0x05, 0x00, 0xD8, 0x10, 0x9C, 0xf8, 0x40,
0x6A, 0x18, 0x00, 0x51, 0xff, 0xF1, 0x54, 0xba,
0x84, 0x00, 0x10, 0x38, 0x00, 0x08, 0x10, 0xE0,
0x22, 0x40, 0xa4, 0x26, 0x02, 0x00, 0x00, 0x00,
 };

-struct hdmi_v13_tg_regs {
+struct hdmi_4210_tg_regs {
u8 cmd;
u8 h_fsz_l;
u8 h_fsz_h;
@@ -250,7 +250,7 @@ struct hdmi_v13_tg_regs {
u8 field_bot_hdmi_h;
 };

-struct hdmi_v13_core_regs {
+struct hdmi_4210_core_regs {
u8 h_blank[2];
u8 v_blank[3];
u8 h_v_line[3];
@@ -263,22 +263,22 @@ struct hdmi_v13_core_regs {
u8 v_sync_gen3[3];
 };

-struct hdmi_v13_preset_conf {
-   struct hdmi_v13_core_regs core;
-   struct hdmi_v13_tg_regs tg;
+struct hdmi_4210_preset_conf {
+   

[PATCH v3 0/2] Get the HDMI IP block version from device tree

2013-02-05 Thread Sean Paul
This set changes the hdmi device tree node to properly represent the version of
the IP block. The first patch changes the drm hdmi driver to use the compatible
field to determine which registers/functions to call, and removes the
unfortunate v1.3/v1.4 naming convention. The second patch updates the arch-
specific bits for exynos5.

Changes in v3:
 - Use compatible field in device tree instead of hdmi-version field
 - Change hdmi driver's naming to use IP version instead of hdmi version


Sean Paul (2):
  drm/exynos: Get HDMI version from device tree
  ARM: Change exynos5-hdmi references to exynos4-hdmi

 .../devicetree/bindings/drm/exynos/hdmi.txt|9 +-
 arch/arm/boot/dts/exynos5250.dtsi  |3 +-
 arch/arm/mach-exynos/clock-exynos5.c   |4 +-
 arch/arm/mach-exynos/mach-exynos5-dt.c |4 +-
 drivers/gpu/drm/exynos/exynos_hdmi.c   |  354 ++--
 drivers/gpu/drm/exynos/regs-hdmi.h |   78 +++---
 6 files changed, 229 insertions(+), 223 deletions(-)

-- 
1.7.7.3



[Bug 60294] [LLVM] Flashplayer crashing

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60294

Michel D?nzer  changed:

   What|Removed |Added

Summary|Flashplayer crashing|[LLVM] Flashplayer crashing

-- 
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/20130205/2dee58f8/attachment.html>


[ANNOUNCE] libdrm 2.4.42

2013-02-05 Thread Maarten Lankhorst
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Alex Deucher (2):
  radeon: add OLAND family
  radeon: add OLAND pci ids

David Herrmann (1):
  man: fix manpage build instructions

Jesse Barnes (1):
  intel: add more VLV PCI IDs

Maarten Lankhorst (3):
  nouveau: use @PACKAGE_VERSION@ in libdrm_nouveau.pc
  libdrm: remove DISTCHECK_CONFIGURE_FLAGS
  configure.ac: bump version to 2.4.42 for release

Michel D?nzer (1):
  radeon: Fix 1D tiling layout on SI.

Thierry Reding (1):
  man: Fix typo and use $() for make expressions

git tag: libdrm-2.4.42

http://dri.freedesktop.org/libdrm/libdrm-2.4.42.tar.bz2
MD5:  a6e2e26951bcc920b2049b65e86a659f  libdrm-2.4.42.tar.bz2
SHA1: 7004899b6a80b2ee50f35f883cc14804c3e24188  libdrm-2.4.42.tar.bz2
SHA256: e0671082a77871c8474d3c0f09dbf5ff82d2429cd248088a691f7b484cbc76e1  
libdrm-2.4.42.tar.bz2

http://dri.freedesktop.org/libdrm/libdrm-2.4.42.tar.gz
MD5:  5f430bab316083378a12b10d0e0fe1a3  libdrm-2.4.42.tar.gz
SHA1: bf767be78ce7048e9a2e8fd3d7a79edea982ee4f  libdrm-2.4.42.tar.gz
SHA256: acb2a694071eb048328cd6b868265dc5de9ef27cab08f516f7a5740f2b15a0af  
libdrm-2.4.42.tar.gz

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBAgAGBQJREQZMAAoJEP5VjHKmcBPD3h8P/2ihE/OLOPHvMGNgcoPnCeFf
xUz1UMHwSNwjffi4OgijBRdqcoKIees79ZgdIvbD9bvd4lMAOiNx4e2jWHmk+1Ps
cvfoAmyrOP3iEi/m6yaMCbIkvKrmobDDSqpgMbNIK92lK+6Gb2mOcncJ6JFYydV2
AwNTvSsw3EqJMf/xkGXhNbRMkWfDRPE5IJg6uohYszTPyusLj7UHgc6IUotFoP+A
MVwwcB+DK/rbFBKjt3Q6f4me35Fw4Y2rTwrF+OL24RzpxRczqeo93ni32pI4MzTA
GX/WOFKN4R0x1BVXd9LTa7LCRzTzuFUupyNaOA8lqsFtsmgoU3b70FkXnGnHPiXs
7kWX0/lSP9gMYCpYGjY2i/b9BCDTPvOajxIWPRgFrk6W+eoQVvaeaaB3E6GX9em5
kcSLpuOZURMyLofN+bwRmWdHlp3FHM7wAL5KZK0s6YJiZhP/vRCdgf/s0XgnKfG2
oR9Q0fimScdeRMm2VNwbwZ/5AxCOZ2AjicppHh9lsscTXUQcPZwVPF3JL1PVsJOG
r+DHdVsRRWzMPDfcfbkDYxTt1s8wRmd7Muk895lAvuqvX0nFidA1w3tdYF6/8dEB
EKSGV5y/QMMdmK70Q9Nw8ueK/rSzL1n94qzQliXimxPwQ7GmTcd95bsMgqZuOqVx
cseyBzhI+fHcAdEBuJxu
=1nxZ
-END PGP SIGNATURE-



[Bug 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #12 from Ren? Blokland  ---
(In reply to comment #9)
> Does setting the environment variable R600_LLVM=0 or building Mesa without
> --enable-r600-llvm-compiler work around the problem?

without --enable-r600-llvm-compiler there is no change but R600_LLVM=0 solves
everything. Thanks

-- 
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/20130205/05ffba2f/attachment.html>


[Bug 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #11 from Ren? Blokland  ---
(In reply to comment #8)
> It's not that I am a dev or something, but you should first consider
> upgrading the kernel. Releases from 3.8-rc2 to 3.8-rc6 include lot of fixes
> and maybe it could solve your problems.

I am running rc6 now and the same problems.

-- 
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/20130205/750e59fe/attachment-0001.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

smoki  changed:

   What|Removed |Added

  Attachment #74238|text/plain  |image/png
  mime type||

-- 
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/20130205/98387751/attachment.html>


[Bug 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #10 from Ren? Blokland  ---
Created attachment 74247
  --> https://bugs.freedesktop.org/attachment.cgi?id=74247=edit
my current config

-- 
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/20130205/3f94b384/attachment.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #5 from Alex Deucher  ---
(In reply to comment #1)
> linux 3.8-rc63.7.4 had it also

325422c49449acdd8df1eb2ca8ed81f7696c38cc (r600g: add async for staging buffer
upload v2) only takes affect on 3.8 kernels.  Previous kernels didn't support
the DMA rings.  So if you are seeing the same issue on multiple kernels, it's
either something else or you are seeing two issues.  It may be the same issue
as bug 58042.

-- 
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/20130205/b8e5e7e4/attachment.html>


[PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Kyungmin Park
On Tue, Feb 5, 2013 at 12:03 PM, Inki Dae  wrote:
> 2013/2/4 Sachin Kamat :
>> On 1 February 2013 18:28, Inki Dae  wrote:
>>>
>>>
>>>
>>>
>>> 2013. 2. 1. ?? 8:52 Inki Dae  ??:
>>>


> -Original Message-
> From: linux-media-owner at vger.kernel.org [mailto:linux-media-
> owner at vger.kernel.org] On Behalf Of Sachin Kamat
> Sent: Friday, February 01, 2013 8:40 PM
> To: Inki Dae
> Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
> media at vger.kernel.org; dri-devel at lists.freedesktop.org; devicetree-
> discuss at lists.ozlabs.org; patches at linaro.org
> Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
> support for G2D
>
> On 1 February 2013 17:02, Inki Dae  wrote:
>>
>> How about using like below?
>>Compatible = ""samsung,exynos4x12-fimg-2d" /* for Exynos4212,
>> Exynos4412  */
>> It looks odd to use "samsung,exynos4212-fimg-2d" saying that this ip is
> for
>> exynos4212 and exynos4412.
>
> AFAIK, compatible strings are not supposed to have any wildcard
 characters.
> Compatible string should suggest the first SoC that contained this IP.
> Hence IMO 4212 is OK.
>
>>>
>>> Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, 
>>> we should use "samsung,exynos4210-fimg-2d" as comparible string and add it 
>>> to exynos4210.dtsi?
>>
>> Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
>> comptible string will be used for this one too.
>>
>>> And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
>>> different, we might need to add ip version property or compatible string to 
>>> each dtsi file to identify the ip version.
>>
>> AFAIK, they both have the same IP (v4.1).
>>
>
> Ok, let's use the below,
>
> For exynos4210 SoC,
> compatible = "samsung,exynos4210-g2d"
>
> For exynos4x12 SoCs,
> compatible = "samsung,exynos4212-g2d"
Even though 4212 is exist, I can't see 4212 board support at mainline.
so I prefer exynos4412-g2d instead of 4212-g2d.
>
> For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
> has same ip)
> compatible = "samsung,exynos5250-g2d"
Acked-by: Kyungmin Park 
>
> To other guys,
> The device tree is used by not only v4l2 side but also drm side so we
> should reach an arrangement. So please give me ack if you agree to my
> opinion. Otherwise please, give me your opinions.
>
> Thanks,
> Inki Dae
>
>
>>>
>>> Sorry but give me your opinions.
>>>
>>> Thanks,
>>> Inki Dae
>>>
>>>

 Got it. Please post it again.

>
> --
> With warm regards,
> Sachin
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

 ___
 dri-devel mailing list
 dri-devel at lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>>
>>
>> --
>> With warm regards,
>> Sachin
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


答复: [PATCH]Siliconmotion initial patch

2013-02-05 Thread Greg KH
On Tue, Feb 05, 2013 at 10:04:27PM +0100, Daniel Vetter wrote:
> On Tue, Feb 05, 2013 at 03:51:55PM +0800, Aaron.Chen  ??? wrote:
> > This is an initial patch for Siliconmotion Graphics chips. It add SM750
> > chip support with 2d accelerate and hw curser support. It is a complete
> > new driver. So the patch is a little bit big. Is it OK for review?
> 
> Adding a new fbdev driver while established consensus pretty much boils
> down to fbdev being a dead subsystem which should only be used for legacy
> applications and drivers: Not good. You should implement this as a drm
> modesetting driver, and if required base your 2d acceleration on top of
> the drm fb helpers. Or just implement a drm/gem driver to expose this.
> 
> Additionally you should include the appropriate mailing lists, which is
> linux-fbdev for fbdev drivers.
> 
> On a very quick read the patch has serious issues:
> 
> - checkpatch.pl:
> 
> total: 2 errors, 779 warnings, 7961 lines checked
> 
> NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
>   scripts/cleanfile
> 
> - Remants of hungarian notation (dunno whether checkpatch checks for
>   those, too much other stuff flying by, but it really stuck out).
> 
> - Not using the linux i2c layer in the ddk750_hwi2c.c file.
> 
> - Reimplementing i2c bit-banging code in the ddk750_swi2c.c
> 
> - Adding a new implementation of a sil 164 dvi driver, we already have at
>   least two in drivers/gpu/drm/i2c/sil164_drv.c and
>   drivers/gpu/drm/i915/dvo_sil164.c.  This should be unified and probably
>   use the drm encoder slave framework.
> 
> At that point I've given up on further review, since there's clearly a lot
> of work left to do. Please review SubmittingPatches from the kernel
> documentation carefully. Also cc'ing our dear staging maintainer, he
> should be able to point you at further useful resources for getting this
> going.

If you wish to put this in the drivers/staging/ directory and do the
cleanup there before it moves to the "real" part of the kernel, I have
no objection to that.

thanks,

greg k-h


[PATCH 2/2] drm: Use C8 instead of RGB332 when determining the format from depth/bpp

2013-02-05 Thread Dave Airlie
On Tue, Feb 5, 2013 at 12:55 AM, Daniel Vetter  wrote:
> On Thu, Jan 31, 2013 at 07:43:38PM +0200, ville.syrjala at linux.intel.com 
> wrote:
>> From: Ville Syrj?l? 
>>
>> Support for real RGB332 is a rarity, most hardware only really support
>> C8. So use C8 instead of RGB332 when determining the format based on
>> depth/bpp.
>>
>> This fixes 8bpp fbcon on i915, since i915 will only accept C8 and not
>> RGB332.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59572
>> Signed-off-by: Ville Syrj?l? 
>
> Tested-by: mlsemon35 at gmail.com
>
> Dave, can you please consider including these two patches into -fixes? The
> fix a black screen regression when users opt for 8bpp console ...

These are for next, considering what Linus said about -fixes not
unless they are big.

so I'll stick a stable cc onto it in next.

Dave.


[Bug 60302] piglit failures r600g radeon hd 6850

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60302

--- Comment #2 from Corey Richardson  ---
Good to know, thank you

-- 
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/20130205/5c913bbe/attachment.html>


[PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Inki Dae
2013/2/4 Sachin Kamat :
> On 1 February 2013 18:28, Inki Dae  wrote:
>>
>>
>>
>>
>> 2013. 2. 1. ?? 8:52 Inki Dae  ??:
>>
>>>
>>>
 -Original Message-
 From: linux-media-owner at vger.kernel.org [mailto:linux-media-
 owner at vger.kernel.org] On Behalf Of Sachin Kamat
 Sent: Friday, February 01, 2013 8:40 PM
 To: Inki Dae
 Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
 media at vger.kernel.org; dri-devel at lists.freedesktop.org; devicetree-
 discuss at lists.ozlabs.org; patches at linaro.org
 Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
 support for G2D

 On 1 February 2013 17:02, Inki Dae  wrote:
>
> How about using like below?
>Compatible = ""samsung,exynos4x12-fimg-2d" /* for Exynos4212,
> Exynos4412  */
> It looks odd to use "samsung,exynos4212-fimg-2d" saying that this ip is
 for
> exynos4212 and exynos4412.

 AFAIK, compatible strings are not supposed to have any wildcard
>>> characters.
 Compatible string should suggest the first SoC that contained this IP.
 Hence IMO 4212 is OK.

>>
>> Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, we 
>> should use "samsung,exynos4210-fimg-2d" as comparible string and add it to 
>> exynos4210.dtsi?
>
> Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
> comptible string will be used for this one too.
>
>> And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
>> different, we might need to add ip version property or compatible string to 
>> each dtsi file to identify the ip version.
>
> AFAIK, they both have the same IP (v4.1).
>

Ok, let's use the below,

For exynos4210 SoC,
compatible = "samsung,exynos4210-g2d"

For exynos4x12 SoCs,
compatible = "samsung,exynos4212-g2d"

For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
has same ip)
compatible = "samsung,exynos5250-g2d"

To other guys,
The device tree is used by not only v4l2 side but also drm side so we
should reach an arrangement. So please give me ack if you agree to my
opinion. Otherwise please, give me your opinions.

Thanks,
Inki Dae


>>
>> Sorry but give me your opinions.
>>
>> Thanks,
>> Inki Dae
>>
>>
>>>
>>> Got it. Please post it again.
>>>

 --
 With warm regards,
 Sachin
 --
 To unsubscribe from this list: send the line "unsubscribe linux-media" in
 the body of a message to majordomo at vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>> ___
>>> dri-devel mailing list
>>> dri-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>
>
> --
> With warm regards,
> Sachin


[pull] drm-intel-next for 3.9

2013-02-05 Thread Daniel Vetter
Hi Dave,

Probably the last feature pull for 3.9, there's some fixes outstanding
thought that I'd like to sneak in. And maybe 3.8 takes a bit longer ...
Anyway, highlights of this pull:
- Kill the horrible IS_DISPLAYREG hack to handle the mmio offset movements
  on vlv, big thanks to Ville.
- Dynamic power well support for Haswell, shaves away a bit when only
  using the eDP port on pipe A (Paulo). Plus unclaimed register fixes
  uncovered by this.
- Clarifications of the gpu hang/reset state transitions, hopefully fixing
  a few spurious -EIO deaths in userspace.
- Haswell ELD fixes.
- Some more (pp)gtt cleanups from Ben.
- A few smaller things all over.

Plus all the stuff from the previous rather small pull request:
- Broadcast RBG improvements and reduced color range fixes from Ville.
- Ben is on a "kill legacy gtt code for good" spree, first pile of patches
  included.
- No-relocs and bo lut improvements for faster execbuf from Chris.
- Some refactorings from Imre.

QA filed tons of bugs this cycle, all due to us finally enabling all the
really anal timestamp and vblank counter checks in kms_flip, now that the
locking is fixed and EDID reads don't cause stalls any more. In short, our
vblank code seems to be ridiculously racy and broken :( Otoh that's not
really news.

Cheers, Daniel


The following changes since commit b5cc6c0387b2f8d269c1df1e68c97c958dd22fed:

  Merge tag 'drm-intel-next-2012-12-21' of 
git://people.freedesktop.org/~danvet/drm-intel into drm-next (2013-01-17 
20:34:08 +1000)

are available in the git repository at:


  git://people.freedesktop.org/~danvet/drm-intel tags/drm-intel-next-2013-02-01

for you to fetch changes up to 7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50:

  GPU/i915: Fix acpi_bus_get_device() check in 
drivers/gpu/drm/i915/intel_opregion.c (2013-02-01 11:01:50 +0100)


Ben Widawsky (16):
  drm/i915: Kill gtt_end
  drm/i915: Mappable_end can't ever be > end
  drm/i915: Remove gtt_mappable_total
  drm/i915: Create a gtt structure
  drm/i915: Remove use on gma_bus_addr on gen6+
  drm/i915: Remove use of gtt_mappable_entries
  drm/i915: Cut out the infamous ILK w/a from AGP layer
  drm/i915: Remove scratch page from shared
  drm/i915: Needs_dmar, not
  agp/intel: Add gma_bus_addr
  drm/i915: Implement WaVSRefCountFullforceMissDisable
  drm/i915: Error state should print /sys/kernel/debug
  drm/i915: Add probe and remove to the gtt ops
  drm/i915: remove intel_gtt structure
  drm/i915: Reclaim GTT space for failed PPGTT
  drm/i915: Fix CAGF for HSW

Changlong Xie (1):
  drm/i915: gen6_gmch_remove can be static

Chris Wilson (9):
  drm/i915: Add a debug interface to forcibly evict and shrink our object 
caches
  drm/i915: Bail if we attempt to allocate pages for a purged object
  drm/i915: Mark a temporary allocation for copy-from-user as such
  drm/i915: Take the handle idr spinlock once for looking up the exec 
objects
  drm/i915: Move the execbuffer objects list from the stack into the tracker
  drm/i915: Use the reloc.handle as an index into the execbuffer array
  drm/i915: Only insert the mb() before updating the fence parameter
  drm/i915: Only apply the mb() when flushing the GTT domain during a finish
  drm/i915: Only run idle processing from i915_gem_retire_requests_worker

Daniel Vetter (21):
  drm/i915: wake up all pageflip waiters
  drm/i915: Allow userspace to hint that the relocations were known
  drm/i915: move dev_priv->mm out of line
  drm/i915: extract hangcheck/reset/error_state state into substruct
  drm/i915: move wedged to the other gpu error handling stuff
  drm/i915: fix reset handling in the throttle ioctl
  drm/i915: clear up wedged transitions
  drm/i915: create a race-free reset detection
  drm/i915: clarify concurrent hang detect/gpu reset consistency
  drm/i915: fixup sbi_read/write locking
  drm/i915: move modeset checks out of save/restore_modeset_reg
  drm/i915: extract ums suspend/resume into i915_ums.c
  drm/i915: dont save/restore VGA state for kms
  drm/i915: move DP save/restore into i915_ums.c
  drm/i915: vfuncs for gtt_clear_range/insert_entries
  drm/i915: vfuncs for ppgtt
  drm/i915: pte_encode is gen6+
  drm/i915: extract hw ppgtt setup/cleanup code
  drm/i915: kill cargo-culted locking from power well code
  drm/i915: don't run hsw power well code on !hsw
  drm/i915: dynamic Haswell display power well support

Egbert Eich (1):
  drm/i915: Remove pch_rq_mask from struct drm_i915_private.

Imre Deak (3):
  drm/i915: merge get_gtt_alignment/get_unfenced_gtt_alignment()
  drm/i915: merge {i965, sandybridge}_write_fence_reg()
  drm/i915: use gtt_get_size() instead of open coding it

Jani Nikula (3):
  drm/i915: add quirk to invert brightness on eMachines G725
  

[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

Paul Heldens  changed:

   What|Removed |Added

  Attachment #74238|0   |1
is obsolete||

--- Comment #4 from Paul Heldens  ---
Created attachment 74239
  --> https://bugs.freedesktop.org/attachment.cgi?id=74239=edit
screen shot Xonotic

-- 
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/20130205/be6eb4dc/attachment.html>


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #3 from Paul Heldens  ---
Created attachment 74238
  --> https://bugs.freedesktop.org/attachment.cgi?id=74238=edit
screen shot Xonotic

-- 
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/20130205/76184584/attachment.html>


[PATCH] drm/nouveau: fix lockdep splat in display

2013-02-05 Thread Maarten Lankhorst
Add a flag NVOBJ_FLAG_CREAT_EXCL, which will make sure that only 1 engctx will 
be created.
This removes the need of having multiple 

Fixes the following lockdep splat:

=
[ INFO: possible recursive locking detected ]
3.8.0-rc6-ninja+ #1 Not tainted
-
modprobe/585 is trying to acquire lock:
 (>mutex){+.+.+.}, at: []
nouveau_instobj_create_+0x43/0x90 [nouveau]

but task is already holding lock:
 (>mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x5d/0xd0 [nouveau]

other info that might help us debug this:
 Possible unsafe locking scenario:

CPU0

 lock(>mutex);
 lock(>mutex);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

4 locks held by modprobe/585:
 #0: (&__lockdep_no_validate__){..}, at: []
__driver_attach+0x53/0xb0
 #1: (&__lockdep_no_validate__){..}, at: []
__driver_attach+0x61/0xb0
 #2: (drm_global_mutex){+.+.+.}, at: []
drm_get_pci_dev+0xbc/0x2b0
 #3: (>mutex){+.+.+.}, at: []
nv50_disp_data_ctor+0x5d/0xd0 [nouveau]

stack backtrace:
Pid: 585, comm: modprobe Not tainted 3.8.0-rc6-expert+ #1
Call Trace:
 [] validate_chain.isra.33+0xd72/0x10d0
 [] ? __kernel_text_address+0x58/0x80
 [] ? print_context_stack+0x5d/0xd0
 [] __lock_acquire+0x3a1/0xb60
 [] ? __lock_is_held+0x54/0x80
 [] lock_acquire+0x5a/0x70
 [] ? nouveau_instobj_create_+0x43/0x90 [nouveau]
 [] mutex_lock_nested+0x69/0x340
 [] ? nouveau_instobj_create_+0x43/0x90 [nouveau]
 [] ? nouveau_object_create_+0x60/0xa0 [nouveau]
 [] nouveau_instobj_create_+0x43/0x90 [nouveau]
 [] nv50_instobj_ctor+0x4c/0xf0 [nouveau]
 [] nouveau_object_ctor+0x33/0xc0 [nouveau]
 [] nv50_instmem_alloc+0x21/0x30 [nouveau]
 [] nouveau_gpuobj_create_+0x247/0x2f0 [nouveau]
 [] ? _raw_spin_unlock_irqrestore+0x3a/0x70
 [] ? trace_hardirqs_on_caller+0x10d/0x1a0
 [] nouveau_engctx_create_+0x25c/0x2a0 [nouveau]
 [] nv50_disp_data_ctor+0xc1/0xd0 [nouveau]
 [] ? nouveau_subdev_reset+0x52/0x60 [nouveau]
 [] nouveau_object_ctor+0x33/0xc0 [nouveau]
 [] nouveau_object_new+0x112/0x240 [nouveau]
 [] nv50_display_create+0x18d/0x860 [nouveau]
 [] ? __cancel_work_timer+0x6d/0xc0
 [] nouveau_display_create+0x3cb/0x670 [nouveau]
 [] nouveau_drm_load+0x26f/0x590 [nouveau]
 [] ? device_register+0x19/0x20
 [] ? drm_sysfs_device_add+0x81/0xb0
 [] drm_get_pci_dev+0x17e/0x2b0
 [] ? __pci_set_master+0x26/0x80
 [] nouveau_drm_probe+0x25a/0x2a0 [nouveau]
 [] local_pci_probe+0x46/0x80
 [] pci_device_probe+0x101/0x110
 [] driver_probe_device+0x76/0x240
 [] __driver_attach+0xa3/0xb0
 [] ? driver_probe_device+0x240/0x240
 [] bus_for_each_dev+0x4d/0x90
 [] driver_attach+0x19/0x20
 [] bus_add_driver+0x1a0/0x270
 [] ? 0xa023cfff
 [] driver_register+0x72/0x170
 [] ? 0xa023cfff
 [] __pci_register_driver+0x5f/0x70
 [] drm_pci_init+0x115/0x130
 [] ? 0xa023cfff
 [] ? 0xa023cfff
 [] nouveau_drm_init+0x4d/0x1000 [nouveau]
 [] do_one_initcall+0x11a/0x170
 [] load_module+0xe84/0x1470
 [] ? in_lock_functions+0x20/0x20
 [] ? trace_hardirqs_on_thunk+0x3a/0x3f
 [] sys_init_module+0xb7/0xe0
 [] system_call_fastpath+0x1a/0x1f

Reported-by: Arend van Spriel 
Reported-by: Peter Hurley 
Reported-by: Daniel J Blueman 
Signed-off-by: Maarten Lankhorst 
---
XXX: Add Cc: stable at kernel.org if it applies to 3.7 ?

diff --git a/drivers/gpu/drm/nouveau/core/core/engctx.c 
b/drivers/gpu/drm/nouveau/core/core/engctx.c
index 84c71fa..4a0ab2b 100644
--- a/drivers/gpu/drm/nouveau/core/core/engctx.c
+++ b/drivers/gpu/drm/nouveau/core/core/engctx.c
@@ -31,12 +31,15 @@
 #include 

 static inline int
-nouveau_engctx_exists(struct nouveau_object *parent,
+nouveau_engctx_exists(struct nouveau_object *parent, u32 flags,
  struct nouveau_engine *engine, void **pobject)
 {
struct nouveau_engctx *engctx;
struct nouveau_object *parctx;

+   if ((flags & NVOBJ_FLAG_CREAT_EXCL) && !list_empty(>contexts))
+   return -EBUSY;
+
list_for_each_entry(engctx, >contexts, head) {
parctx = nv_pclass(nv_object(engctx), NV_PARENT_CLASS);
if (parctx == parent) {
@@ -67,7 +70,7 @@ nouveau_engctx_create_(struct nouveau_object *parent,
 * and reference it instead of creating a new one
 */
spin_lock_irqsave(>lock, save);
-   ret = nouveau_engctx_exists(parent, engine, pobject);
+   ret = nouveau_engctx_exists(parent, flags, engine, pobject);
spin_unlock_irqrestore(>lock, save);
if (ret)
return ret;
@@ -94,7 +97,7 @@ nouveau_engctx_create_(struct nouveau_object *parent,
 * it's not possible to allocate the object with it held.
 */
spin_lock_irqsave(>lock, save);
-   ret = nouveau_engctx_exists(parent, engine, pobject);
+   ret = nouveau_engctx_exists(parent, flags, engine, pobject);
if (ret) {
spin_unlock_irqrestore(>lock, save);
nouveau_object_ref(NULL, );
diff --git 

[PATCH v4 1/1] video: drm: exynos: Adds display-timing node parsing using video helper function

2013-02-05 Thread Vikas Sajjan
This patch adds display-timing node parsing using video helper function

Signed-off-by: Leela Krishna Amudala 
Signed-off-by: Vikas Sajjan 
---
 drivers/gpu/drm/exynos/exynos_drm_fimd.c |   41 +++---
 1 file changed, 37 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index bf0d9ba..978e866 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -19,6 +19,7 @@
 #include 
 #include 
 #include 
+#include 

 #include 
 #include 
@@ -905,16 +906,48 @@ static int __devinit fimd_probe(struct platform_device 
*pdev)
struct exynos_drm_subdrv *subdrv;
struct exynos_drm_fimd_pdata *pdata;
struct exynos_drm_panel_info *panel;
+   struct fb_videomode *fbmode;
+   struct pinctrl *pctrl;
struct resource *res;
int win;
int ret = -EINVAL;

DRM_DEBUG_KMS("%s\n", __FILE__);

-   pdata = pdev->dev.platform_data;
-   if (!pdata) {
-   dev_err(dev, "no platform data specified\n");
-   return -EINVAL;
+   if (pdev->dev.of_node) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata) {
+   DRM_ERROR("memory allocation for pdata failed\n");
+   return -ENOMEM;
+   }
+
+   fbmode = devm_kzalloc(dev, sizeof(*fbmode), GFP_KERNEL);
+   if (!fbmode) {
+   DRM_ERROR("memory allocation for fbmode failed\n");
+   return -ENOMEM;
+   }
+
+   ret = of_get_fb_videomode(dev->of_node, fbmode, -1);
+   if (ret) {
+   DRM_ERROR("failed: of_get_fb_videomode() :"
+   "return value: %d\n", ret);
+   return ret;
+   }
+   pdata->panel.timing = (struct fb_videomode) *fbmode;
+
+   pctrl = devm_pinctrl_get_select_default(dev);
+   if (IS_ERR_OR_NULL(pctrl)) {
+   DRM_ERROR("failed: devm_pinctrl_get_select_default()"
+   "return value: %d\n", PTR_RET(pctrl));
+   return PTR_RET(pctrl);
+   }
+
+   } else {
+   pdata = pdev->dev.platform_data;
+   if (!pdata) {
+   DRM_ERROR("no platform data specified\n");
+   return -EINVAL;
+   }
}

panel = >panel;
-- 
1.7.9.5



[PATCH v4 0/1] Adds display-timing node parsing to exynos drm fimd

2013-02-05 Thread Vikas Sajjan
This patch adds display-timing node parsing to drm fimd, this depends on
the display helper patchset at
http://lists.freedesktop.org/archives/dri-devel/2013-January/033998.html

It also adds pinctrl support for drm fimd.

changes since v3:
- addressed comments from Sean Paul , to 
modify
the return values and print messages.

changes since v2:
- moved 'devm_pinctrl_get_select_default' function call under
'if (pdev->dev.of_node)', this makes NON-DT code unchanged.
(reported by: Rahul Sharma )

changes since v1:
- addressed comments from Sean Paul 

Vikas Sajjan (1):
  video: drm: exynos: Adds display-timing node parsing using video
helper function

 drivers/gpu/drm/exynos/exynos_drm_fimd.c |   41 +++---
 1 file changed, 37 insertions(+), 4 deletions(-)

-- 
1.7.9.5



[PATCHv5,RESEND 8/8] drm: tegra: Add gr2d device

2013-02-05 Thread Thierry Reding
 struct drm_device *drm,
> >> + struct drm_file *file_priv)
> >> +{
> >> + struct host1x_job *job;
> >> + int num_cmdbufs = args->num_cmdbufs;
> >> + int num_relocs = args->num_relocs;
> >> + int num_waitchks = args->num_waitchks;
> >> + struct tegra_drm_cmdbuf __user *cmdbufs =
> >> + (void * __user)(uintptr_t)args->cmdbufs;
> >> + struct tegra_drm_reloc __user *relocs =
> >> + (void * __user)(uintptr_t)args->relocs;
> >> + struct tegra_drm_waitchk __user *waitchks =
> >> + (void * __user)(uintptr_t)args->waitchks;
> > 
> > No need for all the uintptr_t casts.
> 
> Will try to remove - but I do remember getting compiler warnings without
> them.

I think you shouldn't even have to cast to void * first. Just cast to
the target type directly. I don't see why the compiler should complain.

> (...)
> > Most of this looks very generic. Can't it be split out into separate
> > functions and reused in other (gr3d) modules?
> 
> That's actually how most of this is downstream. I thought to make
> everything really simple and make it all 2D specific in the first patch
> set, and split into generic when we add support for another device.

Okay, that's fine then.

> >> +static int gr2d_is_addr_reg(struct platform_device *dev, u32 class, u32 
> >> reg)
> >> +{
> >> + int ret;
> >> +
> >> + if (class == NV_HOST1X_CLASS_ID)
> >> + ret = reg == 0x2b;
> >> + else
> >> + switch (reg) {
> >> + case 0x1a:
> >> + case 0x1b:
> >> + case 0x26:
> >> + case 0x2b:
> >> + case 0x2c:
> >> + case 0x2d:
> >> + case 0x31:
> >> + case 0x32:
> >> + case 0x48:
> >> + case 0x49:
> >> + case 0x4a:
> >> + case 0x4b:
> >> + case 0x4c:
> >> + ret = 1;
> >> + break;
> >> + default:
> >> + ret = 0;
> >> + break;
> >> + }
> >> +
> >> + return ret;
> >> +}
> > 
> > I should probably bite the bullet and read through the (still) huge
> > patch 3 to understand exactly why this is needed.
> 
> That's the security firewall. It walks through each submit, and ensures
> that each register write that writes an address, goes through the host1x
> reloc mechanism. This way user space cannot ask 2D to write to arbitrary
> memory locations.

I see. Can this be made more generic? Perhaps adding a table of valid
registers to the device and use a generic function to iterate over that
instead of having to provide the same function for each client.

> >> +static int __exit gr2d_remove(struct platform_device *dev)
> >> +{
> >> + struct host1x *host1x =
> >> + host1x_get_drm_data(to_platform_device(dev->dev.parent));
> >> + struct gr2d *gr2d = platform_get_drvdata(dev);
> >> + int err;
> >> +
> >> + err = host1x_unregister_client(host1x, >client);
> >> + if (err < 0) {
> >> + dev_err(>dev, "failed to unregister host1x client: 
> >> %d\n",
> >> + err);
> >> + return err;
> >> + }
> >> +
> >> + host1x_syncpt_free(gr2d->syncpt);
> >> + return 0;
> >> +}
> > 
> > Isn't this missing a host1x_channel_put() or host1x_free_channel()?
> 
> All references should be handled in gr2d_open_channel() and
> gr2d_close_channel(). I think we'd need to ensure all contexts are
> closed at this point.

Yes, that'd work as well. Actually I would assume that all contexts
associated with a given file should be freed when the file is closed.
That way all of this should work pretty much automatically.

> >> +struct tegra_drm_syncpt_wait_args {
> >> + __u32 id;
> >> + __u32 thresh;
> >> + __s32 timeout;
> >> + __u32 value;
> >> +};
> >> +
> >> +#define DRM_TEGRA_NO_TIMEOUT (-1)
> > 
> > Is this the only reason why timeout is signed? If so maybe a better
> > choice would be __u32 and DRM_TEGRA_NO_TIMEOUT 0x.
> 
> I believe it is so. In fact we'd need to rename it to something like
> INFINITE_TIMEOUT, because we also have a case of timeout=0, which
> returns immediately, i.e. doesn't have a timeout either.

For timeout == 0 I don't think we need a symbolic name. It is pretty
common for 0 to mean no timeout. But yes, DRM_TEGRA_INFINITE_TIMEOUT
should be okay.

> >> +struct tegra_drm_syncpt_incr {
> >> + __u32 syncpt_id;
> >> + __u32 syncpt_incrs;
> >> +};
> > 
> > Maybe the fields would be better named id and incrs. Though I also
> > notice that incrs is never used. I guess that's supposed to be used in
> > the future to allow increments by more than a single value. If so,
> > perhaps value would be a better name.
> 
> It's actually used in the dreaded patch 3, as part of tegra_drm_submit_args.

Okay. The superfluous syncpt_ prefixes should still go away.

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/20130205/1443dce9/attachment.pgp>


[PATCH v4 1/1] video: drm: exynos: Adds display-timing node parsing using video helper function

2013-02-05 Thread Paul Menzel
Dear Vikas,


thank you for the patch. Please send a fifth iteration with the
following changes to the commit message.

Am Dienstag, den 05.02.2013, 11:02 +0530 schrieb Vikas Sajjan:

The summary should not implicitly assume ?patch? written before it. So
do not add third person s to ?Add?.

video: drm: exynos: Add display-timing node parsing using video helper 
function

> This patch adds display-timing node parsing using video helper function

As this is the same as the summary you should leave it out. Also it is
good style not to use ?This/The patch? in the commit message.

Please use the commit message to explain your change. For example the if
statement. Why is the original code put into the else branch and is not
needed if the first condition is true?

> Signed-off-by: Leela Krishna Amudala 
> Signed-off-by: Vikas Sajjan 
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c |   41 
> +++---
>  1 file changed, 37 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
> b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index bf0d9ba..978e866 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> @@ -19,6 +19,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  #include 
> @@ -905,16 +906,48 @@ static int __devinit fimd_probe(struct platform_device 
> *pdev)
>   struct exynos_drm_subdrv *subdrv;
>   struct exynos_drm_fimd_pdata *pdata;
>   struct exynos_drm_panel_info *panel;
> + struct fb_videomode *fbmode;
> + struct pinctrl *pctrl;
>   struct resource *res;
>   int win;
>   int ret = -EINVAL;
>  
>   DRM_DEBUG_KMS("%s\n", __FILE__);
>  
> - pdata = pdev->dev.platform_data;
> - if (!pdata) {
> - dev_err(dev, "no platform data specified\n");
> - return -EINVAL;
> + if (pdev->dev.of_node) {
> + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
> + if (!pdata) {
> + DRM_ERROR("memory allocation for pdata failed\n");
> + return -ENOMEM;
> + }
> +
> + fbmode = devm_kzalloc(dev, sizeof(*fbmode), GFP_KERNEL);
> + if (!fbmode) {
> + DRM_ERROR("memory allocation for fbmode failed\n");
> + return -ENOMEM;
> + }
> +
> + ret = of_get_fb_videomode(dev->of_node, fbmode, -1);
> + if (ret) {
> + DRM_ERROR("failed: of_get_fb_videomode() :"
> + "return value: %d\n", ret);
> + return ret;
> + }
> + pdata->panel.timing = (struct fb_videomode) *fbmode;
> +
> + pctrl = devm_pinctrl_get_select_default(dev);
> + if (IS_ERR_OR_NULL(pctrl)) {
> + DRM_ERROR("failed: devm_pinctrl_get_select_default()"
> + "return value: %d\n", PTR_RET(pctrl));
> + return PTR_RET(pctrl);
> + }
> +
> + } else {
> + pdata = pdev->dev.platform_data;
> + if (!pdata) {
> + DRM_ERROR("no platform data specified\n");
> + return -EINVAL;
> +     }
>   }
>  
>   panel = >panel;


Thanks,

Paul
-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20130205/2e7004c1/attachment.pgp>


[PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Sylwester Nawrocki
On 02/05/2013 04:03 AM, Inki Dae wrote:
[...]
>> Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
>> comptible string will be used for this one too.
>>
>>> And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. 
>>> If it's different, we might need to add ip version property or compatible
>>> string to each dtsi file to identify the ip version.
>>
>> AFAIK, they both have the same IP (v4.1).
>>
> 
> Ok, let's use the below,
> 
> For exynos4210 SoC,
> compatible = "samsung,exynos4210-g2d"

Since S5PV210 (Exynos3110 ??) seems to have same G2D IP, I guess
something like "samsung,s5pv210-g2d" could be used for both
S5PV210 (S5PC110) and Exynos4210 (S5PC210, S5PV310) ?
I'm fine with using "samsung,exynos4210-g2d" for Exynos4210 though.

For instance for tegra SoCs a conventions like "nvidia,tegra-",
is used (e.g. "nvidia,tegra20-gr2d").

> For exynos4x12 SoCs,
> compatible = "samsung,exynos4212-g2d"

I'm not sure how well exynos4212 is going to be supported in the kernel.
As Mr Park pointed out, if it is going to be nearly not existent then we
could perhaps go with "samsung,exynos4412-g2d" for Exynos4412 and
"samsung,exynos4212-g2d" for Exynos4212 (as needed). Anyway, I fine
with using "samsung,exynos4212-g2d" for both. I'd like to hear Mr Kim's
opinion on this as well though.

> For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
> has same ip)
> compatible = "samsung,exynos5250-g2d"
> 
> To other guys,
> The device tree is used by not only v4l2 side but also drm side so we
> should reach an arrangement. So please give me ack if you agree to my
> opinion. Otherwise please, give me your opinions.

It looks good to me, please just see the two remarks above.

--
Regards,
Sylwester


[PATCHv5,RESEND 5/8] drm: tegra: Move drm to live under host1x

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 08:45:36PM -0800, Terje Bergstr?m wrote:
> On 04.02.2013 03:08, Thierry Reding wrote:
> > * PGP Signed by an unknown key
> > 
> > On Tue, Jan 15, 2013 at 01:44:01PM +0200, Terje Bergstrom wrote:
> > [...]
> >> diff --git a/drivers/gpu/host1x/Makefile b/drivers/gpu/host1x/Makefile
> >> index 697d49a..ffc8bf1 100644
> >> --- a/drivers/gpu/host1x/Makefile
> >> +++ b/drivers/gpu/host1x/Makefile
> >> @@ -12,4 +12,10 @@ host1x-y = \
> >>hw/host1x01.o
> >>  
> >>  host1x-$(CONFIG_TEGRA_HOST1X_CMA) += cma.o
> >> +
> >> +ccflags-y += -Iinclude/drm
> >> +ccflags-$(CONFIG_DRM_TEGRA_DEBUG) += -DDEBUG
> >> +
> >> +host1x-$(CONFIG_DRM_TEGRA) += drm/drm.o drm/fb.o drm/dc.o drm/host1x.o
> >> +host1x-$(CONFIG_DRM_TEGRA) += drm/output.o drm/rgb.o drm/hdmi.o
> >>  obj-$(CONFIG_TEGRA_HOST1X) += host1x.o
> > 
> > Can this be moved into a separate Makefile in the drm subdirectory?
> 
> I tried, and kernel build helpfully created two .ko files. As having
> cyclic dependencies between two modules isn't nice, I merged them to
> same module and that seemed to force merging Makefile.
> 
> If anybody has an idea on how to do it otherwise, I'd be happy to keep
> the Makefiles separate.

Okay, I'll take a look.

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/20130205/96da5929/attachment.pgp>


[PATCHv5,RESEND 4/8] gpu: host1x: Add debug support

2013-02-05 Thread Thierry Reding
el data structures but would have to rely on the data itself
for diagnostics. IOMMU virtual addresses won't be available and so on.

> >> +static void host1x_debug_show_channel_cdma(struct host1x *m,
> >> +  struct host1x_channel *ch, struct output *o, int chid)
> >> +{
> > [...]
> >> +  switch (cbstat) {
> >> +  case 0x00010008:
> > 
> > Again, symbolic names would be nice.
> 
> I propose I remove the decoding from kernel, and save 200 lines.

I think it could be more than 200 lines. If all we provide in the kernel
is some statistics about syncpoint usage or channel state that should be
a lot less code than we have now.

However that would make it necessary to provide userspace tools that can
provide the same quality of diagnostics, so I'm not sure if it's doable
without access to the in-kernel data structures.

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/20130205/ca8a97e8/attachment.pgp>


[PATCHv5,RESEND 2/8] gpu: host1x: Add syncpoint wait and interrupts

2013-02-05 Thread Thierry Reding
locate memory
in host1x_syncpt_wait() directly instead of going through the wrapper.

> >> +void host1x_intr_put_ref(struct host1x_intr *intr, u32 id, void *ref)
> > 
> > Here again, you pass in the waiter via a void *. Why's that?
> 
> host1x_waitlist is hidden inside intr.c.

I don't think that's necessary here. I'd rather have the compiler check
for types rather than hide the structure.

> >> +int host1x_intr_init(struct host1x_intr *intr, u32 irq_sync)
> > 
> > Maybe you should keep the type of the irq_sync here so that it properly
> > propagates to the call to devm_request_irq().
> 
> I'm not sure what you mean. Do you mean that I should use unsigned int,
> as that's the type used in devm_request_irq()?

Yes.

> >> +void host1x_intr_stop(struct host1x_intr *intr)
> >> +{
> >> + unsigned int id;
> >> + struct host1x *host1x = intr_to_host1x(intr);
> >> + struct host1x_intr_syncpt *syncpt;
> >> + u32 nb_pts = host1x_syncpt_nb_pts(intr_to_host1x(intr));
> >> +
> >> + mutex_lock(>mutex);
> >> +
> >> + host1x->intr_op.disable_all_syncpt_intrs(intr);
> > 
> > I haven't commented on this everywhere, but I think this could benefit
> > from a wrapper that forwards this to the intr_op. The same goes for the
> > sync_op.
> 
> You mean something like "host1x_disable_all_syncpt_intrs"?

Yes. I think that'd be useful for each of the op functions. Perhaps you
could even pass in a struct host1x * to make calls more uniform.

> >> +/*
> >> + * Main entrypoint for syncpoint value waits.
> >> + */
> >> +int host1x_syncpt_wait(struct host1x_syncpt *sp,
> >> + u32 thresh, long timeout, u32 *value)
> >> +{
> > [...]
> >> +}
> >> +EXPORT_SYMBOL(host1x_syncpt_wait);
> > 
> > This doesn't only seem to be the main entrypoint, but it's basically the
> > only way to currently wait for syncpoints. One actual use-case where
> > this might turn out to be a problem is video capturing. The problem is
> > that using this API you can't very well asynchronously capture frames.
> > So eventually I think we need a way to allow a generic handler to be
> > attached to syncpoints so that you can have this handler continuously
> > invoked after each frame is captured and just pass the buffer back to
> > userspace.
> 
> Yep, so far all asynchronous waits have been done in user space. We
> would probably allow attaching a handler to a syncpt value, so that we'd
> call that handler once a value is reached. In effect, similar to a
> wake_up event that is now added via host1x_intr_add_action, but simpler.
> That'd mean that the handler needs to be re-added after each frame.
> 
> We could also add the handler as persistent if re-adding would be a
> problem. That'd require some new wiring and I'll have to think how to
> implement that.

Yes, that sounds like what I had in mind. Again, no need to worry about
it now. We can cross that bridge when we come to it.

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/20130205/e1507241/attachment-0001.pgp>


[Bug 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60294

Michel D?nzer  changed:

   What|Removed |Added

   Assignee|mesa-dev at lists.freedesktop. |dri-devel at 
lists.freedesktop
   |org |.org
  Component|Other   |Drivers/Gallium/r600

--- Comment #9 from Michel D?nzer  ---
Does setting the environment variable R600_LLVM=0 or building Mesa without
--enable-r600-llvm-compiler work around the problem?

-- 
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/20130205/b02ccf44/attachment.html>


[Bug 60302] piglit failures r600g radeon hd 6850

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60302

Michel D?nzer  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #1 from Michel D?nzer  ---
It's unrealistic to expect all piglit tests to pass, so I'm afraid this report
isn't useful.

Piglit is mostly useful in two ways:

* Regression testing, i.e. when a certain test used to pass but now fails, it's
good to try and get to the bottom of that and fix it.

* Specific tests reproducing failures which also affect real world apps. It's
usually easier to fix problems by investigating piglit tests than more complex
apps.

In both cases though, individual bugs should be reported for specific tests,
not a single one for all results as a whole.

-- 
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/20130205/1d9137e4/attachment.html>


[PATCHv5,RESEND 1/8] gpu: host1x: Add host1x driver

2013-02-05 Thread Thierry Reding
 because host1x tracks the range of sync point
> increments that hardware is still going to do, so min is the lower
> boundary of the range.
> 
> max tells what the sync point is expected to reach for hardware to be
> considered idle.
> 
> host1x will f.ex. nop out waits for sync point values outside the range,
> because hardware isn't good at handling syncpt value wrapping.

Maybe the function should be called host1x_syncpt_load() if there is no
equivalent way to load the maximum value (since there is no register to
read from).

> > Also the syncpoint is not actually allocated here, so maybe
> > host1x_syncpt_request() would be a better name. As a nice side-effect it
> > makes the naming more similar to the IRQ API and might be easier to work
> > with.
> 
> I'm not entirely sure about the difference, but isn't the number to be
> allocated usually passed to a function ending in _request? Allocate
> would just allocate the next available - as host1x_syncpt_allocate does.

That's certainly true for interrupts. However, if you look at the DMA
subsystem for example, you can also request an unnamed resource.

The difference is sufficiently subtle that host1x_syncpt_allocate()
would work for me too, though. I just have a slight preference for
host1x_syncpt_request().

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/20130205/9e8c64e1/attachment-0001.pgp>


[Bug 60302] New: piglit failures r600g radeon hd 6850

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=60302

  Priority: medium
Bug ID: 60302
  Assignee: dri-devel at lists.freedesktop.org
   Summary: piglit failures r600g radeon hd 6850
  Severity: normal
Classification: Unclassified
OS: Linux (All)
  Reporter: corey at octayn.net
  Hardware: x86-64 (AMD64)
Status: NEW
   Version: git
 Component: Drivers/Gallium/r600
   Product: Mesa

Ran piglet (d2250db) on the 9.1 branch (1003652). Kernel 3.8-rc5

Results available at: http://octayn.net/9.1-piglit

Any additional information I can provide, let me know (should I run it on 9.0
stable to provide baseline maybe?)

-- 
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/20130205/525a2158/attachment-0001.html>


[Bug 59672] Problems initializing Radeon driver: lockup during IB test

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59672

Alex Deucher  changed:

   What|Removed |Added

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

-- 
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/20130205/ef51c59f/attachment.html>


[Bug 59672] Problems initializing Radeon driver: lockup during IB test

2013-02-05 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=59672

Florian Mickler  changed:

   What|Removed |Added

 CC||florian at mickler.org

--- Comment #11 from Florian Mickler  ---
A patch referencing this bug report has been merged in Linux v3.8-rc6:

commit b3dfcb207e550dffb8680cab7afaf6b4fb6eae33
Author: Michel D??nzer 
Date:   Thu Jan 24 19:02:01 2013 +0100

drm/radeon: Enable DMA_IB_SWAP_ENABLE on big endian hosts.

-- 
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/20130205/45cc455f/attachment.html>


Re: [PATCHv5,RESEND 1/8] gpu: host1x: Add host1x driver

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 07:30:08PM -0800, Terje Bergström wrote:
 On 04.02.2013 01:09, Thierry Reding wrote:
  On Tue, Jan 15, 2013 at 01:43:57PM +0200, Terje Bergstrom wrote:
  Add host1x, the driver for host1x and its client unit 2D.
  
  Maybe this could be a bit more verbose. Perhaps describe what host1x is.
 
 Sure. I could just steal the paragraph from Stephen:
 
 The Tegra host1x module is the DMA engine for register access to Tegra's
 graphics- and multimedia-related modules. The modules served by host1x
 are referred to as clients. host1x includes some other  functionality,
 such as synchronization.

Yes, that sound good.

  + err = host1x_syncpt_init(host);
  + if (err)
  + return err;
  [...]
  + host1x_syncpt_reset(host);
  
  Why separate host1x_syncpt_reset() from host1x_syncpt_init()? I see why
  it might be useful to have host1x_syncpt_reset() as a separate function
  but couldn't it be called as part of host1x_syncpt_init()?
 
 host1x_syncpt_init() is used for initializing the syncpt structures, and
 is called in probe. host1x_syncpt_reset() should be called whenever we
 think hardware state is lost, for example if VDD_CORE was rail gated due
 to system suspend.

My point was that you could include the call to host1x_syncpt_reset()
within host1x_syncpt_init(). That will keep unneeded code out of the
host1x_probe() function. Also you don't want to use the syncpoints
uninitialized, right?

  +#include hw/syncpt_hw.c
  
  Why include the source file here? Can't you compile it separately
  instead?
 
 It's because we need to compile with the hardware headers of that host1x
 version, because we haven't been good at keeping compatibility. So
 host1x01.c #includes version 01 headers, and syncpt_hw.c in this
 compilation unit gets compiled with that. 02 would include 02 headers,
 and syncpt_hw.c would get compiled with its register definitions etc.

Okay, fair enough.

  + */
  +static u32 syncpt_load_min(struct host1x_syncpt *sp)
  +{
  + struct host1x *dev = sp-dev;
  + u32 old, live;
  +
  + do {
  + old = host1x_syncpt_read_min(sp);
  + live = host1x_sync_readl(dev,
  + HOST1X_SYNC_SYNCPT_0 + sp-id * 4);
  + } while ((u32)atomic_cmpxchg(sp-min_val, old, live) != old);
  
  I think this warrants a comment.
 
 Sure. It just loops in case there's a race writing to min_val.

Oh, I see. That'd make a good comment. Is the cast to (u32) really
necessary?

  +/*
  + * Resets syncpoint and waitbase values to sw shadows
  + */
  +void host1x_syncpt_reset(struct host1x *dev)
  
  Maybe host1x_syncpt_flush() would be a better name given the above
  description? Reset does have this hardware reset connotation so my first
  intuition had been that this would reset the syncpt value to 0.
 
 Right, it actually reloads values stored in shadow registers back to
 host1x. Flush doesn't feel like it's conveying the meaning. Would
 host1x_syncpt_restore() work? That'd match with host1x_syncpt_save(),
 which just updates all shadow registers from hardware and is used just
 before host1x loses power.

Save/restore has the disadvantage of the direction not being implicit.
Save could mean save to hardware or save to software. The same is true
for restore. However if the direction is clearly defined, save and
restore work for me.

Maybe the comment could be changed to be more explicit. Something like:

/*
 * Write cached syncpoint and waitbase values to hardware.
 */

And for host1x_syncpt_save():

/*
 * For client-managed registers, update the cached syncpoint and
 * waitbase values by reading from the registers.
 */

  +/*
  + * Updates the last value read from hardware.
  + */
  +u32 host1x_syncpt_load_min(struct host1x_syncpt *sp)
  +{
  + u32 val;
  + val = sp-dev-syncpt_op.load_min(sp);
  + trace_host1x_syncpt_load_min(sp-id, val);
  +
  + return val;
  +}
  
  I don't know I understand what this means exactly. Does it read the
  value that hardware last incremented? Perhaps this will become clearer
  when you add a comment to the syncpt_load_min() implementation.
 
 It just loads the current syncpt value to shadow register. The shadow
 register is called min, because host1x tracks the range of sync point
 increments that hardware is still going to do, so min is the lower
 boundary of the range.
 
 max tells what the sync point is expected to reach for hardware to be
 considered idle.
 
 host1x will f.ex. nop out waits for sync point values outside the range,
 because hardware isn't good at handling syncpt value wrapping.

Maybe the function should be called host1x_syncpt_load() if there is no
equivalent way to load the maximum value (since there is no register to
read from).

  Also the syncpoint is not actually allocated here, so maybe
  host1x_syncpt_request() would be a better name. As a nice side-effect it
  makes the naming more similar to the 

Re: [PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread 김승우
Hi Inki,

On 2013년 02월 05일 12:03, Inki Dae wrote:
 2013/2/4 Sachin Kamat sachin.ka...@linaro.org:
 On 1 February 2013 18:28, Inki Dae daei...@gmail.com wrote:




 2013. 2. 1. 오후 8:52 Inki Dae inki@samsung.com 작성:



 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Sachin Kamat
 Sent: Friday, February 01, 2013 8:40 PM
 To: Inki Dae
 Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
 me...@vger.kernel.org; dri-devel@lists.freedesktop.org; devicetree-
 disc...@lists.ozlabs.org; patc...@linaro.org
 Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
 support for G2D

 On 1 February 2013 17:02, Inki Dae inki@samsung.com wrote:

 How about using like below?
Compatible = samsung,exynos4x12-fimg-2d /* for Exynos4212,
 Exynos4412  */
 It looks odd to use samsung,exynos4212-fimg-2d saying that this ip is
 for
 exynos4212 and exynos4412.

 AFAIK, compatible strings are not supposed to have any wildcard
 characters.
 Compatible string should suggest the first SoC that contained this IP.
 Hence IMO 4212 is OK.


 Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, 
 we should use samsung,exynos4210-fimg-2d as comparible string and add it 
 to exynos4210.dtsi?

 Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
 comptible string will be used for this one too.

 And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
 different, we might need to add ip version property or compatible string to 
 each dtsi file to identify the ip version.

 AFAIK, they both have the same IP (v4.1).

 
 Ok, let's use the below,
 
 For exynos4210 SoC,
 compatible = samsung,exynos4210-g2d
 
 For exynos4x12 SoCs,
 compatible = samsung,exynos4212-g2d
 
 For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
 has same ip)
 compatible = samsung,exynos5250-g2d
 
 To other guys,
 The device tree is used by not only v4l2 side but also drm side so we
 should reach an arrangement. So please give me ack if you agree to my
 opinion. Otherwise please, give me your opinions.

This seems good to me.

Best Regards,
- Seung-Woo Kim

 
 Thanks,
 Inki Dae
 
 

 Sorry but give me your opinions.

 Thanks,
 Inki Dae



 Got it. Please post it again.


 --
 With warm regards,
 Sachin
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

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



 --
 With warm regards,
 Sachin
 ___
 dri-devel mailing list
 dri-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel
 

-- 
Seung-Woo Kim
Samsung Software RD Center
--

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


Re: [PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Joonyoung Shim
On 02/05/2013 12:03 PM, Inki Dae wrote:
 2013/2/4 Sachin Kamat sachin.ka...@linaro.org:
 On 1 February 2013 18:28, Inki Dae daei...@gmail.com wrote:



 2013. 2. 1. 오후 8:52 Inki Dae inki@samsung.com 작성:


 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Sachin Kamat
 Sent: Friday, February 01, 2013 8:40 PM
 To: Inki Dae
 Cc: Sylwester Nawrocki; Kukjin Kim; Sylwester Nawrocki; linux-
 me...@vger.kernel.org; dri-devel@lists.freedesktop.org; devicetree-
 disc...@lists.ozlabs.org; patc...@linaro.org
 Subject: Re: [PATCH 2/2] drm/exynos: Add device tree based discovery
 support for G2D

 On 1 February 2013 17:02, Inki Dae inki@samsung.com wrote:
 How about using like below?
Compatible = samsung,exynos4x12-fimg-2d /* for Exynos4212,
 Exynos4412  */
 It looks odd to use samsung,exynos4212-fimg-2d saying that this ip is
 for
 exynos4212 and exynos4412.
 AFAIK, compatible strings are not supposed to have any wildcard
 characters.
 Compatible string should suggest the first SoC that contained this IP.
 Hence IMO 4212 is OK.

 Oops, one more thing. AFAIK Exynos4210 also has fimg-2d ip. In this case, 
 we should use samsung,exynos4210-fimg-2d as comparible string and add it 
 to exynos4210.dtsi?
 Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
 comptible string will be used for this one too.

 And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. If it's 
 different, we might need to add ip version property or compatible string to 
 each dtsi file to identify the ip version.
 AFAIK, they both have the same IP (v4.1).

 Ok, let's use the below,

 For exynos4210 SoC,
 compatible = samsung,exynos4210-g2d

 For exynos4x12 SoCs,
 compatible = samsung,exynos4212-g2d

 For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
 has same ip)
 compatible = samsung,exynos5250-g2d

 To other guys,
 The device tree is used by not only v4l2 side but also drm side so we
 should reach an arrangement. So please give me ack if you agree to my
 opinion. Otherwise please, give me your opinions.

I like this compatible, also we can use rule like this to HDMI of
drm/exynos.


 Thanks,
 Inki Dae


 Sorry but give me your opinions.

 Thanks,
 Inki Dae


 Got it. Please post it again.

 --
 With warm regards,
 Sachin
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 ___
 dri-devel mailing list
 dri-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel


 --
 With warm regards,
 Sachin
 ___
 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: [PATCHv5,RESEND 2/8] gpu: host1x: Add syncpoint wait and interrupts

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 08:29:08PM -0800, Terje Bergström wrote:
 On 04.02.2013 02:30, Thierry Reding wrote:
  diff --git a/drivers/gpu/host1x/dev.h b/drivers/gpu/host1x/dev.h
  index d8f5979..8376092 100644
  --- a/drivers/gpu/host1x/dev.h
  +++ b/drivers/gpu/host1x/dev.h
  @@ -17,11 +17,12 @@
   #ifndef HOST1X_DEV_H
   #define HOST1X_DEV_H
 
  +#include linux/platform_device.h
   #include syncpt.h
  +#include intr.h
 
   struct host1x;
   struct host1x_syncpt;
  -struct platform_device;
  
  Why include platform_device.h here?
 
 host1x_get_host() actually needs that, so this #include should've also
 been in previous patch.

No need to if you pass struct device * instead. You might need
linux/device.h instead, though.

  + void (*set_syncpt_threshold)(
  + struct host1x_intr *, u32 id, u32 thresh);
  + void (*enable_syncpt_intr)(struct host1x_intr *, u32 id);
  + void (*disable_syncpt_intr)(struct host1x_intr *, u32 id);
  + void (*disable_all_syncpt_intrs)(struct host1x_intr *);
  
  Can disable_all_syncpt_intrs() not be implemented generically using the
  number of syncpoints as exposed by host1x_device_info and the
  .disable_syncpt_intr() function?
 
 disable_all_syncpt_intrs() disables all interrupts in one write (or one
 per 32 sync points), so it's more efficient.

Yes, I noticed that and failed to remove this comment.

  +{
  + struct host1x_intr_syncpt *sp =
  + container_of(work, struct host1x_intr_syncpt, work);
  + host1x_syncpt_thresh_fn(sp);
  
  Couldn't we inline the host1x_syncpt_thresh_fn() implementation here?
  Why do we need to go through an external function declaration?
 
 If I move syncpt_thresh_work() to intr.c from intr_hw.c, I could do
 that. That'd simplify the interrupt path.

I like simplification. =)

  +static irqreturn_t syncpt_thresh_cascade_isr(int irq, void *dev_id)
  +{
  + struct host1x *host1x = dev_id;
  + struct host1x_intr *intr = host1x-intr;
  + unsigned long reg;
  + int i, id;
  +
  + for (i = 0; i  host1x-info.nb_pts / BITS_PER_LONG; i++) {
  + reg = host1x_sync_readl(host1x,
  + HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS +
  + i * REGISTER_STRIDE);
  + for_each_set_bit(id, reg, BITS_PER_LONG) {
  + struct host1x_intr_syncpt *sp =
  + intr-syncpt + (i * BITS_PER_LONG + id);
  + host1x_intr_syncpt_thresh_isr(sp);
  
  Have you considered mimicking the IRQ API and name this something like
  host1x_intr_syncpt_thresh_handle() and name the actual ISR just
  syncpt_thresh_isr()? Not so important but it makes things a bit clearer
  in my opinion.
 
 This gets a bit confusing, because we have an ISR that calls a function
 that is also called ISR. I've kept isr in names of both to emphasize
 that this is running in interrupt context. I'm open to renaming these to
 make it clearer.
 
 Did you refer to chained IRQ handler in linux/irq.h when you mentioned
 IRQ API as reference for naming?

What I had in mind was more along the lines of kernel/irq/chip.c, which
has a bunch of handlers for various types of interrupts, such as
handle_nested_irq() or handle_simple_irq().

Hence my proposal to rename host1x_intr_syncpt_thresh_isr() to
host1x_intr_syncpt_handle() because it handles the interrupt from a
single syncpoint and syncpt_thresh_cascade_isr() to syncpt_thresh_isr()
to keep it shorter.

Another variant would be host1x_syncpt_irq() for the top-level handler
and something host1x_handle_syncpt() to handle individual syncpoints. I
like this one best, but this is pure bike-shedding and there's nothing
technically wrong with the names you chose, so I can't really object if
you want to stick to them.

  + queue_work(intr-wq, sp-work);
  
  Should the call to queue_work() perhaps be moved into
  host1x_intr_syncpt_thresh_isr().
 
 I'm not sure, either way would be ok to me. The current structure allows
 host1x_intr_syncpt_thresh_isr() to only take one parameter
 (host1x_intr_syncpt). If we move queue_work, we'd also need to pass
 host1x_intr.

I think I'd still prefer to have all the code in one function because it
make subsequent modification easier and less error-prone.

  +static void host1x_intr_init_host_sync(struct host1x_intr *intr)
  +{
  + struct host1x *host1x = intr_to_host1x(intr);
  + int i, err;
  +
  + host1x_sync_writel(host1x, 0xUL,
  + HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE);
  + host1x_sync_writel(host1x, 0xUL,
  + HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS);
  +
  + for (i = 0; i  host1x-info.nb_pts; i++)
  + INIT_WORK(intr-syncpt[i].work, syncpt_thresh_cascade_fn);
  +
  + err = devm_request_irq(host1x-dev-dev, intr-syncpt_irq,
  + syncpt_thresh_cascade_isr,
  + IRQF_SHARED, host1x_syncpt, 

[Bug 60302] piglit failures r600g radeon hd 6850

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60302

Michel Dänzer mic...@daenzer.net changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #1 from Michel Dänzer mic...@daenzer.net ---
It's unrealistic to expect all piglit tests to pass, so I'm afraid this report
isn't useful.

Piglit is mostly useful in two ways:

* Regression testing, i.e. when a certain test used to pass but now fails, it's
good to try and get to the bottom of that and fix it.

* Specific tests reproducing failures which also affect real world apps. It's
usually easier to fix problems by investigating piglit tests than more complex
apps.

In both cases though, individual bugs should be reported for specific tests,
not a single one for all results as a whole.

-- 
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: [PATCHv5,RESEND 4/8] gpu: host1x: Add debug support

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 08:41:25PM -0800, Terje Bergström wrote:
 On 04.02.2013 03:03, Thierry Reding wrote:
  On Tue, Jan 15, 2013 at 01:44:00PM +0200, Terje Bergstrom wrote:
  diff --git a/drivers/gpu/host1x/debug.h b/drivers/gpu/host1x/debug.h
  [...]
  +struct output {
  +  void (*fn)(void *ctx, const char *str, size_t len);
  +  void *ctx;
  +  char buf[256];
  +};
  
  Do we really need this kind of abstraction? There really should be only
  one location where debug information is obtained, so I don't see a need
  for this.
 
 This is used by debugfs code to direct to debugfs, and
 nvhost_debug_dump() to send via printk.

Yes, that was precisely my point. Why bother providing the same data via
several output methods. debugfs is good for showing large amounts of
data such as register dumps or a tabular representation of syncpoints
for instance.

If, however, you want to interactively show debug information using
printk the same format isn't very useful and something more reduced is
often better.

  diff --git a/drivers/gpu/host1x/hw/debug_hw.c 
  b/drivers/gpu/host1x/hw/debug_hw.c
  
  +static int show_channel_command(struct output *o, u32 addr, u32 val, int 
  *count)
  +{
  +  unsigned mask;
  +  unsigned subop;
  +
  +  switch (val  28) {
  +  case 0x0:
  
  These can easily be derived by looking at the debug output, but it may
  still make sense to assign symbolic names to them.
 
 I have another suggestion. In downstream I removed the decoding part and
 I just print out a string of hex. That removes quite a bit bunch of code
 from kernel. It makes the debug output also more compact.
 
 It's much easier to write a user space program to decode than maintain
 it in kernel.

I don't know. I think if you use in-kernel debugging facilities such as
debugfs or printk, then the output should be self-explanatory. However I
do see the usefulness of having a binary dump that can be decoded in
userspace. But I think if we want to go that way we should make that a
separate interface. USB provides something like that, which can then be
fed to libpcap or wireshark to capture and analyze USB traffic. If done
properly you get replay functionality for free. I don't know what infra-
structure exists to help with implementing something similar.

So I think having debugfs output some data about syncpoints or the state
of channels might be useful to quickly diagnose a certain set of
problems but for anything more involved maybe a complete binary dump may
be better.

I'm not sure whether doing this would be acceptable though. Maybe Dave
or somebody else on the lists can answer that. An alternative way to
achieve the same would be to hook ioctl() from userspace and not do any
of it in kernel space.

  +static void show_channel_word(struct output *o, int *state, int *count,
  +  u32 addr, u32 val, struct host1x_cdma *cdma)
  +{
  +  static int start_count, dont_print;
  
  What if two processes read debug information at the same time?
 
 show_channels() acquires cdma.lock, so that shouldn't happen.

Okay. Another solution would be to pass around a debug context which
keeps track of the variables. But if we opt for a more involved dump
interface as discussed above this will no longer be relevant.

  +static void do_show_channel_gather(struct output *o,
  +  phys_addr_t phys_addr,
  +  u32 words, struct host1x_cdma *cdma,
  +  phys_addr_t pin_addr, u32 *map_addr)
  +{
  +  /* Map dmaget cursor to corresponding mem handle */
  +  u32 offset;
  +  int state, count, i;
  +
  +  offset = phys_addr - pin_addr;
  +  /*
  +   * Sometimes we're given different hardware address to the same
  +   * page - in these cases the offset will get an invalid number and
  +   * we just have to bail out.
  +   */
  
  Why's that?
 
 Because of a race - memory might've been unpinned and unmapped from
 IOMMU and when we re-map (pin), we are given a new address.
 
 But, I think this comment is a bit stale - we used to dump also old
 gathers. The latest code only dumps jobs in sync queue, so the race
 shouldn't happen.

Okay. In the context of a channel dump interface this may not be
relevant anymore. Can you think of any issue that wouldn't be detectable
or debuggable by analyzing a binary dump of the data within a channel?
I'm asking because at that point we wouldn't be able to access any of
the in-kernel data structures but would have to rely on the data itself
for diagnostics. IOMMU virtual addresses won't be available and so on.

  +static void host1x_debug_show_channel_cdma(struct host1x *m,
  +  struct host1x_channel *ch, struct output *o, int chid)
  +{
  [...]
  +  switch (cbstat) {
  +  case 0x00010008:
  
  Again, symbolic names would be nice.
 
 I propose I remove the decoding from kernel, and save 200 lines.

I think it could be more than 200 lines. If all we provide in the kernel
is some statistics about syncpoint usage or channel state that should be
a lot less code than we have now.

However that 

[Bug 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60294

Michel Dänzer mic...@daenzer.net changed:

   What|Removed |Added

   Assignee|mesa-dev@lists.freedesktop. |dri-devel@lists.freedesktop
   |org |.org
  Component|Other   |Drivers/Gallium/r600

--- Comment #9 from Michel Dänzer mic...@daenzer.net ---
Does setting the environment variable R600_LLVM=0 or building Mesa without
--enable-r600-llvm-compiler work around the problem?

-- 
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: [PATCHv5,RESEND 5/8] drm: tegra: Move drm to live under host1x

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 08:45:36PM -0800, Terje Bergström wrote:
 On 04.02.2013 03:08, Thierry Reding wrote:
  * PGP Signed by an unknown key
  
  On Tue, Jan 15, 2013 at 01:44:01PM +0200, Terje Bergstrom wrote:
  [...]
  diff --git a/drivers/gpu/host1x/Makefile b/drivers/gpu/host1x/Makefile
  index 697d49a..ffc8bf1 100644
  --- a/drivers/gpu/host1x/Makefile
  +++ b/drivers/gpu/host1x/Makefile
  @@ -12,4 +12,10 @@ host1x-y = \
 hw/host1x01.o
   
   host1x-$(CONFIG_TEGRA_HOST1X_CMA) += cma.o
  +
  +ccflags-y += -Iinclude/drm
  +ccflags-$(CONFIG_DRM_TEGRA_DEBUG) += -DDEBUG
  +
  +host1x-$(CONFIG_DRM_TEGRA) += drm/drm.o drm/fb.o drm/dc.o drm/host1x.o
  +host1x-$(CONFIG_DRM_TEGRA) += drm/output.o drm/rgb.o drm/hdmi.o
   obj-$(CONFIG_TEGRA_HOST1X) += host1x.o
  
  Can this be moved into a separate Makefile in the drm subdirectory?
 
 I tried, and kernel build helpfully created two .ko files. As having
 cyclic dependencies between two modules isn't nice, I merged them to
 same module and that seemed to force merging Makefile.
 
 If anybody has an idea on how to do it otherwise, I'd be happy to keep
 the Makefiles separate.

Okay, I'll take a look.

Thierry


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


Re: [PATCH 2/2] drm/exynos: Add device tree based discovery support for G2D

2013-02-05 Thread Sylwester Nawrocki
On 02/05/2013 04:03 AM, Inki Dae wrote:
[...]
 Exynos4210 has same g2d IP (v3.0) as C110 or V210; so the same
 comptible string will be used for this one too.

 And please check if exynos4212 and 4412 SoCs have same fimg-2d ip. 
 If it's different, we might need to add ip version property or compatible
 string to each dtsi file to identify the ip version.

 AFAIK, they both have the same IP (v4.1).

 
 Ok, let's use the below,
 
 For exynos4210 SoC,
 compatible = samsung,exynos4210-g2d

Since S5PV210 (Exynos3110 ??) seems to have same G2D IP, I guess
something like samsung,s5pv210-g2d could be used for both
S5PV210 (S5PC110) and Exynos4210 (S5PC210, S5PV310) ?
I'm fine with using samsung,exynos4210-g2d for Exynos4210 though.

For instance for tegra SoCs a conventions like nvidia,tegrachip-ip,
is used (e.g. nvidia,tegra20-gr2d).

 For exynos4x12 SoCs,
 compatible = samsung,exynos4212-g2d

I'm not sure how well exynos4212 is going to be supported in the kernel.
As Mr Park pointed out, if it is going to be nearly not existent then we
could perhaps go with samsung,exynos4412-g2d for Exynos4412 and
samsung,exynos4212-g2d for Exynos4212 (as needed). Anyway, I fine
with using samsung,exynos4212-g2d for both. I'd like to hear Mr Kim's
opinion on this as well though.

 For exynos5250, 5410 (In case of Exynos5440, I'm not sure that the SoC
 has same ip)
 compatible = samsung,exynos5250-g2d
 
 To other guys,
 The device tree is used by not only v4l2 side but also drm side so we
 should reach an arrangement. So please give me ack if you agree to my
 opinion. Otherwise please, give me your opinions.

It looks good to me, please just see the two remarks above.

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


Re: [PATCH v4 1/1] video: drm: exynos: Adds display-timing node parsing using video helper function

2013-02-05 Thread Paul Menzel
Dear Vikas,


thank you for the patch. Please send a fifth iteration with the
following changes to the commit message.

Am Dienstag, den 05.02.2013, 11:02 +0530 schrieb Vikas Sajjan:

The summary should not implicitly assume »patch« written before it. So
do not add third person s to »Add«.

video: drm: exynos: Add display-timing node parsing using video helper 
function

 This patch adds display-timing node parsing using video helper function

As this is the same as the summary you should leave it out. Also it is
good style not to use »This/The patch« in the commit message.

Please use the commit message to explain your change. For example the if
statement. Why is the original code put into the else branch and is not
needed if the first condition is true?

 Signed-off-by: Leela Krishna Amudala l.kris...@samsung.com
 Signed-off-by: Vikas Sajjan vikas.saj...@linaro.org
 ---
  drivers/gpu/drm/exynos/exynos_drm_fimd.c |   41 
 +++---
  1 file changed, 37 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
 b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 index bf0d9ba..978e866 100644
 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 @@ -19,6 +19,7 @@
  #include linux/clk.h
  #include linux/of_device.h
  #include linux/pm_runtime.h
 +#include linux/pinctrl/consumer.h
  
  #include video/samsung_fimd.h
  #include drm/exynos_drm.h
 @@ -905,16 +906,48 @@ static int __devinit fimd_probe(struct platform_device 
 *pdev)
   struct exynos_drm_subdrv *subdrv;
   struct exynos_drm_fimd_pdata *pdata;
   struct exynos_drm_panel_info *panel;
 + struct fb_videomode *fbmode;
 + struct pinctrl *pctrl;
   struct resource *res;
   int win;
   int ret = -EINVAL;
  
   DRM_DEBUG_KMS(%s\n, __FILE__);
  
 - pdata = pdev-dev.platform_data;
 - if (!pdata) {
 - dev_err(dev, no platform data specified\n);
 - return -EINVAL;
 + if (pdev-dev.of_node) {
 + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
 + if (!pdata) {
 + DRM_ERROR(memory allocation for pdata failed\n);
 + return -ENOMEM;
 + }
 +
 + fbmode = devm_kzalloc(dev, sizeof(*fbmode), GFP_KERNEL);
 + if (!fbmode) {
 + DRM_ERROR(memory allocation for fbmode failed\n);
 + return -ENOMEM;
 + }
 +
 + ret = of_get_fb_videomode(dev-of_node, fbmode, -1);
 + if (ret) {
 + DRM_ERROR(failed: of_get_fb_videomode() :
 + return value: %d\n, ret);
 + return ret;
 + }
 + pdata-panel.timing = (struct fb_videomode) *fbmode;
 +
 + pctrl = devm_pinctrl_get_select_default(dev);
 + if (IS_ERR_OR_NULL(pctrl)) {
 + DRM_ERROR(failed: devm_pinctrl_get_select_default()
 + return value: %d\n, PTR_RET(pctrl));
 + return PTR_RET(pctrl);
 + }
 +
 + } else {
 + pdata = pdev-dev.platform_data;
 + if (!pdata) {
 + DRM_ERROR(no platform data specified\n);
 + return -EINVAL;
 + }
   }
  
   panel = pdata-panel;


Thanks,

Paul


signature.asc
Description: This is a digitally signed message part
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCHv5,RESEND 8/8] drm: tegra: Add gr2d device

2013-02-05 Thread Thierry Reding
On Mon, Feb 04, 2013 at 09:17:45PM -0800, Terje Bergström wrote:
 On 04.02.2013 04:56, Thierry Reding wrote:
  On Tue, Jan 15, 2013 at 01:44:04PM +0200, Terje Bergstrom wrote:
  +{
  + struct host1x *host1x = drm-dev_private;
  + struct tegra_drm_syncpt_read_args *args = data;
  + struct host1x_syncpt *sp =
  + host1x_syncpt_get_bydev(host1x-dev, args-id);
  
  I don't know if we need this, except maybe to work around the problem
  that we have two different structures named host1x. The _bydev() suffix
  is misleading because all you really do here is obtain the syncpt from
  the host1x.
 
 Yeah, it's actually working around the host1x duplicate naming.
 host1x_syncpt_get takes struct host1x as parameter, but that's different
 host1x than in this code.

So maybe a better way would be to rename the DRM host1x after all. If it
avoids the need for workarounds such as this I think it justifies the
additional churn.

  Also, how useful is it to create a context? Looking at the gr2d
  implementation for .open_channel(), it will return the same channel to
  whichever userspace process requests them. Can you explain why it is
  necessary at all? From the name I would have expected some kind of
  context switching to take place when different applications submit
  requests to the same client, but that doesn't seem to be the case.
 
 Hardware context switching will be a later submit, and it'll actually
 create a new structure. Hardware context might live longer than the
 process that created it, so they'll need to be separate.

Why would it live longer than the process? Isn't the whole purpose of
the context to keep per-process state? What use is that state if the
process dies?

 We've used the context as a place for storing flags and the reference to
 hardware context. It'd allow also opening channels to multiple devices,
 and context would be used in submit to find out the target device. But
 as hardware context switching is not implemented in this patch set, and
 neither is support for anything but 2D, it's difficult to justify it.
 
 Perhaps the justification is that this way we can keep the kernel API
 stable even when we add support for hardware contexts and other clients.

We don't need a stable kernel API. But I guess it is fine to keep it if
for no other reason to fill the context returned in the ioctl() with
meaningful data.

  diff --git a/drivers/gpu/host1x/drm/drm.h b/drivers/gpu/host1x/drm/drm.h
  [...]
  +struct host1x_drm_fpriv {
  + struct list_head contexts;
   };
  
  Maybe name this host1x_drm_file. fpriv isn't very specific.
 
 host1x_drm_file sounds a bit odd, because it's not really a file, but a
 private data pointer stored in driver_priv.

The same is true for struct drm_file, which is stored in struct file's
.private_data field. I find it to be very intuitive if the inheritance
is reflected in the structure name. struct host1x_drm_file is host1x'
driver-specific part of struct drm_file.

  +static u32 handle_cma_to_host1x(struct drm_device *drm,
  + struct drm_file *file_priv, u32 gem_handle)
  +{
  + struct drm_gem_object *obj;
  + struct drm_gem_cma_object *cma_obj;
  + u32 host1x_handle;
  +
  + obj = drm_gem_object_lookup(drm, file_priv, gem_handle);
  + if (!obj)
  + return 0;
  +
  + cma_obj = to_drm_gem_cma_obj(obj);
  + host1x_handle = host1x_memmgr_host1x_id(mem_mgr_type_cma, 
  (u32)cma_obj);
  + drm_gem_object_unreference(obj);
  +
  + return host1x_handle;
  +}
  
  I though we had settled in previous reviews on only having a single
  allocator and not do the conversion between various types?
 
 I'll need to agree with Lucas on how to handle this. He intended to make
 a patch to fix this, but he hasn't had time to do that.
 
 But, I'd still like to keep the possibility open to add dma_buf as
 memory handle type, and fit that into the same API, so there's still a
 need to have the mem_mgr_type abstraction.

I fail to see how dma_buf would require a separate mem_mgr_type. Can we
perhaps postpone this to a later point and just go with CMA as the only
alternative for now until we have an actual working implementation that
we can use this for?

  +static int gr2d_submit(struct host1x_drm_context *context,
  + struct tegra_drm_submit_args *args,
  + struct drm_device *drm,
  + struct drm_file *file_priv)
  +{
  + struct host1x_job *job;
  + int num_cmdbufs = args-num_cmdbufs;
  + int num_relocs = args-num_relocs;
  + int num_waitchks = args-num_waitchks;
  + struct tegra_drm_cmdbuf __user *cmdbufs =
  + (void * __user)(uintptr_t)args-cmdbufs;
  + struct tegra_drm_reloc __user *relocs =
  + (void * __user)(uintptr_t)args-relocs;
  + struct tegra_drm_waitchk __user *waitchks =
  + (void * __user)(uintptr_t)args-waitchks;
  
  No need for all the uintptr_t casts.
 
 Will try to remove - 

[PATCH] drm/nouveau: fix lockdep splat in display

2013-02-05 Thread Maarten Lankhorst
Add a flag NVOBJ_FLAG_CREAT_EXCL, which will make sure that only 1 engctx will 
be created.
This removes the need of having multiple 

Fixes the following lockdep splat:

=
[ INFO: possible recursive locking detected ]
3.8.0-rc6-ninja+ #1 Not tainted
-
modprobe/585 is trying to acquire lock:
 (subdev-mutex){+.+.+.}, at: [a016c323]
nouveau_instobj_create_+0x43/0x90 [nouveau]

but task is already holding lock:
 (subdev-mutex){+.+.+.}, at: [a017672d]
nv50_disp_data_ctor+0x5d/0xd0 [nouveau]

other info that might help us debug this:
 Possible unsafe locking scenario:

CPU0

 lock(subdev-mutex);
 lock(subdev-mutex);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

4 locks held by modprobe/585:
 #0: (__lockdep_no_validate__){..}, at: [813075f3]
__driver_attach+0x53/0xb0
 #1: (__lockdep_no_validate__){..}, at: [81307601]
__driver_attach+0x61/0xb0
 #2: (drm_global_mutex){+.+.+.}, at: [812ee59c]
drm_get_pci_dev+0xbc/0x2b0
 #3: (subdev-mutex){+.+.+.}, at: [a017672d]
nv50_disp_data_ctor+0x5d/0xd0 [nouveau]

stack backtrace:
Pid: 585, comm: modprobe Not tainted 3.8.0-rc6-expert+ #1
Call Trace:
 [8108fde2] validate_chain.isra.33+0xd72/0x10d0
 [8105fa08] ? __kernel_text_address+0x58/0x80
 [8100575d] ? print_context_stack+0x5d/0xd0
 [81090bc1] __lock_acquire+0x3a1/0xb60
 [8108d504] ? __lock_is_held+0x54/0x80
 [8109184a] lock_acquire+0x5a/0x70
 [a016c323] ? nouveau_instobj_create_+0x43/0x90 [nouveau]
 [81558739] mutex_lock_nested+0x69/0x340
 [a016c323] ? nouveau_instobj_create_+0x43/0x90 [nouveau]
 [a0152370] ? nouveau_object_create_+0x60/0xa0 [nouveau]
 [a016c323] nouveau_instobj_create_+0x43/0x90 [nouveau]
 [a016cf8c] nv50_instobj_ctor+0x4c/0xf0 [nouveau]
 [a0152163] nouveau_object_ctor+0x33/0xc0 [nouveau]
 [a016cd51] nv50_instmem_alloc+0x21/0x30 [nouveau]
 [a0150917] nouveau_gpuobj_create_+0x247/0x2f0 [nouveau]
 [8155b35a] ? _raw_spin_unlock_irqrestore+0x3a/0x70
 [810921fd] ? trace_hardirqs_on_caller+0x10d/0x1a0
 [a014f4bc] nouveau_engctx_create_+0x25c/0x2a0 [nouveau]
 [a0176791] nv50_disp_data_ctor+0xc1/0xd0 [nouveau]
 [a0153722] ? nouveau_subdev_reset+0x52/0x60 [nouveau]
 [a0152163] nouveau_object_ctor+0x33/0xc0 [nouveau]
 [a0152a42] nouveau_object_new+0x112/0x240 [nouveau]
 [a01f4b1d] nv50_display_create+0x18d/0x860 [nouveau]
 [8105cb5d] ? __cancel_work_timer+0x6d/0xc0
 [a01db8eb] nouveau_display_create+0x3cb/0x670 [nouveau]
 [a01cb1bf] nouveau_drm_load+0x26f/0x590 [nouveau]
 [81304c99] ? device_register+0x19/0x20
 [812efe91] ? drm_sysfs_device_add+0x81/0xb0
 [812ee65e] drm_get_pci_dev+0x17e/0x2b0
 [81245e56] ? __pci_set_master+0x26/0x80
 [a01cab2a] nouveau_drm_probe+0x25a/0x2a0 [nouveau]
 [8124a386] local_pci_probe+0x46/0x80
 [8124ac11] pci_device_probe+0x101/0x110
 [813073d6] driver_probe_device+0x76/0x240
 [81307643] __driver_attach+0xa3/0xb0
 [813075a0] ? driver_probe_device+0x240/0x240
 [8130564d] bus_for_each_dev+0x4d/0x90
 [81306f39] driver_attach+0x19/0x20
 [81306af0] bus_add_driver+0x1a0/0x270
 [a023d000] ? 0xa023cfff
 [81307cd2] driver_register+0x72/0x170
 [a023d000] ? 0xa023cfff
 [8124ad0f] __pci_register_driver+0x5f/0x70
 [812ee8a5] drm_pci_init+0x115/0x130
 [a023d000] ? 0xa023cfff
 [a023d000] ? 0xa023cfff
 [a023d04d] nouveau_drm_init+0x4d/0x1000 [nouveau]
 [810002da] do_one_initcall+0x11a/0x170
 [8109d044] load_module+0xe84/0x1470
 [81098c30] ? in_lock_functions+0x20/0x20
 [8122c22e] ? trace_hardirqs_on_thunk+0x3a/0x3f
 [8109d6e7] sys_init_module+0xb7/0xe0
 [8155c156] system_call_fastpath+0x1a/0x1f

Reported-by: Arend van Spriel ar...@broadcom.com
Reported-by: Peter Hurley pe...@hurleysoftware.com
Reported-by: Daniel J Blueman dan...@quora.org
Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com
---
XXX: Add Cc: sta...@kernel.org if it applies to 3.7 ?

diff --git a/drivers/gpu/drm/nouveau/core/core/engctx.c 
b/drivers/gpu/drm/nouveau/core/core/engctx.c
index 84c71fa..4a0ab2b 100644
--- a/drivers/gpu/drm/nouveau/core/core/engctx.c
+++ b/drivers/gpu/drm/nouveau/core/core/engctx.c
@@ -31,12 +31,15 @@
 #include subdev/vm.h
 
 static inline int
-nouveau_engctx_exists(struct nouveau_object *parent,
+nouveau_engctx_exists(struct nouveau_object *parent, u32 flags,
  struct nouveau_engine *engine, void **pobject)
 {
struct nouveau_engctx *engctx;
struct nouveau_object *parctx;
 
+   if ((flags  NVOBJ_FLAG_CREAT_EXCL)  

[pull] drm-intel-next for 3.9

2013-02-05 Thread Daniel Vetter
Hi Dave,

Probably the last feature pull for 3.9, there's some fixes outstanding
thought that I'd like to sneak in. And maybe 3.8 takes a bit longer ...
Anyway, highlights of this pull:
- Kill the horrible IS_DISPLAYREG hack to handle the mmio offset movements
  on vlv, big thanks to Ville.
- Dynamic power well support for Haswell, shaves away a bit when only
  using the eDP port on pipe A (Paulo). Plus unclaimed register fixes
  uncovered by this.
- Clarifications of the gpu hang/reset state transitions, hopefully fixing
  a few spurious -EIO deaths in userspace.
- Haswell ELD fixes.
- Some more (pp)gtt cleanups from Ben.
- A few smaller things all over.

Plus all the stuff from the previous rather small pull request:
- Broadcast RBG improvements and reduced color range fixes from Ville.
- Ben is on a kill legacy gtt code for good spree, first pile of patches
  included.
- No-relocs and bo lut improvements for faster execbuf from Chris.
- Some refactorings from Imre.

QA filed tons of bugs this cycle, all due to us finally enabling all the
really anal timestamp and vblank counter checks in kms_flip, now that the
locking is fixed and EDID reads don't cause stalls any more. In short, our
vblank code seems to be ridiculously racy and broken :( Otoh that's not
really news.

Cheers, Daniel


The following changes since commit b5cc6c0387b2f8d269c1df1e68c97c958dd22fed:

  Merge tag 'drm-intel-next-2012-12-21' of 
git://people.freedesktop.org/~danvet/drm-intel into drm-next (2013-01-17 
20:34:08 +1000)

are available in the git repository at:


  git://people.freedesktop.org/~danvet/drm-intel tags/drm-intel-next-2013-02-01

for you to fetch changes up to 7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50:

  GPU/i915: Fix acpi_bus_get_device() check in 
drivers/gpu/drm/i915/intel_opregion.c (2013-02-01 11:01:50 +0100)


Ben Widawsky (16):
  drm/i915: Kill gtt_end
  drm/i915: Mappable_end can't ever be  end
  drm/i915: Remove gtt_mappable_total
  drm/i915: Create a gtt structure
  drm/i915: Remove use on gma_bus_addr on gen6+
  drm/i915: Remove use of gtt_mappable_entries
  drm/i915: Cut out the infamous ILK w/a from AGP layer
  drm/i915: Remove scratch page from shared
  drm/i915: Needs_dmar, not
  agp/intel: Add gma_bus_addr
  drm/i915: Implement WaVSRefCountFullforceMissDisable
  drm/i915: Error state should print /sys/kernel/debug
  drm/i915: Add probe and remove to the gtt ops
  drm/i915: remove intel_gtt structure
  drm/i915: Reclaim GTT space for failed PPGTT
  drm/i915: Fix CAGF for HSW

Changlong Xie (1):
  drm/i915: gen6_gmch_remove can be static

Chris Wilson (9):
  drm/i915: Add a debug interface to forcibly evict and shrink our object 
caches
  drm/i915: Bail if we attempt to allocate pages for a purged object
  drm/i915: Mark a temporary allocation for copy-from-user as such
  drm/i915: Take the handle idr spinlock once for looking up the exec 
objects
  drm/i915: Move the execbuffer objects list from the stack into the tracker
  drm/i915: Use the reloc.handle as an index into the execbuffer array
  drm/i915: Only insert the mb() before updating the fence parameter
  drm/i915: Only apply the mb() when flushing the GTT domain during a finish
  drm/i915: Only run idle processing from i915_gem_retire_requests_worker

Daniel Vetter (21):
  drm/i915: wake up all pageflip waiters
  drm/i915: Allow userspace to hint that the relocations were known
  drm/i915: move dev_priv-mm out of line
  drm/i915: extract hangcheck/reset/error_state state into substruct
  drm/i915: move wedged to the other gpu error handling stuff
  drm/i915: fix reset handling in the throttle ioctl
  drm/i915: clear up wedged transitions
  drm/i915: create a race-free reset detection
  drm/i915: clarify concurrent hang detect/gpu reset consistency
  drm/i915: fixup sbi_read/write locking
  drm/i915: move modeset checks out of save/restore_modeset_reg
  drm/i915: extract ums suspend/resume into i915_ums.c
  drm/i915: dont save/restore VGA state for kms
  drm/i915: move DP save/restore into i915_ums.c
  drm/i915: vfuncs for gtt_clear_range/insert_entries
  drm/i915: vfuncs for ppgtt
  drm/i915: pte_encode is gen6+
  drm/i915: extract hw ppgtt setup/cleanup code
  drm/i915: kill cargo-culted locking from power well code
  drm/i915: don't run hsw power well code on !hsw
  drm/i915: dynamic Haswell display power well support

Egbert Eich (1):
  drm/i915: Remove pch_rq_mask from struct drm_i915_private.

Imre Deak (3):
  drm/i915: merge get_gtt_alignment/get_unfenced_gtt_alignment()
  drm/i915: merge {i965, sandybridge}_write_fence_reg()
  drm/i915: use gtt_get_size() instead of open coding it

Jani Nikula (3):
  drm/i915: add quirk to invert brightness on eMachines G725
  

[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #3 from Paul Heldens pheld...@ziggo.nl ---
Created attachment 74238
  -- https://bugs.freedesktop.org/attachment.cgi?id=74238action=edit
screen shot Xonotic

-- 
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 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

Paul Heldens pheld...@ziggo.nl changed:

   What|Removed |Added

  Attachment #74238|0   |1
is obsolete||

--- Comment #4 from Paul Heldens pheld...@ziggo.nl ---
Created attachment 74239
  -- https://bugs.freedesktop.org/attachment.cgi?id=74239action=edit
screen shot Xonotic

-- 
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 60302] piglit failures r600g radeon hd 6850

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60302

--- Comment #2 from Corey Richardson co...@octayn.net ---
Good to know, thank you

-- 
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


[ANNOUNCE] libdrm 2.4.42

2013-02-05 Thread Maarten Lankhorst
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Alex Deucher (2):
  radeon: add OLAND family
  radeon: add OLAND pci ids

David Herrmann (1):
  man: fix manpage build instructions

Jesse Barnes (1):
  intel: add more VLV PCI IDs

Maarten Lankhorst (3):
  nouveau: use @PACKAGE_VERSION@ in libdrm_nouveau.pc
  libdrm: remove DISTCHECK_CONFIGURE_FLAGS
  configure.ac: bump version to 2.4.42 for release

Michel Dänzer (1):
  radeon: Fix 1D tiling layout on SI.

Thierry Reding (1):
  man: Fix typo and use $() for make expressions

git tag: libdrm-2.4.42

http://dri.freedesktop.org/libdrm/libdrm-2.4.42.tar.bz2
MD5:  a6e2e26951bcc920b2049b65e86a659f  libdrm-2.4.42.tar.bz2
SHA1: 7004899b6a80b2ee50f35f883cc14804c3e24188  libdrm-2.4.42.tar.bz2
SHA256: e0671082a77871c8474d3c0f09dbf5ff82d2429cd248088a691f7b484cbc76e1  
libdrm-2.4.42.tar.bz2

http://dri.freedesktop.org/libdrm/libdrm-2.4.42.tar.gz
MD5:  5f430bab316083378a12b10d0e0fe1a3  libdrm-2.4.42.tar.gz
SHA1: bf767be78ce7048e9a2e8fd3d7a79edea982ee4f  libdrm-2.4.42.tar.gz
SHA256: acb2a694071eb048328cd6b868265dc5de9ef27cab08f516f7a5740f2b15a0af  
libdrm-2.4.42.tar.gz

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBAgAGBQJREQZMAAoJEP5VjHKmcBPD3h8P/2ihE/OLOPHvMGNgcoPnCeFf
xUz1UMHwSNwjffi4OgijBRdqcoKIees79ZgdIvbD9bvd4lMAOiNx4e2jWHmk+1Ps
cvfoAmyrOP3iEi/m6yaMCbIkvKrmobDDSqpgMbNIK92lK+6Gb2mOcncJ6JFYydV2
AwNTvSsw3EqJMf/xkGXhNbRMkWfDRPE5IJg6uohYszTPyusLj7UHgc6IUotFoP+A
MVwwcB+DK/rbFBKjt3Q6f4me35Fw4Y2rTwrF+OL24RzpxRczqeo93ni32pI4MzTA
GX/WOFKN4R0x1BVXd9LTa7LCRzTzuFUupyNaOA8lqsFtsmgoU3b70FkXnGnHPiXs
7kWX0/lSP9gMYCpYGjY2i/b9BCDTPvOajxIWPRgFrk6W+eoQVvaeaaB3E6GX9em5
kcSLpuOZURMyLofN+bwRmWdHlp3FHM7wAL5KZK0s6YJiZhP/vRCdgf/s0XgnKfG2
oR9Q0fimScdeRMm2VNwbwZ/5AxCOZ2AjicppHh9lsscTXUQcPZwVPF3JL1PVsJOG
r+DHdVsRRWzMPDfcfbkDYxTt1s8wRmd7Muk895lAvuqvX0nFidA1w3tdYF6/8dEB
EKSGV5y/QMMdmK70Q9Nw8ueK/rSzL1n94qzQliXimxPwQ7GmTcd95bsMgqZuOqVx
cseyBzhI+fHcAdEBuJxu
=1nxZ
-END PGP SIGNATURE-

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


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #5 from Alex Deucher ag...@yahoo.com ---
(In reply to comment #1)
 linux 3.8-rc63.7.4 had it also

325422c49449acdd8df1eb2ca8ed81f7696c38cc (r600g: add async for staging buffer
upload v2) only takes affect on 3.8 kernels.  Previous kernels didn't support
the DMA rings.  So if you are seeing the same issue on multiple kernels, it's
either something else or you are seeing two issues.  It may be the same issue
as bug 58042.

-- 
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 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #10 from René Blokland pe1...@gmail.com ---
Created attachment 74247
  -- https://bugs.freedesktop.org/attachment.cgi?id=74247action=edit
my current config

-- 
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 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

smoki smoki00...@gmail.com changed:

   What|Removed |Added

  Attachment #74238|text/plain  |image/png
  mime type||

-- 
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 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #11 from René Blokland pe1...@gmail.com ---
(In reply to comment #8)
 It's not that I am a dev or something, but you should first consider
 upgrading the kernel. Releases from 3.8-rc2 to 3.8-rc6 include lot of fixes
 and maybe it could solve your problems.

I am running rc6 now and the same problems.

-- 
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 60294] Flashplayer crashing

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60294

--- Comment #12 from René Blokland pe1...@gmail.com ---
(In reply to comment #9)
 Does setting the environment variable R600_LLVM=0 or building Mesa without
 --enable-r600-llvm-compiler work around the problem?

without --enable-r600-llvm-compiler there is no change but R600_LLVM=0 solves
everything. Thanks

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


[Bug 60294] [LLVM] Flashplayer crashing

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60294

Michel Dänzer mic...@daenzer.net changed:

   What|Removed |Added

Summary|Flashplayer crashing|[LLVM] Flashplayer crashing

-- 
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] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Borislav Petkov
On Mon, Feb 04, 2013 at 04:41:22PM +0100, Maarten Lankhorst wrote:
 Hey,
 
 Op 04-02-13 16:23, Borislav Petkov schreef:
  Hi,
 
  I'm guessing someone has already triggered this on latest Linus' tree
  and has a fix?
 
  drivers/built-in.o: In function `nouveau_acpi_edid':
  /w/kernel/linux/drivers/gpu/drm/nouveau/nouveau_acpi.c:420: undefined 
  reference to `acpi_video_get_edid'
  make: *** [vmlinux] Error 1
 
  Btw, I got CONFIG_ACPI_VIDEO=m while CONFIG_DRM_NOUVEAU=y and this is
  probably the reason for the vmlinux link error.
 
  Thanks.
 
 Does this fix things?
 
 --8
 Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
 module if some of the deps for acpi_video
 have not been met, which would result in a linking failure. Solve this by 
 only requiring ACPI  X86 to select ACPI_VIDEO.
 
 Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com
 
 ---
 diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig
 index 8a55bee..f08b9b6 100644
 --- a/drivers/gpu/drm/nouveau/Kconfig
 +++ b/drivers/gpu/drm/nouveau/Kconfig
 @@ -10,7 +10,7 @@ config DRM_NOUVEAU
   select FB
   select FRAMEBUFFER_CONSOLE if !EXPERT
   select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
 - select ACPI_VIDEO if ACPI  X86  BACKLIGHT_CLASS_DEVICE  
 VIDEO_OUTPUT_CONTROL  INPUT
 + select ACPI_VIDEO if ACPI  X86
   select ACPI_WMI if ACPI
   select MXM_WMI if ACPI
   select POWER_SUPPLY

Not really.

drivers/built-in.o: In function `acpi_video_bus_put_one_device':
/root/kernel/linux/drivers/acpi/video.c:1407: undefined reference to 
`thermal_cooling_device_unregister'
drivers/built-in.o: In function `acpi_video_device_find_cap':
/root/kernel/linux/drivers/acpi/video.c:842: undefined reference to 
`thermal_cooling_device_register'
make: *** [vmlinux] Error 1

It is CONFIG_THERMAL=m this time.

Thanks.

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v2] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Maarten Lankhorst
Op 05-02-13 15:52, Borislav Petkov schreef:
 On Mon, Feb 04, 2013 at 04:41:22PM +0100, Maarten Lankhorst wrote:
 Hey,

 Op 04-02-13 16:23, Borislav Petkov schreef:
 Hi,

 I'm guessing someone has already triggered this on latest Linus' tree
 and has a fix?

 drivers/built-in.o: In function `nouveau_acpi_edid':
 /w/kernel/linux/drivers/gpu/drm/nouveau/nouveau_acpi.c:420: undefined 
 reference to `acpi_video_get_edid'
 make: *** [vmlinux] Error 1

 Btw, I got CONFIG_ACPI_VIDEO=m while CONFIG_DRM_NOUVEAU=y and this is
 probably the reason for the vmlinux link error.

 Thanks.

 Does this fix things?

 --8
 Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
 module if some of the deps for acpi_video
 have not been met, which would result in a linking failure. Solve this by 
 only requiring ACPI  X86 to select ACPI_VIDEO.

 Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com

 ---
 diff --git a/drivers/gpu/drm/nouveau/Kconfig 
 b/drivers/gpu/drm/nouveau/Kconfig
 index 8a55bee..f08b9b6 100644
 --- a/drivers/gpu/drm/nouveau/Kconfig
 +++ b/drivers/gpu/drm/nouveau/Kconfig
 @@ -10,7 +10,7 @@ config DRM_NOUVEAU
  select FB
  select FRAMEBUFFER_CONSOLE if !EXPERT
  select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
 -select ACPI_VIDEO if ACPI  X86  BACKLIGHT_CLASS_DEVICE  
 VIDEO_OUTPUT_CONTROL  INPUT
 +select ACPI_VIDEO if ACPI  X86
  select ACPI_WMI if ACPI
  select MXM_WMI if ACPI
  select POWER_SUPPLY
 Not really.

 drivers/built-in.o: In function `acpi_video_bus_put_one_device':
 /root/kernel/linux/drivers/acpi/video.c:1407: undefined reference to 
 `thermal_cooling_device_unregister'
 drivers/built-in.o: In function `acpi_video_device_find_cap':
 /root/kernel/linux/drivers/acpi/video.c:842: undefined reference to 
 `thermal_cooling_device_register'
 make: *** [vmlinux] Error 1

 It is CONFIG_THERMAL=m this time.

 Thanks.

Argh, next attempt, based on i915's Kconfig.

It seems that not only I have to select ACPI_VIDEO, I also have to select all 
the dependencies.
Is this a Kconfig bug or working as intended? i915 seems to have a workaround, 
so I copied it from
there. Except it's currently missing select THERMAL, so I guess it didn't get 
updated when that got
added.

8
Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
module
if some of the deps for acpi_video have not been met, which would result in a 
linking
failure. Solve this by selecting all dependencies as well.

Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com

---
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig
index 8a55bee..e84763a 100644
--- a/drivers/gpu/drm/nouveau/Kconfig
+++ b/drivers/gpu/drm/nouveau/Kconfig
@@ -10,10 +10,16 @@ config DRM_NOUVEAU
select FB
select FRAMEBUFFER_CONSOLE if !EXPERT
select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
-   select ACPI_VIDEO if ACPI  X86  BACKLIGHT_CLASS_DEVICE  
VIDEO_OUTPUT_CONTROL  INPUT
select ACPI_WMI if ACPI
select MXM_WMI if ACPI
select POWER_SUPPLY
+   # Similar to i915, we need to select ACPI_VIDEO and it's dependencies
+   select BACKLIGHT_LCD_SUPPORT if ACPI  X86
+   select BACKLIGHT_CLASS_DEVICE if ACPI  X86
+   select VIDEO_OUTPUT_CONTROL if ACPI  X86
+   select INPUT if ACPI  X86
+   select THERMAL if ACPI  X86
+   select ACPI_VIDEO if ACPI  X86
help
  Choose this option for open-source nVidia support.
 

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


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #6 from Paul Heldens pheld...@ziggo.nl ---
Tested it again to be sure 

Linux borgir 3.7.6 does NOT have the problem, pardon the mistake.

-- 
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 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #7 from Jerome Glisse gli...@freedesktop.org ---
And what GPU is this ? Because here it works ...

-- 
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 v2] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled.

2013-02-05 Thread Borislav Petkov
On Tue, Feb 05, 2013 at 04:38:35PM +0100, Maarten Lankhorst wrote:
 Argh, next attempt, based on i915's Kconfig.
 
 It seems that not only I have to select ACPI_VIDEO, I also have to select all 
 the dependencies.
 Is this a Kconfig bug or working as intended? i915 seems to have a 
 workaround, so I copied it from
 there. Except it's currently missing select THERMAL, so I guess it didn't get 
 updated when that got
 added.
 
 8
 Having nouveau builtin would still allow ACPI_VIDEO to be used as external 
 module
 if some of the deps for acpi_video have not been met, which would result in a 
 linking
 failure. Solve this by selecting all dependencies as well.
 
 Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com

Yep, this takes care of all deps,

Tested-by: Borislav Petkov b...@suse.de

Thanks.

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #8 from Paul Heldens pheld...@ziggo.nl ---
OpenGL renderer string: Gallium 0.4 on AMD RV730

-- 
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 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #9 from Andy Furniss li...@andyfurniss.entadsl.com ---
(In reply to comment #0)
 bisected to this commit
 
 325422c49449acdd8df1eb2ca8ed81f7696c38cc is the first bad commit
 commit 325422c49449acdd8df1eb2ca8ed81f7696c38cc
 Author: Jerome Glisse jgli...@redhat.com
 Date:   Mon Jan 7 17:45:59 2013 -0500
 
 r600g: add async for staging buffer upload v2
 
 v2: Add virtual address to dma src/dst offset for cayman
 
 Signed-off-by: Jerome Glisse jgli...@redhat.com
 
 :04 04 4ef6e784f3acb7f21da0c5e1923810c78917d16d
 55f0ce7d9793ce04d392fc7943059545053a9d79 Msrc

Looks correct to me on rv790.

I get nothing like the corruption in the screens, for me it's just the band at
the bottom of the screen and it's not always there (but seems to be reliable
first test after boot from power off).

I tested a couple of cycles with mesa reset just before this commit and
couldn't see the problem. With mesa on this commit I can see it.

Kernel is drm-fixes.

-- 
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 60236] corruption of text and bottom of screen in xonotic menus since 325422c49449acdd8df1eb2ca8ed81f7696c38cc

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=60236

--- Comment #10 from Paul Heldens pheld...@ziggo.nl ---
Yes for me this effect varies also

if I open , say a browser with a complex webpage, and then start xonotic again
the text may be garbled the 2nd start

its as if video memory or some caches get corrupted

-- 
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 v17 4/7] fbmon: add videomode helpers

2013-02-05 Thread Steffen Trumtrar
Hi!

On Fri, Feb 01, 2013 at 06:29:50PM +0900, Jingoo Han wrote:
 On Friday, January 25, 2013 6:02 PM, Steffen Trumtrar wrote
  
  +   fbmode-sync = 0;
  +   fbmode-vmode = 0;
  +   if (vm-dmt_flags  VESA_DMT_HSYNC_HIGH)
  +   fbmode-sync |= FB_SYNC_HOR_HIGH_ACT;
  +   if (vm-dmt_flags  VESA_DMT_HSYNC_HIGH)
 
 Um, it seems to be a type. 'H'SYNC - 'V'SYNC
 Thus, it would be changed as below:
 
 VESA_DMT_HSYNC_HIGH - VESA_DMT_VSYNC_HIGH

Damn. You are right, that is a typo. But I guess some maintainer (Dave) really,
really wants to take the series now and this can wait for an -rc. No?!  ;-)

Thanks,
Steffen

 
  +   fbmode-sync |= FB_SYNC_VERT_HIGH_ACT;
  +   if (vm-data_flags  DISPLAY_FLAGS_INTERLACED)
  +   fbmode-vmode |= FB_VMODE_INTERLACED;
  +   if (vm-data_flags  DISPLAY_FLAGS_DOUBLESCAN)
  +   fbmode-vmode |= FB_VMODE_DOUBLE;
  +   fbmode-flag = 0;
  +

-- 
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 43751] [TTM] Out of kernel memory

2013-02-05 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=43751





--- Comment #9 from cyberbat cyber...@lavabit.com  2013-02-05 20:11:50 ---
Created an attachment (id=92571)
 -- (https://bugzilla.kernel.org/attachment.cgi?id=92571)
Config of working linux-3.7.4

Tried a kernel 3.7.4 for some days and it seems to work with config attached.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 26891] Radeon KMS fails with inaccessible AtomBIOS on systems with (U)EFI boot

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=26891

--- Comment #53 from Benjamin Lee b...@b1c1l1.com ---
I can also confirm that Radeon KMS works on my MacBookPro8,2 with kernel
version 3.8-rc6 and EFI stub boot.  I also needed to add a device section to my
xorg.conf.

I don't see any video BIOS in /dev/mem so I guess it is loading from ACPI
instead.  Out of curiosity, I tried to load fglrx and it failed to find a valid
VBIOS so fglrx must not have the ACPI loading method.

blee@supra ~ $ sudo dd if=/dev/mem of=/dev/stdout bs=65536 skip=12 count=1
2/dev/null | hexdump
000        
*
001

[2.589927] [drm] Initialized drm 1.1.0 20060810
[2.589966] [drm] radeon defaulting to kernel modesetting.
[2.589969] [drm] radeon kernel modesetting enabled.
[2.590189] [drm] initializing kernel modesetting (TURKS 0x1002:0x6741
0x106B
:0x00E2).
[2.590226] [drm] register mmio base: 0xB080
[2.590229] [drm] register mmio size: 131072
[2.590253] ATOM BIOS: Apple
[2.590264] [drm] GPU not posted. posting now...
[2.599466] radeon :01:00.0: VRAM: 1024M 0x -
0x3
FFF (1024M used)
[2.599472] radeon :01:00.0: GTT: 512M 0x4000 -
0x5FF
F
[2.604787] [drm] Detected VRAM RAM=1024M, BAR=256M
[2.604793] [drm] RAM width 128bits DDR
[2.604843] [TTM] Zone  kernel: Available graphics memory: 4042710 kiB
[2.604846] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[2.604849] [TTM] Initializing pool allocator
[2.604858] [TTM] Initializing DMA pool allocator
[2.604893] [drm] radeon: 1024M of VRAM memory ready
[2.604896] [drm] radeon: 512M of GTT memory ready.
[2.604917] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[2.604920] [drm] Driver supports precise vblank timestamp query.
[2.604982] radeon :01:00.0: irq 45 for MSI/MSI-X
[2.604993] radeon :01:00.0: radeon: using MSI.
[2.605028] [drm] radeon: irq initialized.
[2.605033] [drm] GART: num cpu pages 131072, num gpu pages 131072
[2.605463] [drm] probing gen 2 caps for device 8086:101 = 2/0
[2.605470] [drm] PCIE gen 2 link speeds already enabled
[2.605534] [drm] Loading TURKS Microcode

-- 
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] drm/nouveau: add lockdep annotations

2013-02-05 Thread Ben Skeggs
On Mon, Feb 04, 2013 at 10:59:28PM +0100, Maarten Lankhorst wrote:
 Op 04-02-13 22:30, Marcin Slusarz schreef:
  1) Lockdep thinks all nouveau subdevs belong to the same class and can be
  locked in arbitrary order, which is not true (at least in general case).
  Tell it to distinguish subdevs by (o)class type.
 Apart from this specific case, is there any other reason why we require being 
 able to nest 2 subdev locks?
I think I tend to prefer Marcin's fix for this actually.  The subdev's
are completely separate classes of objects and as interaction between
them increases (PM will be very much like this), we may very well
require holding multiple subdev mutexes at once.

Ben.

 
 Add a NVOBJ_FLAG_CREATE_EXCLUSIVE flag to nouveau_engctx_create and return 
 -EBUSY if there is any existing object. Problem solved, and lockdep is still 
 generic.
 
  2) DRM client can be locked under user client lock - tell lockdep to put DRM
  client lock in a separate class.
 Can you copy paste a typical lockdep splat for this? Also this should be a 
 separate patch. :-)
 
 
  Reported-by: Arend van Spriel ar...@broadcom.com
  Reported-by: Peter Hurley pe...@hurleysoftware.com
  Reported-by: Maarten Lankhorst maarten.lankho...@canonical.com
  Reported-by: Daniel J Blueman dan...@quora.org
  Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
  Cc: sta...@vger.kernel.org [3.7, but needs s/const ofuncs/ofuncs/ to build]
  ---
  Lightly tested, only on NV4B and NVC1.
  ---
   drivers/gpu/drm/nouveau/core/core/subdev.c | 2 +-
   drivers/gpu/drm/nouveau/core/include/core/object.h | 7 +--
   drivers/gpu/drm/nouveau/nouveau_drm.c  | 3 +++
   3 files changed, 9 insertions(+), 3 deletions(-)
 
  diff --git a/drivers/gpu/drm/nouveau/core/core/subdev.c 
  b/drivers/gpu/drm/nouveau/core/core/subdev.c
  index f74c30a..48f0637 100644
  --- a/drivers/gpu/drm/nouveau/core/core/subdev.c
  +++ b/drivers/gpu/drm/nouveau/core/core/subdev.c
  @@ -99,7 +99,7 @@ nouveau_subdev_create_(struct nouveau_object *parent,
  if (ret)
  return ret;
   
  -   mutex_init(subdev-mutex);
  +   __mutex_init(subdev-mutex, subname, oclass-lock_class_key);
  subdev-name = subname;
   
  if (parent) {
  diff --git a/drivers/gpu/drm/nouveau/core/include/core/object.h 
  b/drivers/gpu/drm/nouveau/core/include/core/object.h
  index 6a90267..62e68ba 100644
  --- a/drivers/gpu/drm/nouveau/core/include/core/object.h
  +++ b/drivers/gpu/drm/nouveau/core/include/core/object.h
  @@ -50,10 +50,13 @@ int  nouveau_object_fini(struct nouveau_object *, bool 
  suspend);
   
   extern struct nouveau_ofuncs nouveau_object_ofuncs;
   
  +/* Don't allocate dynamically, because lockdep needs lock_class_keys to be 
  in
  + * .data. */
   struct nouveau_oclass {
  u32 handle;
  -   struct nouveau_ofuncs *ofuncs;
  -   struct nouveau_omthds *omthds;
  +   struct nouveau_ofuncs * const ofuncs;
  +   struct nouveau_omthds * const omthds;
  +   struct lock_class_key lock_class_key;
   };
   
   #define nv_oclass(o)nv_object(o)-oclass
  diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c 
  b/drivers/gpu/drm/nouveau/nouveau_drm.c
  index ef1ad21..bc00587 100644
  --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
  +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
  @@ -245,6 +245,8 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
  return 0;
   }
   
  +static struct lock_class_key drm_client_lock_class_key;
  +
   static int
   nouveau_drm_load(struct drm_device *dev, unsigned long flags)
   {
  @@ -256,6 +258,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long 
  flags)
  ret = nouveau_cli_create(pdev, DRM, sizeof(*drm), (void**)drm);
  if (ret)
  return ret;
  +   lockdep_set_class(drm-client.mutex, drm_client_lock_class_key);
   
  dev-dev_private = drm;
  drm-dev = dev;
 
 ___
 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]Siliconmotion initial patch

2013-02-05 Thread Daniel Vetter
On Tue, Feb 05, 2013 at 03:51:55PM +0800, Aaron.Chen  陈俊杰 wrote:
 This is an initial patch for Siliconmotion Graphics chips. It add SM750
 chip support with 2d accelerate and hw curser support. It is a complete
 new driver. So the patch is a little bit big. Is it OK for review?

Adding a new fbdev driver while established consensus pretty much boils
down to fbdev being a dead subsystem which should only be used for legacy
applications and drivers: Not good. You should implement this as a drm
modesetting driver, and if required base your 2d acceleration on top of
the drm fb helpers. Or just implement a drm/gem driver to expose this.

Additionally you should include the appropriate mailing lists, which is
linux-fbdev for fbdev drivers.

On a very quick read the patch has serious issues:

- checkpatch.pl:

total: 2 errors, 779 warnings, 7961 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
  scripts/cleanfile

- Remants of hungarian notation (dunno whether checkpatch checks for
  those, too much other stuff flying by, but it really stuck out).

- Not using the linux i2c layer in the ddk750_hwi2c.c file.

- Reimplementing i2c bit-banging code in the ddk750_swi2c.c

- Adding a new implementation of a sil 164 dvi driver, we already have at
  least two in drivers/gpu/drm/i2c/sil164_drv.c and
  drivers/gpu/drm/i915/dvo_sil164.c.  This should be unified and probably
  use the drm encoder slave framework.

At that point I've given up on further review, since there's clearly a lot
of work left to do. Please review SubmittingPatches from the kernel
documentation carefully. Also cc'ing our dear staging maintainer, he
should be able to point you at further useful resources for getting this
going.

Cheers, 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 59332] Problems building 32bit Mesa

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=59332

Mike Lothian m...@fireburn.co.uk changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #11 from Mike Lothian m...@fireburn.co.uk ---
Seems I had a rogue /usr/lib32/libstdc++.so causing problems with my 32bit
builds

Everything is working fine now with LLVM enabled

-- 
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 59332] Problems building 32bit Mesa

2013-02-05 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=59332

Matt Turner matts...@gmail.com changed:

   What|Removed |Added

 Blocks|59304   |

-- 
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] drm/fb-helper: improve kerneldoc

2013-02-05 Thread Daniel Vetter
On Fri, Feb 01, 2013 at 01:21:29PM +0100, Laurent Pinchart wrote:
 Hi Daniel,
 
 Thanks for improving the documentation :-)
 
 On Sunday 27 January 2013 18:42:16 Daniel Vetter wrote:
  Now that the fbdev helper interface for drivers is trimmed down,
  update the kerneldoc for all the remaining exported functions.
  
  I've tried to beat the DocBook a bit by reordering the function
  references a bit into a more sensible ordering. But that didn't work
  out at all. Hence just extend the in-code DOC: section a bit.
  
  Also remove the LOCKING: sections - especially for the setup functions
  they're totally bogus. But that's not a documentation problem, but
  simply an artifact of the current rather hazardous locking around drm
  init and even more so around fbdev setup ...
 
 Please see below for comments (I've reflowed the text to ease review).
 
  v2: Some further improvements:
  - Also add documentation for drm_fb_helper_single_add_all_connectors,
Dave Airlie didn't want me to kill this one from the fb helper
interface.
  - Update docs for drm_fb_helper_fill_var/fix - they should be used
from the driver's -fb_probe callback to setup the fbdev info
structure.
  - Clarify what the -fb_probe callback should all do - it needs to
setup both the fbdev info and allocate the drm framebuffer used as
backing storage.
  - Add basic documentaation for the drm_fb_helper_funcs driver callback
vfunc.
  
  Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
  
  moar kerneldoc
  ---
   Documentation/DocBook/drm.tmpl  |1 +
   drivers/gpu/drm/drm_fb_helper.c |  146 
   include/drm/drm_fb_helper.h |   11 +++
   3 files changed, 143 insertions(+), 15 deletions(-)
  
  diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
  index 6c11d77..14ad829 100644
  --- a/Documentation/DocBook/drm.tmpl
  +++ b/Documentation/DocBook/drm.tmpl
  @@ -2139,6 +2139,7 @@ void intel_crt_init(struct drm_device *dev)
 titlefbdev Helper Functions Reference/title
   !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers
   !Edrivers/gpu/drm/drm_fb_helper.c
  +!Iinclude/drm/drm_fb_helper.h
   /sect2
   sect2
 titleDisplay Port Helper Functions Reference/title
  diff --git a/drivers/gpu/drm/drm_fb_helper.c
  b/drivers/gpu/drm/drm_fb_helper.c index 5a92470..a7538cc 100644
  --- a/drivers/gpu/drm/drm_fb_helper.c
  +++ b/drivers/gpu/drm/drm_fb_helper.c
  @@ -52,9 +52,34 @@ static LIST_HEAD(kernel_fb_helper_list);
* mode setting driver. They can be used mostly independantely from the
 
 Now that you have removed one of the dependencies on the crtc helpers in your 
 drm/fb-helper: don't disable everything in initial_config patch, are there 
 others ? If not you can s/mostly //.

It's getting better, but a few of the driver callbacks used by the fb
helper are still in the crtc helper function tables. And there's the fb
helper private way to safe/restore gamma tables. But at least semantically
there's no dependency any longer after these patches I think.

 
* crtc helper functions used by many drivers to implement the kernel mode
* setting interfaces.
  + *
  + * Initialization is done as a three-step process with
  + * drm_fb_helper_init(), drm_fb_helper_single_add_all_connectors() and
  + * drm_fb_helper_initial_config(). Drivers with fancier requirements than
  + * the default beheviour can override the second step with their own code.
  + * Teardown is done with drm_fb_helper_fini().
  + *
  + * At runtime drivers should restore the fbdev console by calling
  + * drm_fb_helper_restore_fbdev_mode() from their -lastclose callback. They
  + * can also notify the fb helper code from updates to the output
 
 Is it can or must ? If can, in what conditions should they call 
 drm_fb_helper_restore_fbdev_mode() and in what conditions shouldn't they ?

I've figured that hpd support is optional, hence no must. I've opted for
a should instead. Also added a bit of text to suggest a good place to put
this call.

 
  + * configuration by calling drm_fb_helper_hotplug_event().
  + *
  + * All other functions exported by the fb helper library can be used to
  + * implement the fbdev driver interface by the driver.
*/
  
  -/* simple single crtc case helper function */
  +/**
  + * drm_fb_helper_single_add_all_connectors() - add all connectors to fbdev
  + *emulation helper
  + * @fb_helper: fbdev initialized with drm_fb_helper_init
  + *
  + * This functions adds all the available connectors for use with the given
  + * fb_helper. This is a separate step to allow drivers to freely assign or
  + * connectors to the fbdev, e.g. if some are reserved for special purposes
  + * not adequate to be used for the fbcon.
  + *
  + * Since this is part of the initial setup before the fbdev is published,
  + * no locking is required.
  + */
   int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper

[PATCH] drm/fb-helper: improve kerneldoc

2013-02-05 Thread Daniel Vetter
Now that the fbdev helper interface for drivers is trimmed down,
update the kerneldoc for all the remaining exported functions.

I've tried to beat the DocBook a bit by reordering the function
references a bit into a more sensible ordering. But that didn't work
out at all. Hence just extend the in-code DOC: section a bit.

Also remove the LOCKING: sections - especially for the setup functions
they're totally bogus. But that's not a documentation problem, but
simply an artifact of the current rather hazardous locking around drm
init and even more so around fbdev setup ...

v2: Some further improvements:
- Also add documentation for drm_fb_helper_single_add_all_connectors,
  Dave Airlie didn't want me to kill this one from the fb helper
  interface.
- Update docs for drm_fb_helper_fill_var/fix - they should be used
  from the driver's -fb_probe callback to setup the fbdev info
  structure.
- Clarify what the -fb_probe callback should all do - it needs to
  setup both the fbdev info and allocate the drm framebuffer used as
  backing storage.
- Add basic documentaation for the drm_fb_helper_funcs driver callback
  vfunc.

v3: Implement clarifications Lauren Pinchart suggested in his review.

Cc: Laurent Pinchart laurent.pinch...@ideasonboard.com
Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 Documentation/DocBook/drm.tmpl  |1 +
 drivers/gpu/drm/drm_fb_helper.c |  148 +++
 include/drm/drm_fb_helper.h |   12 
 3 files changed, 146 insertions(+), 15 deletions(-)

diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 6c11d77..14ad829 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -2139,6 +2139,7 @@ void intel_crt_init(struct drm_device *dev)
   titlefbdev Helper Functions Reference/title
 !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers
 !Edrivers/gpu/drm/drm_fb_helper.c
+!Iinclude/drm/drm_fb_helper.h
 /sect2
 sect2
   titleDisplay Port Helper Functions Reference/title
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 5a92470..b4cbef3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -52,9 +52,36 @@ static LIST_HEAD(kernel_fb_helper_list);
  * mode setting driver. They can be used mostly independantely from the crtc
  * helper functions used by many drivers to implement the kernel mode setting
  * interfaces.
+ *
+ * Initialization is done as a three-step process with drm_fb_helper_init(),
+ * drm_fb_helper_single_add_all_connectors() and 
drm_fb_helper_initial_config().
+ * Drivers with fancier requirements than the default beheviour can override 
the
+ * second step with their own code.  Teardown is done with 
drm_fb_helper_fini().
+ *
+ * At runtime drivers should restore the fbdev console by calling
+ * drm_fb_helper_restore_fbdev_mode() from their -lastclose callback. They
+ * should also notify the fb helper code from updates to the output
+ * configuration by calling drm_fb_helper_hotplug_event(). For easier
+ * integration with the output polling code in drm_crtc_helper.c the modeset
+ * code proves a -output_poll_changed callback.
+ *
+ * All other functions exported by the fb helper library can be used to
+ * implement the fbdev driver interface by the driver.
  */
 
-/* simple single crtc case helper function */
+/**
+ * drm_fb_helper_single_add_all_connectors() - add all connectors to fbdev
+ *emulation helper
+ * @fb_helper: fbdev initialized with drm_fb_helper_init
+ *
+ * This functions adds all the available connectors for use with the given
+ * fb_helper. This is a separate step to allow drivers to freely assign
+ * connectors to the fbdev, e.g. if some are reserved for special purposes or
+ * not adequate to be used for the fbcon.
+ *
+ * Since this is part of the initial setup before the fbdev is published, no
+ * locking is required.
+ */
 int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
 {
struct drm_device *dev = fb_helper-dev;
@@ -163,6 +190,10 @@ static void drm_fb_helper_restore_lut_atomic(struct 
drm_crtc *crtc)
crtc-funcs-gamma_set(crtc, r_base, g_base, b_base, 0, 
crtc-gamma_size);
 }
 
+/**
+ * drm_fb_helper_debug_enter - implementation for -fb_debug_enter
+ * @info: fbdev registered by the helper
+ */
 int drm_fb_helper_debug_enter(struct fb_info *info)
 {
struct drm_fb_helper *helper = info-par;
@@ -208,6 +239,10 @@ static struct drm_framebuffer *drm_mode_config_fb(struct 
drm_crtc *crtc)
return NULL;
 }
 
+/**
+ * drm_fb_helper_debug_leave - implementation for -fb_debug_leave
+ * @info: fbdev registered by the helper
+ */
 int drm_fb_helper_debug_leave(struct fb_info *info)
 {
struct drm_fb_helper *helper = info-par;
@@ -243,9 +278,9 @@ EXPORT_SYMBOL(drm_fb_helper_debug_leave);
  * drm_fb_helper_restore_fbdev_mode - restore fbdev configuration
  * @fb_helper: fbcon 

[PATCH v3 0/2] Get the HDMI IP block version from device tree

2013-02-05 Thread Sean Paul
This set changes the hdmi device tree node to properly represent the version of
the IP block. The first patch changes the drm hdmi driver to use the compatible
field to determine which registers/functions to call, and removes the
unfortunate v1.3/v1.4 naming convention. The second patch updates the arch-
specific bits for exynos5.

Changes in v3:
 - Use compatible field in device tree instead of hdmi-version field
 - Change hdmi driver's naming to use IP version instead of hdmi version


Sean Paul (2):
  drm/exynos: Get HDMI version from device tree
  ARM: Change exynos5-hdmi references to exynos4-hdmi

 .../devicetree/bindings/drm/exynos/hdmi.txt|9 +-
 arch/arm/boot/dts/exynos5250.dtsi  |3 +-
 arch/arm/mach-exynos/clock-exynos5.c   |4 +-
 arch/arm/mach-exynos/mach-exynos5-dt.c |4 +-
 drivers/gpu/drm/exynos/exynos_hdmi.c   |  354 ++--
 drivers/gpu/drm/exynos/regs-hdmi.h |   78 +++---
 6 files changed, 229 insertions(+), 223 deletions(-)

-- 
1.7.7.3

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


[PATCH v3 2/3] ARM: Change exynos5-hdmi references to exynos4-hdmi

2013-02-05 Thread Sean Paul
With the change drm/exynos: Get HDMI version from device tree,
exynos5-hdmi is no longer relevant. Update references to exynos4-hdmi
and update the hdmi compatibility string to accurately reflect the hdmi
driver.

Signed-off-by: Sean Paul seanp...@chromium.org
---
 arch/arm/boot/dts/exynos5250.dtsi  |3 ++-
 arch/arm/mach-exynos/clock-exynos5.c   |4 ++--
 arch/arm/mach-exynos/mach-exynos5-dt.c |4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5250.dtsi 
b/arch/arm/boot/dts/exynos5250.dtsi
index 3acf594..70464bf 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -573,7 +573,8 @@
};
 
hdmi {
-   compatible = samsung,exynos5-hdmi;
+   compatible = samsung,exynos5250-hdmi,
+samsung,exynos4212-hdmi, samsung,exynos4-hdmi;
reg = 0x1453 0x7;
interrupts = 0 95 0;
};
diff --git a/arch/arm/mach-exynos/clock-exynos5.c 
b/arch/arm/mach-exynos/clock-exynos5.c
index e9d7b80..6eae39d 100644
--- a/arch/arm/mach-exynos/clock-exynos5.c
+++ b/arch/arm/mach-exynos/clock-exynos5.c
@@ -686,12 +686,12 @@ static struct clk exynos5_init_clocks_off[] = {
.ctrlbit= (1  0),
}, {
.name   = hdmi,
-   .devname= exynos5-hdmi,
+   .devname= exynos4-hdmi,
.enable = exynos5_clk_ip_disp1_ctrl,
.ctrlbit= (1  6),
}, {
.name   = hdmiphy,
-   .devname= exynos5-hdmi,
+   .devname= exynos4-hdmi,
.enable = exynos5_clk_hdmiphy_ctrl,
.ctrlbit= (1  0),
}, {
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c 
b/arch/arm/mach-exynos/mach-exynos5-dt.c
index e99d3d8..0ccda72 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -97,8 +97,8 @@ static const struct of_dev_auxdata 
exynos5250_auxdata_lookup[] __initconst = {
exynos-gsc.2, NULL),
OF_DEV_AUXDATA(samsung,exynos5-gsc, EXYNOS5_PA_GSC3,
exynos-gsc.3, NULL),
-   OF_DEV_AUXDATA(samsung,exynos5-hdmi, 0x1453,
-   exynos5-hdmi, NULL),
+   OF_DEV_AUXDATA(samsung,exynos4-hdmi, 0x1453,
+   exynos4-hdmi, NULL),
OF_DEV_AUXDATA(samsung,exynos5-mixer, 0x1445,
exynos5-mixer, NULL),
OF_DEV_AUXDATA(samsung,mfc-v6, 0x1100, s5p-mfc-v6, NULL),
-- 
1.7.7.3

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


  1   2   >