IMX6 FB blank behavior

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

IMX6 FB blank behavior

1,349件の閲覧回数
chrisroed
Contributor IV

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 = <&reg_wifi_3p3v>;
non-removable;
};

 

 

0 件の賞賛
返信
3 返答(返信)

1,333件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

Hi chrisroed

 

what bsp used in the case, one can try with latest nxp linux from source.codeaurora.org/external/imx/linux-imx repository :
https://source.codeaurora.org/external/imx/linux-imx/tree/?h=imx_5.4.70_2.3.0

Documentation:

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

 

Best regards
igor

0 件の賞賛
返信

1,322件の閲覧回数
chrisroed
Contributor IV

Thanks for the response, we're using the BSP from rel_imx_4.9.88_2.0.0_ga and it's too far down the line to change right now.

0 件の賞賛
返信

1,345件の閲覧回数
chrisroed
Contributor IV

I seem to have found a workaround for this issue...

One can set the the brightness value to 0 to turn off the display (this doesn't break my wifi... so far anyway)

HOWEVER it must be noted that when you turn on the display again you must write the MAX value of the brightness to that register in order for the backlight to be adjustable again.  In my case the value is 7 according to the setup in my device tree.  I do this in code, and it's fast enough that the flicker isn't *too* noticeable.

If you do not write the max value to the brightness register when turning it on, the brightness will not be adjustable and will look as though you've set the maximum value.  

0 件の賞賛
返信