<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/video/efifb.c, branch master</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>video: move fbdev to drivers/video/fbdev</title>
<updated>2014-04-17T05:10:19+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ti.com</email>
</author>
<published>2014-02-13T13:31:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f7018c21350204c4cf628462f229d44d03545254'/>
<id>f7018c21350204c4cf628462f229d44d03545254</id>
<content type='text'>
The drivers/video directory is a mess. It contains generic video related
files, directories for backlight, console, linux logo, lots of fbdev
device drivers, fbdev framework files.

Make some order into the chaos by creating drivers/video/fbdev
directory, and move all fbdev related files there.

No functionality is changed, although I guess it is possible that some
subtle Makefile build order related issue could be created by this
patch.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Rob Clark &lt;robdclark@gmail.com&gt;
Acked-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The drivers/video directory is a mess. It contains generic video related
files, directories for backlight, console, linux logo, lots of fbdev
device drivers, fbdev framework files.

Make some order into the chaos by creating drivers/video/fbdev
directory, and move all fbdev related files there.

No functionality is changed, although I guess it is possible that some
subtle Makefile build order related issue could be created by this
patch.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Rob Clark &lt;robdclark@gmail.com&gt;
Acked-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbdev: efifb: add dev-&gt;remove() callback</title>
<updated>2014-03-07T13:30:49+00:00</updated>
<author>
<name>David Herrmann</name>
<email>dh.herrmann@gmail.com</email>
</author>
<published>2014-01-23T14:14:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=65b4021ed67622b675b431fc2f3633b2af8cea6d'/>
<id>65b4021ed67622b675b431fc2f3633b2af8cea6d</id>
<content type='text'>
If x86-sysfb platform-devices are removed from a system, we should
properly unload efifb. Otherwise, we end up releasing the parent while our
efi framebuffer is still running. This currently works just fine, but will
cause problems on handover to real hw. So add the -&gt;remove() callback and
unregister efifb.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If x86-sysfb platform-devices are removed from a system, we should
properly unload efifb. Otherwise, we end up releasing the parent while our
efi framebuffer is still running. This currently works just fine, but will
cause problems on handover to real hw. So add the -&gt;remove() callback and
unregister efifb.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>framebuffer: Use fb_&lt;level&gt;</title>
<updated>2013-10-29T10:53:07+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2013-09-20T01:35:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=31b6780c15a4e3a90fe260e977f5186772ce7afb'/>
<id>31b6780c15a4e3a90fe260e977f5186772ce7afb</id>
<content type='text'>
Neaten and shorten the code using the new fb_&lt;level&gt; macros.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Neaten and shorten the code using the new fb_&lt;level&gt; macros.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>efifb: prevent null-deref when iterating dmi_list</title>
<updated>2013-10-29T10:41:46+00:00</updated>
<author>
<name>James Bates</name>
<email>james.h.bates@gmail.com</email>
</author>
<published>2013-10-02T16:43:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=55aa42f2e690157e254a6a6989f5f4ac928b35c8'/>
<id>55aa42f2e690157e254a6a6989f5f4ac928b35c8</id>
<content type='text'>
The dmi_list array is initialized using gnu designated initializers, and
therefore may contain fewer explicitly defined entries as there are
elements in it. This is because the enum above with M_xyz constants
contains more items than the designated initializer. Those elements not
explicitly initialized are implicitly set to 0.

Now efifb_setup() loops through all these array elements, and performs
a strcmp on each item. For non explicitly initialized elements this will
be a null pointer:

This patch swaps the check order in the if statement, thus checks first
whether dmi_list[i].base is null.

Signed-off-by: James Bates &lt;james.h.bates@gmail.com&gt;
Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dmi_list array is initialized using gnu designated initializers, and
therefore may contain fewer explicitly defined entries as there are
elements in it. This is because the enum above with M_xyz constants
contains more items than the designated initializer. Those elements not
explicitly initialized are implicitly set to 0.

Now efifb_setup() loops through all these array elements, and performs
a strcmp on each item. For non explicitly initialized elements this will
be a null pointer:

This patch swaps the check order in the if statement, thus checks first
whether dmi_list[i].base is null.

Signed-off-by: James Bates &lt;james.h.bates@gmail.com&gt;
Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux</title>
<updated>2013-09-05T16:49:32+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-05T16:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9ab073bc45b8b523cc39658925bb44bef35ca657'/>
<id>9ab073bc45b8b523cc39658925bb44bef35ca657</id>
<content type='text'>
Pull fbdev changes from Tomi Valkeinen:
 - Improvements to da8xx-fb to make it support v2 of the LCDC IP, used
   eg in BeagleBone
 - Himax HX8369 controller support
 - Various small fixes and cleanups

* tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
  video: da8xx-fb: fix the polarities of the hsync/vsync pulse
  video: da8xx-fb: support lcdc v2 timing register expansion
  video: da8xx-fb: fixing timing off by one errors
  video: da8xx-fb fixing incorrect porch mappings
  video: xilinxfb: replace devm_request_and_ioremap by devm_ioremap_resource
  fbmem: move EXPORT_SYMBOL annotation next to symbol declarations
  drivers: video: fbcmap: remove the redundency and incorrect checkings
  video: mxsfb: simplify use of devm_ioremap_resource
  Release efifb's colormap in efifb_destroy()
  at91/avr32/atmel_lcdfb: prepare clk before calling enable
  video: exynos: Ensure definitions match prototypes
  OMAPDSS: fix WARN_ON in 'alpha_blending_enabled' sysfs file
  OMAPDSS: HDMI: Fix possible NULL reference
  video: da8xx-fb: adding am33xx as dependency
  video: da8xx-fb: let compiler decide what to inline
  video: da8xx-fb: make clock naming consistent
  video: da8xx-fb: set upstream clock rate (if reqd)
  video: da8xx-fb: reorganize panel detection
  video: da8xx-fb: ensure non-null cfg in pdata
  video: da8xx-fb: use devres
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull fbdev changes from Tomi Valkeinen:
 - Improvements to da8xx-fb to make it support v2 of the LCDC IP, used
   eg in BeagleBone
 - Himax HX8369 controller support
 - Various small fixes and cleanups

* tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
  video: da8xx-fb: fix the polarities of the hsync/vsync pulse
  video: da8xx-fb: support lcdc v2 timing register expansion
  video: da8xx-fb: fixing timing off by one errors
  video: da8xx-fb fixing incorrect porch mappings
  video: xilinxfb: replace devm_request_and_ioremap by devm_ioremap_resource
  fbmem: move EXPORT_SYMBOL annotation next to symbol declarations
  drivers: video: fbcmap: remove the redundency and incorrect checkings
  video: mxsfb: simplify use of devm_ioremap_resource
  Release efifb's colormap in efifb_destroy()
  at91/avr32/atmel_lcdfb: prepare clk before calling enable
  video: exynos: Ensure definitions match prototypes
  OMAPDSS: fix WARN_ON in 'alpha_blending_enabled' sysfs file
  OMAPDSS: HDMI: Fix possible NULL reference
  video: da8xx-fb: adding am33xx as dependency
  video: da8xx-fb: let compiler decide what to inline
  video: da8xx-fb: make clock naming consistent
  video: da8xx-fb: set upstream clock rate (if reqd)
  video: da8xx-fb: reorganize panel detection
  video: da8xx-fb: ensure non-null cfg in pdata
  video: da8xx-fb: use devres
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Release efifb's colormap in efifb_destroy()</title>
<updated>2013-08-30T07:46:23+00:00</updated>
<author>
<name>Peter Jones</name>
<email>pjones@redhat.com</email>
</author>
<published>2013-07-25T15:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=907355a97f06af8d23c62fcb482cd91b8576972d'/>
<id>907355a97f06af8d23c62fcb482cd91b8576972d</id>
<content type='text'>
This was found by Alexandra Kossovsky, who noted this traceback from
kmemleak:

&gt; unreferenced object 0xffff880216fcfe00 (size 512):
&gt;   comm "swapper/0", pid 1, jiffies 4294895429 (age 1415.320s)
&gt;   hex dump (first 32 bytes):
&gt;     00 00 00 00 00 00 00 00 aa aa aa aa aa aa aa aa  ................
&gt;     55 55 55 55 55 55 55 55 ff ff ff ff ff ff ff ff  UUUUUUUU........
&gt;   backtrace:
&gt;     [&lt;ffffffff813e415c&gt;] kmemleak_alloc+0x21/0x3e
&gt;     [&lt;ffffffff8111c17f&gt;]
&gt;     kmemleak_alloc_recursive.constprop.57+0x16/0x18
&gt;     [&lt;ffffffff8111e63b&gt;] __kmalloc+0xf9/0x144
&gt;     [&lt;ffffffff8123d9cf&gt;] fb_alloc_cmap_gfp+0x47/0xe1
&gt;     [&lt;ffffffff8123da77&gt;] fb_alloc_cmap+0xe/0x10
&gt;     [&lt;ffffffff81aff40a&gt;] efifb_probe+0x3e9/0x48f
&gt;     [&lt;ffffffff812c566f&gt;] platform_drv_probe+0x34/0x5e
&gt;     [&lt;ffffffff812c3e6d&gt;] driver_probe_device+0x98/0x1b4
&gt;     [&lt;ffffffff812c3fd7&gt;] __driver_attach+0x4e/0x6f
&gt;     [&lt;ffffffff812c25bf&gt;] bus_for_each_dev+0x57/0x8a
&gt;     [&lt;ffffffff812c3984&gt;] driver_attach+0x19/0x1b
&gt;     [&lt;ffffffff812c362b&gt;] bus_add_driver+0xde/0x201
&gt;     [&lt;ffffffff812c453f&gt;] driver_register+0x8c/0x110
&gt;     [&lt;ffffffff812c510d&gt;] platform_driver_register+0x41/0x43
&gt;     [&lt;ffffffff812c5127&gt;] platform_driver_probe+0x18/0x8a
&gt;     [&lt;ffffffff81aff002&gt;] efifb_init+0x276/0x295

Signed-off-by: Peter Jones &lt;pjones@redhat.com&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was found by Alexandra Kossovsky, who noted this traceback from
kmemleak:

&gt; unreferenced object 0xffff880216fcfe00 (size 512):
&gt;   comm "swapper/0", pid 1, jiffies 4294895429 (age 1415.320s)
&gt;   hex dump (first 32 bytes):
&gt;     00 00 00 00 00 00 00 00 aa aa aa aa aa aa aa aa  ................
&gt;     55 55 55 55 55 55 55 55 ff ff ff ff ff ff ff ff  UUUUUUUU........
&gt;   backtrace:
&gt;     [&lt;ffffffff813e415c&gt;] kmemleak_alloc+0x21/0x3e
&gt;     [&lt;ffffffff8111c17f&gt;]
&gt;     kmemleak_alloc_recursive.constprop.57+0x16/0x18
&gt;     [&lt;ffffffff8111e63b&gt;] __kmalloc+0xf9/0x144
&gt;     [&lt;ffffffff8123d9cf&gt;] fb_alloc_cmap_gfp+0x47/0xe1
&gt;     [&lt;ffffffff8123da77&gt;] fb_alloc_cmap+0xe/0x10
&gt;     [&lt;ffffffff81aff40a&gt;] efifb_probe+0x3e9/0x48f
&gt;     [&lt;ffffffff812c566f&gt;] platform_drv_probe+0x34/0x5e
&gt;     [&lt;ffffffff812c3e6d&gt;] driver_probe_device+0x98/0x1b4
&gt;     [&lt;ffffffff812c3fd7&gt;] __driver_attach+0x4e/0x6f
&gt;     [&lt;ffffffff812c25bf&gt;] bus_for_each_dev+0x57/0x8a
&gt;     [&lt;ffffffff812c3984&gt;] driver_attach+0x19/0x1b
&gt;     [&lt;ffffffff812c362b&gt;] bus_add_driver+0xde/0x201
&gt;     [&lt;ffffffff812c453f&gt;] driver_register+0x8c/0x110
&gt;     [&lt;ffffffff812c510d&gt;] platform_driver_register+0x41/0x43
&gt;     [&lt;ffffffff812c5127&gt;] platform_driver_probe+0x18/0x8a
&gt;     [&lt;ffffffff81aff002&gt;] efifb_init+0x276/0x295

Signed-off-by: Peter Jones &lt;pjones@redhat.com&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbdev: efifb: bind to efi-framebuffer</title>
<updated>2013-08-02T23:17:50+00:00</updated>
<author>
<name>David Herrmann</name>
<email>dh.herrmann@gmail.com</email>
</author>
<published>2013-08-02T12:05:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e6816a8d85549444feb3838920b1f4efba73d1da'/>
<id>e6816a8d85549444feb3838920b1f4efba73d1da</id>
<content type='text'>
Instead of creating a dummy device, we now bind to the efi-fb device
which is provided by x86 initialization code.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Link: http://lkml.kernel.org/r/1375445127-15480-8-git-send-email-dh.herrmann@gmail.com
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of creating a dummy device, we now bind to the efi-fb device
which is provided by x86 initialization code.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Link: http://lkml.kernel.org/r/1375445127-15480-8-git-send-email-dh.herrmann@gmail.com
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: sysfb: move EFI quirks from efifb to sysfb</title>
<updated>2013-08-02T23:17:47+00:00</updated>
<author>
<name>David Herrmann</name>
<email>dh.herrmann@gmail.com</email>
</author>
<published>2013-08-02T12:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2995e506276bfdc7311eb02db8b2aa1a61a4b849'/>
<id>2995e506276bfdc7311eb02db8b2aa1a61a4b849</id>
<content type='text'>
The EFI FB quirks from efifb.c are useful for simple-framebuffer devices
as well. Apply them by default so we can convert efifb.c to use
efi-framebuffer platform devices.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Link: http://lkml.kernel.org/r/1375445127-15480-5-git-send-email-dh.herrmann@gmail.com
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The EFI FB quirks from efifb.c are useful for simple-framebuffer devices
as well. Apply them by default so we can convert efifb.c to use
efi-framebuffer platform devices.

Signed-off-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Link: http://lkml.kernel.org/r/1375445127-15480-5-git-send-email-dh.herrmann@gmail.com
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Drivers: video: remove __dev* attributes.</title>
<updated>2013-01-03T23:57:01+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2012-12-21T21:07:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=48c68c4f1b542444f175a9e136febcecf3e704d8'/>
<id>48c68c4f1b542444f175a9e136febcecf3e704d8</id>
<content type='text'>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from these drivers.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from these drivers.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>efifb: Skip DMI checks if the bootloader knows what it's doing</title>
<updated>2012-09-17T12:29:23+00:00</updated>
<author>
<name>Matthew Garrett</name>
<email>mjg@redhat.com</email>
</author>
<published>2012-07-27T16:58:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f462ed939de67c20528bc08f11d2fc4f2d59c0d5'/>
<id>f462ed939de67c20528bc08f11d2fc4f2d59c0d5</id>
<content type='text'>
The majority of the DMI checks in efifb are for cases where the bootloader
has provided invalid information. However, on some machines the overrides
may do more harm than good due to configuration differences between machines
with the same machine identifier. It turns out that it's possible for the
bootloader to get the correct information on GOP-based systems, but we
can't guarantee that the kernel's being booted with one that's been updated
to do so. Add support for a capabilities flag that can be set by the
bootloader, and skip the DMI checks in that case. Additionally, set this
flag in the UEFI stub code.

Signed-off-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Acked-by: Peter Jones &lt;pjones@redhat.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The majority of the DMI checks in efifb are for cases where the bootloader
has provided invalid information. However, on some machines the overrides
may do more harm than good due to configuration differences between machines
with the same machine identifier. It turns out that it's possible for the
bootloader to get the correct information on GOP-based systems, but we
can't guarantee that the kernel's being booted with one that's been updated
to do so. Add support for a capabilities flag that can be set by the
bootloader, and skip the DMI checks in that case. Additionally, set this
flag in the UEFI stub code.

Signed-off-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Acked-by: Peter Jones &lt;pjones@redhat.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
