Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdaf0b35 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

edac: move documentation from edac_pci*.c to edac_pci.h



Several functions are documented at edac_pci.c and edac_pci_sysfs.c.

As we'll be including edac_pci.h at drivers-api book, move those,
in order for the kernel-doc markups be part of the API
documentation book.

As several of those kernel-doc macros are not in the right format,
fix them.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 5336f754
Loading
Loading
Loading
Loading
+0 −65
Original line number Diff line number Diff line
@@ -28,13 +28,6 @@ static DEFINE_MUTEX(edac_pci_ctls_mutex);
static LIST_HEAD(edac_pci_list);
static atomic_t pci_indexes = ATOMIC_INIT(0);

/*
 * edac_pci_alloc_ctl_info
 *
 *	The alloc() function for the 'edac_pci' control info
 *	structure. The chip driver will allocate one of these for each
 *	edac_pci it is going to control/register with the EDAC CORE.
 */
struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt,
						const char *edac_pci_name)
{
@@ -65,16 +58,6 @@ struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt,
}
EXPORT_SYMBOL_GPL(edac_pci_alloc_ctl_info);

/*
 * edac_pci_free_ctl_info()
 *
 *	Last action on the pci control structure.
 *
 *	call the remove sysfs information, which will unregister
 *	this control struct's kobj. When that kobj's ref count
 *	goes to zero, its release function will be call and then
 *	kfree() the memory.
 */
void edac_pci_free_ctl_info(struct edac_pci_ctl_info *pci)
{
	edac_dbg(1, "\n");
@@ -212,31 +195,12 @@ static void edac_pci_workq_function(struct work_struct *work_req)
	mutex_unlock(&edac_pci_ctls_mutex);
}

/*
 * edac_pci_alloc_index: Allocate a unique PCI index number
 *
 * Return:
 *      allocated index number
 *
 */
int edac_pci_alloc_index(void)
{
	return atomic_inc_return(&pci_indexes) - 1;
}
EXPORT_SYMBOL_GPL(edac_pci_alloc_index);

/*
 * edac_pci_add_device: Insert the 'edac_dev' structure into the
 * edac_pci global list and create sysfs entries associated with
 * edac_pci structure.
 * @pci: pointer to the edac_device structure to be added to the list
 * @edac_idx: A unique numeric identifier to be assigned to the
 * 'edac_pci' structure.
 *
 * Return:
 *      0       Success
 *      !0      Failure
 */
int edac_pci_add_device(struct edac_pci_ctl_info *pci, int edac_idx)
{
	edac_dbg(0, "\n");
@@ -282,19 +246,6 @@ int edac_pci_add_device(struct edac_pci_ctl_info *pci, int edac_idx)
}
EXPORT_SYMBOL_GPL(edac_pci_add_device);

/*
 * edac_pci_del_device()
 * 	Remove sysfs entries for specified edac_pci structure and
 * 	then remove edac_pci structure from global list
 *
 * @dev:
 * 	Pointer to 'struct device' representing edac_pci structure
 * 	to remove
 *
 * Return:
 * 	Pointer to removed edac_pci structure,
 * 	or NULL if device not found
 */
struct edac_pci_ctl_info *edac_pci_del_device(struct device *dev)
{
	struct edac_pci_ctl_info *pci;
@@ -348,17 +299,6 @@ struct edac_pci_gen_data {
	int edac_idx;
};

/*
 * edac_pci_create_generic_ctl
 *
 *	A generic constructor for a PCI parity polling device
 *	Some systems have more than one domain of PCI busses.
 *	For systems with one domain, then this API will
 *	provide for a generic poller.
 *
 *	This routine calls the edac_pci_alloc_ctl_info() for
 *	the generic device, with default values
 */
struct edac_pci_ctl_info *edac_pci_create_generic_ctl(struct device *dev,
						const char *mod_name)
{
@@ -391,11 +331,6 @@ struct edac_pci_ctl_info *edac_pci_create_generic_ctl(struct device *dev,
}
EXPORT_SYMBOL_GPL(edac_pci_create_generic_ctl);

/*
 * edac_pci_release_generic_ctl
 *
 *	The release function of a generic EDAC PCI polling device
 */
void edac_pci_release_generic_ctl(struct edac_pci_ctl_info *pci)
{
	edac_dbg(0, "pci mod=%s\n", pci->mod_name);
+98 −0
Original line number Diff line number Diff line
@@ -153,21 +153,119 @@ static inline void pci_write_bits32(struct pci_dev *pdev, int offset,

#endif				/* CONFIG_PCI */

/*
 * edac_pci APIs
 */

/**
 * edac_pci_alloc_ctl_info:
 *	The alloc() function for the 'edac_pci' control info
 *	structure.
 *
 * @sz_pvt: size of the private info at struct &edac_pci_ctl_info
 * @edac_pci_name: name of the PCI device
 *
 * The chip driver will allocate one of these for each
 * edac_pci it is going to control/register with the EDAC CORE.
 *
 * Returns: a pointer to struct &edac_pci_ctl_info on success; %NULL otherwise.
 */
extern struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt,
				const char *edac_pci_name);

/**
 * edac_pci_free_ctl_info():
 *	Last action on the pci control structure.
 *
 * @pci: pointer to struct &edac_pci_ctl_info
 *
 * Calls the remove sysfs information, which will unregister
 * this control struct's kobj. When that kobj's ref count
 * goes to zero, its release function will be call and then
 * kfree() the memory.
 */
extern void edac_pci_free_ctl_info(struct edac_pci_ctl_info *pci);

/**
 * edac_pci_alloc_index: Allocate a unique PCI index number
 *
 * Returns:
 *      allocated index number
 *
 */
extern int edac_pci_alloc_index(void);

/**
 * edac_pci_add_device(): Insert the 'edac_dev' structure into the
 *	edac_pci global list and create sysfs entries associated with
 *	edac_pci structure.
 *
 * @pci: pointer to the edac_device structure to be added to the list
 * @edac_idx: A unique numeric identifier to be assigned to the
 *	'edac_pci' structure.
 *
 * Returns:
 *	0 on Success, or an error code on failure
 */
extern int edac_pci_add_device(struct edac_pci_ctl_info *pci, int edac_idx);

/**
 * edac_pci_del_device()
 *	Remove sysfs entries for specified edac_pci structure and
 *	then remove edac_pci structure from global list
 *
 * @dev:
 *	Pointer to 'struct device' representing edac_pci structure
 *	to remove
 *
 * Returns:
 *	Pointer to removed edac_pci structure,
 *	or %NULL if device not found
 */
extern struct edac_pci_ctl_info *edac_pci_del_device(struct device *dev);

/**
 * edac_pci_create_generic_ctl()
 *	A generic constructor for a PCI parity polling device
 *	Some systems have more than one domain of PCI busses.
 *	For systems with one domain, then this API will
 *	provide for a generic poller.
 *
 * @dev: pointer to struct &device;
 * @mod_name: name of the PCI device
 *
 * This routine calls the edac_pci_alloc_ctl_info() for
 * the generic device, with default values
 *
 * Returns: Pointer to struct &edac_pci_ctl_info on success, %NULL on
 *	failure.
 */
extern struct edac_pci_ctl_info *edac_pci_create_generic_ctl(
				struct device *dev,
				const char *mod_name);

/**
 * edac_pci_release_generic_ctl
 *	The release function of a generic EDAC PCI polling device
 *
 * @pci: pointer to struct &edac_pci_ctl_info
 */
extern void edac_pci_release_generic_ctl(struct edac_pci_ctl_info *pci);

/**
 * edac_pci_create_sysfs
 *	Create the controls/attributes for the specified EDAC PCI device
 *
 * @pci: pointer to struct &edac_pci_ctl_info
 */
extern int edac_pci_create_sysfs(struct edac_pci_ctl_info *pci);

/**
 * edac_pci_remove_sysfs()
 *	remove the controls and attributes for this EDAC PCI device
 *
 * @pci: pointer to struct &edac_pci_ctl_info
 */
extern void edac_pci_remove_sysfs(struct edac_pci_ctl_info *pci);

#endif
+0 −11
Original line number Diff line number Diff line
@@ -418,12 +418,6 @@ static void edac_pci_main_kobj_teardown(void)
	}
}

/*
 *
 * edac_pci_create_sysfs
 *
 *	Create the controls/attributes for the specified EDAC PCI device
 */
int edac_pci_create_sysfs(struct edac_pci_ctl_info *pci)
{
	int err;
@@ -459,11 +453,6 @@ int edac_pci_create_sysfs(struct edac_pci_ctl_info *pci)
	return err;
}

/*
 * edac_pci_remove_sysfs
 *
 *	remove the controls and attributes for this EDAC PCI device
 */
void edac_pci_remove_sysfs(struct edac_pci_ctl_info *pci)
{
	edac_dbg(0, "index=%d\n", pci->pci_idx);