嵌入式爱好者

查看: 1427|回复: 10

[Linux] *ERROR* Unsupported linear format at Cluster0-win0

[复制链接]

9

主题

37

帖子

90

积分

RK3568通行证

扫一扫,手机访问本帖
发表于 2023-9-21 16:12:08 | 显示全部楼层 |阅读模式
RK3568 + forlinx desktop:

在桌面系统上移动鼠标的时候,串口打印 [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0;
只要移动鼠标,就一直打印。
请问是什么问题?

err-01.png
回复

使用道具 举报

0

主题

124

帖子

635

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3399通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证

发表于 2023-9-23 08:46:13 | 显示全部楼层
ARMer 发表于 2023-9-22 17:40
我如上解决问题后,好像没有引起其它问题,请问可以继续这样用吧?

可以的,新版本主要是添加了gpu、vpu等的支持,优化原生can。
点评回复 支持 0 反对 1

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 14:41:18 | 显示全部楼层
问题解决了;
方法是dtsi文件中注释掉以下内容,编译内核,烧写boot.img:
#if 0
&vp0 {
        cursor-win-id = <ROCKCHIP_VOP2_CLUSTER0>;
};

&vp1 {
        cursor-win-id = <ROCKCHIP_VOP2_CLUSTER1>;
};
#endif

========分割线======
以上内容有cursor,win,vop2,CLUSTER0, 与出错的信息内容相关,尝试了一下,居然解决问题了;
不了解以上内容具体含义,估计可能屏幕光标显示有关。
烧写重启后dmesg如下:
forlinx@ok3568:~$ dmesg | grep 'vop2'
[    0.574305] rockchip-vop2 fe040000.vop: Linked as a consumer to fe043e00.iommu
[    0.581212] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x3f, primary plane phy id: 4
[    0.581238] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: 0x0, primary plane phy id: -1
[    0.581258] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp2 assign plane mask: 0x0, primary plane phy id: -1
[    9.462486] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
[    9.528227] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1280x800p0, type: 11 for vp0
forlinx@ok3568:~$

可以与上面有问题的dmesg比较一下。

=======分割线================

目前把vop0与HDMI关联起来,显示相关这块edp,lvds,dsi1与vop0,vop1都是disabled。
        forlinx_control {
                status = "okay";
                video-hdmi = "hdmi";
                video-mipi-edp = "off";
                video-lvds = "off";
        };

&hdmi {
        status = "okay";
        rockchip,phy-table =
                <92812500  0x8009 0x0000 0x0270>,
                <165000000 0x800b 0x0000 0x026d>,
                <185625000 0x800b 0x0000 0x01ed>,
                <297000000 0x800b 0x0000 0x01ad>,
                <594000000 0x8029 0x0000 0x0088>,
                <000000000 0x0000 0x0000 0x0000>;
};

&hdmi_in_vp0 {
        status = "okay";
};

&hdmi_in_vp1 {
        status = "disabled";
};

&route_hdmi {
        status = "okay";
        connect = <&vp0_out_hdmi>;
};
===============分割线==========
还有一个解决办法,“Unsupported linear format”这句出现在rockchip_drm_vop2.c文件中,注释掉这句,重新编译内核下载,串口终端也不会显示这个个错误了,只是觉得这方法掩耳盗铃。具体代码如下:
        /*
         * This is special feature at rk356x, the cluster layer only can support
         * afbc format and can't support linear format;
         */
        if (VOP_MAJOR(vop2_data->version) == 0x40 && VOP_MINOR(vop2_data->version) == 0x15) {
                if (vop2_cluster_window(win) && !vpstate->afbc_en) {
                        DRM_ERROR("Unsupported linear format at %s\n", win->name);
                        return -EINVAL;
                }
        }
//看注释,似乎是光标或者HDMI在cluster上显示格式不对,也许是厂家驱动支持的显示类型不够完善;

===============分割线=================
https://blog.csdn.net/weixin_44618557/article/details/131983987
这篇文章是解决鼠标拖影,在dts中增加了cursor-win-id=<ROCKCHIP_VOP2_CLUSTER0> 之类的语句;
可见cursor-win-id真的是与鼠标相关;我注释以上内容后,鼠标显示不受影响。

=============分割线============
友商fire.....fly论坛有相同的问题,挂了几个月,好像没解决......:L
希望那边的同学能看到这贴。
@forqs ,请问管理员,自己解决自己的问题,有奖励吗???:loveliness:

点评

这个是ubuntuR2版本上会有的问题,您可以看下用户资料里更新的ubutuR3版用户资料,这个烧写后不会出现这个问题,并且适配了硬解码等,不过目前在R3上可能有些小问题,比如hdmi热插拔不显示,正在尝试解决。  详情 回复 发表于 2023-9-22 15:53
点评回复 支持 1 反对 0

使用道具 举报

0

主题

124

帖子

635

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3399通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证

发表于 2023-9-22 08:53:52 | 显示全部楼层
uboot选屏只开这一个屏幕输出试试
点评回复 支持 反对

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 11:15:24 | 显示全部楼层
forqs您好:我只用到HDMI外接显示器,其余显示接口都没有用到。

1、 根据用户使用手册中,启动时串口终端按空格键,根本停不下来;启动后查询启动信息如下:
forlinx@ok3568:~$ dmesg |grep 'hdmi'
[    0.578716] rockchip-drm display-subsystem: Linked as a consumer to fe0a0000.hdmi
[    0.581233] dwhdmi-rockchip fe0a0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC HDMI 2.0 TX PHY)
[    0.581792] dwhdmi-rockchip fe0a0000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.582399] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops 0xffffff8008ecd9b0)
[    2.207919] rk-hdmi-sound hdmi-sound: i2s-hifi <-> fe400000.i2s mapping ok
[    2.208576] input: rockchip,hdmi rockchip,hdmi as /devices/platform/hdmi-sound/sound/card0/input6
[    2.360254]   #0: rockchip,hdmi
[    9.508986] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   10.357796] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   10.371435] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   10.378053] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   29.388102] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   29.397097] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
[   29.404295] dwhdmi-rockchip fe0a0000.hdmi: Rate 69300000 missing; compute N dynamically
forlinx@ok3568:~$ dmesg |grep 'mipi'
forlinx@ok3568:~$ dmesg |grep 'lvds'
[    0.549501] pwm-backlight lvds-backlight: Looking up power-supply from device tree
[    0.549509] pwm-backlight lvds-backlight: Looking up power-supply property in node /lvds-backlight failed
[    0.549520] pwm-backlight lvds-backlight: lvds-backlight supply power not found, using dummy regulator
[    0.549575] pwm-backlight lvds-backlight: Linked as a consumer to regulator.0
[    0.549605] pwm-backlight lvds-backlight: unable to request PWM
[    0.549660] pwm-backlight lvds-backlight: Dropping the link to regulator.0
[    0.549700] pwm-backlight: probe of lvds-backlight failed with error -2
forlinx@ok3568:~$ dmesg |grep 'edp'
[    0.549766] pwm-backlight edp-backlight: Looking up power-supply from device tree
[    0.549774] pwm-backlight edp-backlight: Looking up power-supply property in node /edp-backlight failed
[    0.549784] pwm-backlight edp-backlight: edp-backlight supply power not found, using dummy regulator
[    0.549843] pwm-backlight edp-backlight: Linked as a consumer to regulator.0
[    0.826381] /edp-panel: could not find display-timings node
[    0.826402] /edp-panel: no timings specified
[    0.826429] panel-** edp-panel: Looking up power-supply from device tree
[    0.826438] panel-** edp-panel: Looking up power-supply property in node /edp-panel failed
[    0.826455] panel-** edp-panel: edp-panel supply power not found, using dummy regulator
[    0.826530] panel-** edp-panel: Linked as a consumer to regulator.0
[    0.826552] panel-** edp-panel: Looking up vsp-supply from device tree
[    0.826561] panel-** edp-panel: Looking up vsp-supply property in node /edp-panel failed
[    0.826573] panel-** edp-panel: edp-panel supply vsp not found, using dummy regulator
[    0.826622] panel-** edp-panel: Looking up vsn-supply from device tree
[    0.826631] panel-** edp-panel: Looking up vsn-supply property in node /edp-panel failed
[    0.826642] panel-** edp-panel: edp-panel supply vsn not found, using dummy regulator
forlinx@ok3568:~$

2、修改OK3568-C-common.dtsi中:
forlinx_control {
                status = "okay";
                video-hdmi = "hdmi";
                video-mipi-edp = "off";
                video-lvds = "off";
        };
编译内核烧写,启动桌面系统后,问题依然。

dtsi文件中显示相关设置:
&vop {
        status = "okay";
        assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>, <&cru DCLK_VOP2>;
        assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>, <&cru PLL_GPLL>;
        disable-win-move;
};

&vop_mmu {
        status = "okay";
};

&vp0 {
        cursor-win-id = <ROCKCHIP_VOP2_CLUSTER0>;
};

&vp1 {
        cursor-win-id = <ROCKCHIP_VOP2_CLUSTER1>;
};

&edp {
        status = "disabled";
        pinctrl-names = "default";
        pinctrl-0 = <&edpdpm0_pins>;

        ports {
                port@1 {
                        reg = <1>;

                        edp_out_panel: endpoint {
                                remote-endpoint = <&panel_in_edp>;
                        };
                };
        };
};

&edp_phy {
        status = "disabled";
};

&edp_in_vp0 {
        status = "disabled";
};

&edp_in_vp1 {
        status = "disabled";
};

&route_edp {
        status = "disabled";
        connect = <&vp1_out_edp>;
};
&route_dsi1 {
        status = "disabled";
        connect = <&vp1_out_dsi1>;
};

&dsi1_in_vp0 {
        status = "disabled";
};

&dsi1_in_vp1 {
        status = "disabled";
};
#if 0
&dsi1 {
        status = "disabled";
        //rockchip,lane-rate = <1000>;
        dsi1_panel: panel@0 {
                status = "disabled";
                compatible = "**-panel-dsi";
                reg = <0>;
                reset-delay-ms = <60>;
                enable-delay-ms = <60>;
                prepare-delay-ms = <60>;
                unprepare-delay-ms = <60>;
                disable-delay-ms = <60>;
                dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
                        MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
                dsi,format = <MIPI_DSI_FMT_RGB888>;
                dsi,lanes  = <4>;
                panel-init-sequence = [
                ];

                panel-exit-sequence = [
                ];

                panel-width-mm = <68>;
        panel-height-mm = <121>;
        backlight = <&dsi1_backlight>;
                enable-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;

        display-timings {
                        native-mode = <&panel7_1024x600>;
            panel7_1024x600: timings {
                hback-porch     = <48>;
                hfront-porch    = <40>;
                hactive                 = <1024>;
                hsync-len               = <48>;
                vback-porch     = <48>;
                vfront-porch    = <40>;
                vactive         = <600>;
                vsync-len       = <4>;
                clock-frequency = <45000000>;
                vsync-active    = <0>;
                hsync-active    = <0>;
                de-active       = <0>;
                pixelclk-active = <0>;
            };
        };

                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        port@0 {
                                reg = <0>;
                                panel_in_dsi: endpoint {
                                        remote-endpoint = <&dsi_out_panel>;
                                };
                        };
                };
        };

        ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@1 {
                        reg = <1>;
                        dsi_out_panel: endpoint {
                                remote-endpoint = <&panel_in_dsi>;
                        };
                };
        };

};
#endif
&hdmi {
        status = "disabled";
        rockchip,phy-table =
                <92812500  0x8009 0x0000 0x0270>,
                <165000000 0x800b 0x0000 0x026d>,
                <185625000 0x800b 0x0000 0x01ed>,
                <297000000 0x800b 0x0000 0x01ad>,
                <594000000 0x8029 0x0000 0x0088>,
                <000000000 0x0000 0x0000 0x0000>;
};

&hdmi_in_vp0 {
        status = "disabled";
};

&hdmi_in_vp1 {
        status = "disabled";
};

&route_hdmi {
        status = "disabled";
        connect = <&vp0_out_hdmi>;
};

&lvds {
        status = "disabled";
        phys = <&video_phy0>;
        phy-names = "phy";

        ports {
                port@1 {
                        reg = <1>;

                        lvds_out_panel: endpoint {
                                remote-endpoint = <&panel_in_lvds>;
                        };
                };
        };
};

&lvds_in_vp1 {
        status = "disabled";
};

&lvds_in_vp2 {
        status = "disabled";
};

&route_lvds {
        status = "disabled";
        connect = <&vp2_out_lvds>;
};

&xin32k {
        status = "disabled";
};

点评

可以在启动时按住空格键  详情 回复 发表于 2023-9-22 13:41
点评回复 支持 反对

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 11:18:53 | 显示全部楼层
forlinx@ok3568:~$ dmesg |grep 'vp0'
[    0.580605] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x3f, primary plane phy                   id: 4
[    0.580797] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster0-win0 as cursor plane for vp0
[    9.423251] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
[    9.489058] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1280x800p0, type:                   11 for vp0
[  609.439780] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
forlinx@ok3568:~$ dmesg |grep 'vp1'
[    0.580631] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: 0x0, primary plane phy                   id: -1
forlinx@ok3568:~$ dmesg |grep 'vop1'
forlinx@ok3568:~$ dmesg |grep 'vop2'
[    0.573831] rockchip-vop2 fe040000.vop: Linked as a consumer to fe043e00.iommu
[    0.580605] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x3f, primary plane phy id: 4
[    0.580631] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: 0x0, primary plane phy id: -1
[    0.580653] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp2 assign plane mask: 0x0, primary plane phy id: -1
[    0.580797] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster0-win0 as cursor plane for vp0
[    9.423251] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
[    9.489058] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1280x800p0, type: 11 for vp0
[   11.395247] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   11.395364] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   11.395392] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   11.395417] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   12.153467] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   12.153539] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   12.153906] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[   12.153944] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster0-win0
[  609.439780] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
forlinx@ok3568:~$
点评回复 支持 反对

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 11:20:11 | 显示全部楼层
HDMI外显是1280X800
点评回复 支持 反对

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 11:28:47 | 显示全部楼层
按芯片内部结构 ,vp0,vp1,vp2配置1个给HDMI,其余禁止就可以了吧?
请问具体到dtsi文件中怎么配置?
dmesg显示启动过程就有错误提示了。
[drm:vop2_bind] Cluster0-win0 as cursor plane for vp0 好像跟鼠标光标有关系,移动鼠标的时候会打印那个错误信息,鼠标停止移动就不打印了。
点评回复 支持 反对

使用道具 举报

0

主题

124

帖子

635

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3399通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证

发表于 2023-9-22 13:41:19 | 显示全部楼层
ARMer 发表于 2023-9-22 11:15
forqs您好:我只用到HDMI外接显示器,其余显示接口都没有用到。

1、 根据用户使用手册中,启动时串口终 ...

可以在启动时按住空格键
点评回复 支持 反对

使用道具 举报

0

主题

124

帖子

635

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3399通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证

发表于 2023-9-22 15:53:31 | 显示全部楼层
ARMer 发表于 2023-9-22 14:41
问题解决了;
方法是dtsi文件中注释掉以下内容,编译内核,烧写boot.img:
#if 0

这个是ubuntuR2版本上会有的问题,您可以看下用户资料里更新的ubutuR3版用户资料,这个烧写后不会出现这个问题,并且适配了硬解码等,不过目前在R3上可能有些小问题,比如hdmi热插拔不显示,正在尝试解决。

点评

我如上解决问题后,好像没有引起其它问题,请问可以继续这样用吧?  详情 回复 发表于 2023-9-22 17:40
点评回复 支持 反对

使用道具 举报

9

主题

37

帖子

90

积分

RK3568通行证

 楼主| 发表于 2023-9-22 17:40:15 | 显示全部楼层
forqs 发表于 2023-9-22 15:53
这个是ubuntuR2版本上会有的问题,您可以看下用户资料里更新的ubutuR3版用户资料,这个烧写后不会出现这 ...

我如上解决问题后,好像没有引起其它问题,请问可以继续这样用吧?

点评

可以的,新版本主要是添加了gpu、vpu等的支持,优化原生can。  详情 回复 发表于 2023-9-23 08:46
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-5-16 02:36

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表