Currently, the vendor ID reported by the chipset is checked before to avoid accidentally programming devices from unsupported vendors with a different NVM structure. Certain Thunderbolt devices store the vendor ID in the NVM, therefore if the NVM has become corrrupted the device will report an invalid vendor ID and reflashing will be impossible on GNU/Linux even if the device can boot in safe mode. Such devices can still be programmed just fine if the vendor ID check is overridden. Nevertheless, overriding these checks introduces the risk of damaging controllers from other manufacturers which is a clearly undesirable result. Instead we allow the user to make a concious choice to override the vendor ID by passing it as a parameter to this module. Currently, this is done by expanding the condition to validate the vendor ID to also check this parameter's value but, if new NVM structures are added and a choice has to be made, the code should prefer this parameter over the harrdware reported one when making the choice. This patch also updates the Thunderbolt documentation to explain how this parameter works. root (2): thunderbolt: allow vendor ID override for NVM programming Documentation: explain how to override Thunderbolt Vendor ID Documentation/admin-guide/thunderbolt.rst | 10 ++++++++++ drivers/thunderbolt/switch.c | 9 ++++++++- 2 files changed, 18 insertions(+), 1 deletion(-)