I am running a colibri imx6. During a recent upgrade to version 6.4.0 we noticed the lcd driver had been removed from the source code. I have attempted adding the mxc_lcdif driver to my current version of the kernel 6.4.0. Since this is no longer in the kernel, I’m referring back to a version labeled toradex_4.1-2.0.x.
The entire mxc folder has been removed from drivers/video/fbdev and I have added it back in to the 6.4.0 version. I have previously built the kernel in this location on my computer. When I run the a make command in the mxc folder to make mxc_lcdif.o I do not get a ko file, but an o file that is not cross compiled. When I run make menuconfig and set my new driver as a module, and update the .config, I’m not finding it in the modules when I run make modules.
I have also tried updating this as a recipe, but when I build the bsp, I do not have the entire linux kernel code base in the location I download and built the bsp. I know the kernel is being built as I have a valid zImage that runs on my imx6 colibri. I do see git files and patch files in this location.
I followed the current steps in the article Build Linux Kernel from Source Code
The end goal is to have a device driver that I can add as a module. Please let me know what steps you would recommend and any information that would be relevant to help this make sense.
The entire mxc folder has not been removed but moved to the fbdev subfolder as part of an organizational restructuring in the Linux kernel to better manage the fbdev subsystem. This transition aimed to improve maintainability and encourage the use of more modern subsystems like the Direct Rendering Manager (DRM).
The transition began around the time when the Linux kernel version 2.5.x series was in development, which dates back to the early 2000s. The reorganization continued over the years, and more significant changes and deprecations were seen as late as Linux kernel 5.14, where new drivers like simpledrm
were introduced to replace the legacy fbdev drivers.
So the mxc_lcdif driver is renamed something else? Do you know what it is named? I don’t see anything by that name in the fbdev folder.
I’m not seeing this in the upstream 6.1.55 version that matches the directions when building the 6.4.0 bsp. Is that the downstream branch?
In the Linux mainline kernel, the mxc_lcdif
driver has been replaced by drivers that are part of the Direct Rendering Manager (DRM) subsystem. Specifically, for i.MX6 SoCs, the DRM subsystem includes support for LCD panels through the imx-drm
driver, which is designed to work with the display controller found on i.MX6 and other similar SoCs.
The imx-drm
driver provides a more modern and unified interface for managing display outputs, leveraging the capabilities of the DRM subsystem to offer better performance, more features, and improved support for modern display interfaces.
If you wish to stick with the mxc_lcdif driver, you need to use a downstream branch
Hi @SOrourke ,
Have you been able to use the imx-drm
driver with your panel? Unfortunately, we have no control over the Linux upstream (mainline) branch, which is primarily managed by Linus Torvalds and the Linux Foundation. Therefore, you need to follow their decisions regarding the driver’s availability and deprecation. Could you please explain why you have chosen to base your build on the mainline kernel?
Hi Alex,
I had assumed from the current tutorials regarding BSP 6.x.y that using the upstream kernel was the recommended way to move forward. The downstream kernel was regarded to versions that weren’t yet supported by the upstream kernel or older BSP versions.
I was able to get my panel engaged by setting the vidargs in u-boot. I will be updating parameters in the device tree to move forward.