gpu: host1x: Flesh out kerneldoc
Improve kerneldoc for the public parts of the host1x infrastructure in preparation for adding driver-specific part to the GPU documentation. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
@@ -40,6 +40,9 @@ struct host1x_subdev {
|
||||
|
||||
/**
|
||||
* host1x_subdev_add() - add a new subdevice with an associated device node
|
||||
* @device: host1x device to add the subdevice to
|
||||
* @driver: host1x driver
|
||||
* @np: device node
|
||||
*/
|
||||
static int host1x_subdev_add(struct host1x_device *device,
|
||||
struct device_node *np)
|
||||
@@ -62,6 +65,7 @@ static int host1x_subdev_add(struct host1x_device *device,
|
||||
|
||||
/**
|
||||
* host1x_subdev_del() - remove subdevice
|
||||
* @subdev: subdevice to remove
|
||||
*/
|
||||
static void host1x_subdev_del(struct host1x_subdev *subdev)
|
||||
{
|
||||
@@ -72,6 +76,8 @@ static void host1x_subdev_del(struct host1x_subdev *subdev)
|
||||
|
||||
/**
|
||||
* host1x_device_parse_dt() - scan device tree and add matching subdevices
|
||||
* @device: host1x logical device
|
||||
* @driver: host1x driver
|
||||
*/
|
||||
static int host1x_device_parse_dt(struct host1x_device *device,
|
||||
struct host1x_driver *driver)
|
||||
@@ -166,6 +172,16 @@ static void host1x_subdev_unregister(struct host1x_device *device,
|
||||
mutex_unlock(&device->subdevs_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* host1x_device_init() - initialize a host1x logical device
|
||||
* @device: host1x logical device
|
||||
*
|
||||
* The driver for the host1x logical device can call this during execution of
|
||||
* its &host1x_driver.probe implementation to initialize each of its clients.
|
||||
* The client drivers access the subsystem specific driver data using the
|
||||
* &host1x_client.parent field and driver data associated with it (usually by
|
||||
* calling dev_get_drvdata()).
|
||||
*/
|
||||
int host1x_device_init(struct host1x_device *device)
|
||||
{
|
||||
struct host1x_client *client;
|
||||
@@ -192,6 +208,15 @@ int host1x_device_init(struct host1x_device *device)
|
||||
}
|
||||
EXPORT_SYMBOL(host1x_device_init);
|
||||
|
||||
/**
|
||||
* host1x_device_exit() - uninitialize host1x logical device
|
||||
* @device: host1x logical device
|
||||
*
|
||||
* When the driver for a host1x logical device is unloaded, it can call this
|
||||
* function to tear down each of its clients. Typically this is done after a
|
||||
* subsystem-specific data structure is removed and the functionality can no
|
||||
* longer be used.
|
||||
*/
|
||||
int host1x_device_exit(struct host1x_device *device)
|
||||
{
|
||||
struct host1x_client *client;
|
||||
@@ -446,6 +471,14 @@ static void host1x_detach_driver(struct host1x *host1x,
|
||||
mutex_unlock(&host1x->devices_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* host1x_register() - register a host1x controller
|
||||
* @host1x: host1x controller
|
||||
*
|
||||
* The host1x controller driver uses this to register a host1x controller with
|
||||
* the infrastructure. Note that all Tegra SoC generations have only ever come
|
||||
* with a single host1x instance, so this function is somewhat academic.
|
||||
*/
|
||||
int host1x_register(struct host1x *host1x)
|
||||
{
|
||||
struct host1x_driver *driver;
|
||||
@@ -464,6 +497,13 @@ int host1x_register(struct host1x *host1x)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* host1x_unregister() - unregister a host1x controller
|
||||
* @host1x: host1x controller
|
||||
*
|
||||
* The host1x controller driver uses this to remove a host1x controller from
|
||||
* the infrastructure.
|
||||
*/
|
||||
int host1x_unregister(struct host1x *host1x)
|
||||
{
|
||||
struct host1x_driver *driver;
|
||||
@@ -513,6 +553,16 @@ static void host1x_device_shutdown(struct device *dev)
|
||||
driver->shutdown(device);
|
||||
}
|
||||
|
||||
/**
|
||||
* host1x_driver_register_full() - register a host1x driver
|
||||
* @driver: host1x driver
|
||||
* @owner: owner module
|
||||
*
|
||||
* Drivers for host1x logical devices call this function to register a driver
|
||||
* with the infrastructure. Note that since these drive logical devices, the
|
||||
* registration of the driver actually triggers tho logical device creation.
|
||||
* A logical device will be created for each host1x instance.
|
||||
*/
|
||||
int host1x_driver_register_full(struct host1x_driver *driver,
|
||||
struct module *owner)
|
||||
{
|
||||
@@ -541,6 +591,13 @@ int host1x_driver_register_full(struct host1x_driver *driver,
|
||||
}
|
||||
EXPORT_SYMBOL(host1x_driver_register_full);
|
||||
|
||||
/**
|
||||
* host1x_driver_unregister() - unregister a host1x driver
|
||||
* @driver: host1x driver
|
||||
*
|
||||
* Unbinds the driver from each of the host1x logical devices that it is
|
||||
* bound to, effectively removing the subsystem devices that they represent.
|
||||
*/
|
||||
void host1x_driver_unregister(struct host1x_driver *driver)
|
||||
{
|
||||
driver_unregister(&driver->driver);
|
||||
@@ -551,6 +608,17 @@ void host1x_driver_unregister(struct host1x_driver *driver)
|
||||
}
|
||||
EXPORT_SYMBOL(host1x_driver_unregister);
|
||||
|
||||
/**
|
||||
* host1x_client_register() - register a host1x client
|
||||
* @client: host1x client
|
||||
*
|
||||
* Registers a host1x client with each host1x controller instance. Note that
|
||||
* each client will only match their parent host1x controller and will only be
|
||||
* associated with that instance. Once all clients have been registered with
|
||||
* their parent host1x controller, the infrastructure will set up the logical
|
||||
* device and call host1x_device_init(), which will in turn call each client's
|
||||
* &host1x_client_ops.init implementation.
|
||||
*/
|
||||
int host1x_client_register(struct host1x_client *client)
|
||||
{
|
||||
struct host1x *host1x;
|
||||
@@ -576,6 +644,13 @@ int host1x_client_register(struct host1x_client *client)
|
||||
}
|
||||
EXPORT_SYMBOL(host1x_client_register);
|
||||
|
||||
/**
|
||||
* host1x_client_unregister() - unregister a host1x client
|
||||
* @client: host1x client
|
||||
*
|
||||
* Removes a host1x client from its host1x controller instance. If a logical
|
||||
* device has already been initialized, it will be torn down.
|
||||
*/
|
||||
int host1x_client_unregister(struct host1x_client *client)
|
||||
{
|
||||
struct host1x_client *c;
|
||||
|
Reference in New Issue
Block a user