From: Sui Jingfeng <sui.jingfeng@linux.dev>
To: Markus Elfring <elfring@users.sourceforge.net>
Cc: Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
Sui Jingfeng <sui.jingfeng@linux.dev>
Subject: [PATCH v5 0/2] drm/loongson: Introduce component framework support
Date: Sun, 28 Jul 2024 23:28:56 +0800 [thread overview]
Message-ID: <20240728152858.346211-1-sui.jingfeng@linux.dev> (raw)
Introduce component framework to bind modules and to avoid potential
cyclic dependency problem.
v1 -> v2:
* Squash patch 0002 and patch 0003 into one
* Fill typos and improve commit message
v2 -> v3:
* Squash all patch into one
* Create another platform device as drm proxy master.
* Make LSDC PCI driver as a subcomponent as well.
v3 -> v4:
* Split sharable structure from struct lsdc_device.
* Make LSDC as a subcomponent.
v4 -> v5:
* Split to two patch.
* Fix typos and cleanup.
Tested with ls3a6000+ls7a2000, dmesg | grep loongson:
[ 10.357813] loongson.lsdc 0000:00:06.1: Found LS7A2000 bridge chipset, revision: 2
[ 10.370737] loongson.lsdc 0000:00:06.1: i2c-6(sda pin mask=1, scl pin mask=2) created
[ 10.466747] loongson.lsdc 0000:00:06.1: i2c-7(sda pin mask=4, scl pin mask=8) created
[ 10.479231] loongson.lsdc 0000:00:06.1: lsdc.output.agent.0 probed, type: HDMI-or-VGA
[ 10.507553] loongson.lsdc 0000:00:06.1: lsdc.output.agent.1 probed, type: HDMI
[ 11.595162] loongson.loonggpu 0000:00:06.0: LoongGPU(TM) PCI driver probed
[ 11.699961] loongson.drm.proxy loongson.drm.proxy: probed
[ 11.717768] loongson.lsdc 0000:00:06.1: [drm] Dedicated vram start: 0xe0020000000, size: 256MiB
[ 11.727041] loongson.lsdc 0000:00:06.1: [drm] dc: 400MHz, gmc: 1200MHz, gpu: 480MHz
[ 11.735138] loongson.drm.proxy loongson.drm.proxy: bound lsdc.output.agent.0 (ops lsdc_output_component_ops [loongson])
[ 11.746343] loongson.drm.proxy loongson.drm.proxy: bound lsdc.output.agent.1 (ops lsdc_output_component_ops [loongson])
[ 11.763218] loongson.lsdc 0000:00:06.1: lsdc irq: 61
[ 11.768258] loongson.drm.proxy loongson.drm.proxy: bound 0000:00:06.1 (ops lsdc_pci_component_ops [loongson])
[ 11.778138] loongson.lsdc 0000:00:06.1: [drm] LoongGPU(TM): LG110, revision: 0, Host: LS7A2000
[ 11.786711] loongson.lsdc 0000:00:06.1: [drm] LoongGPU(TM) irq: 62
[ 11.792853] loongson.drm.proxy loongson.drm.proxy: bound 0000:00:06.0 (ops loonggpu_pci_component_ops [loongson])
[ 11.843337] loongson.lsdc 0000:00:06.1: [drm] VRAM: 16384 pages ready
[ 11.849757] loongson.lsdc 0000:00:06.1: [drm] GTT: 32768 pages ready
[ 11.856399] [drm] Initialized loongson 1.0.0 for 0000:00:06.1 on minor 1
[ 11.931176] loongson.lsdc 0000:00:06.1: [drm] fb0: loongsondrmfb frame buffer device
[ 11.963180] loongson: total 4 drivers registered
[ 16.040603] loongson.lsdc 0000:00:06.1: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io+mem
Tested with ls3a5000+ls7a1000, dmesg | grep loongson:
[ 10.887229] loongson.lsdc 0000:00:06.1: Found LS7A1000 bridge chipset, revision: 1
[ 10.907694] loongson.lsdc 0000:00:06.1: i2c-6(sda pin mask=1, scl pin mask=2) created
[ 10.940652] loongson.lsdc 0000:00:06.1: i2c-7(sda pin mask=4, scl pin mask=8) created
[ 10.973292] loongson.lsdc 0000:00:06.1: lsdc.output.agent.0 probed, type: DVO
[ 10.993424] loongson.lsdc 0000:00:06.1: lsdc.output.agent.1 probed, type: DVO
[ 11.011791] loongson.drm.proxy loongson.drm.proxy: probed
[ 11.048820] loongson.lsdc 0000:00:06.1: [drm] Dedicated vram start: 0xe0030000000, size: 64MiB
[ 11.087580] loongson.lsdc 0000:00:06.1: [drm] dc: 264MHz, gmc: 529MHz, gpu: 529MHz
[ 11.095885] loongson.drm.proxy loongson.drm.proxy: bound lsdc.output.agent.0 (ops lsdc_output_component_ops [loongson])
[ 11.106794] loongson.drm.proxy loongson.drm.proxy: bound lsdc.output.agent.1 (ops lsdc_output_component_ops [loongson])
[ 11.128480] loongson.lsdc 0000:00:06.1: lsdc irq: 55
[ 11.135618] loongson.drm.proxy loongson.drm.proxy: bound 0000:00:06.1 (ops lsdc_pci_component_ops [loongson])
[ 11.146096] loongson.lsdc 0000:00:06.1: [drm] VRAM: 4096 pages ready
[ 11.152492] loongson.lsdc 0000:00:06.1: [drm] GTT: 32768 pages ready
[ 11.159720] [drm] Initialized loongson 1.0.0 for 0000:00:06.1 on minor 0
[ 11.243566] loongson.lsdc 0000:00:06.1: [drm] fb0: loongsondrmfb frame buffer device
[ 11.285817] loongson: total 4 drivers registered
Tested with builtin debugfs interface:
[root@fedora 0]# cd /sys/kernel/debug/dri/0000\:00\:06.1/
[root@fedora 0000:00:06.1]# ls
benchmark clients crtc-1 framebuffer HDMI-A-1 mm vram_mm
bos clocks encoder-0 gem_names HDMI-A-2 name
chips crtc-0 encoder-1 gtt_mm internal_clients state
[root@fedora 0000:00:06.1]# cat bos
bo[0000][0000000033d33c9c]: size: 8112KiB VRAM offset: 0
bo[0001][0000000059581d0a]: size: 8112KiB VRAM offset: 7ec000
bo[0002][00000000e7eec263]: size: 16KiB VRAM offset: 0
bo[0003][00000000d4fb6ef2]: size: 16KiB VRAM offset: fff8000
Pinned BO size: VRAM: 8128KiB, GTT: 0 KiB
[root@fedora 0000:00:06.1]# cat chips
Running on cpu 0xc0, cpu revision: 0x11
Contained in: LS7A2000 bridge chipset
[root@fedora 0000:00:06.1]# cat benchmark
Copy bo of 8100KiB 60 times from GTT to GTT in 48ms: 10125MB/s
Copy bo of 8100KiB 60 times from GTT to VRAM in 104ms: 4673MB/s
Copy bo of 8100KiB 60 times from VRAM to GTT in 13480ms: 36MB/s
Also run IGT kms_flip and fbdev tests, no obvious problems found.
Sui Jingfeng (2):
drm/loongson: Introduce component framework support
drm/loongson: Add dummy gpu driver as a subcomponent
drivers/gpu/drm/loongson/Makefile | 5 +
drivers/gpu/drm/loongson/loonggpu_pci_drv.c | 163 +++++++++
drivers/gpu/drm/loongson/loonggpu_pci_drv.h | 35 ++
drivers/gpu/drm/loongson/loongson_device.c | 30 ++
drivers/gpu/drm/loongson/loongson_drv.c | 299 +++++++++++++++
drivers/gpu/drm/loongson/loongson_drv.h | 108 ++++++
drivers/gpu/drm/loongson/loongson_module.c | 84 ++++-
drivers/gpu/drm/loongson/loongson_module.h | 32 ++
drivers/gpu/drm/loongson/lsdc_benchmark.c | 12 +-
drivers/gpu/drm/loongson/lsdc_benchmark.h | 2 +-
drivers/gpu/drm/loongson/lsdc_crtc.c | 4 +-
drivers/gpu/drm/loongson/lsdc_debugfs.c | 41 +--
drivers/gpu/drm/loongson/lsdc_drv.c | 346 +++++-------------
drivers/gpu/drm/loongson/lsdc_drv.h | 89 +----
drivers/gpu/drm/loongson/lsdc_gem.c | 42 ++-
drivers/gpu/drm/loongson/lsdc_gem.h | 13 +
drivers/gpu/drm/loongson/lsdc_gfxpll.c | 33 +-
drivers/gpu/drm/loongson/lsdc_gfxpll.h | 3 +-
drivers/gpu/drm/loongson/lsdc_i2c.c | 55 ++-
drivers/gpu/drm/loongson/lsdc_i2c.h | 21 +-
drivers/gpu/drm/loongson/lsdc_output.c | 183 +++++++++
drivers/gpu/drm/loongson/lsdc_output.h | 33 +-
drivers/gpu/drm/loongson/lsdc_output_7a1000.c | 6 +-
drivers/gpu/drm/loongson/lsdc_output_7a2000.c | 20 +-
drivers/gpu/drm/loongson/lsdc_pixpll.c | 4 +-
drivers/gpu/drm/loongson/lsdc_plane.c | 4 +-
drivers/gpu/drm/loongson/lsdc_ttm.c | 70 ++--
drivers/gpu/drm/loongson/lsdc_ttm.h | 4 +-
28 files changed, 1233 insertions(+), 508 deletions(-)
create mode 100644 drivers/gpu/drm/loongson/loonggpu_pci_drv.c
create mode 100644 drivers/gpu/drm/loongson/loonggpu_pci_drv.h
create mode 100644 drivers/gpu/drm/loongson/loongson_drv.c
create mode 100644 drivers/gpu/drm/loongson/loongson_drv.h
create mode 100644 drivers/gpu/drm/loongson/lsdc_output.c
--
2.43.0
next reply other threads:[~2024-07-28 15:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-28 15:28 Sui Jingfeng [this message]
2024-07-28 15:28 ` [PATCH v5 1/2] drm/loongson: Introduce component framework support Sui Jingfeng
2024-07-29 6:15 ` Markus Elfring
2024-07-29 6:40 ` Markus Elfring
2024-07-30 17:46 ` Sui Jingfeng
2024-07-30 18:16 ` Markus Elfring
2024-07-29 7:37 ` Markus Elfring
2024-07-30 17:39 ` Sui Jingfeng
2024-08-03 3:59 ` kernel test robot
2024-07-28 15:28 ` [PATCH v5 2/2] drm/loongson: Add dummy gpu driver as a subcomponent Sui Jingfeng
2024-07-29 7:15 ` Markus Elfring
2024-07-30 17:57 ` Sui Jingfeng
2024-07-29 7:48 ` Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240728152858.346211-1-sui.jingfeng@linux.dev \
--to=sui.jingfeng@linux.dev \
--cc=dri-devel@lists.freedesktop.org \
--cc=elfring@users.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.