I have an odd problem popping up on my IMX6 board. We have an LVDS display, and a wifi module on mmc0.
When I boot up the board, I can set the brightness of my backlight
echo (1-7) > /sys/class/backlight/backlight/brightness
However, if I blank and unblank the FB, the brightness will change to maximum, and even if a new value is written to the `brightness` file, the actual brightness will not change until I reboot the device. (EDIT: see below, this only seems to happen if the brightness file is set to something other than max when unblanking the display... /shrug)
The reason I mention the wifi module on mmc0 is that after blanking the FB, the wifi stops working and prints the following on the console.
mmc0: Timeout waiting for hardware interrupt.
mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
mmc0: sdhci: Sys addr: 0x388ac360 | Version: 0x00000002
mmc0: sdhci: Blk size: 0x000000c4 | Blk cnt: 0x00000001
mmc0: sdhci: Argument: 0x100000c4 | Trn mode: 0x00000013
mmc0: sdhci: Present: 0x01f88a0a | Host ctl: 0x00000013
mmc0: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
mmc0: sdhci: Wake-up: 0x00000008 | Clock: 0x0000003f
mmc0: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
mmc0: sdhci: Int enab: 0x107f100b | Sig enab: 0x107f100b
mmc0: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000103
mmc0: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000a007
mmc0: sdhci: Cmd: 0x0000353a | Max curr: 0x00ffffff
mmc0: sdhci: Resp[0]: 0x00002000 | Resp[1]: 0x00000000
mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
mmc0: sdhci: Host ctl2: 0x00000000
mmc0: sdhci: ADMA Err: 0x00000007 | ADMA Ptr: 0x3c049200
mmc0: sdhci: ============================================
Has anyone seen this behavior before?
Relevant device tree info
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm3 0 500000 >;
pwm-names = "ldb";
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;
enable-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
};
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB24";
default_bpp = <32>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
/* Wireless */
&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1>;
status = "okay";
vmmc-supply = <®_wifi_3p3v>;
non-removable;
};