История изменений
Исправление TwisteR, (текущая версия) :
Всё решилось гораздо проще :)
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -225,6 +225,8 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
if (!ret) {
if (!strcmp(fmt, "rgb24"))
bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+ else if (!strcmp(fmt, "bgr24"))
+ bus_format = MEDIA_BUS_FMT_BGR888_1X24;
else if (!strcmp(fmt, "rgb565"))
bus_format = MEDIA_BUS_FMT_RGB565_1X16;
else if (!strcmp(fmt, "bgr666"))
С одной стороны — мега-фичастое графическое ядро (обязанное поддерживать вывод в таком формате), с другой стороны — кадровый буфер Линукса (ну тут ещё поискать надо такой формат вывода, который бы не поддерживался).
Проблемка была в новой прослойке для это платформы, которая появилась совсем недавно и ещё не такая матёрая, как старая.
Посиневшие пингвины оттаяли и приобрели естественные цвета.
Люблю, когда копипастнутые быстрофиксы мало того, что работают, так ещё и в общую концепцию вписываются :)
Исходная версия TwisteR, :
Всё решилось гораздо проще :)
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -225,6 +225,8 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
if (!ret) {
if (!strcmp(fmt, "rgb24"))
bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+ else if (!strcmp(fmt, "bgr24"))
+ bus_format = MEDIA_BUS_FMT_BGR888_1X24;
else if (!strcmp(fmt, "rgb565"))
bus_format = MEDIA_BUS_FMT_RGB565_1X16;
else if (!strcmp(fmt, "bgr666"))
С одной стороны — мега-фичастое графическое ядро (обязанное поддерживать вывод в таком формате), с другой стороны — кадровый буфер Линукса (ну тут ещё поискать надо такой формат вывода, который бы не поддерживался).
Проблемка была в новой прослойке для это платформы, которая появилась совсем недавно и ещё не такая матёрая, как старая.
Люблю, когда копипастнутые быстрофиксы мало того, что работают, так ещё и в общую концепцию вписываются :)