DRM全解析 —— ADD_FB(3)

本文深入解析DRM驱动中的drm_mode_addfb函数,探讨drm_core_check_feature如何检查设备支持的特性,涉及Intel i915、AMD Radeon及AMDGPU显卡驱动的特性比较,并指出设备实例与驱动实例的driver_features区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接前一篇文章:DRM全解析 —— ADD_FB(2)

本文参考以下博文:

DRM驱动(四)之ADD_FB

特此致谢!

本回开始对于drm_mode_addfb函数进行解析。为了便于理解,再次贴出其代码,在drivers/gpu/drm/drm_framebuffer.c中,如下:

/**
 * drm_mode_addfb - add an FB to the graphics configuration
 * @dev: drm device for the ioctl
 * @or: pointer to request structure
 * @file_priv: drm file
 *
 * Add a new FB to the specified CRTC, given a user request. This is the
 * original addfb ioctl which only supported RGB formats.
 *
 * Called by the user via ioctl, or by an in-kernel client.
 *
 * Returns:
[root@localhost ~]# lspci | grep -i vga 00:02.0 VGA compatible controller: Device 1234:1111 (rev 02) [root@localhost ~]# dmesg | grep -i drm [ 1.521161] ACPI: bus type drm_connector registered [ 1.542736] bochs-drm 0000:00:02.0: vgaarb: deactivate vga console [ 1.543906] [drm] Found bochs VGA, ID 0xb0c5. [ 1.543908] [drm] Framebuffer size 4096 kB @ 0xfe400000, mmio @ 0xfebd8000. [ 1.544389] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:02.0 on minor 0 [ 1.544688] fbcon: bochs-drmdrmfb (fb0) is primary device [ 1.546995] bochs-drm 0000:00:02.0: [drm] fb0: bochs-drmdrmfb frame buffer device [ 1185.484082] bochs-drm 0000:00:02.0: Damage blitter failed: ret=-12 [ 1185.484111] WARNING: CPU: 2 PID: 3288 at drivers/gpu/drm/drm_fbdev_generic.c:331 drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484123] Modules linked in: tcp_diag udp_diag inet_diag uinput xt_CHECKSUM ipt_MASQUERADE xt_conntrack ipt_REJECT nft_compat nf_nat_tftp nft_objref nf_conntrack_tftp nft_counter bridge stp llc nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nf_tables_set nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables nfnetlink sunrpc snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer joydev pcspkr snd virtio_balloon soundcore i2c_piix4 xfs libcrc32c sr_mod sd_mod cdrom t10_pi sg ata_generic bochs drm_vram_helper drm_kms_helper syscopyarea sysfillrect sysimgblt drm_ttm_helper ttm drm ata_piix ahci libahci libata virtio_net net_failover serio_raw failover virtio_console virtio_scsi dm_mirror dm_region_hash dm_log dm_mod fuse [ 1185.484177] Workqueue: events drm_fb_helper_damage_work [drm_kms_helper] [ 1185.484183] RIP: 0010:drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484214] ? drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484220] ? drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484233] ? drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484242] ? drm_fbdev_fb_dirty+0xe8/0x350 [drm_kms_helper] [ 1185.484250] drm_fb_helper_damage_work+0x86/0x160 [drm_kms_helper]
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值