Commit Graph

1122 Commits

Author SHA1 Message Date
bjorn3 ef29520cf5 Avoid ptr2int2ptr casts in GraphicScreen::sync
Also use pointer arithmetic on *mut u32 over manual multiplication by 4.
The ptr2int2ptr casts pessimize optimizations.
2024-07-19 21:55:21 +02:00
bjorn3 b33ea2b53a Fix a FIXME in display_fd_unmap
The len method on raw pointers has been stabilized.
2024-07-19 21:50:15 +02:00
bjorn3 1a41bcab14 Enforce formatting in CI 2024-07-19 21:47:47 +02:00
bjorn3 8a91bae0a6 Remove unnecessary unsafe block 2024-07-19 21:25:52 +02:00
bjorn3 747898dfb2 Run rustfmt on the entire graphics subsystem 2024-07-19 21:24:48 +02:00
Jeremy Soller 25a98ba914 Merge branch 'remove_inputd_g' into 'master'
Remove inputd -G

See merge request redox-os/drivers!185
2024-07-19 19:19:38 +00:00
bjorn3 ebb2243538 Remove all traces of VtMode
It isn't used anywhere anymore.
2024-07-19 21:18:09 +02:00
bjorn3 5f1fdec858 Remove inputd -G
Ever since fbcond got moved out of vesad it has been doing the exact
same as inputd -A.
2024-07-19 21:11:02 +02:00
Jeremy Soller 7ddb8e15eb Merge branch 'fix_ps2d_vmmouse_ub' into 'master'
Fix UB in the ps2d vmmouse implementation

See merge request redox-os/drivers!184
2024-07-16 23:30:27 +00:00
bjorn3 1f25a69feb Fix UB in the ps2d vmmouse implementation
The vm call will clobber edi, which is the register in which we saved
the ebx value. Also make sure to preserve the entire rbx value, rather
than just the lower half in ebx.
2024-07-16 15:43:50 +02:00
Jeremy Soller cfabb8945a Merge branch 'fix_inputd' into 'master'
Update deps and fix inputd.

See merge request redox-os/drivers!183
2024-07-16 12:44:41 +00:00
4lDO2 d9e5c6644d Update deps and fix inputd.
Scheme names are not allowed to contain slashes, so it should look for a
`.` in e.g. `display.vesa:/path/to/...`.
2024-07-16 14:17:19 +02:00
Jeremy Soller 1710f56e71 Merge branch 'fix_things' into 'master'
Fix fbcon

See merge request redox-os/drivers!182
2024-07-12 12:36:19 +00:00
bjorn3 2fc3923d46 Fix fbcon 2024-07-12 12:05:31 +02:00
Jeremy Soller 130dd5c1ad Merge branch 'no_legacy_path' into 'master'
Use the new scheme format in most places

See merge request redox-os/drivers!181
2024-07-11 23:32:35 +00:00
bjorn3 fd8dabd1bc Use the new scheme format in most places
The graphics subsystem still uses the old format as orbital manually
parses the fpath result.
2024-07-11 21:14:45 +02:00
Jeremy Soller 21b2e90d50 Merge branch 'bug_fixes' into 'master'
bug fixes

See merge request redox-os/drivers!180
2024-07-09 18:44:41 +00:00
ramla-i 93d5ceb465 bug fixes 2024-07-09 12:55:48 -04:00
Jeremy Soller e7781dcced Fix compilation on aarch64 2024-06-24 11:43:17 -06:00
Jeremy Soller 8d65e05a28 Merge branch 'move_drivers' into 'master'
Move all drivers to /usr/lib/drivers

See merge request redox-os/drivers!179
2024-06-22 16:55:02 +00:00
Jeremy Soller ab0b156159 ps2d: reduce timeouts 2024-06-17 12:42:23 -06:00
bjorn3 4ffed8096d Move all drivers to /usr/lib/drivers
This makes them harder to accidentally run them from the shell, which
would not work. In the future this may also allow embedding the driver
config in the driver executable itself without having to look at all
non-driver executables too.
2024-06-16 17:02:14 +02:00
Jeremy Soller a9bb925f25 Merge branch 'pcid_cleanup9' into 'master'
Don't include source files in two different crates for pcid

See merge request redox-os/drivers!178
2024-06-16 13:32:36 +00:00
bjorn3 07aaf6ea94 pcid: Don't include source files in two different crates
This confuses rust-analyzer.
2024-06-16 15:29:09 +02:00
bjorn3 6d15fbba75 pcid: Move msi from pci to driver_interface 2024-06-16 15:23:32 +02:00
bjorn3 ba6224bc27 pcid: Move VendorSpecificCapability form pci to driver_interface 2024-06-16 15:21:51 +02:00
bjorn3 5c9bbb5c96 pcid: Move PciBar from pci to driver_interface 2024-06-16 15:20:52 +02:00
bjorn3 52d1c0fb4f pcid: Move FullDeviceId from pci to driver_interface 2024-06-16 15:19:14 +02:00
Jeremy Soller 434c3aed7a Merge branch 'pcid_cleanup8' into 'master'
Get rid of PciHeader

See merge request redox-os/drivers!177
2024-06-16 13:05:12 +00:00
bjorn3 16819bc693 pcid: Get rid of PciHeader
It is a reminant of when pci_types wasn't used yet and doesn't simplify
things a lot anymore.
2024-06-16 13:42:45 +02:00
bjorn3 a34266b029 pcid: Remove all PciEndpointHeader methods 2024-06-16 13:33:55 +02:00
bjorn3 6c2fdae08c pcid: Remove all tests of PciHeader 2024-06-16 13:32:11 +02:00
bjorn3 de4d79e69e pcid: Inline PciEndpointHeader::bars 2024-06-16 13:23:27 +02:00
Jeremy Soller 2be445d6d7 Merge branch 'xhcid_slower_polling' into 'master'
Sleep for 2ms on every poll loop in xhcid

See merge request redox-os/drivers!176
2024-06-16 11:21:32 +00:00
bjorn3 160acff5a8 pcid: Move the code in PciHeader::display to other places 2024-06-16 13:20:16 +02:00
Jeremy Soller d3496f4bd4 Merge branch 'virtio_remove_legacy_transport' into 'master'
Remove virtio legacy transport support

See merge request redox-os/drivers!175
2024-06-16 11:19:14 +00:00
Jeremy Soller 073b837a5e Merge branch 'lived' into 'master'
Make lived stateless.

See merge request redox-os/drivers!174
2024-06-16 11:17:51 +00:00
bjorn3 1179d01e76 pcid: Add pretty string for the NVME device type 2024-06-16 13:12:52 +02:00
bjorn3 ae2240ef0f pcid: Remove some PciHeader methods 2024-06-16 13:12:29 +02:00
bjorn3 56000cbd9c pcid: Remove subsystem id from PciEndpointHeader 2024-06-16 13:03:58 +02:00
bjorn3 0d926fb3f7 xhcid: Sleep for 2ms on every poll loop
This significantly reduces cpu usage. On my laptop before this change a
single core would be fully loaded while running at 3-4GHz. With this
change it would only be loaded for about 50% while running at 1-2GHz.
This improves battery lifetime while also preventing the fan from
spinning up to a distracting level.

This shouldn't noticably affect latency given that most keyboards and
mice don't support polling at 500Hz anyway.
2024-06-16 12:04:05 +02:00
bjorn3 fc9331b16a virtio: Remove legacy transport support
Transitional virtio devices (which have both legacy and virtio 1.0
support) have been the default since QEMU 2.7.0, which was released
8 years ago. Basically every non-commercial Linux distro with an older
QEMU has been EOL already.

The legacy transport is also one of the few places where port I/O is
necessary, which is non-trivial to sandbox even once we have IOMMU
support. As it isn't possible to distinguish legacy and modern virtio
devices for pcid, this would mean that all virtio drivers have to be
started as privileged even if it turns out the modern transport is
supported by the VMM.
2024-06-16 11:49:11 +02:00
4lDO2 dd10d77350 Make lived stateless. 2024-06-16 11:27:24 +02:00
Jeremy Soller e1a2e21735 Merge branch 'x86_virtio_modern_transport' into 'master'
Support the modern virtio transport on x86

See merge request redox-os/drivers!173
2024-06-15 21:37:44 +00:00
bjorn3 359f4482dd virtio: Merge the x86 and x86_64 platform specific code 2024-06-15 21:59:10 +02:00
bjorn3 b6a75d0a16 virtio: Support the modern transport on x86 2024-06-15 21:59:10 +02:00
Jeremy Soller be02d70c60 Merge branch 'rustfmt_pcid' into 'master'
Rustfmt pcid

See merge request redox-os/drivers!172
2024-06-15 19:41:09 +00:00
bjorn3 2144eaa62c Rustfmt pcid 2024-06-15 21:38:43 +02:00
Jeremy Soller cd498c1826 Merge branch 'pcid_int_rework' into 'master'
Add PciFunctionHandle::map_bar method

See merge request redox-os/drivers!171
2024-06-15 13:51:20 +00:00
bjorn3 23ac696491 pcid: Add PciFunctionHandle::map_bar method
This will enable the pcid driver interface to safely map the MSI-X table
in the future without having to worry about a BAR being mapped twice.
2024-06-15 15:47:48 +02:00