Richard Hughes
ced79fce4a
Create the better device GType in the backend
...
It is weird to do this when constructing the object, and it allows us
to match PossiblePlugin quirk matches on potentially better instance
IDs added by the superclass.
2022-06-30 19:06:38 +01:00
Richard Hughes
bb548f15f0
Fix segfault when parsing an invalid i2c device
...
Confusingly, g_regex_match_full() returns FALSE and doesn't always set
the GError. Just use g_path_get_basename() and g_str_has_prefix().
2022-06-30 19:06:38 +01:00
Richard Hughes
7b96c2e6cd
trivial: Implement FuMeiDevice->incorporate()
2022-06-30 19:06:38 +01:00
Richard Hughes
a694a1d915
trivial: Implement FuI2cDevice->incorporate()
2022-06-30 19:06:38 +01:00
Richard Hughes
006c75a82d
trivial: Only print the MEI private data if set
2022-06-30 19:06:38 +01:00
Richard Hughes
a61bb37881
Build the quirk files into the daemon as a GResource
...
Interestingly, this increases the `fwupd` binary size by ~30kb but
reduces the installed size of /usr/share/fwupd/quirks.d by ~330kb.
2022-06-30 18:52:24 +01:00
Richard Hughes
6ac6372b2a
trivial: Make the FuUdevDevice->to_string() more complete
2022-06-30 14:17:53 +01:00
Richard Hughes
c7b3cd5b8a
Fix a hidraw regression
...
Ensure that udev_parent is actually set before checking it for NULL.
2022-06-30 14:17:53 +01:00
Richard Hughes
5b17189bc1
Fix FuUdevPlugin to use 0x0 for unset
...
We were using 0x0 and 0xFFFF in different places, and only checking the
former in most cases. Just restrict the range to 0xFFFE and use 0x0 as
*invalid or not set* as before.
2022-06-30 14:17:53 +01:00
Richard Hughes
3d654e9b68
Enforce that the UDEV VEN:DEV is a uint16_t
...
This was incompletely fixed in bf256a7ca7
and changing the type means that the compiler finds any places where
we compare it with a uint32_t.
2022-06-30 14:17:53 +01:00
Richard Hughes
96b423e04f
Add support for IFWI Intel Flash Program Tool (aka FPT) firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
3236682a71
Allow decoding linear firmware with 'fwupdtool firmware-parse'
...
We cannot enable this for all formats as some firmware images have junk
data or are aligned in a specific way. Only do this when we know it is
safe.
2022-06-28 10:09:58 +01:00
Richard Hughes
0a7eb03704
Add a linear firmware wrapper
...
This allows us to parse any concatenated firmware format where the
image size is stored in the image.
2022-06-28 10:09:58 +01:00
Richard Hughes
08c7172168
Add support for parsing OptionROM firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
f1542c3f9f
Add support for IFWI Intel Code Partition (aka CPD) firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
0491b07a93
Make the FuFirmware->parse() vfunc more helpful
...
This removes the 100% unused addr_end parameter and explicitly makes
the addr_start into the start offset in more cases.
2022-06-27 15:40:11 -05:00
Richard Hughes
0c590a7cfa
trivial: Split out the quirk->XML code for future use
2022-06-27 19:06:24 +01:00
Richard Hughes
5cdb517056
Get the UDev vendor ID from the grandparent when required
2022-06-26 17:27:05 -05:00
Richard Hughes
a70d005ea3
trivial: Use a better error message disambiguate an error message
2022-06-23 21:56:06 +01:00
Gaël PORTAY
c74b4ec438
trivial: Fix typo
2022-06-21 03:27:38 -04:00
Gaël PORTAY
299b42fe96
trivial: Make meson.build indentation consistent
2022-06-21 03:27:38 -04:00
Richard Hughes
5e899535d4
amt: Modernize the plugin and split out common functionality
...
The MEI code is soon going to be used by a new plugin, so split it
out into libfwupdplugin like we did i2c.
2022-06-21 08:10:04 +01:00
Gaël PORTAY
2454753cf7
trivial: progress: Fix documentation
...
This commit cf9ebdb703
.
2022-06-20 12:00:40 -04:00
Daniil Lunev
38fb424246
Fix setting version for udev devices
...
Change-Id: I907bb3958b624ff5f887cbc192f54448354d9d5c
2022-06-17 07:03:58 +01:00
Richard Hughes
87c4163993
trivial: Fix typo when setting the parent status
2022-06-16 19:54:46 +01:00
Richard Hughes
700ea6cf0d
Do not add 'unset' UDev vendor or model information
2022-06-15 13:09:11 +01:00
Richard Hughes
bf256a7ca7
Read the UDev vendor and model as a uint16_t
2022-06-15 13:09:11 +01:00
Richard Hughes
cf9ebdb703
Add startup profiling functionality
...
Using `sudo FWUPD_PROFILE=10 ./src/fwupd --verbose` will print a
dump of startup times onto the console so that we can debug which
plugin is slowing down system startup. For example:
../src/fu-engine.c:5409:plugins-coldplug [108.55ms]:
../plugins/amt/fu-plugin-amt.c:437:amt [27.14ms]:
:create-context [12.66ms]
:get-version [8.44ms]
:add-device [3.95ms]
2022-06-14 22:08:02 +01:00
Richard Hughes
faa7871b08
Remove duplicate ->probe() calls to speed up startup by 150ms
...
Now incorporate is fixed to copy across the properties we need in the
superclass, we don't need to do the subclass ->probe().
Note, we still need to do the subclassed ->probe() when using
FU_UDEV_DEVICE_FLAG_VENDOR_FROM_PARENT or when looking at properties
on the parent device.
This also removes the spurious 'already set GType to FuVliUsbhubDevice,
ignoring FuVliUsbhubDevice' messages when running the daemon.
2022-06-14 21:01:57 +01:00
Richard Hughes
4655e028a6
Copy more properties when doing FuUdevDevice->incorporate
...
We're supposed to be copying any private data derived during ->probe()
so we can create a superclass with the same attributes.
2022-06-14 21:01:57 +01:00
Richard Hughes
db01004cd4
Copy the possible plugins when incorporating
...
I don't think this is required, but seems safer.
2022-06-14 21:01:57 +01:00
Richard Hughes
30aab6f564
Copy the instance ID strings when incorporating
...
Also, add a test.
2022-06-14 21:01:57 +01:00
Richard Hughes
599e67cd2c
trivial: More efficiently incorporate metadata
2022-06-14 21:01:57 +01:00
Richard Hughes
2203b3ce7b
trivial: gi-docgenize some of the function comments
2022-06-14 14:36:52 -05:00
Richard Hughes
2dc6a7ef73
Remove fu_i2c_device_read_full()
...
Just use the version with the length specified.
2022-06-14 14:36:52 -05:00
Richard Hughes
d4d0ba0faf
Unexport fu_common_cab_build_silo()
...
There's no reason this needs to be in the shared library.
2022-06-14 14:36:52 -05:00
Richard Hughes
3eaa907534
Remove the now unnecessary fu_smbios_to_string()
2022-06-14 14:36:52 -05:00
Richard Hughes
fc2da47b69
Remove fu_strtoull_full()
2022-06-14 14:36:52 -05:00
Richard Hughes
377bcb718f
Remove the 'common' prefix from the volume creation methods
2022-06-14 14:36:52 -05:00
Richard Hughes
4105768a01
Remove the 'common' prefix when parsing version numbers
2022-06-14 14:36:52 -05:00
Richard Hughes
1d9d82ebc5
Use a common prefix for CPU-specific methods
2022-06-14 14:36:52 -05:00
Richard Hughes
3e0a4dc1c3
Be smarter and include less header files per source file
2022-06-14 14:36:52 -05:00
Richard Hughes
067d7d8088
Split out the path helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
2822d724b2
Unexport the nearly-unused FuAppFlags
2022-06-14 14:36:52 -05:00
Richard Hughes
770a452132
Unexport fu_common_error_array_get_best()
...
Plugins should not be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
14cc9b2064
Unexport fu_common_reverse_uint8()
...
It's only used in one little-used plugin.
2022-06-14 14:36:52 -05:00
Richard Hughes
7f86ffab6f
Split out the dump helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
72ca59653e
Unexport fu_common_uri_get_scheme()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
518ba8b6f7
Unexport fu_common_realpath()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
2c5e4ff3ab
Unexport fu_common_firmware_builder()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00