<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu/drm/tilcdc, branch v3.17</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.17</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.17'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2014-07-10T02:01:38Z</updated>
<entry>
<title>drm/tilcdc: Fix build breakage</title>
<updated>2014-07-10T02:01:38Z</updated>
<author>
<name>Sachin Kamat</name>
<email>sachin.kamat@samsung.com</email>
</author>
<published>2014-07-09T11:42:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=62eb3e20f8f3ca9de4a17f87effe534d6a691176'/>
<id>urn:sha1:62eb3e20f8f3ca9de4a17f87effe534d6a691176</id>
<content type='text'>
Commit 34ea3d386347 ("drm: add register and unregister functions
for connectors") probably missed out converting the
drm_sysfs_connector_remove instances in the following files.
Without this patch we get the following compilation error:
ERROR: "drm_sysfs_connector_remove" [drivers/gpu/drm/tilcdc/tilcdc.ko] undefined!

Signed-off-by: Sachin Kamat &lt;sachin.kamat@samsung.com&gt;
CC: Thomas Wood &lt;thomas.wood@intel.com&gt;
CC: David Herrmann &lt;dh.herrmann@gmail.com&gt;
CC: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: oops a Module.symvers snuck in</title>
<updated>2014-07-09T01:05:08Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2014-07-09T01:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1f834c32b758f0a30ae2d7a89f7bae54000faf2e'/>
<id>urn:sha1:1f834c32b758f0a30ae2d7a89f7bae54000faf2e</id>
<content type='text'>
remove it.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: replace late_initcall with module_init</title>
<updated>2014-07-08T01:25:37Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2023d84d2c3b7a4b8fc5c64c08c59c4e1505e2d3'/>
<id>urn:sha1:2023d84d2c3b7a4b8fc5c64c08c59c4e1505e2d3</id>
<content type='text'>
Use module_init instead of late_initcall, as is the norm for modular
drivers.

module_init was used until 6e8de0bd6a51fdeebd5d975c4fcc426f730b339b
("drm/tilcdc: add encoder slave (v2)") changed it to a late_initcall,
but it does not explain why. Tests show it's working properly with
module_init.

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: remove submodule destroy calls</title>
<updated>2014-07-08T01:25:32Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7cdcce9f8b4c15dc55f880307b844a49127db86e'/>
<id>urn:sha1:7cdcce9f8b4c15dc55f880307b844a49127db86e</id>
<content type='text'>
The TI tilcdc driver is designed with a notion of submodules. Currently,
at unload time, these submodules are iterated and destroyed.

Now that the tilcdc remove order is fixed, this can be handled perfectly
by the kernel using the device infrastructure, since each submodule
is a kernel driver itself, and they are only destroy()'ed at unload
time. Therefore we move the destroy() functionality to each submodule's
remove().

Also, remove some checks in the unloading process since the new code
guarantees the resources are allocated and need a release.

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: fix double kfree</title>
<updated>2014-07-08T01:25:26Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c9a3ad25eddfdb898114a9d73cdb4c3472d9dfca'/>
<id>urn:sha1:c9a3ad25eddfdb898114a9d73cdb4c3472d9dfca</id>
<content type='text'>
display_timings_release calls kfree on the display_timings object passed
to it. Calling kfree after it is wrong. SLUB debug showed the following
warning:

    =============================================================================
    BUG kmalloc-64 (Tainted: G        W    ): Object already free
    -----------------------------------------------------------------------------

    Disabling lock debugging due to kernel taint
    INFO: Allocated in of_get_display_timings+0x2c/0x214 age=601 cpu=0
    pid=884
     __slab_alloc.constprop.79+0x2e0/0x33c
     kmem_cache_alloc+0xac/0xdc
     of_get_display_timings+0x2c/0x214
     panel_probe+0x7c/0x314 [tilcdc]
     platform_drv_probe+0x18/0x48
     [..snip..]
    INFO: Freed in panel_destroy+0x18/0x3c [tilcdc] age=0 cpu=0 pid=907
     __slab_free+0x34/0x330
     panel_destroy+0x18/0x3c [tilcdc]
     tilcdc_unload+0xd0/0x118 [tilcdc]
     drm_dev_unregister+0x24/0x98
     [..snip..]

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: fix release order on exit</title>
<updated>2014-07-08T01:25:21Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=eb565a2bbadc6a5030a6dbe58db1aa52453e7edf'/>
<id>urn:sha1:eb565a2bbadc6a5030a6dbe58db1aa52453e7edf</id>
<content type='text'>
Unregister resources in the correct order on tilcdc_drm_fini, which is
the reverse order they were registered during tilcdc_drm_init.

This also means unregistering the driver before releasing its resources.

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: panel: fix leak when unloading the module</title>
<updated>2014-07-08T01:25:14Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3a49012224ca9016658a831a327ff6a7fe5bb4f9'/>
<id>urn:sha1:3a49012224ca9016658a831a327ff6a7fe5bb4f9</id>
<content type='text'>
The driver did not unregister the allocated framebuffer, which caused
memory leaks (and memory manager WARNs) when unloading. Also, the
framebuffer device under /dev still existed after unloading.

Add a call to drm_fbdev_cma_fini when unloading the module to prevent
both issues.

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: tfp410: fix dangling sysfs connector node</title>
<updated>2014-07-08T01:25:08Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=16dcbdef404f4e87dab985494381939fe0a2d456'/>
<id>urn:sha1:16dcbdef404f4e87dab985494381939fe0a2d456</id>
<content type='text'>
Add a drm_sysfs_connector_remove call when we destroy the panel to make
sure the connector node in sysfs gets deleted.

This is required for proper unload and re-load of this driver, otherwise
we will get a warning about a duplicate filename in sysfs.

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: slave: fix dangling sysfs connector node</title>
<updated>2014-07-08T01:24:57Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=daa15b4cd1eee58eb1322062a3320b1dbe5dc96e'/>
<id>urn:sha1:daa15b4cd1eee58eb1322062a3320b1dbe5dc96e</id>
<content type='text'>
Add a drm_sysfs_connector_remove call when we destroy the panel to make
sure the connector node in sysfs gets deleted.

This is required for proper unload and re-load of this driver as a
module. Without this, we would get a warning at re-load time like so:

   tda998x 0-0070: found TDA19988
   ------------[ cut here ]------------
   WARNING: CPU: 0 PID: 825 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
   sysfs: cannot create duplicate filename '/class/drm/card0-HDMI-A-1'
   Modules linked in: [..]
   CPU: 0 PID: 825 Comm: modprobe Not tainted 3.15.0-rc4-00027-g9dcdef4 #82
   [&lt;c0013bb8&gt;] (unwind_backtrace) from [&lt;c0011824&gt;] (show_stack+0x10/0x14)
   [&lt;c0011824&gt;] (show_stack) from [&lt;c0034e8c&gt;] (warn_slowpath_common+0x68/0x88)
   [&lt;c0034e8c&gt;] (warn_slowpath_common) from [&lt;c0034edc&gt;] (warn_slowpath_fmt+0x30/0x40)
   [&lt;c0034edc&gt;] (warn_slowpath_fmt) from [&lt;c01243f4&gt;] (sysfs_warn_dup+0x54/0x74)
   [&lt;c01243f4&gt;] (sysfs_warn_dup) from [&lt;c0124708&gt;] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
   [&lt;c0124708&gt;] (sysfs_do_create_link_sd.isra.2) from [&lt;c02ae37c&gt;] (device_add+0x338/0x520)
   [&lt;c02ae37c&gt;] (device_add) from [&lt;c02ae6e8&gt;] (device_create_groups_vargs+0xa0/0xc4)
   [&lt;c02ae6e8&gt;] (device_create_groups_vargs) from [&lt;c02ae758&gt;] (device_create+0x24/0x2c)
   [&lt;c02ae758&gt;] (device_create) from [&lt;c029b4ec&gt;] (drm_sysfs_connector_add+0x64/0x204)
   [&lt;c029b4ec&gt;] (drm_sysfs_connector_add) from [&lt;bf0b1b40&gt;] (slave_modeset_init+0x120/0x1bc [tilcdc])
   [&lt;bf0b1b40&gt;] (slave_modeset_init [tilcdc]) from [&lt;bf0b2be8&gt;] (tilcdc_load+0x214/0x4c0 [tilcdc])
   [&lt;bf0b2be8&gt;] (tilcdc_load [tilcdc]) from [&lt;c029955c&gt;] (drm_dev_register+0xa4/0x104)
      [..snip..]
   ---[ end trace 4df8d614936ebdee ]---
   [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: panel: fix dangling sysfs connector node</title>
<updated>2014-07-08T01:24:51Z</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e396900e649b0af31161634d87fe37076f46c12b'/>
<id>urn:sha1:e396900e649b0af31161634d87fe37076f46c12b</id>
<content type='text'>
Add a drm_sysfs_connector_remove call when we destroy the panel to make
sure the connector node in sysfs gets deleted.

This is required for proper unload and re-load of this driver as a
module. Without this, we would get a warning at re-load time like so:

   ------------[ cut here ]------------
   WARNING: CPU: 0 PID: 824 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
   sysfs: cannot create duplicate filename '/class/drm/card0-LVDS-1'
   Modules linked in: [...]
   CPU: 0 PID: 824 Comm: modprobe Not tainted 3.15.0-rc4-00027-g6484f96-dirty #81
   [&lt;c0013bb8&gt;] (unwind_backtrace) from [&lt;c0011824&gt;] (show_stack+0x10/0x14)
   [&lt;c0011824&gt;] (show_stack) from [&lt;c0034e8c&gt;] (warn_slowpath_common+0x68/0x88)
   [&lt;c0034e8c&gt;] (warn_slowpath_common) from [&lt;c0034edc&gt;] (warn_slowpath_fmt+0x30/0x40)
   [&lt;c0034edc&gt;] (warn_slowpath_fmt) from [&lt;c01243f4&gt;] (sysfs_warn_dup+0x54/0x74)
   [&lt;c01243f4&gt;] (sysfs_warn_dup) from [&lt;c0124708&gt;] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
   [&lt;c0124708&gt;] (sysfs_do_create_link_sd.isra.2) from [&lt;c02ae37c&gt;] (device_add+0x338/0x520)
   [&lt;c02ae37c&gt;] (device_add) from [&lt;c02ae6e8&gt;] (device_create_groups_vargs+0xa0/0xc4)
   [&lt;c02ae6e8&gt;] (device_create_groups_vargs) from [&lt;c02ae758&gt;] (device_create+0x24/0x2c)
   [&lt;c02ae758&gt;] (device_create) from [&lt;c029b4ec&gt;] (drm_sysfs_connector_add+0x64/0x204)
   [&lt;c029b4ec&gt;] (drm_sysfs_connector_add) from [&lt;bf0b1fec&gt;] (panel_modeset_init+0xb8/0x134 [tilcdc])
   [&lt;bf0b1fec&gt;] (panel_modeset_init [tilcdc]) from [&lt;bf0b2bf0&gt;] (tilcdc_load+0x214/0x4c0 [tilcdc])
   [&lt;bf0b2bf0&gt;] (tilcdc_load [tilcdc]) from [&lt;c029955c&gt;] (drm_dev_register+0xa4/0x104)
      [ .. snip .. ]
   ---[ end trace b2d09cd9578b0497 ]---
   [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17

Signed-off-by: Guido Martínez &lt;guido@vanguardiasur.com.ar&gt;
Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v3.9+
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
</feed>
