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

Commit 76c3bb15 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'linus' into x86/x2apic

parents 7be42004 93ded9b8
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -3344,8 +3344,7 @@ S: Spain
N: Linus Torvalds
N: Linus Torvalds
E: torvalds@linux-foundation.org
E: torvalds@linux-foundation.org
D: Original kernel hacker
D: Original kernel hacker
S: 12725 SW Millikan Way, Suite 400
S: Portland, Oregon 97005
S: Beaverton, Oregon 97005
S: USA
S: USA


N: Marcelo Tosatti
N: Marcelo Tosatti
+38 −0
Original line number Original line Diff line number Diff line
@@ -524,6 +524,44 @@ These utilities include endpoint autoconfiguration.
<!-- !Edrivers/usb/gadget/epautoconf.c -->
<!-- !Edrivers/usb/gadget/epautoconf.c -->
</sect1>
</sect1>


<sect1 id="composite"><title>Composite Device Framework</title>

<para>The core API is sufficient for writing drivers for composite
USB devices (with more than one function in a given configuration),
and also multi-configuration devices (also more than one function,
but not necessarily sharing a given configuration).
There is however an optional framework which makes it easier to
reuse and combine functions.
</para>

<para>Devices using this framework provide a <emphasis>struct
usb_composite_driver</emphasis>, which in turn provides one or
more <emphasis>struct usb_configuration</emphasis> instances.
Each such configuration includes at least one
<emphasis>struct usb_function</emphasis>, which packages a user
visible role such as "network link" or "mass storage device".
Management functions may also exist, such as "Device Firmware
Upgrade".
</para>

!Iinclude/linux/usb/composite.h
!Edrivers/usb/gadget/composite.c

</sect1>

<sect1 id="functions"><title>Composite Device Functions</title>

<para>At this writing, a few of the current gadget drivers have
been converted to this framework.
Near-term plans include converting all of them, except for "gadgetfs".
</para>

!Edrivers/usb/gadget/f_acm.c
!Edrivers/usb/gadget/f_serial.c

</sect1>


</chapter>
</chapter>


<chapter id="controllers"><title>Peripheral Controller Drivers</title>
<chapter id="controllers"><title>Peripheral Controller Drivers</title>
+32 −0
Original line number Original line Diff line number Diff line
@@ -308,9 +308,41 @@ Who: Matthew Wilcox <willy@linux.intel.com>


---------------------------
---------------------------


What:	SCTP_GET_PEER_ADDRS_NUM_OLD, SCTP_GET_PEER_ADDRS_OLD,
	SCTP_GET_LOCAL_ADDRS_NUM_OLD, SCTP_GET_LOCAL_ADDRS_OLD
When: 	June 2009
Why:    A newer version of the options have been introduced in 2005 that
	removes the limitions of the old API.  The sctp library has been
        converted to use these new options at the same time.  Any user
	space app that directly uses the old options should convert to using
	the new options.
Who:	Vlad Yasevich <vladislav.yasevich@hp.com>

---------------------------

What:	CONFIG_THERMAL_HWMON
What:	CONFIG_THERMAL_HWMON
When:	January 2009
When:	January 2009
Why:	This option was introduced just to allow older lm-sensors userspace
Why:	This option was introduced just to allow older lm-sensors userspace
	to keep working over the upgrade to 2.6.26. At the scheduled time of
	to keep working over the upgrade to 2.6.26. At the scheduled time of
	removal fixed lm-sensors (2.x or 3.x) should be readily available.
	removal fixed lm-sensors (2.x or 3.x) should be readily available.
Who:	Rene Herman <rene.herman@gmail.com>
Who:	Rene Herman <rene.herman@gmail.com>

---------------------------

What:	Code that is now under CONFIG_WIRELESS_EXT_SYSFS
	(in net/core/net-sysfs.c)
When:	After the only user (hal) has seen a release with the patches
	for enough time, probably some time in 2010.
Why:	Over 1K .text/.data size reduction, data is available in other
	ways (ioctls)
Who:	Johannes Berg <johannes@sipsolutions.net>

---------------------------

What: CONFIG_NF_CT_ACCT
When: 2.6.29
Why:  Accounting can now be enabled/disabled without kernel recompilation.
      Currently used only to set a default value for a feature that is also
      controlled by a kernel/module/sysfs/sysctl parameter.
Who:  Krzysztof Piotr Oledzki <ole@ans.pl>
+4 −6
Original line number Original line Diff line number Diff line
@@ -233,12 +233,10 @@ accomplished via the group operations specified on the group's
config_item_type.
config_item_type.


	struct configfs_group_operations {
	struct configfs_group_operations {
		int (*make_item)(struct config_group *group,
		struct config_item *(*make_item)(struct config_group *group,
				 const char *name,
						 const char *name);
				 struct config_item **new_item);
		struct config_group *(*make_group)(struct config_group *group,
		int (*make_group)(struct config_group *group,
						   const char *name);
				  const char *name,
				  struct config_group **new_group);
		int (*commit_item)(struct config_item *item);
		int (*commit_item)(struct config_item *item);
		void (*disconnect_notify)(struct config_group *group,
		void (*disconnect_notify)(struct config_group *group,
					  struct config_item *item);
					  struct config_item *item);
+6 −8
Original line number Original line Diff line number Diff line
@@ -273,13 +273,13 @@ static inline struct simple_children *to_simple_children(struct config_item *ite
	return item ? container_of(to_config_group(item), struct simple_children, group) : NULL;
	return item ? container_of(to_config_group(item), struct simple_children, group) : NULL;
}
}


static int simple_children_make_item(struct config_group *group, const char *name, struct config_item **new_item)
static struct config_item *simple_children_make_item(struct config_group *group, const char *name)
{
{
	struct simple_child *simple_child;
	struct simple_child *simple_child;


	simple_child = kzalloc(sizeof(struct simple_child), GFP_KERNEL);
	simple_child = kzalloc(sizeof(struct simple_child), GFP_KERNEL);
	if (!simple_child)
	if (!simple_child)
		return -ENOMEM;
		return ERR_PTR(-ENOMEM);




	config_item_init_type_name(&simple_child->item, name,
	config_item_init_type_name(&simple_child->item, name,
@@ -287,8 +287,7 @@ static int simple_children_make_item(struct config_group *group, const char *nam


	simple_child->storeme = 0;
	simple_child->storeme = 0;


	*new_item = &simple_child->item;
	return &simple_child->item;
	return 0;
}
}


static struct configfs_attribute simple_children_attr_description = {
static struct configfs_attribute simple_children_attr_description = {
@@ -360,21 +359,20 @@ static struct configfs_subsystem simple_children_subsys = {
 * children of its own.
 * children of its own.
 */
 */


static int group_children_make_group(struct config_group *group, const char *name, struct config_group **new_group)
static struct config_group *group_children_make_group(struct config_group *group, const char *name)
{
{
	struct simple_children *simple_children;
	struct simple_children *simple_children;


	simple_children = kzalloc(sizeof(struct simple_children),
	simple_children = kzalloc(sizeof(struct simple_children),
				  GFP_KERNEL);
				  GFP_KERNEL);
	if (!simple_children)
	if (!simple_children)
		return -ENOMEM;
		return ERR_PTR(-ENOMEM);




	config_group_init_type_name(&simple_children->group, name,
	config_group_init_type_name(&simple_children->group, name,
				    &simple_children_type);
				    &simple_children_type);


	*new_group = &simple_children->group;
	return &simple_children->group;
	return 0;
}
}


static struct configfs_attribute group_children_attr_description = {
static struct configfs_attribute group_children_attr_description = {
Loading