fwupd/plugins
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
..
acpi-dmar Use a common prefix for CPU-specific methods 2022-06-14 14:36:52 -05:00
acpi-facp Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
acpi-ivrs Use a common prefix for CPU-specific methods 2022-06-14 14:36:52 -05:00
acpi-phat Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
amt Add FuProgress to ->startup() and ->coldplug() 2022-06-04 20:21:50 +01:00
analogix Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
ata Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
bcm57xx Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
bios Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
ccgx Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
cfu Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
ch341a Unexport fu_common_reverse_uint8() 2022-06-14 14:36:52 -05:00
colorhug Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
corsair Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
cpu Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
cros-ec Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
dell Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
dell-dock Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
dell-esrt Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
dfu Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
dfu-csr Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
ebitdo Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
elanfp Split out the memory helpers to a new source file 2022-06-14 14:36:52 -05:00
elantp Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
emmc Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
ep963x Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
fastboot Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
flashrom Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
fresco-pd Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
genesys Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
goodix-moc Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
gpio Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
hailuck Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
intel-spi Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
iommu Make the HSI tests optional for embedded targets 2021-11-29 09:30:57 +00:00
jabra Split out the string helpers to a new source file 2022-06-14 14:36:52 -05:00
lenovo-thinklmi Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
linux-lockdown Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
linux-sleep Make the HSI tests optional for embedded targets 2021-11-29 09:30:57 +00:00
linux-swap Remove the 'common' prefix from the volume creation methods 2022-06-14 14:36:52 -05:00
linux-tainted Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
logind Add FuProgress to ->startup() and ->coldplug() 2022-06-04 20:21:50 +01:00
logitech-bulkcontroller Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
logitech-hidpp Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
modem-manager Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
msr Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
mtd Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
nitrokey Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
nordic-hid Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
nvme Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
optionrom optionrom: Reorder plugins FuDevice->probe() to speed up daemon startup 2022-06-14 21:01:57 +01:00
parade-lspcon Remove fu_i2c_device_read_full() 2022-06-14 14:36:52 -05:00
pci-bcr Use a common prefix for CPU-specific methods 2022-06-14 14:36:52 -05:00
pci-mei Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
pci-psp Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
pixart-rf Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
powerd Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
realtek-mst Remove fu_i2c_device_read_full() 2022-06-14 14:36:52 -05:00
redfish Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
rts54hid Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
rts54hub Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
scsi Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
steelseries Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
superio Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
synaptics-cape Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
synaptics-cxaudio Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
synaptics-mst Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
synaptics-prometheus Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
synaptics-rmi Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
system76-launch Remove the recently added fu_progress_add_step_full() 2022-06-03 13:47:11 -05:00
test Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
thelio-io Remove the recently added fu_progress_add_step_full() 2022-06-03 13:47:11 -05:00
thunderbolt Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
tpm Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
uefi-capsule Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
uefi-dbx Remove the 'common' prefix from the volume creation methods 2022-06-14 14:36:52 -05:00
uefi-pk Add FuProgress to ->startup() and ->coldplug() 2022-06-04 20:21:50 +01:00
uefi-recovery Add FuProgress to ->startup() and ->coldplug() 2022-06-04 20:21:50 +01:00
uf2 Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
upower Add FuProgress to ->startup() and ->coldplug() 2022-06-04 20:21:50 +01:00
usi-dock Split out the string helpers to a new source file 2022-06-14 14:36:52 -05:00
vli Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
wacom-raw Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
wacom-usb Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
meson.build Remove platform-integrity plugin 2022-06-06 10:03:04 +01:00
README.md Rename the development branch from master to main 2021-09-24 14:20:24 -05:00

Adding a new plugin

An extensible architecture allows for providing new plugin types (for reading and writing different firmware) as well as ways quirk their behavior.

You can find more information about the architecture in the developers section of the fwupd website.

You can use the fwupd developer documentation to assist with APIs available to write the plugin.

If you have a firmware specification and would like to see support in this project, please file an issue and share the spec. Patches are also welcome.

We will not accept plugins that upgrade hardware using a proprietary Linux executable, proprietary UEFI executable, proprietary library, or DBus interface.

Plugin interaction

Some plugins may be able to influence the behavior of other plugins. This includes things like one plugin turning on a device, or providing missing metadata to another plugin.

The ABI for these interactions is defined in: https://github.com/fwupd/fwupd/blob/main/libfwupdplugin/fu-device-metadata.h

All interactions between plugins should have the interface defined in that file.