Re: [PATCH v4] xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Applied to my for-usb-linus-queue branch, thanks.

Sarah Sharp

On Fri, Mar 30, 2012 at 10:21:38AM +0800, Alex He wrote:
> Re-define XHCI_LEGACY_DISABLE_SMI and used it in right way. All SMI enable
> bits will be cleared to zero and flag bits 29:31 are also cleared to zero.
> Other bits should be presvered as Table 146.
> 
> Signed-off-by: Alex He <alex.he@xxxxxxx>
> ---
>  drivers/usb/host/pci-quirks.c    |   10 +++++++---
>  drivers/usb/host/xhci-ext-caps.h |    5 +++--
>  2 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
> index 7732d69..2afff88 100644
> --- a/drivers/usb/host/pci-quirks.c
> +++ b/drivers/usb/host/pci-quirks.c
> @@ -825,9 +825,13 @@ static void __devinit quirk_usb_handoff_xhci(struct pci_dev *pdev)
>  		}
>  	}
>  
> -	/* Disable any BIOS SMIs */
> -	writel(XHCI_LEGACY_DISABLE_SMI,
> -			base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
> +	val = readl(base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
> +	/* Mask off (turn off) any enabled SMIs */
> +	val &= XHCI_LEGACY_DISABLE_SMI;
> +	/* Mask all SMI events bits, RW1C */
> +	val |= XHCI_LEGACY_SMI_EVENTS;
> +	/* Disable any BIOS SMIs and clear all SMI events*/
> +	writel(val, base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
>  
>  	if (usb_is_intel_switchable_xhci(pdev))
>  		usb_enable_xhci_ports(pdev);
> diff --git a/drivers/usb/host/xhci-ext-caps.h b/drivers/usb/host/xhci-ext-caps.h
> index c7f3312..377f424 100644
> --- a/drivers/usb/host/xhci-ext-caps.h
> +++ b/drivers/usb/host/xhci-ext-caps.h
> @@ -62,8 +62,9 @@
>  /* USB Legacy Support Control and Status Register  - section 7.1.2 */
>  /* Add this offset, plus the value of xECP in HCCPARAMS to the base address */
>  #define XHCI_LEGACY_CONTROL_OFFSET	(0x04)
> -/* bits 1:2, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */
> -#define	XHCI_LEGACY_DISABLE_SMI		((0x3 << 1) + (0xff << 5) + (0x7 << 17))
> +/* bits 1:3, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */
> +#define	XHCI_LEGACY_DISABLE_SMI		((0x7 << 1) + (0xff << 5) + (0x7 << 17))
> +#define XHCI_LEGACY_SMI_EVENTS		(0x7 << 29)
>  
>  /* USB 2.0 xHCI 0.96 L1C capability - section 7.2.2.1.3.2 */
>  #define XHCI_L1C               (1 << 16)
> -- 
> 1.7.1
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux