<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/tilcdc, branch v3.12.62</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.12.62</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.12.62'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2014-10-31T14:11:32+00:00</updated>
<entry>
<title>drm/tilcdc: Fix the error path in tilcdc_load()</title>
<updated>2014-10-31T14:11:32+00:00</updated>
<author>
<name>Ezequiel Garcia</name>
<email>ezequiel@vanguardiasur.com.ar</email>
</author>
<published>2014-09-02T12:51:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=99a52137266e8cf196b0cd2facd325241e59e094'/>
<id>urn:sha1:99a52137266e8cf196b0cd2facd325241e59e094</id>
<content type='text'>
commit b478e336b3e75505707a11e78ef8b964ef0a03af upstream.

The current error path calls tilcdc_unload() in case of an error to release
the resources. However, this is wrong because not all resources have been
allocated by the time an error occurs in tilcdc_load().

To fix it, this commit adds proper labels to bail out at the different
stages in the load function, and release only the resources actually allocated.

Tested-by: Darren Etheridge &lt;detheridge@ti.com&gt;
Tested-by: Johannes Pointner &lt;johannes.pointner@br-automation.com&gt;
Signed-off-by: Ezequiel Garcia &lt;ezequiel@vanguardiasur.com.ar&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>drm/tilcdc: fix double kfree</title>
<updated>2014-09-18T14:39:59+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a84cc78e2adc8e099cd3ef8b0da555df11f25a26'/>
<id>urn:sha1:a84cc78e2adc8e099cd3ef8b0da555df11f25a26</id>
<content type='text'>
commit c9a3ad25eddfdb898114a9d73cdb4c3472d9dfca upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>drm/tilcdc: fix release order on exit</title>
<updated>2014-09-18T14:39:59+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a643641609ae76e8d1628ce72b40d826912f7b5a'/>
<id>urn:sha1:a643641609ae76e8d1628ce72b40d826912f7b5a</id>
<content type='text'>
commit eb565a2bbadc6a5030a6dbe58db1aa52453e7edf upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>drm/tilcdc: panel: fix leak when unloading the module</title>
<updated>2014-09-18T14:39:59+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=565c526606aad527140f036004c258feed9bae44'/>
<id>urn:sha1:565c526606aad527140f036004c258feed9bae44</id>
<content type='text'>
commit 3a49012224ca9016658a831a327ff6a7fe5bb4f9 upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>drm/tilcdc: tfp410: fix dangling sysfs connector node</title>
<updated>2014-09-18T14:39:58+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e2f57296d3f3c4f5cdf5aa4f4c26b3c68ff17005'/>
<id>urn:sha1:e2f57296d3f3c4f5cdf5aa4f4c26b3c68ff17005</id>
<content type='text'>
commit 16dcbdef404f4e87dab985494381939fe0a2d456 upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>drm/tilcdc: slave: fix dangling sysfs connector node</title>
<updated>2014-09-18T14:39:58+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d635b7b86ba2ad63957d091ea7c5e9d0b5de3136'/>
<id>urn:sha1:d635b7b86ba2ad63957d091ea7c5e9d0b5de3136</id>
<content type='text'>
commit daa15b4cd1eee58eb1322062a3320b1dbe5dc96e upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>drm/tilcdc: panel: fix dangling sysfs connector node</title>
<updated>2014-09-18T14:39:58+00:00</updated>
<author>
<name>Guido Martínez</name>
<email>guido@vanguardiasur.com.ar</email>
</author>
<published>2014-06-17T14:17:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ecb97789fc0fb7f6d9083dd4892c281cce0f65ad'/>
<id>urn:sha1:ecb97789fc0fb7f6d9083dd4892c281cce0f65ad</id>
<content type='text'>
commit e396900e649b0af31161634d87fe37076f46c12b upstream.

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;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux</title>
<updated>2013-09-05T17:17:26+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-05T17:17:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a09e9a7a4b907f2dfa9bdb2b98a1828ab4b340b2'/>
<id>urn:sha1:a09e9a7a4b907f2dfa9bdb2b98a1828ab4b340b2</id>
<content type='text'>
Pull drm tree changes from Dave Airlie:
 "This is the main drm pull request, I have some overlap with sound and
  arm-soc, the sound patch is acked and may conflict based on -next
  reports but should be a trivial fixup, which I'll leave to you!

  Highlights:

   - new drivers:

     MSM driver from Rob Clark

   - non-drm:

     switcheroo and hdmi audio driver support for secondary GPU
     poweroff, so drivers can use runtime PM to poweroff the GPUs.  This
     can save 5 or 6W on some optimus laptops.

   - drm core:

     combined GEM and TTM VMA manager
     per-filp mmap permission tracking
     initial rendernode support (via a runtime enable for now, until we get api stable),
     remove old proc support,
     lots of cleanups of legacy code
     hdmi vendor infoframes and 4k modes
     lots of gem/prime locking and races fixes
     async pageflip scaffolding
     drm bridge objects

   - i915:

     Haswell PC8+ support and eLLC support, HDMI 4K support, initial
     per-process VMA pieces, watermark reworks, convert to generic hdmi
     infoframes, encoder reworking, fastboot support,

   - radeon:

     CIK PM support, remove 3d blit code in favour of DMA engines,
     Berlin GPU support, HDMI audio fixes

   - nouveau:

     secondary GPU power down support for optimus laptops, lots of
     fixes, use MSI, VP3 engine support

   - exynos:

     runtime pm support for g2d, DT support, remove non-DT,

   - tda998x i2c driver:

     lots of fixes for sync issues

   - gma500:

     lots of cleanups

   - rcar:

     add LVDS support, fbdev emulation,

   - tegra:

     just minor fixes"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits)
  drm/exynos: Fix build error with exynos_drm_connector.c
  drm/exynos: Remove non-DT support in exynos_drm_fimd
  drm/exynos: Remove non-DT support in exynos_hdmi
  drm/exynos: Remove non-DT support in exynos_drm_g2d
  drm/exynos: Remove non-DT support in exynos_hdmiphy
  drm/exynos: Remove non-DT support in exynos_ddc
  drm/exynos: Make Exynos DRM drivers depend on OF
  drm/exynos: Consider fallback option to allocation fail
  drm/exynos: fimd: move platform data parsing to separate function
  drm/exynos: fimd: get signal polarities from device tree
  drm/exynos: fimd: replace struct fb_videomode with videomode
  drm/exynos: check a pixel format to a particular window layer
  drm/exynos: fix fimd pixel format setting
  drm/exynos: Add NULL pointer check
  drm/exynos: Remove redundant error messages
  drm/exynos: Add missing of.h header include
  drm/exynos: Remove redundant NULL check in exynos_drm_buf
  drm/exynos: add device tree support for rotator
  drm/exynos: Add missing includes
  drm/exynos: add runtime pm interfaces to g2d driver
  ...
</content>
</entry>
<entry>
<title>drm: Pass page flip ioctl flags to driver</title>
<updated>2013-08-29T23:24:54+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2013-07-23T01:49:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ed8d19756e80ec63003a93aa4d70406e6ba61522'/>
<id>urn:sha1:ed8d19756e80ec63003a93aa4d70406e6ba61522</id>
<content type='text'>
This lets drivers see the flags requested by the application

[airlied: fixup for rcar/imx/msm]

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@gmail.com&gt;
</content>
</entry>
<entry>
<title>i2c: move OF helpers into the core</title>
<updated>2013-08-23T08:22:20+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@the-dreams.de</email>
</author>
<published>2013-07-11T11:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=687b81d083c082bc1e853032e3a2a54f8c251d27'/>
<id>urn:sha1:687b81d083c082bc1e853032e3a2a54f8c251d27</id>
<content type='text'>
I2C of helpers used to live in of_i2c.c but experience (from SPI) shows
that it is much cleaner to have this in the core. This also removes a
circular dependency between the helpers and the core, and so we can
finally register child nodes in the core instead of doing this manually
in each driver. So, fix the drivers and documentation, too.

Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
</feed>
