提交 b7937dc4 编写于 作者: C Christian Gromm 提交者: Greg Kroah-Hartman

staging: most: fix comment sections

This patch updates and corrects the comment sections of the code.
Signed-off-by: NChristian Gromm <christian.gromm@microchip.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 6822ba8a
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* /*
* cdev.c - Application interfacing module for character devices * cdev.c - Character device component for Mostcore
* *
* Copyright (C) 2013-2015 Microchip Technology Germany II GmbH & Co. KG * Copyright (C) 2013-2015 Microchip Technology Germany II GmbH & Co. KG
*/ */
...@@ -553,4 +553,4 @@ module_init(mod_init); ...@@ -553,4 +553,4 @@ module_init(mod_init);
module_exit(mod_exit); module_exit(mod_exit);
MODULE_AUTHOR("Christian Gromm <christian.gromm@microchip.com>"); MODULE_AUTHOR("Christian Gromm <christian.gromm@microchip.com>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("character device AIM for mostcore"); MODULE_DESCRIPTION("character device component for mostcore");
...@@ -103,14 +103,9 @@ static const struct { ...@@ -103,14 +103,9 @@ static const struct {
_mbo; \ _mbo; \
}) })
/* ___ ___
* ___C H A N N E L___
*/
/** /**
* most_free_mbo_coherent - free an MBO and its coherent buffer * most_free_mbo_coherent - free an MBO and its coherent buffer
* @mbo: buffer to be released * @mbo: most buffer
*
*/ */
static void most_free_mbo_coherent(struct mbo *mbo) static void most_free_mbo_coherent(struct mbo *mbo)
{ {
...@@ -469,9 +464,6 @@ static const struct attribute_group *channel_attr_groups[] = { ...@@ -469,9 +464,6 @@ static const struct attribute_group *channel_attr_groups[] = {
NULL, NULL,
}; };
/* ___ ___
* ___I N S T A N C E___
*/
static ssize_t description_show(struct device *dev, static ssize_t description_show(struct device *dev,
struct device_attribute *attr, struct device_attribute *attr,
char *buf) char *buf)
...@@ -528,9 +520,6 @@ static const struct attribute_group *interface_attr_groups[] = { ...@@ -528,9 +520,6 @@ static const struct attribute_group *interface_attr_groups[] = {
NULL, NULL,
}; };
/* ___ ___
* ___A I M___
*/
static struct core_component *match_module(char *name) static struct core_component *match_module(char *name)
{ {
struct core_component *comp; struct core_component *comp;
...@@ -588,26 +577,26 @@ static ssize_t modules_show(struct device_driver *drv, char *buf) ...@@ -588,26 +577,26 @@ static ssize_t modules_show(struct device_driver *drv, char *buf)
return offs; return offs;
} }
/** /**
* split_string - parses and changes string in the buffer buf and * split_string - parses buf and extracts ':' separated substrings.
* splits it into two mandatory and one optional substrings.
* *
* @buf: complete string from attribute 'add_channel' * @buf: complete string from attribute 'add_channel'
* @a: address of pointer to 1st substring (=instance name) * @a: storage for 1st substring (=interface name)
* @b: address of pointer to 2nd substring (=channel name) * @b: storage for 2nd substring (=channel name)
* @c: optional address of pointer to 3rd substring (=user defined name) * @c: storage for 3rd substring (=component name)
* @d: storage optional 4th substring (=user defined name)
* *
* Examples: * Examples:
* *
* Input: "mdev0:ch6:my_channel\n" or * Input: "mdev0:ch6:cdev:my_channel\n" or
* "mdev0:ch6:my_channel" * "mdev0:ch6:cdev:my_channel"
* *
* Output: *a -> "mdev0", *b -> "ch6", *c -> "my_channel" * Output: *a -> "mdev0", *b -> "ch6", *c -> "cdev" *d -> "my_channel"
* *
* Input: "mdev1:ep81\n" * Input: "mdev1:ep81:cdev\n"
* Output: *a -> "mdev1", *b -> "ep81", *c -> "" * Output: *a -> "mdev1", *b -> "ep81", *c -> "cdev" *d -> ""
* *
* Input: "mdev1:ep81" * Input: "mdev1:ep81"
* Output: *a -> "mdev1", *b -> "ep81", *c == NULL * Output: *a -> "mdev1", *b -> "ep81", *c -> "cdev" *d == NULL
*/ */
static int split_string(char *buf, char **a, char **b, char **c, char **d) static int split_string(char *buf, char **a, char **b, char **c, char **d)
{ {
...@@ -637,11 +626,9 @@ static int match_bus_dev(struct device *dev, void *data) ...@@ -637,11 +626,9 @@ static int match_bus_dev(struct device *dev, void *data)
} }
/** /**
* get_channel - get pointer to channel object * get_channel - get pointer to channel
* @mdev: name of the device instance * @mdev: name of the device interface
* @mdev_ch: name of the respective channel * @mdev_ch: name of channel
*
* This retrieves the pointer to a channel object.
*/ */
static struct most_channel *get_channel(char *mdev, char *mdev_ch) static struct most_channel *get_channel(char *mdev, char *mdev_ch)
{ {
...@@ -687,23 +674,22 @@ inline int link_channel_to_component(struct most_channel *c, ...@@ -687,23 +674,22 @@ inline int link_channel_to_component(struct most_channel *c,
} }
/** /**
* add_link_store - store() function for add_link attribute * add_link_store - store function for add_link attribute
* @aim_obj: pointer to AIM object * @drv: device driver
* @attr: its attributes
* @buf: buffer * @buf: buffer
* @len: buffer length * @len: buffer length
* *
* This parses the string given by buf and splits it into * This parses the string given by buf and splits it into
* three substrings. Note: third substring is optional. In case a cdev * four substrings. Note: last substring is optional. In case a cdev
* AIM is loaded the optional 3rd substring will make up the name of * component is loaded the optional 4th substring will make up the name of
* device node in the /dev directory. If omitted, the device node will * device node in the /dev directory. If omitted, the device node will
* inherit the channel's name within sysfs. * inherit the channel's name within sysfs.
* *
* Searches for a pair of device and channel and probes the AIM * Searches for (device, channel) pair and probes the component
* *
* Example: * Example:
* (1) echo "mdev0:ch6:my_rxchannel" >add_link * (1) echo "mdev0:ch6:cdev:my_rxchannel" >add_link
* (2) echo "mdev1:ep81" >add_link * (2) echo "mdev1:ep81:cdev" >add_link
* *
* (1) would create the device node /dev/my_rxchannel * (1) would create the device node /dev/my_rxchannel
* (2) would create the device node /dev/mdev1-ep81 * (2) would create the device node /dev/mdev1-ep81
...@@ -748,8 +734,7 @@ static ssize_t add_link_store(struct device_driver *drv, ...@@ -748,8 +734,7 @@ static ssize_t add_link_store(struct device_driver *drv,
/** /**
* remove_link_store - store function for remove_link attribute * remove_link_store - store function for remove_link attribute
* @aim_obj: pointer to AIM object * @drv: device driver
* @attr: its attributes
* @buf: buffer * @buf: buffer
* @len: buffer length * @len: buffer length
* *
...@@ -811,10 +796,6 @@ static const struct attribute_group *module_attr_groups[] = { ...@@ -811,10 +796,6 @@ static const struct attribute_group *module_attr_groups[] = {
NULL, NULL,
}; };
/* ___ ___
* ___C O R E___
*/
int most_match(struct device *dev, struct device_driver *drv) int most_match(struct device *dev, struct device_driver *drv)
{ {
if (!strcmp(dev_name(dev), "most")) if (!strcmp(dev_name(dev), "most"))
...@@ -913,14 +894,14 @@ static int run_enqueue_thread(struct most_channel *c, int channel_id) ...@@ -913,14 +894,14 @@ static int run_enqueue_thread(struct most_channel *c, int channel_id)
/** /**
* arm_mbo - recycle MBO for further usage * arm_mbo - recycle MBO for further usage
* @mbo: buffer object * @mbo: most buffer
* *
* This puts an MBO back to the list to have it ready for up coming * This puts an MBO back to the list to have it ready for up coming
* tx transactions. * tx transactions.
* *
* In case the MBO belongs to a channel that recently has been * In case the MBO belongs to a channel that recently has been
* poisoned, the MBO is scheduled to be trashed. * poisoned, the MBO is scheduled to be trashed.
* Calls the completion handler of an attached AIM. * Calls the completion handler of an attached component.
*/ */
static void arm_mbo(struct mbo *mbo) static void arm_mbo(struct mbo *mbo)
{ {
...@@ -1007,7 +988,7 @@ static int arm_mbo_chain(struct most_channel *c, int dir, ...@@ -1007,7 +988,7 @@ static int arm_mbo_chain(struct most_channel *c, int dir,
/** /**
* most_submit_mbo - submits an MBO to fifo * most_submit_mbo - submits an MBO to fifo
* @mbo: pointer to the MBO * @mbo: most buffer
*/ */
void most_submit_mbo(struct mbo *mbo) void most_submit_mbo(struct mbo *mbo)
{ {
...@@ -1021,7 +1002,7 @@ EXPORT_SYMBOL_GPL(most_submit_mbo); ...@@ -1021,7 +1002,7 @@ EXPORT_SYMBOL_GPL(most_submit_mbo);
/** /**
* most_write_completion - write completion handler * most_write_completion - write completion handler
* @mbo: pointer to MBO * @mbo: most buffer
* *
* This recycles the MBO for further usage. In case the channel has been * This recycles the MBO for further usage. In case the channel has been
* poisoned, the MBO is scheduled to be trashed. * poisoned, the MBO is scheduled to be trashed.
...@@ -1067,6 +1048,7 @@ EXPORT_SYMBOL_GPL(channel_has_mbo); ...@@ -1067,6 +1048,7 @@ EXPORT_SYMBOL_GPL(channel_has_mbo);
* most_get_mbo - get pointer to an MBO of pool * most_get_mbo - get pointer to an MBO of pool
* @iface: pointer to interface instance * @iface: pointer to interface instance
* @id: channel ID * @id: channel ID
* @comp: driver component
* *
* This attempts to get a free buffer out of the channel fifo. * This attempts to get a free buffer out of the channel fifo.
* Returns a pointer to MBO on success or NULL otherwise. * Returns a pointer to MBO on success or NULL otherwise.
...@@ -1112,7 +1094,7 @@ EXPORT_SYMBOL_GPL(most_get_mbo); ...@@ -1112,7 +1094,7 @@ EXPORT_SYMBOL_GPL(most_get_mbo);
/** /**
* most_put_mbo - return buffer to pool * most_put_mbo - return buffer to pool
* @mbo: buffer object * @mbo: most buffer
*/ */
void most_put_mbo(struct mbo *mbo) void most_put_mbo(struct mbo *mbo)
{ {
...@@ -1129,13 +1111,13 @@ EXPORT_SYMBOL_GPL(most_put_mbo); ...@@ -1129,13 +1111,13 @@ EXPORT_SYMBOL_GPL(most_put_mbo);
/** /**
* most_read_completion - read completion handler * most_read_completion - read completion handler
* @mbo: pointer to MBO * @mbo: most buffer
* *
* This function is called by the HDM when data has been received from the * This function is called by the HDM when data has been received from the
* hardware and copied to the buffer of the MBO. * hardware and copied to the buffer of the MBO.
* *
* In case the channel has been poisoned it puts the buffer in the trash queue. * In case the channel has been poisoned it puts the buffer in the trash queue.
* Otherwise, it passes the buffer to an AIM for further processing. * Otherwise, it passes the buffer to an component for further processing.
*/ */
static void most_read_completion(struct mbo *mbo) static void most_read_completion(struct mbo *mbo)
{ {
...@@ -1170,6 +1152,7 @@ static void most_read_completion(struct mbo *mbo) ...@@ -1170,6 +1152,7 @@ static void most_read_completion(struct mbo *mbo)
* most_start_channel - prepares a channel for communication * most_start_channel - prepares a channel for communication
* @iface: pointer to interface instance * @iface: pointer to interface instance
* @id: channel ID * @id: channel ID
* @comp: driver component
* *
* This prepares the channel for usage. Cross-checks whether the * This prepares the channel for usage. Cross-checks whether the
* channel's been properly configured. * channel's been properly configured.
...@@ -1188,7 +1171,7 @@ int most_start_channel(struct most_interface *iface, int id, ...@@ -1188,7 +1171,7 @@ int most_start_channel(struct most_interface *iface, int id,
mutex_lock(&c->start_mutex); mutex_lock(&c->start_mutex);
if (c->pipe0.refs + c->pipe1.refs > 0) if (c->pipe0.refs + c->pipe1.refs > 0)
goto out; /* already started by other comp */ goto out; /* already started by another component */
if (!try_module_get(iface->mod)) { if (!try_module_get(iface->mod)) {
pr_info("failed to acquire HDM lock\n"); pr_info("failed to acquire HDM lock\n");
...@@ -1245,6 +1228,7 @@ EXPORT_SYMBOL_GPL(most_start_channel); ...@@ -1245,6 +1228,7 @@ EXPORT_SYMBOL_GPL(most_start_channel);
* most_stop_channel - stops a running channel * most_stop_channel - stops a running channel
* @iface: pointer to interface instance * @iface: pointer to interface instance
* @id: channel ID * @id: channel ID
* @comp: driver component
*/ */
int most_stop_channel(struct most_interface *iface, int id, int most_stop_channel(struct most_interface *iface, int id,
struct core_component *comp) struct core_component *comp)
...@@ -1302,17 +1286,17 @@ int most_stop_channel(struct most_interface *iface, int id, ...@@ -1302,17 +1286,17 @@ int most_stop_channel(struct most_interface *iface, int id,
EXPORT_SYMBOL_GPL(most_stop_channel); EXPORT_SYMBOL_GPL(most_stop_channel);
/** /**
* most_register_component - registers an AIM (driver) with the core * most_register_component - registers a driver component with the core
* @aim: instance of AIM to be registered * @comp: driver component
*/ */
int most_register_component(struct core_component *comp) int most_register_component(struct core_component *comp)
{ {
if (!comp) { if (!comp) {
pr_err("Bad driver\n"); pr_err("Bad component\n");
return -EINVAL; return -EINVAL;
} }
list_add_tail(&comp->list, &mc.comp_list); list_add_tail(&comp->list, &mc.comp_list);
pr_info("registered new application interfacing module %s\n", comp->name); pr_info("registered new core component %s\n", comp->name);
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(most_register_component); EXPORT_SYMBOL_GPL(most_register_component);
...@@ -1336,19 +1320,19 @@ static int disconnect_channels(struct device *dev, void *data) ...@@ -1336,19 +1320,19 @@ static int disconnect_channels(struct device *dev, void *data)
} }
/** /**
* most_deregister_component - deregisters an AIM (driver) with the core * most_deregister_component - deregisters a driver component with the core
* @aim: AIM to be removed * @comp: driver component
*/ */
int most_deregister_component(struct core_component *comp) int most_deregister_component(struct core_component *comp)
{ {
if (!comp) { if (!comp) {
pr_err("Bad driver\n"); pr_err("Bad component\n");
return -EINVAL; return -EINVAL;
} }
bus_for_each_dev(&mc.bus, NULL, comp, disconnect_channels); bus_for_each_dev(&mc.bus, NULL, comp, disconnect_channels);
list_del(&comp->list); list_del(&comp->list);
pr_info("deregistering module %s\n", comp->name); pr_info("deregistering component %s\n", comp->name);
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(most_deregister_component); EXPORT_SYMBOL_GPL(most_deregister_component);
...@@ -1365,7 +1349,7 @@ static void release_channel(struct device *dev) ...@@ -1365,7 +1349,7 @@ static void release_channel(struct device *dev)
/** /**
* most_register_interface - registers an interface with core * most_register_interface - registers an interface with core
* @iface: pointer to the instance of the interface description. * @iface: device interface
* *
* Allocates and initializes a new interface instance and all of its channels. * Allocates and initializes a new interface instance and all of its channels.
* Returns a pointer to kobject or an error pointer. * Returns a pointer to kobject or an error pointer.
...@@ -1451,7 +1435,7 @@ int most_register_interface(struct most_interface *iface) ...@@ -1451,7 +1435,7 @@ int most_register_interface(struct most_interface *iface)
mutex_init(&c->nq_mutex); mutex_init(&c->nq_mutex);
list_add_tail(&c->list, &iface->p->channel_list); list_add_tail(&c->list, &iface->p->channel_list);
} }
pr_info("registered new MOST device mdev%d (%s)\n", pr_info("registered new device mdev%d (%s)\n",
id, iface->description); id, iface->description);
return 0; return 0;
...@@ -1473,7 +1457,7 @@ EXPORT_SYMBOL_GPL(most_register_interface); ...@@ -1473,7 +1457,7 @@ EXPORT_SYMBOL_GPL(most_register_interface);
/** /**
* most_deregister_interface - deregisters an interface with core * most_deregister_interface - deregisters an interface with core
* @iface: pointer to the interface instance description. * @iface: device interface
* *
* Before removing an interface instance from the list, all running * Before removing an interface instance from the list, all running
* channels are stopped and poisoned. * channels are stopped and poisoned.
...@@ -1483,7 +1467,7 @@ void most_deregister_interface(struct most_interface *iface) ...@@ -1483,7 +1467,7 @@ void most_deregister_interface(struct most_interface *iface)
int i; int i;
struct most_channel *c; struct most_channel *c;
pr_info("deregistering MOST device %s (%s)\n", dev_name(&iface->dev), iface->description); pr_info("deregistering device %s (%s)\n", dev_name(&iface->dev), iface->description);
for (i = 0; i < iface->num_channels; i++) { for (i = 0; i < iface->num_channels; i++) {
c = iface->p->channel[i]; c = iface->p->channel[i];
if (c->pipe0.comp) if (c->pipe0.comp)
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* /*
* most.h - Interface between MostCore, * most.h - API for component and adapter drivers
* Hardware Dependent Module (HDM) and Application Interface Module (AIM).
* *
* Copyright (C) 2013-2015, Microchip Technology Germany II GmbH & Co. KG * Copyright (C) 2013-2015, Microchip Technology Germany II GmbH & Co. KG
*/ */
/*
* Authors:
* Andrey Shvetsov <andrey.shvetsov@k2l.de>
* Christian Gromm <christian.gromm@microchip.com>
* Sebastian Graf
*/
#ifndef __MOST_CORE_H__ #ifndef __MOST_CORE_H__
#define __MOST_CORE_H__ #define __MOST_CORE_H__
...@@ -74,22 +66,22 @@ enum mbo_status_flags { ...@@ -74,22 +66,22 @@ enum mbo_status_flags {
* The value is bitwise OR-combination of the values from the * The value is bitwise OR-combination of the values from the
* enumeration most_channel_data_type. Zero is allowed value and means * enumeration most_channel_data_type. Zero is allowed value and means
* "channel may not be used". * "channel may not be used".
* @num_buffer_packet: Maximum number of buffers supported by this channel * @num_buffers_packet: Maximum number of buffers supported by this channel
* for packet data types (Async,Control,QoS) * for packet data types (Async,Control,QoS)
* @buffer_size_packet: Maximum buffer size supported by this channel * @buffer_size_packet: Maximum buffer size supported by this channel
* for packet data types (Async,Control,QoS) * for packet data types (Async,Control,QoS)
* @num_buffer_streaming: Maximum number of buffers supported by this channel * @num_buffers_streaming: Maximum number of buffers supported by this channel
* for streaming data types (Sync,AV Packetized) * for streaming data types (Sync,AV Packetized)
* @buffer_size_streaming: Maximum buffer size supported by this channel * @buffer_size_streaming: Maximum buffer size supported by this channel
* for streaming data types (Sync,AV Packetized) * for streaming data types (Sync,AV Packetized)
* @name_suffix: Optional suffix providean by an HDM that is attached to the * @name_suffix: Optional suffix providean by an HDM that is attached to the
* regular channel name. * regular channel name.
* *
* Describes the capabilities of a MostCore channel like supported Data Types * Describes the capabilities of a MOST channel like supported Data Types
* and directions. This information is provided by an HDM for the MostCore. * and directions. This information is provided by an HDM for the MostCore.
* *
* The Core creates read only sysfs attribute files in * The Core creates read only sysfs attribute files in
* /sys/devices/virtual/most/mostcore/devices/mdev-#/mdev#-ch#/ with the * /sys/devices/most/mdev#/<channel>/ with the
* following attributes: * following attributes:
* -available_directions * -available_directions
* -available_datatypes * -available_datatypes
...@@ -124,7 +116,7 @@ struct most_channel_capability { ...@@ -124,7 +116,7 @@ struct most_channel_capability {
* @packets_per_xact: number of MOST frames that are packet inside one USB * @packets_per_xact: number of MOST frames that are packet inside one USB
* packet. This is USB specific * packet. This is USB specific
* *
* Describes the configuration for a MostCore channel. This information is * Describes the configuration for a MOST channel. This information is
* provided from the MostCore to a HDM (like the Medusa PCIe Interface) as a * provided from the MostCore to a HDM (like the Medusa PCIe Interface) as a
* parameter of the "configure" function call. * parameter of the "configure" function call.
*/ */
...@@ -148,6 +140,7 @@ struct most_channel_config { ...@@ -148,6 +140,7 @@ struct most_channel_config {
* *
* @list: list head for use by the mbo's current owner * @list: list head for use by the mbo's current owner
* @ifp: (in) associated interface instance * @ifp: (in) associated interface instance
* @num_buffers_ptr: amount of pool buffers
* @hdm_channel_id: (in) HDM channel instance * @hdm_channel_id: (in) HDM channel instance
* @virt_address: (in) kernel virtual address of the buffer * @virt_address: (in) kernel virtual address of the buffer
* @bus_address: (in) bus address of the buffer * @bus_address: (in) bus address of the buffer
...@@ -156,15 +149,15 @@ struct most_channel_config { ...@@ -156,15 +149,15 @@ struct most_channel_config {
* @status: (out) transfer status * @status: (out) transfer status
* @complete: (in) completion routine * @complete: (in) completion routine
* *
* The MostCore allocates and initializes the MBO. * The core allocates and initializes the MBO.
* *
* The HDM receives MBO for transfer from MostCore with the call to enqueue(). * The HDM receives MBO for transfer from the core with the call to enqueue().
* The HDM copies the data to- or from the buffer depending on configured * The HDM copies the data to- or from the buffer depending on configured
* channel direction, set "processed_length" and "status" and completes * channel direction, set "processed_length" and "status" and completes
* the transfer procedure by calling the completion routine. * the transfer procedure by calling the completion routine.
* *
* At the end the MostCore deallocates the MBO or recycles it for further * Finally, the MBO is being deallocated or recycled for further
* transfers for the same or different HDM. * transfers of the same or a different HDM.
* *
* Directions of usage: * Directions of usage:
* The core driver should never access any MBO fields (even if marked * The core driver should never access any MBO fields (even if marked
...@@ -197,10 +190,12 @@ struct mbo { ...@@ -197,10 +190,12 @@ struct mbo {
/** /**
* Interface instance description. * Interface instance description.
* *
* Describes one instance of an interface like Medusa PCIe or Vantage USB. * Describes an interface of a MOST device the core driver is bound to.
* This structure is allocated and initialized in the HDM. MostCore may not * This structure is allocated and initialized in the HDM. MostCore may not
* modify this structure. * modify this structure.
* *
* @dev: the actual device
* @mod: module
* @interface Interface type. \sa most_interface_type. * @interface Interface type. \sa most_interface_type.
* @description PRELIMINARY. * @description PRELIMINARY.
* Unique description of the device instance from point of view of the * Unique description of the device instance from point of view of the
...@@ -255,13 +250,13 @@ struct most_interface { ...@@ -255,13 +250,13 @@ struct most_interface {
#define to_most_interface(d) container_of(d, struct most_interface, dev) #define to_most_interface(d) container_of(d, struct most_interface, dev)
/** /**
* struct most_aim - identifies MOST device driver to mostcore * struct core_component - identifies a loadable component for the mostcore
* @name: Driver name * @list: list_head
* @name: component name
* @probe_channel: function for core to notify driver about channel connection * @probe_channel: function for core to notify driver about channel connection
* @disconnect_channel: callback function to disconnect a certain channel * @disconnect_channel: callback function to disconnect a certain channel
* @rx_completion: completion handler for received packets * @rx_completion: completion handler for received packets
* @tx_completion: completion handler for transmitted packets * @tx_completion: completion handler for transmitted packets
* @context: context pointer to be used by mostcore
*/ */
struct core_component { struct core_component {
struct list_head list; struct list_head list;
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* /*
* Networking component - Networking Application Interface Module for MostCore * net.c - Networking component for Mostcore
* *
* Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG * Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG
*/ */
...@@ -557,4 +557,4 @@ module_init(most_net_init); ...@@ -557,4 +557,4 @@ module_init(most_net_init);
module_exit(most_net_exit); module_exit(most_net_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>"); MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
MODULE_DESCRIPTION("Networking Application Interface Module for MostCore"); MODULE_DESCRIPTION("Networking Component Module for Mostcore");
...@@ -755,4 +755,4 @@ module_exit(audio_exit); ...@@ -755,4 +755,4 @@ module_exit(audio_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Christian Gromm <christian.gromm@microchip.com>"); MODULE_AUTHOR("Christian Gromm <christian.gromm@microchip.com>");
MODULE_DESCRIPTION("Audio Application Interface Module for MostCore"); MODULE_DESCRIPTION("Sound Component Module for Mostcore");
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* /*
* V4L2 Component - V4L2 Application Interface Module for MostCore * video.c - V4L2 component for Mostcore
* *
* Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG * Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG
*/ */
...@@ -604,6 +604,6 @@ static void __exit comp_exit(void) ...@@ -604,6 +604,6 @@ static void __exit comp_exit(void)
module_init(comp_init); module_init(comp_init);
module_exit(comp_exit); module_exit(comp_exit);
MODULE_DESCRIPTION("V4L2 Component Module for MostCore"); MODULE_DESCRIPTION("V4L2 Component Module for Mostcore");
MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>"); MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册