Commit Graph

123 Commits

Author SHA1 Message Date
Mario Limonciello
e70e5513ca dell: don't initialize libsmbios on unsupported systems
As found in https://github.com/dell/libsmbios/pull/13
there are some errors with libsmbios error paths.

These need to be fixed in libsmbios, but at least avoid
running this code on those systems (and crashing fwupd).
2017-02-20 14:54:12 -06:00
Mario Limonciello
7319259a84 Add a new function fu_dell_supported to fu-dell-common
This is used by Dell, Synaptics and Thunderbolt plugins
to identify if the system is a Dell system and if so
activate special code paths.
2017-01-30 20:58:28 -06:00
Mario Limonciello
bae3a02348 trivial: dell: move some dock lookup code into -common
This allows other plugins to compile in -common to be able look
up some dock related items.
2017-01-30 20:17:48 -06:00
Mario Limonciello
0800097d25 trivial: dell: rework dell plugin to track a single smi object
Tracking a single smi object in the plugindata is more similar
to how other plugins operate and also allows moving FuPluginData
out of fu-dell-common, making fu-dell-tool less hacky and letting
other plugins use fu-dell-common as needed.
2017-01-30 15:48:54 -06:00
Mario Limonciello
493b63f6cc trivial: shuffle fu-dell-flash into fu-dell-common
This will make sharing common functions from the dell plugin with
others easier
2017-01-23 11:27:03 -06:00
Mario Limonciello
72f905d846 trivial: dell: fix test suite
Commit cd87fca broke running the test suite on machines without
UEFI capsule support.
2017-01-19 14:16:23 -06:00
Mario Limonciello
cd87fcae5a trivial: dell: don't disable plugin if UEFI capsule isn't supported
It now supports enabling things for other plugins too, so rather
mark any devices created by Dell as only readable, not flashable
when UEFI capsule is off.
2017-01-17 11:49:33 -06:00
Mario Limonciello
908b17e1fb trivial: dell: Don't output error domain twice 2017-01-17 11:38:34 -06:00
Mario Limonciello
f48a93546e trivial: dell: only enable coldplug delay when needed
The coldplug delay that Dell uses is only needed for the thunderbolt
and synaptics MST plugins.
2017-01-17 11:35:20 -06:00
Mario Limonciello
038d386a82 dell: introduce a standalone (noinst) tool to force mode flashes 2017-01-11 15:35:55 -06:00
Mario Limonciello
9df75f7206 trivial: dell: move coldplug delay setting to startup() 2017-01-10 17:13:08 -06:00
Mario Limonciello
592ab30b3c trivial: dell: update_prepare/update_cleanup on only certain plugins 2017-01-10 15:39:25 -06:00
Richard Hughes
b082903c5f Add fu_plugin_set_coldplug_delay() to allow hardware to initialize if required 2017-01-10 09:27:08 +00:00
Richard Hughes
efa55b83a7 dell: Fix possible linker problem
The linker does not know which public symbol to call if a plugin calls it's own
symbol. Without this change one plugin could call into another plugin with the
wrong GsPluginData set.
2017-01-09 21:32:44 +00:00
Mario Limonciello
2bcc151619 dell: Adjust the coldplug preparation and cleanup sequence
Unfortunately no indication is made that a GPIO change is
done so some time needs to be left to make sure this happened.
2017-01-09 13:31:35 -06:00
Richard Hughes
1d511fafa6 trivial: Fix a uninitialized value in the dell plugin
Spotted using clang.
2017-01-07 22:14:28 +00:00
Richard Hughes
46487c944a Add the ability to run a prepare->exec->cleanup on coldplug
The idea here is that plugins can 'wake up' hardware in prepare, and put it
back into powersaving mode when doing cleanup.
2017-01-07 21:26:36 +00:00
Richard Hughes
57d8bf6590 trivial: Fix a compile warning in the dell plugin 2017-01-07 21:15:46 +00:00
Mario Limonciello
5723c2f643 dell: Add coldplug methods to let other plugins turn on TBT/GPIO
Remove the dummy devices created for NVM and MST, these will
be created by other plugins.  Other plugins will however
be using the Dell methods to enable these devices.
2017-01-06 15:25:57 -06:00
Mario Limonciello
ddeb0297bf trivial: dell: remove unnecessary usb_ctx after moving to plugins 2017-01-06 12:03:21 -06:00
Mario Limonciello
3b09e323c8 trivial: whitespace fixes in dell plugin 2016-12-15 10:30:41 -06:00
Mario Limonciello
9bb952ac7e dell: add a new method for forcing a controller to flash mode
This method will be used in conjunction with other new plugins
in the future that will perform online flashes.
2016-12-15 10:30:37 -06:00
Richard Hughes
cff38bcb3a Convert the providers to plugins to simplify code and for future features
This is a large commit that removes all the providers and turns them into
plugins. I think having both providers _and_ plugins was super confusing.

Plugins are loaded at runtime so you could in theory develop a new plugin
without putting it in the fwupd source tree, although there are no installed
headers or PC files as I'm not sure it's a good idea at this stage.

This commit moves all the per-provider docs, tests, notes, debug dumps and test
data to plugin-specific directories -- these also allows the plugin author to
"own" more of the source tree so we don't enforce fu- prefixes and the style
guide everywhere.

This allows us to run the same action on all the plugins in the future, so we
could have a prepare(FuPlugin, FuDevice) and cleanup(FuPlugin, FuDevice) run
on *all* plugins, so doing an update using one plugin would allow us to work
around hardware quirks in other plugins.

If I've broken your out-of-tree provider it's trivial to port to the new API
with sed and a fixed up build file. If you need help please let me know.
2016-12-12 12:31:23 +00:00