This allows us to ignore all the delays when the device is emulated, with the
idea being to do dozens of device emulations in the CI tests.
Also, do not call fu_progress_sleep() when the device is emulated.
This uses the internal flag FU_DEVICE_INTERNAL_FLAG_USE_PARENT_FOR_OPEN,
to fix the calling to the parent's vfunc close() (it was calling the
parent's vfunc open() on close()).
The scaler may return invalid version or public-key.
This checks for the public-key by verifing if it starts with "N = " for
both devices usbhub and scaler; however, the scaler version cannot be
checked.
Note: Replug the USB-C cable is fixes the issue.
This allows us to print better warning strings, and in the future
would allow us to profile each operation in a meaningful way.
Also, add context to some of the progress steps as required.
The plugin gets the panel-type (i.e. hardware revision) as the firmware
version.
This gets the real firmware version, and appends the panel-type to the
instance-id string as the blobs are specific to panel-types.
Provide a device instance builder that allows plugins to easily
create multiple instance IDs based on parent attributes.
Also fix a lot of the instance ID orders, so that we add more generic
IDs first, and more specific IDs after.