1da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel/*
2da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel * UWB Multi-interface Controller driver management.
3da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel *
4da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel * Copyright (C) 2007 Cambridge Silicon Radio Ltd.
5da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel *
6da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel * This file is released under the GNU GPL v2.
7da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel */
8da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel#include <linux/kernel.h>
9475c0a6b2cff037ca522d3aff839024ab30ed7ebPaul Gortmaker#include <linux/export.h>
10da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel#include <linux/uwb/umc.h>
11da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel
12da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabelint __umc_driver_register(struct umc_driver *umc_drv, struct module *module,
13da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel			  const char *mod_name)
14da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel{
15da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	umc_drv->driver.name     = umc_drv->name;
16da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	umc_drv->driver.owner    = module;
17da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	umc_drv->driver.mod_name = mod_name;
18da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	umc_drv->driver.bus      = &umc_bus_type;
19da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel
20da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	return driver_register(&umc_drv->driver);
21da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel}
22da389eac31be24556a71dd59ea6539ae4cba5c15David VrabelEXPORT_SYMBOL_GPL(__umc_driver_register);
23da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel
24da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel/**
25da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel * umc_driver_register - unregister a UMC capabiltity driver.
26da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel * @umc_drv:  pointer to the driver.
27da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel */
28da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabelvoid umc_driver_unregister(struct umc_driver *umc_drv)
29da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel{
30da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel	driver_unregister(&umc_drv->driver);
31da389eac31be24556a71dd59ea6539ae4cba5c15David Vrabel}
32da389eac31be24556a71dd59ea6539ae4cba5c15David VrabelEXPORT_SYMBOL_GPL(umc_driver_unregister);
33