Ticket #2345 (new defect)
all pixels are white after xset dpms force off/on
| Reported by: | lindi | Owned by: | openmoko-kernel |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | kernel | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | no | PatchReviewResult: | |
| Reproducible: | always |
Description
Steps to reproduce:
1) build linux using
#!/bin/bash
set -x
set -e
rev=$(git log | head -n1|cut -d' ' -f2|cut --bytes=1-32)
buildroot=build-$rev
rm -fr $buildroot
mkdir $buildroot
cp arch/arm/configs/gta02_defconfig $buildroot/.config
make O=$buildroot ARCH=arm silentoldconfig
CROSS_COMPILE=arm-linux-gnueabi- make -j4 O=$buildroot ARCH=arm CONFIG_DEBUG_SECTION_MISMATCH=y EXTRAVERSION=om-gta02-2.6.32-$rev
arm-linux-gnueabi-objcopy -O binary -R .note -R .comment -S $buildroot/arch/arm/boot/compressed/vmlinux $buildroot/linux.bin
mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008000 -n "om-gta02-2.6.32-$rev" -d $buildroot/linux.bin $buildroot/uImage-om-gta02-2.6.32-$rev.bin
mkdir -p $buildroot/staging
make O=$buildroot ARCH=arm modules_install INSTALL_MOD_PATH=staging
cd $buildroot/staging
tar czf ../modules-om-gta02-2.6.32-$rev.tar.gz .
2) boot uImage-om-gta02-2.6.32-a9254be10ac2294ea20165a87c09ea6a.bin
3) start Xorg
4) xset dpms 12 12 12
5) wait 15 seconds
6) xset dpms force on
7) xset dpms force off
8) xset dpms force on
Expected results:
6) display shows useful data
8) display shows useful data
Actual results:
6) all pixels on display appear white
8) all pixels on display appear white
More info:
1) gta02v5
Change History
comment:2 Changed 3 years ago by lindi
This does not occur with SHR's
uImage-2.6.32.13-oe3.2+gitr6+a9254be10ac2294ea20165a87c09ea6afcf66d94-r0-om-gta02.bin
so maybe om-gta02-2.6.32 needs some patches from SHR to fix this?
comment:3 Changed 3 years ago by lindi
diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c
index 8450904..c7aaf2d 100644
--- a/drivers/video/backlight/jbt6k74.c
+++ b/drivers/video/backlight/jbt6k74.c
@@ -268,6 +268,8 @@ static int jbt_standby_to_sleep(struct jbt_info *jbt)
gpio_set_value_cansleep(pdata->gpio_reset, 1);
ret = regulator_bulk_enable(ARRAY_SIZE(jbt->supplies), jbt->supplies);
+ msleep(200);
+
/* three times command zero */
ret |= jbt_reg_write_nodata(jbt, 0x00);
mdelay(1);
seems to workaround this bug. I got the idea from Thibaut Girka who recommended

After
om screen power 0
om screen power 1
I see useful data again. om does
int om_screen_power_set(int val) { int fd, ret; fd = open("/dev/fb0", O_RDWR); if (fd < 0) return -1; ret = ioctl(fd, FBIOBLANK, val ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN); if (ret != 0) return -2; return 0; }