/* Reverses the effect of usb_hcd_at91_probe(), first invoking the HCD's stop() method. It is always called from a thread context, "rmmod" or something similar.  */
static void usb_hcd_at91_remove(struct usb_hcd *, struct platform_device *)
/* Reverses the effect of usb_hcd_at91_probe(), first invoking the HCD's stop() method. It is always called from a thread context, "rmmod" or something similar.  */
static void usb_hcd_at91_remove(struct usb_hcd *, struct platform_device *)
{
	usb_remove_hcd(hcd);
	at91_stop_hc(pdev);
	iounmap(hcd->regs);
	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
	usb_put_hcd(hcd);
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		clk_put(hclk);
	clk_put(fclk);
	clk_put(iclk);
	fclk = iclk = hclk = NULL;
	dev_set_drvdata(&pdev->dev, NULL);
}