Re: [PATCH 3/3] PCI Hotplug: workaround for Thunderbolt on IntelDZ77RE-75K motherboard

From: Greg KH
Date: Thu Dec 13 2012 - 13:48:11 EST


On Thu, Dec 13, 2012 at 05:31:48PM +0200, Kirill A. Shutemov wrote:
> From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
>
> BIOS on Intel DZ77RE-75K motherboard notifies OS about Thunderbolt
> hotplug before devices behind Thunderbolt are ready to be enumerated.
>
> Let's delay enumeration by 2 seconds.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> ---
> drivers/pci/hotplug/acpiphp_glue.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index 1a2b3ca..165987a 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -49,6 +49,7 @@
> #include <linux/mutex.h>
> #include <linux/slab.h>
> #include <linux/acpi.h>
> +#include <linux/dmi.h>
>
> #include "../pci.h"
> #include "acpiphp.h"
> @@ -1327,6 +1328,19 @@ out:
> static void handle_hotplug_event_bridge(acpi_handle handle, u32 type,
> void *context)
> {
> + unsigned long delay = 0;
> + const char *board_name;
> +
> + board_name = dmi_get_system_info(DMI_BOARD_NAME);
> + /*
> + * BIOS on Intel DZ77RE-75K motherboard notifies OS about Thunderbolt
> + * hotplug before devices behind Thunderbolt are ready to be
> + * enumerated.
> + * Let's delay enumeration by 2 seconds.
> + */
> + if (board_name && !strcmp(board_name, "DZ77RE-75K"))
> + delay = 2 * HZ;

Again, no objection to this patch as-is, but should we make it a bit
more "general" and provide a quirk table to make this type of fix easier
for other motherboards? Shouldn't we also match on a manufacturer field
as well as the board_name? The kernel provides a very easy to match on
any arbritary set of DMI fields for this kind of problem that we could
use here.

I can make that change if needed.

What are the odds that other boards are going to need a longer delay
time? Actually, is there a spec saying how long we need to wait? The
ACPI PCI Hotplug had a value somewhere that the hardware was supposed to
follow, but I don't have access to that ACPI spec anymore to verify
this...

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/