Commit Graph

143 Commits

Author SHA1 Message Date
hugh chao(hugh712)
a7e1307bfd dell-dock: update doc to clarify the hidden inhibited usb4 device 2022-07-14 07:56:47 +01:00
hugh712
4bf53196fc trivial: don't show devices with inhibit id: hidden
dell-dock: don't show thunderbolt's usb4 device, if inhibited
2022-07-05 08:54:12 +01:00
hugh712
dc74008517 dell-dock: Use accurate FuProgress steps for ec and mst 2022-07-04 10:47:06 +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
Crag Wang
e8fc812c29 dell-dock: update doc to clarify the inhibition of usb4 device 2022-06-30 12:13:19 +08:00
Crag Wang
f68092ea9d dell-dock: cache hub device and add it until ec is added
The usb3 hub 413c:b06f may be added to the plugin ahead of ec device
while dock type is yet known at that time. Cache the hub until ec can
tell the instance id, then add it to the plugin.
2022-06-28 06:49:24 +08:00
Gaël PORTAY
299b42fe96 trivial: Make meson.build indentation consistent 2022-06-21 03:27:38 -04:00
Richard Hughes
fc2da47b69 Remove fu_strtoull_full() 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
3e0a4dc1c3 Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
Richard Hughes
ed1b13da28 Split out the memory helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
9d33c29e92 Split out the string helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
dc91d59f8e Remove the recently added fu_progress_add_step_full()
Just break API instead.
2022-06-03 13:47:11 -05:00
Richard Hughes
8ebad4ea75 Specify an enumerated problem when inhibiting devices
This allows us to make smarter policy decisions in the future on when
to show unavailable updates. It also means we can show translated
text in the frond-end clients.

Only problems the user can "fix" are enumerated. For example, opening
the laptop lid, or charging the device battery.
2022-05-19 13:09:03 -05:00
Richard Hughes
d3d7cfa816 Add plugin quirk keys earlier in the startup process
This allows creating the silo when starting the engine with custom
plugin keys such as WacomI2cFlashBaseAddr.

If we move the plugin initialization earlier then we don't get the
HwID matches, so we really do have to split this into a 4-stage startup,
e.g. ->load(), ->init(), ->startup() and ->coldplug().
2022-05-09 11:13:52 +01:00
Crag Wang
9c8dc29711 dell-dock: probe mst earlier to determine signed payload attr 2022-04-13 00:00:01 -05:00
Crag Wang
a2919b935b trivial: add device GUID to avoid warning message 'no GUIDs for device' 2022-04-12 09:57:08 +01:00
Crag Wang
f3e05f3ced dell-dock: set minimum version of EC 2022-04-08 18:15:50 +08:00
Richard Hughes
8b62bf6b64 Set the context in the right place more often 2022-03-16 09:18:29 +00:00
Mario Limonciello
d6961bfb0d trivial: dell-dock: set package version payload as unsigned
This payload is just 24 bytes with no signature.  It's used as a manifest
to verify that all firmware is installed.
2022-03-14 14:46:37 +00:00
Mario Limonciello
661990ed98 Convert build system to use meson tristate features
tristate features will automatically disable if dependencies marked
as required are missing.

Packagers can manually override using `auto_features`.

Link: https://mesonbuild.com/Build-options.html#features
2022-02-28 08:34:48 -06:00
Crag Wang
19ade34f0b trivial: Add flag dynamically for thunderbolt finish the authentication 2022-02-24 23:53:56 +08:00
Richard Hughes
758d5d8c6f Add a flag to indicate the device is signed or unsigned
Devices without either flag are unknown.
2022-02-22 19:12:06 +00:00
Crag Wang
36fd4117c6 dell-dock: fix a segfault if device isn't added yet 2022-01-23 17:53:51 +00:00
Richard Hughes
73f6767d87 trivial: Show why more devices are not marked as updatable 2022-01-13 16:04:31 +00:00
Mario Limonciello
e332a3683e trivial: win32: don't reference synaptics-mst plugin
This plugin won't work on win32, it's a pointless error message
2021-12-15 06:46:27 -06:00
Richard Hughes
58d36dcbe5 Check the value range when parsing the quirk keys
At the moment there isn't an error if you enter something like

    CfiDeviceCmdReadId = 0×12
2021-12-09 13:09:43 +00:00
Richard Hughes
61fe427d41 dell-dock: Fix a trivial clang-format issue
This was somehow missed when we reformatted the entire source tree.
2021-11-29 21:40:17 +00:00
Crag Wang
23e194413a dell-dock: remove require-ac flag as dock supplies the power 2021-11-11 15:55:04 +00:00
Richard Hughes
e87fc05ab9 Speed up the daemon startup by ~2% by doing dlsym much less
We were calling g_module_symbol() 2703 times, which is actually more
expensive than you'd think.

It also means the plugins are actually what we tell people they are:
A set of vfuncs that get run. The reality before that they were dlsym'd
functions that get called at pretty random times.
2021-11-09 12:02:07 +00:00
bennyLucky
b33a162b4c dell-dock:Add atomic support 2021-10-28 19:32:22 +08:00
Mario Limonciello
0914f81336 dell-dock: enumerate hub after EC 2021-10-21 10:32:34 -05:00
Richard Hughes
40cd18fa97 Allow using a per-device global percentage completion
It's actually quite hard to build a front-end for fwupd at the moment
as you're never sure when the progress bar is going to zip back to 0%
and start all over again. Some plugins go 0..100% for write, others
go 0..100% for erase, then again for write, then *again* for verify.

By creating a helper object we can easily split up the progress of the
specific task, e.g. write_firmware().

We can encode at the plugin level "the erase takes 50% of the time, the
write takes 40% and the read takes 10%". This means we can have a
progressbar which goes up just once at a consistent speed.
2021-09-13 14:28:15 +01:00
Richard Hughes
d8af914072 trivial: Remove some unused variables 2021-08-28 10:17:56 +01:00
Crag Wang
ab307a879f dell-dock: cleanup needs to handle activation between devices in dock 2021-08-27 13:04:48 +08:00
Crag Wang
651a542cae dell-dock: add device GUID earlier even setup yet done
This commit resolves a warning message at runtime:
- no GUIDs for device ...

fu_device_add_child emits a child-added signal afterwards the engine
try to add given device and verify whether GUIDs is set.
2021-08-25 08:20:44 -05:00
Mario Limonciello
55de39c077 trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
Crag Wang
756b18391b dell-dock: handle activation until both ec and usb4 devices are probed 2021-08-24 11:45:45 +08:00
Richard Hughes
c1ff02f055 trivial: Make the quirk style more consistent 2021-08-23 18:10:12 +01:00
cragw
f5fb53a371
trivial: if usb4 device device presents then activate it exclusively (#3595)
* dell-dock: open usb4 device in the activate call, and leave early

* trivial: read history earlier, at least before plugin register

* dell-dock: activate usb4 device exclusively if it needs activation
2021-08-11 22:29:31 +08:00
Thomas Deutschmann
9e4d1bc73b dell-dock plugin requires gusb
Closes: https://github.com/fwupd/fwupd/issues/3598
2021-08-04 18:19:09 +01:00
Mario Limonciello
798d1ed3ee trivial: update markdown for pre-commit style 2021-07-18 14:42:47 -05:00
Richard Hughes
aaa77c6f51 Allow adding and removing custom flags on devices
The CustomFlags feature is a bit of a hack where we just join the flags
and store in the device metadata section as a string. This makes it
inefficient to check if just one flag exists as we have to split the
string to a temporary array each time.

Rather than adding to the hack by splitting, appending (if not exists)
then joining again, store the flags in the plugin privdata directly.

This allows us to support negating custom properties (e.g. ~hint) and
also allows quirks to append custom values without duplicating them on
each GUID match, e.g.

[USB\VID_17EF&PID_307F]
Plugin = customflag1
[USB\VID_17EF&PID_307F&HUB_0002]
Flags = customflag2

...would result in customflag1,customflag2 which is the same as you'd
get from an enumerated device flag doing the same thing.
2021-06-23 07:59:15 +01:00
Crag Wang
8d68865a86 dell-dock: add usb protocol for USB4 device 2021-06-19 16:44:24 +01:00
Richard Hughes
bf72d393fd Split up FuUsbDevice into ->open() and ->setup()
Before this change calling FuUsbDevice->open() opened the device, and
also unconditionally added various GUIDs and InstanceIDs which we
normally do in setup.
Then fu_device_setup() would call the FuSubclass->setup() vfunc which
would have no way of either opting out of the FuUsbDevice->setup()-like
behaviour, or controlling if the parent class ->setup is run before or
after the subclass setup.

Split up FuUsbDevice->open() into clear ->open() and ->setup() phases
and add the parent class calls where appropriate.

This means that ->setup() now behaves the same as all the other vfuncs.
2021-06-17 16:21:41 +01:00
Mario Limonciello
73cdf067ed trivial: fixup includes for a variety of plugins 2021-06-14 10:12:45 +01:00
Crag Wang
9264dc1bca dell-dock: Add initial support for USB4 module 2021-06-04 22:31:18 -05:00
Richard Hughes
20ef071b3c trivial: Style fixes to lots of gtk-doc 2021-05-10 14:35:10 +01:00
Richard Hughes
89d45a0d91 trivial: Standardize on introspection for @error and @cancellable
Also standarize on `Returns:` for the result.
2021-04-28 16:19:50 +01:00
Richard Hughes
faa35e430b Show a warning if the device has no GType and the plugin has no default
This also renames a symbol to make it clear that you can call it more than once.

Fixes https://github.com/fwupd/fwupd/issues/3148
2021-04-15 16:52:56 +01:00