From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Peter Korsgaard <jacmet@sunsite.dk>,
Johan Hovold <jhovold@gmail.com>,
Nicolas Ferre <nicolas.ferre@atmel.com>
Subject: [ 30/48] atmel_lcdfb: fix 16-bpp modes on older SOCs
Date: Mon, 18 Mar 2013 14:08:38 -0700 [thread overview]
Message-ID: <20130318210812.387223270@linuxfoundation.org> (raw)
In-Reply-To: <20130318210810.247845918@linuxfoundation.org>
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <jhovold@gmail.com>
commit a79eac7165ed62114e6ca197195aa5060a54f137 upstream.
Fix regression introduced by commit 787f9fd23283 ("atmel_lcdfb: support
16bit BGR:565 mode, remove unsupported 15bit modes") which broke 16-bpp
modes for older SOCs which use IBGR:555 (msb is intensity) rather
than BGR:565.
Use SOC-type to determine the pixel layout.
Tested on at91sam9263 and at91sam9g45.
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/video/atmel_lcdfb.c | 22 +++++++++++++++-------
include/video/atmel_lcdc.h | 1 +
2 files changed, 16 insertions(+), 7 deletions(-)
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -422,17 +422,22 @@ static int atmel_lcdfb_check_var(struct
= var->bits_per_pixel;
break;
case 16:
+ /* Older SOCs use IBGR:555 rather than BGR:565. */
+ if (sinfo->have_intensity_bit)
+ var->green.length = 5;
+ else
+ var->green.length = 6;
+
if (sinfo->lcd_wiring_mode == ATMEL_LCDC_WIRING_RGB) {
- /* RGB:565 mode */
- var->red.offset = 11;
+ /* RGB:5X5 mode */
+ var->red.offset = var->green.length + 5;
var->blue.offset = 0;
} else {
- /* BGR:565 mode */
+ /* BGR:5X5 mode */
var->red.offset = 0;
- var->blue.offset = 11;
+ var->blue.offset = var->green.length + 5;
}
var->green.offset = 5;
- var->green.length = 6;
var->red.length = var->blue.length = 5;
break;
case 32:
@@ -679,8 +684,7 @@ static int atmel_lcdfb_setcolreg(unsigne
case FB_VISUAL_PSEUDOCOLOR:
if (regno < 256) {
- if (cpu_is_at91sam9261() || cpu_is_at91sam9263()
- || cpu_is_at91sam9rl()) {
+ if (sinfo->have_intensity_bit) {
/* old style I+BGR:555 */
val = ((red >> 11) & 0x001f);
val |= ((green >> 6) & 0x03e0);
@@ -870,6 +874,10 @@ static int __init atmel_lcdfb_probe(stru
}
sinfo->info = info;
sinfo->pdev = pdev;
+ if (cpu_is_at91sam9261() || cpu_is_at91sam9263() ||
+ cpu_is_at91sam9rl()) {
+ sinfo->have_intensity_bit = true;
+ }
strcpy(info->fix.id, sinfo->pdev->name);
info->flags = ATMEL_LCDFB_FBINFO_DEFAULT;
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
@@ -62,6 +62,7 @@ struct atmel_lcdfb_info {
void (*atmel_lcdfb_power_control)(int on);
struct fb_monspecs *default_monspecs;
u32 pseudo_palette[16];
+ bool have_intensity_bit;
};
#define ATMEL_LCDC_DMABADDR1 0x00
next prev parent reply other threads:[~2013-03-18 21:28 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-18 21:08 [ 00/48] 3.4.37-stable review Greg Kroah-Hartman
2013-03-18 21:08 ` [ 01/48] qcaux: add Franklin U600 Greg Kroah-Hartman
2013-03-18 21:08 ` [ 02/48] xen/pciback: Dont disable a PCI device that is already disabled Greg Kroah-Hartman
2013-03-18 21:08 ` [ 03/48] virtio: rng: disallow multiple device registrations, fixes crashes Greg Kroah-Hartman
2013-03-18 21:08 ` [ 04/48] USB: option: add Huawei E5331 Greg Kroah-Hartman
2013-03-18 21:08 ` [ 05/48] USB: cdc-wdm: fix buffer overflow Greg Kroah-Hartman
2013-03-18 21:08 ` [ 06/48] usb: cp210x new Vendor/Device IDs Greg Kroah-Hartman
2013-03-18 21:08 ` [ 07/48] USB: added support for Cinterions products AH6 and PLS8 Greg Kroah-Hartman
2013-03-18 21:08 ` [ 08/48] usb: serial: Add Rigblaster Advantage to device table Greg Kroah-Hartman
2013-03-18 21:08 ` [ 09/48] USB: storage: fix Huawei mode switching regression Greg Kroah-Hartman
2013-03-18 21:08 ` [ 10/48] USB: EHCI: dont check DMA values in QH overlays Greg Kroah-Hartman
2013-03-18 21:08 ` [ 11/48] staging: vt6656: Fix oops on resume from suspend Greg Kroah-Hartman
2013-03-18 21:08 ` [ 12/48] signal: always clear sa_restorer on execve Greg Kroah-Hartman
2013-03-18 21:08 ` [ 13/48] ext3: Fix format string issues Greg Kroah-Hartman
2013-03-18 21:08 ` [ 14/48] serial: 8250_pci: add support for another kind of NetMos Technology PCI 9835 Multi-I/O Controller Greg Kroah-Hartman
2013-03-18 21:08 ` [ 15/48] tty: serial: fix typo "ARCH_S5P6450" Greg Kroah-Hartman
2013-03-18 21:08 ` [ 16/48] TTY: do not reset masters packet mode Greg Kroah-Hartman
2013-03-18 21:08 ` [ 17/48] perf,x86: fix kernel crash with PEBS/BTS after suspend/resume Greg Kroah-Hartman
2013-03-18 21:08 ` [ 18/48] ALSA: seq: Fix missing error handling in snd_seq_timer_open() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 19/48] hwmon: (pmbus/ltc2978) Fix temperature reporting Greg Kroah-Hartman
2013-03-18 21:08 ` [ 20/48] hwmon: (lineage-pem) Add missing terminating entry for pem_[input|fan]_attributes Greg Kroah-Hartman
2013-03-18 21:08 ` [ 21/48] w1: fix oops when w1_search is called from netlink connector Greg Kroah-Hartman
2013-03-18 21:08 ` [ 22/48] powerpc: Fix STAB initialization Greg Kroah-Hartman
2013-03-18 21:08 ` [ 23/48] powerpc: Fix cputable entry for 970MP rev 1.0 Greg Kroah-Hartman
2013-03-18 21:08 ` [ 24/48] selinux: use GFP_ATOMIC under spin_lock Greg Kroah-Hartman
2013-03-18 21:08 ` [ 25/48] perf,x86: fix wrmsr_on_cpu() warning on suspend/resume Greg Kroah-Hartman
2013-03-18 21:08 ` [ 26/48] perf,x86: fix link failure for non-Intel configs Greg Kroah-Hartman
2013-03-18 21:08 ` [ 27/48] s390: critical section cleanup vs. machine checks Greg Kroah-Hartman
2013-03-18 21:08 ` [ 28/48] s390/mm: fix flush_tlb_kernel_range() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 29/48] btrfs: use rcu_barrier() to wait for bdev puts at unmount Greg Kroah-Hartman
2013-03-18 21:08 ` Greg Kroah-Hartman [this message]
2013-03-18 21:08 ` [ 31/48] drm/i915: EBUSY status handling added to i915_gem_fault() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 32/48] hwmon: (sht15) Fix memory leak if regulator_enable() fails Greg Kroah-Hartman
2013-03-18 21:08 ` [ 33/48] block: use i_size_write() in bd_set_size() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 34/48] loopdev: fix a deadlock Greg Kroah-Hartman
2013-03-18 21:08 ` [ 35/48] loopdev: remove an user triggerable oops Greg Kroah-Hartman
2013-03-18 21:08 ` [ 36/48] drm/i915: Increase the RC6p threshold Greg Kroah-Hartman
2013-03-18 21:08 ` [ 37/48] l2tp: Restore socket refcount when sendmsg succeeds Greg Kroah-Hartman
2013-03-18 21:08 ` [ 38/48] rds: limit the size allocated by rds_message_alloc() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 39/48] net: ipv6: Dont purge default router if accept_ra=2 Greg Kroah-Hartman
2013-03-18 21:08 ` [ 40/48] tcp: fix double-counted receiver RTT when leaving receiver fast path Greg Kroah-Hartman
2013-03-18 21:08 ` [ 41/48] tun: add a missing nf_reset() in tun_net_xmit() Greg Kroah-Hartman
2013-03-18 21:08 ` [ 42/48] macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode Greg Kroah-Hartman
2013-03-18 21:08 ` [ 43/48] netlabel: correctly list all the static label mappings Greg Kroah-Hartman
2013-03-18 21:08 ` [ 44/48] bridging: fix rx_handlers return code Greg Kroah-Hartman
2013-03-18 21:08 ` [ 45/48] ipv6: stop multicast forwarding to process interface scoped addresses Greg Kroah-Hartman
2013-03-18 21:08 ` [ 46/48] rtnl: fix info leak on RTM_GETLINK request for VF devices Greg Kroah-Hartman
2013-03-18 21:08 ` [ 47/48] dcbnl: fix various netlink info leaks Greg Kroah-Hartman
2013-03-18 21:08 ` [ 48/48] 6lowpan: Fix endianness issue in is_addr_link_local() Greg Kroah-Hartman
2013-03-19 0:50 ` [ 00/48] 3.4.37-stable review Shuah Khan
2013-03-19 0:57 ` Parag Warudkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130318210812.387223270@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jacmet@sunsite.dk \
--cc=jhovold@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@atmel.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.