Browse Source

Userland: Remove stale remainders of old framebuffer devices

Liav A 3 years ago
parent
commit
b5e5b299c4

+ 1 - 1
Userland/Applications/DisplaySettings/MonitorSettingsWidget.cpp

@@ -153,7 +153,7 @@ void MonitorSettingsWidget::load_current_settings()
     for (size_t i = 0; i < m_screen_layout.screens.size(); i++) {
     for (size_t i = 0; i < m_screen_layout.screens.size(); i++) {
         String screen_display_name;
         String screen_display_name;
         if (m_screen_layout.screens[i].mode == WindowServer::ScreenLayout::Screen::Mode::Device) {
         if (m_screen_layout.screens[i].mode == WindowServer::ScreenLayout::Screen::Mode::Device) {
-            if (auto edid = EDID::Parser::from_framebuffer_device(m_screen_layout.screens[i].device.value(), 0); !edid.is_error()) { // TODO: multihead
+            if (auto edid = EDID::Parser::from_display_connector_device(m_screen_layout.screens[i].device.value(), 0); !edid.is_error()) { // TODO: multihead
                 screen_display_name = display_name_from_edid(edid.value());
                 screen_display_name = display_name_from_edid(edid.value());
                 m_screen_edids.append(edid.release_value());
                 m_screen_edids.append(edid.release_value());
             } else {
             } else {

+ 8 - 8
Userland/Libraries/LibEDID/EDID.cpp

@@ -201,20 +201,20 @@ ErrorOr<Parser> Parser::from_bytes(ByteBuffer&& bytes)
 }
 }
 
 
 #ifndef KERNEL
 #ifndef KERNEL
-ErrorOr<Parser> Parser::from_framebuffer_device(int framebuffer_fd, size_t head)
+ErrorOr<Parser> Parser::from_display_connector_device(int display_connector_fd, size_t head)
 {
 {
     RawBytes edid_bytes;
     RawBytes edid_bytes;
     GraphicsHeadEDID edid_info {};
     GraphicsHeadEDID edid_info {};
     edid_info.head_index = head;
     edid_info.head_index = head;
     edid_info.bytes = &edid_bytes[0];
     edid_info.bytes = &edid_bytes[0];
     edid_info.bytes_size = sizeof(edid_bytes);
     edid_info.bytes_size = sizeof(edid_bytes);
-    if (graphics_connector_get_head_edid(framebuffer_fd, &edid_info) < 0) {
+    if (graphics_connector_get_head_edid(display_connector_fd, &edid_info) < 0) {
         int err = errno;
         int err = errno;
         if (err == EOVERFLOW) {
         if (err == EOVERFLOW) {
             // We need a bigger buffer with at least bytes_size bytes
             // We need a bigger buffer with at least bytes_size bytes
             auto edid_byte_buffer = TRY(ByteBuffer::create_zeroed(edid_info.bytes_size));
             auto edid_byte_buffer = TRY(ByteBuffer::create_zeroed(edid_info.bytes_size));
             edid_info.bytes = edid_byte_buffer.data();
             edid_info.bytes = edid_byte_buffer.data();
-            if (graphics_connector_get_head_edid(framebuffer_fd, &edid_info) < 0) {
+            if (graphics_connector_get_head_edid(display_connector_fd, &edid_info) < 0) {
                 err = errno;
                 err = errno;
                 return Error::from_errno(err);
                 return Error::from_errno(err);
             }
             }
@@ -229,17 +229,17 @@ ErrorOr<Parser> Parser::from_framebuffer_device(int framebuffer_fd, size_t head)
     return from_bytes(move(edid_byte_buffer));
     return from_bytes(move(edid_byte_buffer));
 }
 }
 
 
-ErrorOr<Parser> Parser::from_framebuffer_device(String const& framebuffer_device, size_t head)
+ErrorOr<Parser> Parser::from_display_connector_device(String const& display_connector_device, size_t head)
 {
 {
-    int framebuffer_fd = open(framebuffer_device.characters(), O_RDWR | O_CLOEXEC);
-    if (framebuffer_fd < 0) {
+    int display_connector_fd = open(display_connector_device.characters(), O_RDWR | O_CLOEXEC);
+    if (display_connector_fd < 0) {
         int err = errno;
         int err = errno;
         return Error::from_errno(err);
         return Error::from_errno(err);
     }
     }
     ScopeGuard fd_guard([&] {
     ScopeGuard fd_guard([&] {
-        close(framebuffer_fd);
+        close(display_connector_fd);
     });
     });
-    return from_framebuffer_device(framebuffer_fd, head);
+    return from_display_connector_device(display_connector_fd, head);
 }
 }
 #endif
 #endif
 
 

+ 2 - 2
Userland/Libraries/LibEDID/EDID.h

@@ -85,8 +85,8 @@ public:
     static ErrorOr<Parser> from_bytes(ByteBuffer&&);
     static ErrorOr<Parser> from_bytes(ByteBuffer&&);
 
 
 #ifndef KERNEL
 #ifndef KERNEL
-    static ErrorOr<Parser> from_framebuffer_device(int, size_t);
-    static ErrorOr<Parser> from_framebuffer_device(String const&, size_t);
+    static ErrorOr<Parser> from_display_connector_device(int, size_t);
+    static ErrorOr<Parser> from_display_connector_device(String const&, size_t);
 #endif
 #endif
 
 
     StringView legacy_manufacturer_id() const;
     StringView legacy_manufacturer_id() const;

+ 1 - 8
Userland/Services/SystemServer/main.cpp

@@ -208,13 +208,6 @@ static void populate_devtmpfs_devices_based_on_devctl()
             create_devtmpfs_char_device(String::formatted("/dev/gpu/connector{}", minor_number), 0666, 226, minor_number);
             create_devtmpfs_char_device(String::formatted("/dev/gpu/connector{}", minor_number), 0666, 226, minor_number);
             break;
             break;
         }
         }
-        case 29: {
-            if (is_block_device) {
-                create_devtmpfs_block_device(String::formatted("/dev/fb{}", minor_number), 0666, 29, minor_number);
-                break;
-            }
-            break;
-        }
         case 229: {
         case 229: {
             if (!is_block_device) {
             if (!is_block_device) {
                 create_devtmpfs_char_device(String::formatted("/dev/hvc0p{}", minor_number), 0666, major_number, minor_number);
                 create_devtmpfs_char_device(String::formatted("/dev/hvc0p{}", minor_number), 0666, major_number, minor_number);
@@ -401,7 +394,7 @@ static ErrorOr<void> prepare_synthetic_filesystems()
 
 
     auto phys_group = TRY(Core::System::getgrnam("phys"sv));
     auto phys_group = TRY(Core::System::getgrnam("phys"sv));
     VERIFY(phys_group.has_value());
     VERIFY(phys_group.has_value());
-    // FIXME: Try to find a way to not hardcode the major number of framebuffer device nodes.
+    // FIXME: Try to find a way to not hardcode the major number of display connector device nodes.
     TRY(chown_all_matching_device_nodes(phys_group.value(), 29));
     TRY(chown_all_matching_device_nodes(phys_group.value(), 29));
 
 
     auto const filter_chown_ENOENT = [](ErrorOr<void> result) -> ErrorOr<void> {
     auto const filter_chown_ENOENT = [](ErrorOr<void> result) -> ErrorOr<void> {

+ 13 - 13
Userland/Services/WindowServer/HardwareScreenBackend.cpp

@@ -24,10 +24,10 @@ HardwareScreenBackend::HardwareScreenBackend(String device)
 
 
 ErrorOr<void> HardwareScreenBackend::open()
 ErrorOr<void> HardwareScreenBackend::open()
 {
 {
-    m_framebuffer_fd = TRY(Core::System::open(m_device, O_RDWR | O_CLOEXEC));
+    m_display_connector_fd = TRY(Core::System::open(m_device, O_RDWR | O_CLOEXEC));
 
 
     GraphicsConnectorProperties properties;
     GraphicsConnectorProperties properties;
-    if (graphics_connector_get_properties(m_framebuffer_fd, &properties) < 0)
+    if (graphics_connector_get_properties(m_display_connector_fd, &properties) < 0)
         return Error::from_syscall(String::formatted("failed to ioctl {}", m_device), errno);
         return Error::from_syscall(String::formatted("failed to ioctl {}", m_device), errno);
 
 
     m_can_device_flush_buffers = (properties.partial_flushing_support != 0);
     m_can_device_flush_buffers = (properties.partial_flushing_support != 0);
@@ -38,9 +38,9 @@ ErrorOr<void> HardwareScreenBackend::open()
 
 
 HardwareScreenBackend::~HardwareScreenBackend()
 HardwareScreenBackend::~HardwareScreenBackend()
 {
 {
-    if (m_framebuffer_fd >= 0) {
-        close(m_framebuffer_fd);
-        m_framebuffer_fd = -1;
+    if (m_display_connector_fd >= 0) {
+        close(m_display_connector_fd);
+        m_display_connector_fd = -1;
     }
     }
     if (m_framebuffer) {
     if (m_framebuffer) {
         MUST(Core::System::munmap(m_framebuffer, m_size_in_bytes));
         MUST(Core::System::munmap(m_framebuffer, m_size_in_bytes));
@@ -54,10 +54,10 @@ ErrorOr<void> HardwareScreenBackend::set_head_mode_setting(GraphicsHeadModeSetti
 {
 {
 
 
     GraphicsHeadModeSetting requested_mode_setting = mode_setting;
     GraphicsHeadModeSetting requested_mode_setting = mode_setting;
-    auto rc = graphics_connector_set_head_mode_setting(m_framebuffer_fd, &requested_mode_setting);
+    auto rc = graphics_connector_set_head_mode_setting(m_display_connector_fd, &requested_mode_setting);
     if (rc != 0) {
     if (rc != 0) {
         dbgln("Failed to set backend mode setting: falling back to safe resolution");
         dbgln("Failed to set backend mode setting: falling back to safe resolution");
-        rc = graphics_connector_set_safe_head_mode_setting(m_framebuffer_fd);
+        rc = graphics_connector_set_safe_head_mode_setting(m_display_connector_fd);
         if (rc != 0) {
         if (rc != 0) {
             dbgln("Failed to set backend safe mode setting: aborting");
             dbgln("Failed to set backend safe mode setting: aborting");
             return Error::from_syscall("graphics_connector_set_safe_head_mode_setting"sv, rc);
             return Error::from_syscall("graphics_connector_set_safe_head_mode_setting"sv, rc);
@@ -81,12 +81,12 @@ ErrorOr<void> HardwareScreenBackend::map_framebuffer()
 {
 {
     GraphicsHeadModeSetting mode_setting {};
     GraphicsHeadModeSetting mode_setting {};
     memset(&mode_setting, 0, sizeof(GraphicsHeadModeSetting));
     memset(&mode_setting, 0, sizeof(GraphicsHeadModeSetting));
-    int rc = graphics_connector_get_head_mode_setting(m_framebuffer_fd, &mode_setting);
+    int rc = graphics_connector_get_head_mode_setting(m_display_connector_fd, &mode_setting);
     if (rc != 0) {
     if (rc != 0) {
         return Error::from_syscall("graphics_connector_get_head_mode_setting"sv, rc);
         return Error::from_syscall("graphics_connector_get_head_mode_setting"sv, rc);
     }
     }
     m_size_in_bytes = mode_setting.horizontal_stride * mode_setting.vertical_active * 2;
     m_size_in_bytes = mode_setting.horizontal_stride * mode_setting.vertical_active * 2;
-    m_framebuffer = (Gfx::ARGB32*)TRY(Core::System::mmap(nullptr, m_size_in_bytes, PROT_READ | PROT_WRITE, MAP_SHARED, m_framebuffer_fd, 0));
+    m_framebuffer = (Gfx::ARGB32*)TRY(Core::System::mmap(nullptr, m_size_in_bytes, PROT_READ | PROT_WRITE, MAP_SHARED, m_display_connector_fd, 0));
 
 
     if (m_can_set_head_buffer) {
     if (m_can_set_head_buffer) {
         // Note: fall back to assuming the second buffer starts right after the last line of the first
         // Note: fall back to assuming the second buffer starts right after the last line of the first
@@ -106,7 +106,7 @@ ErrorOr<GraphicsHeadModeSetting> HardwareScreenBackend::get_head_mode_setting()
 {
 {
     GraphicsHeadModeSetting mode_setting {};
     GraphicsHeadModeSetting mode_setting {};
     memset(&mode_setting, 0, sizeof(GraphicsHeadModeSetting));
     memset(&mode_setting, 0, sizeof(GraphicsHeadModeSetting));
-    int rc = graphics_connector_get_head_mode_setting(m_framebuffer_fd, &mode_setting);
+    int rc = graphics_connector_get_head_mode_setting(m_display_connector_fd, &mode_setting);
     if (rc != 0) {
     if (rc != 0) {
         return Error::from_syscall("graphics_connector_get_head_mode_setting"sv, rc);
         return Error::from_syscall("graphics_connector_get_head_mode_setting"sv, rc);
     }
     }
@@ -121,13 +121,13 @@ void HardwareScreenBackend::set_head_buffer(int head_index)
     GraphicsHeadVerticalOffset offset { 0, 0 };
     GraphicsHeadVerticalOffset offset { 0, 0 };
     if (head_index == 1)
     if (head_index == 1)
         offset.offsetted = 1;
         offset.offsetted = 1;
-    int rc = fb_set_head_vertical_offset_buffer(m_framebuffer_fd, &offset);
+    int rc = fb_set_head_vertical_offset_buffer(m_display_connector_fd, &offset);
     VERIFY(rc == 0);
     VERIFY(rc == 0);
 }
 }
 
 
 ErrorOr<void> HardwareScreenBackend::flush_framebuffer_rects(int buffer_index, Span<FBRect const> flush_rects)
 ErrorOr<void> HardwareScreenBackend::flush_framebuffer_rects(int buffer_index, Span<FBRect const> flush_rects)
 {
 {
-    int rc = fb_flush_buffers(m_framebuffer_fd, buffer_index, flush_rects.data(), (unsigned)flush_rects.size());
+    int rc = fb_flush_buffers(m_display_connector_fd, buffer_index, flush_rects.data(), (unsigned)flush_rects.size());
     if (rc == -ENOTSUP)
     if (rc == -ENOTSUP)
         m_can_device_flush_buffers = false;
         m_can_device_flush_buffers = false;
     else if (rc != 0)
     else if (rc != 0)
@@ -137,7 +137,7 @@ ErrorOr<void> HardwareScreenBackend::flush_framebuffer_rects(int buffer_index, S
 
 
 ErrorOr<void> HardwareScreenBackend::flush_framebuffer()
 ErrorOr<void> HardwareScreenBackend::flush_framebuffer()
 {
 {
-    int rc = fb_flush_head(m_framebuffer_fd);
+    int rc = fb_flush_head(m_display_connector_fd);
     if (rc == -ENOTSUP)
     if (rc == -ENOTSUP)
         m_can_device_flush_entire_framebuffer = false;
         m_can_device_flush_entire_framebuffer = false;
     else if (rc != 0)
     else if (rc != 0)

+ 1 - 1
Userland/Services/WindowServer/HardwareScreenBackend.h

@@ -35,7 +35,7 @@ public:
     virtual ErrorOr<GraphicsHeadModeSetting> get_head_mode_setting() override;
     virtual ErrorOr<GraphicsHeadModeSetting> get_head_mode_setting() override;
 
 
     String m_device {};
     String m_device {};
-    int m_framebuffer_fd { -1 };
+    int m_display_connector_fd { -1 };
 
 
     Gfx::ARGB32* scanline(int buffer_index, int y) const
     Gfx::ARGB32* scanline(int buffer_index, int y) const
     {
     {

+ 3 - 3
Userland/Services/WindowServer/main.cpp

@@ -69,7 +69,7 @@ ErrorOr<int> serenity_main(Main::Arguments)
         String error_msg;
         String error_msg;
 
 
         auto add_unconfigured_display_connector_devices = [&]() {
         auto add_unconfigured_display_connector_devices = [&]() {
-            // Enumerate the /dev/fbX devices and try to set up any ones we find that we haven't already used
+            // Enumerate the /dev/gpu/connectorX devices and try to set up any ones we find that we haven't already used
             Core::DirIterator di("/dev/gpu", Core::DirIterator::SkipParentAndBaseDir);
             Core::DirIterator di("/dev/gpu", Core::DirIterator::SkipParentAndBaseDir);
             while (di.has_next()) {
             while (di.has_next()) {
                 auto path = di.next_path();
                 auto path = di.next_path();
@@ -81,7 +81,7 @@ ErrorOr<int> serenity_main(Main::Arguments)
                 if (fb_devices_configured.find(full_path) != fb_devices_configured.end())
                 if (fb_devices_configured.find(full_path) != fb_devices_configured.end())
                     continue;
                     continue;
                 if (!screen_layout.try_auto_add_display_connector(full_path))
                 if (!screen_layout.try_auto_add_display_connector(full_path))
-                    dbgln("Could not auto-add framebuffer device {} to screen layout", full_path);
+                    dbgln("Could not auto-add display connector device {} to screen layout", full_path);
             }
             }
         };
         };
 
 
@@ -130,7 +130,7 @@ ErrorOr<int> serenity_main(Main::Arguments)
 
 
     TRY(Core::System::unveil("/tmp", ""));
     TRY(Core::System::unveil("/tmp", ""));
 
 
-    // NOTE: Because we dynamically need to be able to open new /dev/fb*
+    // NOTE: Because we dynamically need to be able to open new /dev/gpu/connector*
     // devices we can't really unveil all of /dev unless we have some
     // devices we can't really unveil all of /dev unless we have some
     // other mechanism that can hand us file descriptors for these.
     // other mechanism that can hand us file descriptors for these.