All of lore.kernel.org
 help / color / mirror / Atom feed
From: "wanlong.gao" <wanlong.gao@gmail.com>
To: Randy Dunlap <rdunlap@xenotime.net>
Cc: gregkh@suse.de, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH 1/2] KernelDoc:Add the device driver-model structures to kerneldoc
Date: Mon, 02 May 2011 23:41:53 +0800	[thread overview]
Message-ID: <1304350913.1777.5.camel@Tux> (raw)
In-Reply-To: <20110502082609.77b23473.rdunlap@xenotime.net>

在 2011-05-02一的 08:26 -0700,Randy Dunlap写道:
> On Mon,  2 May 2011 23:04:40 +0800 wanlong.gao@gmail.com wrote:
> 
> > From: Wanlong Gao <wanlong.gao@gmail.com>
> > 
> > Add the comment the structure bus_type, device_driver, device,
> > class for generating the driver-model kerneldoc.
> 
> Warning: trailing whitespace in lines 66,478,498,499 of include/linux/device.h
> 
> Other than that:
> 
> Acked-by: Randy Dunlap <rdunlap@xenotime.net>
> 
> Thanks.
> 
> Greg, do you want to merge this or should I?
> 
Randy:
	Sorry for the writespace.


>From eea23d68008c2ca8a944b303a835e32c2b81834c Mon Sep 17 00:00:00 2001
From: Wanlong Gao <wanlong.gao@gmail.com>
Date: Mon, 2 May 2011 23:34:02 +0800
Subject: [PATCH] KernelDoc:Add the device driver-model structures to
kerneldoc

Add the comment the structure bus_type, device_driver, device,
class for generating the driver-model kerneldoc.

Signed-off-by: Wanlong Gao <wanlong.gao@gmail.com>
---
 Documentation/DocBook/device-drivers.tmpl |    6 +-
 include/linux/device.h                    |  104
++++++++++++++++++++++++++++-
 2 files changed, 104 insertions(+), 6 deletions(-)

diff --git a/Documentation/DocBook/device-drivers.tmpl
b/Documentation/DocBook/device-drivers.tmpl
index 36f63d4..5e482e0 100644
--- a/Documentation/DocBook/device-drivers.tmpl
+++ b/Documentation/DocBook/device-drivers.tmpl
@@ -96,10 +96,10 @@ X!Iinclude/linux/kobject.h
 
   <chapter id="devdrivers">
      <title>Device drivers infrastructure</title>
+     <sect1><title>The Basic Device Driver-Model Structure </title>
+!Iinclude/linux/device.h
+     </sect1>
      <sect1><title>Device Drivers Base</title>
-<!--
-X!Iinclude/linux/device.h
--->
 !Edrivers/base/driver.c
 !Edrivers/base/core.c
 !Edrivers/base/class.c
diff --git a/include/linux/device.h b/include/linux/device.h
index ab8dfc0..aa1bd07 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -47,6 +47,23 @@ extern int __must_check bus_create_file(struct
bus_type *,
 					struct bus_attribute *);
 extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
 
+/**
+ * struct bus_type - The bus type of the device .
+ *
+ * @name:	The name of the bus
+ * @bus_attrs:	The attributes of the bus
+ * @dev_attrs:	The default attributes of the devices on the bus
+ * @drv_attrs:	The default attributes of the device drivers on the bus
+ * @match:	Attaching drivers to devices
+ * @uevent:	Add the environment variable for device plug
+ * @probe:	Probe the device
+ * @remove:	Remove the device
+ * @shutdown:	Shutdown method
+ * @suspend:	Suspend method
+ * @resume:	Resume method
+ * @pm:		Device power management operations
+ * @p:		The private data the subsystem
+ */
 struct bus_type {
 	const char		*name;
 	struct bus_attribute	*bus_attrs;
@@ -119,6 +136,23 @@ extern int bus_unregister_notifier(struct bus_type
*bus,
 extern struct kset *bus_get_kset(struct bus_type *bus);
 extern struct klist *bus_get_device_klist(struct bus_type *bus);
 
+/**
+ * struct device_driver - The basic device driver structure
+ * @name:	Name of the device driver
+ * @bus:	The bus the device driver belongs to
+ * @owner:	The driver's owner
+ * @mod_name:	Used for built-in modules
+ * @suppress_bind_attrs:Disables bind/unbind via sysfs
+ * @of_match_table:Id table for matching the driver to device
+ * @probe:	Called to bound a driver to the device
+ * @remove:	Called to unbind a driver from a device
+ * @shutdown:	Called when shutdown
+ * @suspend:	Called to put the device in a low power state
+ * @resume:	Used to bring a device from a low power state
+ * @groups:	Driver's attribute groups
+ * @pm:		Device's power management operations
+ * @p:		Driver's private data
+ */
 struct device_driver {
 	const char		*name;
 	struct bus_type		*bus;
@@ -185,8 +219,24 @@ struct device *driver_find_device(struct
device_driver *drv,
 				  struct device *start, void *data,
 				  int (*match)(struct device *dev, void *data));
 
-/*
- * device classes
+/**
+ * struct class - device classes
+ * @name:	Name of the class
+ * @owner:	Class' owner
+ * @class_attrs:The attributes of the class
+ * @dev_attrs:	The default attributes of the device belongs to the
class
+ * @dev_bin_attrs:The default binary attributes of the device belongs
to the class
+ * @dev_kobj:	Kobject of the class
+ * @dev_uevent:	Used to plug
+ * @devnode:	Callback to provide the devtmpfs
+ * @class_release:Called to release the class
+ * @dev_release:Called to release the device
+ * @suspend:	Used to put the device to a low power state
+ * @resume:	Used to bring the device from a low power state
+ * @ns_type:	Callbacks so sysfs can detemine namespaces
+ * @namespace:	Namespace of the device
+ * @pm:		The default device power management operations
+ * @p:		The private data of the subsystem
  */
 struct class {
 	const char		*name;
@@ -401,6 +451,54 @@ struct device_dma_parameters {
 	unsigned long segment_boundary_mask;
 };
 
+/**
+ * struct device - The basic device structure.
+ * @parent:	Parent of the device.
+ * @p:		Hold the private to the driver core portions of the device.
+ * 		See the comment of the struct device_private for detail.
+ * @kobj:	A top-level, abstract class from which other classes are
derived.
+ * @init_name:	Initial name of the device.
+ * @type:	The type of device.
+ * 		This identifies the device type and carries type-specific
+ * 		information.
+ * @mutex:	Mutex to synchronize calls to its driver.
+ * @bus:	Type of bus device is on.
+ * @driver:	Which driver has allocated this
+ * @platform_data:Platform data specific to the device.
+ * 		Example..For devices on custom boards, as typical of embedded
+ * 		and SOC based hardware, Linux often uses platform_data to point
+ * 		to board-specific structures describing devices and how they
+ * 		are wired.  That can include what ports are available, chip
+ * 		variants, which GPIO pins act in what additional roles, and so
+ * 		on.  This shrinks the "Board Support Packages" (BSPs) and
+ * 		minimizes board-specific #ifdefs in drivers.
+ * @power:	For device power management.
+ * 		See the Documentation/power/devices.txt for details.
+ * @pwr_domain:	Provide callbacks that are executed during system
suspend,
+ * 		hibernation, system resume and during runtime PM transitions
+ * 		along with subsystem-level and driver-level callbacks.
+ * @numa_node:	NUMA node this device is close to.
+ * @dma_mask:	Dma mask (if dma'ble device).
+ * @coherent_dma_mask:Like dma_mask, but for alloc_coherent mapping as
not all
+ * 		hardware supports 64 bit addresses for consistent allocations
+ * 		such description.
+ * @dma_parms:	A low level driver may set these to teach IOMMU code
about
+ * 		segment limitations.
+ * @dma_pools:	Dma pools (if dma'ble device) .
+ * @dma_mem:	Internal for coherent mem override.
+ * @archdata:	For arch specific additions.
+ * @of_node:	Associated device tree node.
+ * @of_match:	Matching of_device_id from driver.
+ * @devt:	For creating the sysfs "dev".
+ * @devres_lock:Spinlock to protect the resource of the device.
+ * @devres_head:The resources list of the device.
+ * @knode_class:The node used to add the device to the class list.
+ * @class:	The class of the device.
+ * @groups:	Optional attribute groups.
+ * @release:	Callback to free the device after all references have
+ * 		gone away. This should be set by the allocator of the
+ * 		device (i.e. the bus driver that discovered the device).
+ */
 struct device {
 	struct device		*parent;
 
@@ -611,7 +709,7 @@ extern int (*platform_notify)(struct device *dev);
 extern int (*platform_notify_remove)(struct device *dev);
 
 
-/**
+/*
  * get_device - atomically increment the reference count for the
device.
  *
  */
-- 
1.7.4.1



  parent reply	other threads:[~2011-05-02 15:42 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-02 15:04 [PATCH 0/2] KernelDoc:Move the driver model structure to the kerneldoc wanlong.gao
2011-05-02 15:04 ` [PATCH 1/2] KernelDoc:Add the device driver-model structures to kerneldoc wanlong.gao
2011-05-02 15:26   ` Randy Dunlap
2011-05-02 15:39     ` Greg KH
2011-05-02 15:41     ` wanlong.gao [this message]
2011-05-02 15:43   ` Greg KH
2011-05-02 15:51     ` Wanlong Gao
2011-05-02 15:04 ` [PATCH 2/2] Documentation:remove the driver-model structures from the docs wanlong.gao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1304350913.1777.5.camel@Tux \
    --to=wanlong.gao@gmail.com \
    --cc=gregkh@suse.de \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@xenotime.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.