最近因为对应mipi接口的lcd,在/kernel_imx/arch/arm/mach-mx6/board-mx6q_sabresd.c中打开
imx6q_add_mipi_dsi(&mipi_dsi_pdata);的注释
// change by shao, 2016-11-16
// imx6q_add_mipi_dsi(&mipi_dsi_pdata);
imx6q_add_mipi_dsi(&mipi_dsi_pdata);
内核配置中,CONFIG_FB_MXC_MIPI_DSI=y
编译出现了错误:
arch/arm/mach-mx6/built-in.o: In function `mx6_sabresd_board_init':
/media/myandroid/work/20161018newB/kernel_imx/arch/arm/mach-mx6/board-mx6q_sabresd.c:2272: undefined reference to `imx_add_mipi_dsi'
/media/myandroid/work/20161018newB/kernel_imx/arch/arm/mach-mx6/board-mx6q_sabresd.c:2474: undefined reference to `imx6q_mipi_dsi_data'
make: *** [.tmp_vmlinux1] 错误 1
而确认board-mx6q_sabresd.c包含的头文件devices-imx6q.h中,明明有如下定义:
extern const struct imx_mipi_dsi_data imx6q_mipi_dsi_data __initconst;
#define imx6q_add_mipi_dsi(pdata) \
imx_add_mipi_dsi(&imx6q_mipi_dsi_data, pdata)
且devices-imx6q.h包含的头文件/kernel_imx/arch/arm/plat-mxc/include/mach/devices-common.h
中,也有如下定义:
#include <mach/mipi_dsi.h>
struct imx_mipi_dsi_data {
int id;
resource_size_t iobase;
resource_size_t iosize;
resource_size_t irq;
};
struct platform_device *__init imx_add_mipi_dsi(
const struct imx_mipi_dsi_data *data,
const struct mipi_dsi_platform_data *pdata);
make distclean也都试过了,错误依旧,
有哪位知道为什么吗?
Solved! Go to Solution.
终于找到问题所在了!
从/kernel_imx/arch/arm/mach-mx6/Kconfig可以看出,MACH_MX6Q_SABRESD下没有
select IMX_HAVE_PLATFORM_IMX_MIPI_DSI
加上或者在内核中选中那个i.MX6Quad Armadillo2 platform亦可
仅供参考
终于找到问题所在了!
从/kernel_imx/arch/arm/mach-mx6/Kconfig可以看出,MACH_MX6Q_SABRESD下没有
select IMX_HAVE_PLATFORM_IMX_MIPI_DSI
加上或者在内核中选中那个i.MX6Quad Armadillo2 platform亦可
仅供参考
Hi jiang
please try to make build from scratch on new VM,
also recommended to start with minimal configuration.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------