LINUX.ORG.RU

История изменений

Исправление 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"))

С одной стороны — мега-фичастое графическое ядро (обязанное поддерживать вывод в таком формате), с другой стороны — кадровый буфер Линукса (ну тут ещё поискать надо такой формат вывода, который бы не поддерживался).

Проблемка была в новой прослойке для это платформы, которая появилась совсем недавно и ещё не такая матёрая, как старая.

Люблю, когда копипастнутые быстрофиксы мало того, что работают, так ещё и в общую концепцию вписываются :)