I have a Lenovo Thinkpad Thunderbolt 3 Dock Gen 2 connected to a Dell Latitude 5400. I'm running a vanilla 5.8.16 kernel. MAC pass-through does not work out of the box. I've narrowed the problem down to the following:
Here is the part of the code from the vanilla kernel that does not work in my setup:
Hello!
I have a Lenovo Thinkpad Thunderbolt 3 Dock Gen 2 connected to a Dell Latitude 5400. I'm running a vanilla 5.8.16 kernel. MAC pass-through does not work out of the box. I've narrowed the problem down to the following:
Here is the part of the code from the vanilla kernel that does not work in my setup:
drivers/ net/usb/ r8152.c: static int vendor_ mac_passthru_ addr_read( struct r8152 *tp, struct sockaddr *sa): LENOVO_ MACPASSTHRU, &tp->flags)) {
mac_obj_ name = "\\MACA";
mac_obj_ type = ACPI_TYPE_STRING;
mac_strlen = 0x16;
...
if (test_bit(
} else {
...
With the code above, vendor_ mac_passthru_ addr_read exits without success here:
.... object( NULL, mac_obj_name, NULL, &buffer); SUCCESS( status) )
return -ENODEV;
status = acpi_evaluate_
obj = (union acpi_object *)buffer.pointer;
if (!ACPI_
{
}
...
If I change the first code snippet to this:
... LENOVO_ MACPASSTHRU, &tp->flags)) {
mac_obj_ name = "\\_SB.AMAC";
mac_obj_ type = ACPI_TYPE_BUFFER;
mac_strlen = 0x17;
if (test_bit(
} else {
...
MAC pass-through works fine!
I don't know if this is true for all Lenovo Thinkpad Thunderbolt 3 Docks, I only have this one.
Regards,
Christian