mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 07:16:56 +07:00
media: dvbdev: fully document its functions
There are several functions at the dvbdev that are common to all digital TV device nodes with aren't documented. Add documentation for them. No functional changes. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
6bbf7a855d
commit
400efa8e4e
@ -261,7 +261,7 @@ void dvb_unregister_device(struct dvb_device *dvbdev);
|
||||
* dvb_create_media_graph - Creates media graph for the Digital TV part of the
|
||||
* device.
|
||||
*
|
||||
* @adap: pointer to struct dvb_adapter
|
||||
* @adap: pointer to &struct dvb_adapter
|
||||
* @create_rf_connector: if true, it creates the RF connector too
|
||||
*
|
||||
* This function checks all DVB-related functions at the media controller
|
||||
@ -274,12 +274,23 @@ void dvb_unregister_device(struct dvb_device *dvbdev);
|
||||
__must_check int dvb_create_media_graph(struct dvb_adapter *adap,
|
||||
bool create_rf_connector);
|
||||
|
||||
/**
|
||||
* dvb_register_media_controller - registers a media controller at DVB adapter
|
||||
*
|
||||
* @adap: pointer to &struct dvb_adapter
|
||||
* @mdev: pointer to &struct media_device
|
||||
*/
|
||||
static inline void dvb_register_media_controller(struct dvb_adapter *adap,
|
||||
struct media_device *mdev)
|
||||
{
|
||||
adap->mdev = mdev;
|
||||
}
|
||||
|
||||
/**
|
||||
* dvb_get_media_controller - gets the associated media controller
|
||||
*
|
||||
* @adap: pointer to &struct dvb_adapter
|
||||
*/
|
||||
static inline struct media_device
|
||||
*dvb_get_media_controller(struct dvb_adapter *adap)
|
||||
{
|
||||
@ -296,20 +307,71 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
|
||||
#define dvb_get_media_controller(a) NULL
|
||||
#endif
|
||||
|
||||
int dvb_generic_open (struct inode *inode, struct file *file);
|
||||
int dvb_generic_release (struct inode *inode, struct file *file);
|
||||
long dvb_generic_ioctl (struct file *file,
|
||||
/**
|
||||
* dvb_generic_open - Digital TV open function, used by DVB devices
|
||||
*
|
||||
* @inode: pointer to &struct inode.
|
||||
* @file: pointer to &struct file.
|
||||
*
|
||||
* Checks if a DVB devnode is still valid, and if the permissions are
|
||||
* OK and increment negative use count.
|
||||
*/
|
||||
int dvb_generic_open(struct inode *inode, struct file *file);
|
||||
|
||||
/**
|
||||
* dvb_generic_close - Digital TV close function, used by DVB devices
|
||||
*
|
||||
* @inode: pointer to &struct inode.
|
||||
* @file: pointer to &struct file.
|
||||
*
|
||||
* Checks if a DVB devnode is still valid, and if the permissions are
|
||||
* OK and decrement negative use count.
|
||||
*/
|
||||
int dvb_generic_release(struct inode *inode, struct file *file);
|
||||
|
||||
/**
|
||||
* dvb_generic_ioctl - Digital TV close function, used by DVB devices
|
||||
*
|
||||
* @file: pointer to &struct file.
|
||||
* @cmd: Ioctl name.
|
||||
* @arg: Ioctl argument.
|
||||
*
|
||||
* Checks if a DVB devnode and struct dvbdev.kernel_ioctl is still valid.
|
||||
* If so, calls dvb_usercopy().
|
||||
*/
|
||||
long dvb_generic_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
|
||||
/* we don't mess with video_usercopy() any more,
|
||||
we simply define out own dvb_usercopy(), which will hopefully become
|
||||
generic_usercopy() someday... */
|
||||
|
||||
/**
|
||||
* dvb_usercopy - copies data from/to userspace memory when an ioctl is
|
||||
* issued.
|
||||
*
|
||||
* @file: Pointer to struct &file.
|
||||
* @cmd: Ioctl name.
|
||||
* @arg: Ioctl argument.
|
||||
* @func: function that will actually handle the ioctl
|
||||
*
|
||||
* Ancillary function that uses ioctl direction and size to copy from
|
||||
* userspace. Then, it calls @func, and, if needed, data is copied back
|
||||
* to userspace.
|
||||
*/
|
||||
int dvb_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
|
||||
int (*func)(struct file *file, unsigned int cmd, void *arg));
|
||||
|
||||
/** generic DVB attach function. */
|
||||
#ifdef CONFIG_MEDIA_ATTACH
|
||||
|
||||
/**
|
||||
* dvb_attach - attaches a DVB frontend into the DVB core.
|
||||
*
|
||||
* @FUNCTION: function on a frontend module to be called.
|
||||
* @ARGS...: @FUNCTION arguments.
|
||||
*
|
||||
* This ancillary function loads a frontend module in runtime and runs
|
||||
* the @FUNCTION function there, with @ARGS.
|
||||
* As it increments symbol usage cont, at unregister, dvb_detach()
|
||||
* should be called.
|
||||
*/
|
||||
#define dvb_attach(FUNCTION, ARGS...) ({ \
|
||||
void *__r = NULL; \
|
||||
typeof(&FUNCTION) __a = symbol_request(FUNCTION); \
|
||||
@ -323,6 +385,14 @@ int dvb_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
|
||||
__r; \
|
||||
})
|
||||
|
||||
/**
|
||||
* dvb_detach - detaches a DVB frontend loaded via dvb_attach()
|
||||
*
|
||||
* @FUNC: attach function
|
||||
*
|
||||
* Decrements usage count for a function previously called via dvb_attach().
|
||||
*/
|
||||
|
||||
#define dvb_detach(FUNC) symbol_put_addr(FUNC)
|
||||
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user