I have attached a new LCD to my embedded Linux device and when I run the system I found that it is shifted to the right. (the display starts from the middle of the LCD)

I found 2 frame buffer drivers under Linux kernel driver and modify in following areas:

#ifdef CONFIG_TOPPOLY_TD035TTEA3_320X240
        hsync_len   :  64, 
        vsync_len    :  6,
        left_margin :  125, 
        upper_margin :  70,
        right_margin:  115,  
        lower_margin :  36,
        sync:        0,        
        cmap_static:    0,        

But the problem is still there. What should I do?


Before you code values into the kernel, test them interactively using fbset. You may be able to set the panel parameters from user space this way in production, but many developers need to turn on the screen early in boot.

To set these known good values early, you can place them into the kernel. If the values you place in the kernel don't seem to take effect, you may not be modifying the correct frame buffer description for your device. I often introduce a syntax error in the code and check that it fails to compile - if the compiler ignores my error, I know the code block is disabled by the configuration.

If you can't find settings that work, look at the datasheet for the panel and for the LCD controller in your chip to be sure the two have compatible timings.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.