This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DRA744:当显示屏旋转180度时显示马赛克

Guru**** 2614265 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581508/linux-dra744-mosaic-was-show-as-display-was-rotated-by-180-degree

器件型号:DRA744

工具/软件:Linux

尊敬的专家:

客户希望进行180度旋转以进行显示。 它们在内核中已更改为以下红线代码、并且能够看到显示旋转。 然而  、马赛克显示为电路板上电或断电。 下面是显示的快照。  

下面是 drivers\GPU\DRM\omapdrm\OMA_plane.c 下 OMAP-plan_init()中代码的快照

struct drm_plane * omap_plane_init (struct drm_device * dev、int id、bool private_plane)

        struct omap_drm_private *priv号= dev->dev_private;

        struct drm_plane *平面= NULL;

        结构 OMAP-plane * OMAP-plane;

        struct omap_overlay_info *信息;

        内转台;

 

        DBG ("%s":PRIV=%d、基准面名称[id]、私有基准面);

 

        omap_plane = kzalloc (sizeof (* omap_plane)、GFP_kernel);

        如果(!OMA_plane)

                  转至失败;

 

        RET = DRM_FLIP_WIT_INIT (&OMA_plane->unpin_work、16、

                           "unpin"、unpin_worker");

        如果(RET){

                  DEV_ERR (DEV->DEV、"无法分配非引脚 FIFO\n");

                  转至失败;

        }

 

        omap_plane->nformats = omap_framebuffer_get_formats()

                           omap_plan->formats、array_size (omap_plan->formats)、

                           dss_f壮举_get_supported_color_modes (id));

        omap_plane->id = id;

        omap_plane->name =平面名称[id];

 

        平面=&OMA_plan->base;

 

        omap_plan->apple.pre_apply = omap_plane_pre_apply;

        omap_plan->apple.post_apply = omap_plane_post_apply;

 

        omap_plane->ERROR_IRQ.irqmask = ERROR_IRQ[id];

        omap_plan->error_IRQ.IRQ = omap_plan_error_IRQ;

        omap_irq_register (dev、&omap_plane->error_IRQ);

 

        DRM_plane_init (dev、plane、(1 << priv->num_crtcs)- 1、&OMA_plan_funcs、

                           omap_plan->Formats、omap_plan->nformats、private_plane);

 

        omap_plan_install_properties (平面、&plane->base);

 

        /*获取我们的起始配置,设置参数的默认值

        *我们目前不使用等:

        *

        INFO =&OMA_plan->INFO;

        info->rotation_type = OMA_DSS_ROT_DMA;

        info->rotation = OMA_DSS_ROT_180;  /*从0旋转到180*/

        INFO->GLOBAL_ALPHA = 0xff;         

        info->mirror =1;                                                   /* mirror 从0*/更改为1

 

        /*根据我们是 CRTC 还是覆盖层来设置默认值

        *图层。

        * TODO 添加 ioctl 为用户空间提供 API 来更改此内容。 这种情况

        *将在后续补丁中提供。

        *

        IF (私有平面)

                  omap_plane->info.zorder = 0;

        其他

                  omap_plane->info.zorder = id;

 

        返回平面;

 

失败:

        IF (平面)

                  omap_plane_destroy (平面);

 

        返回空;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Dong:

    我已将其转交给 DSS 专家。
    同时、您能否知道他们使用的是哪个 SDK 版本?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dong、

    我假设您在 K4.4上、因为文件位于 DRIVERS/GPU 下。 是这样吗?

    客户尝试实现的用例是什么? 它只是将屏幕上的所有内容旋转180度吗? 这是单显示器系统吗?

    此致、
    Venkat