// SPDX-License-Identifier: GPL-1.0+ /* * OHCI HCD (Host Controller Driver) for USB. * * (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at> * (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net> * (C) Copyright 2002 Hewlett-Packard Company * * USB Bus Glue for Samsung S3C2410 * * Written by Christopher Hoover <ch@hpl.hp.com> * Based on fragments of previous driver by Russell King et al. * * Modified for S3C2410 from ohci-sa1111.c, ohci-omap.c and ohci-lh7a40.c * by Ben Dooks, <ben@simtec.co.uk> * Copyright (C) 2004 Simtec Electronics * * Thanks to basprog@mail.ru for updates to newer kernels * * This file is licenced under the GPL.
*/
/* ohci_s3c2410_hub_control * * look at control requests to the hub, and see if we need * to take any action or over-ride the results from the * request.
*/
/* ok, once over-current is detected,
the port needs to be powered down */
s3c2410_usb_set_power(info, portno+1, 0);
}
}
local_irq_restore(flags);
}
/* may be called without controller electrically present */ /* may be called with controller, bus, and devices active */
/* * ohci_hcd_s3c2410_remove - shutdown processing for HCD * @dev: USB Host Controller being removed * * Context: task context, might sleep * * Reverses the effect of ohci_hcd_3c2410_probe(), first invoking * the HCD's stop() method. It is always called from a thread * context, normally "rmmod", "apmd", or something similar.
*/ staticvoid
ohci_hcd_s3c2410_remove(struct platform_device *dev)
{ struct usb_hcd *hcd = platform_get_drvdata(dev);
/* * ohci_hcd_s3c2410_probe - initialize S3C2410-based HCDs * @dev: USB Host Controller to be probed * * Context: task context, might sleep * * Allocates basic resources for this USB host controller, and * then invokes the start() method for the HCD associated with it * through the hotplug entry's driver_data.
*/ staticint ohci_hcd_s3c2410_probe(struct platform_device *dev)
{ struct usb_hcd *hcd = NULL; struct s3c2410_hcd_info *info = dev_get_platdata(&dev->dev); int retval, irq;
staticint __init ohci_s3c2410_init(void)
{ if (usb_disabled()) return -ENODEV;
ohci_init_driver(&ohci_s3c2410_hc_driver, NULL);
/* * The Samsung HW has some unusual quirks, which require * Sumsung-specific workarounds. We override certain hc_driver * functions here to achieve that. We explicitly do not enhance * ohci_driver_overrides to allow this more easily, since this * is an unusual case, and we don't want to encourage others to * override these functions by making it too easy.
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.