Re: [RFC/PATCH 3/4] disociate chipidea PHY low power suspend control from hostpc

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

 



On Mon, 14 May 2012, Matthieu CASTET wrote:

> +static void tdi_phy_lpm_clear(struct ehci_hcd *ehci, int port)
> +{
> +	if (ehci->has_hostpc) {
> +		u32 __iomem	*hostpc_reg;
> +		u32		temp;
> +
> +		hostpc_reg = (u32 __iomem *)((u8 *) ehci->regs
> +				+ HOSTPC0 + 4 * port);

While you're at it, can we get rid of this mess?  How about just 
defining register array pointer, like this:

	ehci->hostpcs = (u32 __iomem *) ((void *) ehci->regs + HOSTPC0);

> @@ -146,15 +177,10 @@ static __maybe_unused void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
>  	spin_lock_irqsave(&ehci->lock, flags);
>  
>  	/* clear phy low-power mode before changing wakeup flags */
> -	if (ehci->has_hostpc) {
> +	if (ehci->has_tdi_phy_lpm) {
>  		port = HCS_N_PORTS(ehci->hcs_params);
> -		while (port--) {
> -			u32 __iomem	*hostpc_reg;
> -
> -			hostpc_reg = (u32 __iomem *)((u8 *) ehci->regs
> -					+ HOSTPC0 + 4 * port);
> -			temp = ehci_readl(ehci, hostpc_reg);
> -			ehci_writel(ehci, temp & ~HOSTPC_PHCD, hostpc_reg);
> +		while (port--)
> +			tdi_phy_lpm_clear(ehci, port);
>  		}

You forgot to remove this line.  Did you try to compile this code?

Instead of looping through the ports all over the place, how writing a 
separate routine to call tdi_phy_lpm_clear() for all ports?  And the 
same for tdi_phy_lpm_set().

Alan Stern

--
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