while decoupling XHCI core from the PCI bus, we will need some symbols to be passed from PCI bus glue until we finish the re-factor. This is a temporary patch to make upcoming patches easier to review and test. Will be reverted when the conversion is finished. Signed-off-by: Felipe Balbi <balbi@xxxxxx> --- drivers/usb/host/xhci-dbg.c | 1 + drivers/usb/host/xhci-hub.c | 4 ++++ drivers/usb/host/xhci-ring.c | 1 + drivers/usb/host/xhci.c | 24 ++++++++++++++++++++++++ 4 files changed, 30 insertions(+), 0 deletions(-) diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c index 1f50b44..48117b6 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c @@ -238,6 +238,7 @@ void xhci_print_registers(struct xhci_hcd *xhci) xhci_print_op_regs(xhci); xhci_print_ports(xhci); } +EXPORT_SYMBOL_GPL(xhci_print_registers); void xhci_print_trb_offsets(struct xhci_hcd *xhci, union xhci_trb *trb) { diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index 0be788c..e7c3896 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -724,6 +724,7 @@ error: spin_unlock_irqrestore(&xhci->lock, flags); return retval; } +EXPORT_SYMBOL_GPL(xhci_hub_control); /* * Returns 0 if the status hasn't changed, or the number of bytes in buf. @@ -773,6 +774,7 @@ int xhci_hub_status_data(struct usb_hcd *hcd, char *buf) spin_unlock_irqrestore(&xhci->lock, flags); return status ? retval : 0; } +EXPORT_SYMBOL_GPL(xhci_hub_status_data); #ifdef CONFIG_PM @@ -859,6 +861,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd) spin_unlock_irqrestore(&xhci->lock, flags); return 0; } +EXPORT_SYMBOL_GPL(xhci_bus_suspend); int xhci_bus_resume(struct usb_hcd *hcd) { @@ -970,5 +973,6 @@ int xhci_bus_resume(struct usb_hcd *hcd) spin_unlock_irqrestore(&xhci->lock, flags); return 0; } +EXPORT_SYMBOL_GPL(xhci_bus_resume); #endif /* CONFIG_PM */ diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 70cacbb..696a865 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -2357,6 +2357,7 @@ hw_died: return IRQ_HANDLED; } +EXPORT_SYMBOL_GPL(xhci_irq); irqreturn_t xhci_msi_irq(int irq, struct usb_hcd *hcd) { diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index d6c9577..7ef32c8 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -109,6 +109,7 @@ int xhci_halt(struct xhci_hcd *xhci) xhci->xhc_state |= XHCI_STATE_HALTED; return ret; } +EXPORT_SYMBOL_GPL(xhci_halt); /* * Set the run bit and wait for the host to be running. @@ -175,6 +176,7 @@ int xhci_reset(struct xhci_hcd *xhci) */ return handshake(xhci, &xhci->op_regs->status, STS_CNR, 0, 250 * 1000); } +EXPORT_SYMBOL_GPL(xhci_reset); /* * Free IRQs @@ -328,6 +330,7 @@ int xhci_init(struct usb_hcd *hcd) return retval; } +EXPORT_SYMBOL_GPL(xhci_init); /*-------------------------------------------------------------------------*/ @@ -507,6 +510,7 @@ legacy_irq: xhci_dbg(xhci, "Finished xhci_run for USB2 roothub\n"); return 0; } +EXPORT_SYMBOL_GPL(xhci_run); static void xhci_only_stop_hcd(struct usb_hcd *hcd) { @@ -574,6 +578,7 @@ void xhci_stop(struct usb_hcd *hcd) xhci_dbg(xhci, "xhci_stop completed - status = %x\n", xhci_readl(xhci, &xhci->op_regs->status)); } +EXPORT_SYMBOL_GPL(xhci_stop); /* * Shutdown HC (not bus-specific) @@ -597,6 +602,7 @@ void xhci_shutdown(struct usb_hcd *hcd) xhci_dbg(xhci, "xhci_shutdown completed - status = %x\n", xhci_readl(xhci, &xhci->op_regs->status)); } +EXPORT_SYMBOL_GPL(xhci_shutdown); #ifdef CONFIG_PM static void xhci_save_registers(struct xhci_hcd *xhci) @@ -737,6 +743,7 @@ int xhci_suspend(struct xhci_hcd *xhci) return rc; } +EXPORT_SYMBOL_GPL(xhci_suspend); /* * start xHC (not bus-specific) @@ -866,6 +873,7 @@ failed_restart: spin_unlock_irq(&xhci->lock); return 0; } +EXPORT_SYMBOL_GPL(xhci_resume); #endif /* CONFIG_PM */ /*-------------------------------------------------------------------------*/ @@ -1141,6 +1149,7 @@ dying: spin_unlock_irqrestore(&xhci->lock, flags); return -ESHUTDOWN; } +EXPORT_SYMBOL_GPL(xhci_urb_enqueue); /* Get the right ring for the given URB. * If the endpoint supports streams, boundary check the URB's stream ID. @@ -1292,6 +1301,7 @@ done: spin_unlock_irqrestore(&xhci->lock, flags); return ret; } +EXPORT_SYMBOL_GPL(xhci_urb_dequeue); /* Drop an endpoint from a new bandwidth configuration for this device. * Only one call to this function is allowed per endpoint before @@ -1378,6 +1388,7 @@ int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev, (unsigned int) new_slot_info); return 0; } +EXPORT_SYMBOL_GPL(xhci_drop_endpoint); /* Add an endpoint to a new possible bandwidth configuration for this device. * Only one call to this function is allowed per endpoint before @@ -1500,6 +1511,7 @@ int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev, (unsigned int) new_slot_info); return 0; } +EXPORT_SYMBOL_GPL(xhci_add_endpoint); static void xhci_zero_in_ctx(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev) { @@ -1907,6 +1919,7 @@ int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) return ret; } +EXPORT_SYMBOL_GPL(xhci_check_bandwidth); void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) { @@ -1930,6 +1943,7 @@ void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) } xhci_zero_in_ctx(xhci, virt_dev); } +EXPORT_SYMBOL_GPL(xhci_reset_bandwidth); static void xhci_setup_input_ctx_for_config_ep(struct xhci_hcd *xhci, struct xhci_container_ctx *in_ctx, @@ -2068,6 +2082,7 @@ void xhci_endpoint_reset(struct usb_hcd *hcd, if (ret) xhci_warn(xhci, "FIXME allocate a new ring segment\n"); } +EXPORT_SYMBOL_GPL(xhci_endpoint_reset); static int xhci_check_streams_endpoint(struct xhci_hcd *xhci, struct usb_device *udev, struct usb_host_endpoint *ep, @@ -2363,6 +2378,7 @@ cleanup: xhci_free_command(xhci, config_cmd); return -ENOMEM; } +EXPORT_SYMBOL_GPL(xhci_alloc_streams); /* Transition the endpoint from using streams to being a "normal" endpoint * without streams. @@ -2444,6 +2460,7 @@ int xhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev, return 0; } +EXPORT_SYMBOL_GPL(xhci_free_streams); /* * Deletes endpoint resources for endpoints that were active before a Reset @@ -2472,6 +2489,7 @@ void xhci_free_device_endpoint_resources(struct xhci_hcd *xhci, num_dropped_eps, drop_flags, xhci->num_active_eps); } +EXPORT_SYMBOL_GPL(xhci_free_device_endpoint_resources); /* * This submits a Reset Device Command, which will set the device state to 0, @@ -2653,6 +2671,7 @@ command_cleanup: xhci_free_command(xhci, reset_device_cmd); return ret; } +EXPORT_SYMBOL_GPL(xhci_discover_or_reset_device); /* * At this point, the struct usb_device is about to go away, the device has @@ -2700,6 +2719,7 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) * associated with the slot. XXX Can free sleep? */ } +EXPORT_SYMBOL_GPL(xhci_free_dev); /* * Checks if we have enough host controller resources for the default control @@ -2791,6 +2811,7 @@ disable_slot: spin_unlock_irqrestore(&xhci->lock, flags); return 0; } +EXPORT_SYMBOL_GPL(xhci_alloc_dev); /* * Issue an Address Device command (which will issue a SetAddress request to @@ -2930,6 +2951,7 @@ int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev) return 0; } +EXPORT_SYMBOL_GPL(xhci_address_device); /* Once a hub descriptor is fetched for a device, we need to update the xHC's * internal data structures for the device. @@ -3017,6 +3039,7 @@ int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, xhci_free_command(xhci, config_cmd); return ret; } +EXPORT_SYMBOL_GPL(xhci_update_hub_device); int xhci_get_frame(struct usb_hcd *hcd) { @@ -3024,6 +3047,7 @@ int xhci_get_frame(struct usb_hcd *hcd) /* EHCI mods by the periodic size. Why? */ return xhci_readl(xhci, &xhci->run_regs->microframe_index) >> 3; } +EXPORT_SYMBOL_GPL(xhci_get_frame); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_AUTHOR(DRIVER_AUTHOR); -- 1.7.6 -- 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