Skip to content

Commit 6492629

Browse files
committed
kms: Change awkward new trait to InnerDevice
1 parent 87742c1 commit 6492629

File tree

8 files changed

+264
-241
lines changed

8 files changed

+264
-241
lines changed

src/backend/kms/device.rs

Lines changed: 168 additions & 179 deletions
Large diffs are not rendered by default.

src/backend/kms/mod.rs

Lines changed: 77 additions & 46 deletions
Large diffs are not rendered by default.

src/backend/kms/surface/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ impl Surface {
296296
.drm_devices
297297
.get_mut(&dev_node)
298298
.unwrap()
299+
.inner
299300
.surfaces
300301
.get_mut(&crtc)
301302
.unwrap();

src/wayland/handlers/buffer.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
// SPDX-License-Identifier: GPL-3.0-only
22

3-
use crate::{
4-
backend::kms::MaybeLockedDevice,
5-
state::{BackendData, State},
6-
};
3+
use crate::state::{BackendData, State};
74
use smithay::{
85
reexports::wayland_server::{protocol::wl_buffer::WlBuffer, Resource},
96
wayland::buffer::BufferHandler,
@@ -14,8 +11,11 @@ impl BufferHandler for State {
1411
fn buffer_destroyed(&mut self, buffer: &WlBuffer) {
1512
if let BackendData::Kms(kms_state) = &mut self.backend {
1613
for device in kms_state.drm_devices.values_mut() {
17-
if device.active_buffers.remove(&buffer.downgrade()) {
18-
if !device.in_use(kms_state.primary_node.read().unwrap().as_ref()) {
14+
if device.inner.active_buffers.remove(&buffer.downgrade()) {
15+
if !device
16+
.inner
17+
.in_use(kms_state.primary_node.read().unwrap().as_ref())
18+
{
1919
if let Err(err) = kms_state.refresh_used_devices() {
2020
warn!(?err, "Failed to init devices.");
2121
};

src/wayland/handlers/dmabuf.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ impl DmabufHandler for State {
3838
if let Some(device) = kms_state
3939
.drm_devices
4040
.values_mut()
41-
.find(|dev| dev.render_node == node)
41+
.find(|dev| dev.inner.render_node == node)
4242
{
43-
device.active_buffers.insert(buffer.downgrade());
43+
device.inner.active_buffers.insert(buffer.downgrade());
4444
}
4545
if let Err(err) = kms_state.refresh_used_devices() {
4646
warn!(?err, "Failed to init devices.");

src/wayland/handlers/drm.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ impl DrmHandler<Option<DrmNode>> for State {
2929
if let Some(device) = kms_state
3030
.drm_devices
3131
.values_mut()
32-
.find(|device| device.render_node == node)
32+
.find(|device| device.inner.render_node == node)
3333
{
34-
device.active_buffers.insert(buffer.downgrade());
34+
device.inner.active_buffers.insert(buffer.downgrade());
3535
}
3636

3737
if let Err(err) = kms_state.refresh_used_devices() {

src/wayland/handlers/drm_lease.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ impl DrmLeaseHandler for State {
1616
.drm_devices
1717
.get_mut(&node)
1818
.unwrap()
19+
.inner
1920
.leasing_global
2021
.as_mut()
2122
.unwrap()
@@ -32,7 +33,7 @@ impl DrmLeaseHandler for State {
3233
.get_mut(&node)
3334
.ok_or(LeaseRejected::default())?
3435
.lock();
35-
let mut renderer = match kms.api.single_renderer(&backend.render_node) {
36+
let mut renderer = match kms.api.single_renderer(&backend.inner.render_node) {
3637
Ok(renderer) => renderer,
3738
Err(err) => {
3839
tracing::warn!(
@@ -55,6 +56,7 @@ impl DrmLeaseHandler for State {
5556
let mut builder = DrmLeaseBuilder::new(backend.drm.device());
5657
for conn in request.connectors {
5758
if let Some((_, crtc)) = backend
59+
.inner
5860
.leased_connectors
5961
.iter()
6062
.find(|(handle, _)| *handle == conn)
@@ -101,7 +103,7 @@ impl DrmLeaseHandler for State {
101103

102104
fn new_active_lease(&mut self, node: DrmNode, lease: DrmLease) {
103105
if let Some(backend) = self.backend.kms().drm_devices.get_mut(&node) {
104-
backend.active_leases.push(lease);
106+
backend.inner.active_leases.push(lease);
105107
}
106108
// else the backend is gone, drop the lease
107109
}
@@ -110,10 +112,10 @@ impl DrmLeaseHandler for State {
110112
let kms = self.backend.kms();
111113
if let Some(backend) = kms.drm_devices.get_mut(&node) {
112114
let mut backend = backend.lock();
113-
backend.active_leases.retain(|l| l.id() != lease);
115+
backend.inner.active_leases.retain(|l| l.id() != lease);
114116

115-
if backend.active_leases.is_empty() {
116-
let mut renderer = match kms.api.single_renderer(&backend.render_node) {
117+
if backend.inner.active_leases.is_empty() {
118+
let mut renderer = match kms.api.single_renderer(&backend.inner.render_node) {
117119
Ok(renderer) => renderer,
118120
Err(err) => {
119121
tracing::warn!(?err, "Failed to create renderer to enable direct scanout.");

src/wayland/handlers/output_power.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fn kms_surfaces(state: &mut State) -> impl Iterator<Item = &mut Surface> {
3131
kms_state
3232
.drm_devices
3333
.values_mut()
34-
.flat_map(|device| device.surfaces.values_mut()),
34+
.flat_map(|device| device.inner.surfaces.values_mut()),
3535
)
3636
} else {
3737
None

0 commit comments

Comments
 (0)