All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
To: Tatyana Brokhman <tlinder-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: gregkh-l3A5Bk7waGM@public.gmane.org,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	balbi-l0cyMroinI0@public.gmane.org,
	ablay-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Sebastian Andrzej Siewior
	<bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
Subject: [PATCH 1/5] usb/gadget: cleanup of "Add SuperSpeed support to the Gadget Framework"
Date: Tue, 12 Apr 2011 21:34:52 +0200	[thread overview]
Message-ID: <1302636896-12717-2-git-send-email-bigeasy@linutronix.de> (raw)
In-Reply-To: <1302636896-12717-1-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>

style, some endianess fixups

Signed-off-by: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
---
 drivers/usb/gadget/Kconfig     |    1 -
 drivers/usb/gadget/composite.c |   62 +++++++++++++++++----------------------
 include/linux/usb/gadget.h     |    2 +-
 3 files changed, 28 insertions(+), 37 deletions(-)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index b4130bc..21429c7 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -609,7 +609,6 @@ config USB_GADGET_SUPERSPEED
 	boolean "Gadget operating in Super Speed"
 	depends on USB_GADGET
 	depends on USB_GADGET_DUALSPEED
-	default n
 	help
 	  Enabling this feature enables Super Speed support in the Gadget
 	  driver. It means that gadget drivers should provide extra (SuperSpeed)
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index d5fe1c2..a94b7b7 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -76,10 +76,7 @@ static char composite_manufacturer[50];
 /* Default endpoint companion descriptor */
 static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
 		.bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
-		.bLength = 0x06,
-		.bMaxBurst = 0, /* the default is we don't support bursting */
-		.bmAttributes = 0, /* 2^0 streams supported */
-		.wBytesPerInterval = 0,
+		.bLength = sizeof(struct usb_ss_ep_comp_descriptor),
 };
 
 /**
@@ -96,13 +93,13 @@ static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
  */
 static void create_ss_descriptors(struct usb_function *f)
 {
-	unsigned bytes;		/* number of bytes to allocate */
-	unsigned n_desc;	/* number of descriptors */
-	void *mem;		/* allocated memory to copy to */
-	struct usb_descriptor_header **tmp;
-	struct usb_endpoint_descriptor	*ep_desc ;
-	struct usb_ss_ep_comp_descriptor *ep_comp_desc;
-	struct usb_descriptor_header **src = f->hs_descriptors;
+	struct usb_ss_ep_comp_descriptor	*ep_comp_desc;
+	struct usb_endpoint_descriptor		*ep_desc;
+	struct usb_descriptor_header		**src = f->hs_descriptors;
+	struct usb_descriptor_header		**tmp;
+	unsigned n_desc;
+	unsigned bytes;
+	void *mem;
 
 	if (!f->hs_descriptors)
 		return;
@@ -163,7 +160,7 @@ static void create_ss_descriptors(struct usb_function *f)
 			*tmp = mem;
 			tmp++;
 			/* Update wBytesPerInterval for periodic endpoints */
-			ep_comp_desc = (struct usb_ss_ep_comp_descriptor *)mem;
+			ep_comp_desc = mem;
 			switch (ep_desc->bmAttributes &
 				USB_ENDPOINT_XFERTYPE_MASK) {
 			case USB_ENDPOINT_XFER_INT:
@@ -609,47 +606,44 @@ static int count_configs(struct usb_composite_dev *cdev, unsigned type)
  */
 static int bos(struct usb_composite_dev *cdev)
 {
-	struct usb_bos_descriptor	*bos = cdev->req->buf;
-	struct usb_ext_cap_descriptor	*usb_ext = NULL;
-	struct usb_ss_cap_descriptor	*ss_cap = NULL;
-
+	struct usb_ext_cap_descriptor	*usb_ext;
+	struct usb_ss_cap_descriptor	*ss_cap;
 	struct usb_dcd_config_params	dcd_config_params;
+	struct usb_bos_descriptor	*bos = cdev->req->buf;
 
 	bos->bLength = USB_DT_BOS_SIZE;
 	bos->bDescriptorType = USB_DT_BOS;
 
-	bos->wTotalLength = USB_DT_BOS_SIZE;
+	bos->wTotalLength = cpu_to_le16(USB_DT_BOS_SIZE);
 	bos->bNumDeviceCaps = 0;
 
 	/*
 	 * A SuperSpeed device shall include the USB2.0 extension descriptor
 	 * and shall support LPM when operating in USB2.0 HS mode.
 	 */
-	usb_ext = (struct usb_ext_cap_descriptor *)
-			(cdev->req->buf+bos->wTotalLength);
+	usb_ext = cdev->req->buf + bos->wTotalLength;
 	bos->bNumDeviceCaps++;
-	bos->wTotalLength += USB_DT_USB_EXT_CAP_SIZE;
+	le16_add_cpu(&bos->wTotalLength, USB_DT_USB_EXT_CAP_SIZE);
 	usb_ext->bLength = USB_DT_USB_EXT_CAP_SIZE;
 	usb_ext->bDescriptorType = USB_DT_DEVICE_CAPABILITY;
 	usb_ext->bDevCapabilityType = USB_CAP_TYPE_EXT;
-	usb_ext->bmAttributes = USB_LPM_SUPPORT;
+	usb_ext->bmAttributes = cpu_to_le16(USB_LPM_SUPPORT);
 
 	/*
 	 * The Superspeed USB Capability descriptor shall be implemented by all
 	 * SuperSpeed devices.
 	 */
-	ss_cap = (struct usb_ss_cap_descriptor *)
-		(cdev->req->buf+bos->wTotalLength);
+	ss_cap = cdev->req->buf + bos->wTotalLength;
 	bos->bNumDeviceCaps++;
-	bos->wTotalLength += USB_DT_USB_SS_CAP_SIZE;
+	le16_add_cpu(&bos->wTotalLength, USB_DT_USB_SS_CAP_SIZE);
 	ss_cap->bLength = USB_DT_USB_SS_CAP_SIZE;
 	ss_cap->bDescriptorType = USB_DT_DEVICE_CAPABILITY;
 	ss_cap->bDevCapabilityType = USB_SS_CAP_TYPE;
 	ss_cap->bmAttributes = 0; /* LTM is not supported yet */
-	ss_cap->wSpeedSupported = USB_LOW_SPEED_OPERATION |
+	ss_cap->wSpeedSupported = cpu_to_le16(USB_LOW_SPEED_OPERATION |
 				USB_FULL_SPEED_OPERATION |
 				USB_HIGH_SPEED_OPERATION |
-				USB_5GBPS_OPERATION;
+				USB_5GBPS_OPERATION);
 	ss_cap->bFunctionalitySupport = USB_LOW_SPEED_OPERATION;
 
 	/* Get Controller configuration */
@@ -657,12 +651,13 @@ static int bos(struct usb_composite_dev *cdev)
 		cdev->gadget->ops->get_config_params(&dcd_config_params);
 	else {
 		dcd_config_params.bU1devExitLat = USB_DEFULT_U1_DEV_EXIT_LAT;
-		dcd_config_params.bU2DevExitLat = USB_DEFULT_U2_DEV_EXIT_LAT;
+		dcd_config_params.bU2DevExitLat =
+			cpu_to_le16(USB_DEFULT_U2_DEV_EXIT_LAT);
 	}
 	ss_cap->bU1devExitLat = dcd_config_params.bU1devExitLat;
 	ss_cap->bU2DevExitLat = dcd_config_params.bU2DevExitLat;
 
-	return bos->wTotalLength;
+	return le16_to_cpu(bos->wTotalLength);
 }
 
 static void device_qual(struct usb_composite_dev *cdev)
@@ -1285,7 +1280,7 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
 		status = f->get_status ? f->get_status(f) : 0;
 		if (status < 0)
 			break;
-		*((u16 *)req->buf) = status & 0x0000ffff;
+		*((u16 *)req->buf) = le16_to_cpu(status & 0x0000ffff);
 		break;
 	/*
 	 * Function drivers should handle SetFeature/ClearFeature
@@ -1305,12 +1300,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
 			f = cdev->config->interface[intf];
 			if (!f)
 				break;
-			value = f->func_suspend ?
-				f->func_suspend(f,
-					(u8)((w_index &
-						USB_INTR_FUNC_SUSPEND_OPT_MASK)
-							>> 8)) :
-				0;
+			value = 0;
+			if (f->func_suspend)
+				value = f->func_suspend(f, w_index >> 8);
 			if (value < 0) {
 				ERROR(cdev, "func_suspend() returned "
 					    "error %d\n", value);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 92c2d62..9d496a4 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -428,7 +428,7 @@ static inline void usb_ep_fifo_flush(struct usb_ep *ep)
 struct usb_dcd_config_params {
 	__u8  bU1devExitLat;	/* U1 Device exit Latency */
 #define USB_DEFULT_U1_DEV_EXIT_LAT	0x01	/* Less then 1 microsec */
-	__u16 bU2DevExitLat;	/* U2 Device exit Latency */
+	__le16 bU2DevExitLat;	/* U2 Device exit Latency */
 #define USB_DEFULT_U2_DEV_EXIT_LAT	0x1F4	/* Less then 500 microsec */
 };
 
-- 
1.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Tatyana Brokhman <tlinder@codeaurora.org>
Cc: gregkh@suse.de, linux-arm-msm@vger.kernel.org, balbi@ti.com,
	ablay@codeaurora.org, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: [PATCH 1/5] usb/gadget: cleanup of "Add SuperSpeed support to the Gadget Framework"
Date: Tue, 12 Apr 2011 21:34:52 +0200	[thread overview]
Message-ID: <1302636896-12717-2-git-send-email-bigeasy@linutronix.de> (raw)
In-Reply-To: <1302636896-12717-1-git-send-email-bigeasy@linutronix.de>

style, some endianess fixups

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/usb/gadget/Kconfig     |    1 -
 drivers/usb/gadget/composite.c |   62 +++++++++++++++++----------------------
 include/linux/usb/gadget.h     |    2 +-
 3 files changed, 28 insertions(+), 37 deletions(-)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index b4130bc..21429c7 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -609,7 +609,6 @@ config USB_GADGET_SUPERSPEED
 	boolean "Gadget operating in Super Speed"
 	depends on USB_GADGET
 	depends on USB_GADGET_DUALSPEED
-	default n
 	help
 	  Enabling this feature enables Super Speed support in the Gadget
 	  driver. It means that gadget drivers should provide extra (SuperSpeed)
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index d5fe1c2..a94b7b7 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -76,10 +76,7 @@ static char composite_manufacturer[50];
 /* Default endpoint companion descriptor */
 static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
 		.bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
-		.bLength = 0x06,
-		.bMaxBurst = 0, /* the default is we don't support bursting */
-		.bmAttributes = 0, /* 2^0 streams supported */
-		.wBytesPerInterval = 0,
+		.bLength = sizeof(struct usb_ss_ep_comp_descriptor),
 };
 
 /**
@@ -96,13 +93,13 @@ static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
  */
 static void create_ss_descriptors(struct usb_function *f)
 {
-	unsigned bytes;		/* number of bytes to allocate */
-	unsigned n_desc;	/* number of descriptors */
-	void *mem;		/* allocated memory to copy to */
-	struct usb_descriptor_header **tmp;
-	struct usb_endpoint_descriptor	*ep_desc ;
-	struct usb_ss_ep_comp_descriptor *ep_comp_desc;
-	struct usb_descriptor_header **src = f->hs_descriptors;
+	struct usb_ss_ep_comp_descriptor	*ep_comp_desc;
+	struct usb_endpoint_descriptor		*ep_desc;
+	struct usb_descriptor_header		**src = f->hs_descriptors;
+	struct usb_descriptor_header		**tmp;
+	unsigned n_desc;
+	unsigned bytes;
+	void *mem;
 
 	if (!f->hs_descriptors)
 		return;
@@ -163,7 +160,7 @@ static void create_ss_descriptors(struct usb_function *f)
 			*tmp = mem;
 			tmp++;
 			/* Update wBytesPerInterval for periodic endpoints */
-			ep_comp_desc = (struct usb_ss_ep_comp_descriptor *)mem;
+			ep_comp_desc = mem;
 			switch (ep_desc->bmAttributes &
 				USB_ENDPOINT_XFERTYPE_MASK) {
 			case USB_ENDPOINT_XFER_INT:
@@ -609,47 +606,44 @@ static int count_configs(struct usb_composite_dev *cdev, unsigned type)
  */
 static int bos(struct usb_composite_dev *cdev)
 {
-	struct usb_bos_descriptor	*bos = cdev->req->buf;
-	struct usb_ext_cap_descriptor	*usb_ext = NULL;
-	struct usb_ss_cap_descriptor	*ss_cap = NULL;
-
+	struct usb_ext_cap_descriptor	*usb_ext;
+	struct usb_ss_cap_descriptor	*ss_cap;
 	struct usb_dcd_config_params	dcd_config_params;
+	struct usb_bos_descriptor	*bos = cdev->req->buf;
 
 	bos->bLength = USB_DT_BOS_SIZE;
 	bos->bDescriptorType = USB_DT_BOS;
 
-	bos->wTotalLength = USB_DT_BOS_SIZE;
+	bos->wTotalLength = cpu_to_le16(USB_DT_BOS_SIZE);
 	bos->bNumDeviceCaps = 0;
 
 	/*
 	 * A SuperSpeed device shall include the USB2.0 extension descriptor
 	 * and shall support LPM when operating in USB2.0 HS mode.
 	 */
-	usb_ext = (struct usb_ext_cap_descriptor *)
-			(cdev->req->buf+bos->wTotalLength);
+	usb_ext = cdev->req->buf + bos->wTotalLength;
 	bos->bNumDeviceCaps++;
-	bos->wTotalLength += USB_DT_USB_EXT_CAP_SIZE;
+	le16_add_cpu(&bos->wTotalLength, USB_DT_USB_EXT_CAP_SIZE);
 	usb_ext->bLength = USB_DT_USB_EXT_CAP_SIZE;
 	usb_ext->bDescriptorType = USB_DT_DEVICE_CAPABILITY;
 	usb_ext->bDevCapabilityType = USB_CAP_TYPE_EXT;
-	usb_ext->bmAttributes = USB_LPM_SUPPORT;
+	usb_ext->bmAttributes = cpu_to_le16(USB_LPM_SUPPORT);
 
 	/*
 	 * The Superspeed USB Capability descriptor shall be implemented by all
 	 * SuperSpeed devices.
 	 */
-	ss_cap = (struct usb_ss_cap_descriptor *)
-		(cdev->req->buf+bos->wTotalLength);
+	ss_cap = cdev->req->buf + bos->wTotalLength;
 	bos->bNumDeviceCaps++;
-	bos->wTotalLength += USB_DT_USB_SS_CAP_SIZE;
+	le16_add_cpu(&bos->wTotalLength, USB_DT_USB_SS_CAP_SIZE);
 	ss_cap->bLength = USB_DT_USB_SS_CAP_SIZE;
 	ss_cap->bDescriptorType = USB_DT_DEVICE_CAPABILITY;
 	ss_cap->bDevCapabilityType = USB_SS_CAP_TYPE;
 	ss_cap->bmAttributes = 0; /* LTM is not supported yet */
-	ss_cap->wSpeedSupported = USB_LOW_SPEED_OPERATION |
+	ss_cap->wSpeedSupported = cpu_to_le16(USB_LOW_SPEED_OPERATION |
 				USB_FULL_SPEED_OPERATION |
 				USB_HIGH_SPEED_OPERATION |
-				USB_5GBPS_OPERATION;
+				USB_5GBPS_OPERATION);
 	ss_cap->bFunctionalitySupport = USB_LOW_SPEED_OPERATION;
 
 	/* Get Controller configuration */
@@ -657,12 +651,13 @@ static int bos(struct usb_composite_dev *cdev)
 		cdev->gadget->ops->get_config_params(&dcd_config_params);
 	else {
 		dcd_config_params.bU1devExitLat = USB_DEFULT_U1_DEV_EXIT_LAT;
-		dcd_config_params.bU2DevExitLat = USB_DEFULT_U2_DEV_EXIT_LAT;
+		dcd_config_params.bU2DevExitLat =
+			cpu_to_le16(USB_DEFULT_U2_DEV_EXIT_LAT);
 	}
 	ss_cap->bU1devExitLat = dcd_config_params.bU1devExitLat;
 	ss_cap->bU2DevExitLat = dcd_config_params.bU2DevExitLat;
 
-	return bos->wTotalLength;
+	return le16_to_cpu(bos->wTotalLength);
 }
 
 static void device_qual(struct usb_composite_dev *cdev)
@@ -1285,7 +1280,7 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
 		status = f->get_status ? f->get_status(f) : 0;
 		if (status < 0)
 			break;
-		*((u16 *)req->buf) = status & 0x0000ffff;
+		*((u16 *)req->buf) = le16_to_cpu(status & 0x0000ffff);
 		break;
 	/*
 	 * Function drivers should handle SetFeature/ClearFeature
@@ -1305,12 +1300,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
 			f = cdev->config->interface[intf];
 			if (!f)
 				break;
-			value = f->func_suspend ?
-				f->func_suspend(f,
-					(u8)((w_index &
-						USB_INTR_FUNC_SUSPEND_OPT_MASK)
-							>> 8)) :
-				0;
+			value = 0;
+			if (f->func_suspend)
+				value = f->func_suspend(f, w_index >> 8);
 			if (value < 0) {
 				ERROR(cdev, "func_suspend() returned "
 					    "error %d\n", value);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 92c2d62..9d496a4 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -428,7 +428,7 @@ static inline void usb_ep_fifo_flush(struct usb_ep *ep)
 struct usb_dcd_config_params {
 	__u8  bU1devExitLat;	/* U1 Device exit Latency */
 #define USB_DEFULT_U1_DEV_EXIT_LAT	0x01	/* Less then 1 microsec */
-	__u16 bU2DevExitLat;	/* U2 Device exit Latency */
+	__le16 bU2DevExitLat;	/* U2 Device exit Latency */
 #define USB_DEFULT_U2_DEV_EXIT_LAT	0x1F4	/* Less then 500 microsec */
 };
 
-- 
1.7.4


  parent reply	other threads:[~2011-04-12 19:34 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23  8:04 [PATCH 5/5 v5] usb:gadget: Add SuperSpeed support to the Gadget Framework Tatyana Brokhman
2011-03-23  8:04 ` Tatyana Brokhman
     [not found] ` <1300867498-20997-1-git-send-email-tlinder-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-03-25 13:41   ` Felipe Balbi
2011-03-25 13:41     ` Felipe Balbi
2011-03-28  8:45     ` Tanya Brokhman
2011-03-28  8:45       ` Tanya Brokhman
2011-03-28  8:54       ` Felipe Balbi
2011-03-28  9:15         ` Tanya Brokhman
2011-03-28  9:15           ` Tanya Brokhman
2011-04-11 17:59   ` Sebastian Andrzej Siewior
2011-04-11 17:59     ` Sebastian Andrzej Siewior
2011-04-12 19:34     ` Sebastian Andrzej Siewior
2011-04-12 19:34       ` [PATCH 2/5] usb/gadget: rename bos to get_bos_descr in composite Sebastian Andrzej Siewior
2011-04-12 19:34       ` [PATCH 3/5] usb/gadget: rename create_ss_descriptors() to usb_create_ss_descriptors() Sebastian Andrzej Siewior
2011-04-12 19:34       ` [PATCH 4/5] usb/gadget: don't deploy SS descriptors if SS is not enabled Sebastian Andrzej Siewior
2011-04-13 10:46         ` Sergei Shtylyov
     [not found]           ` <4DA57F0F.1090609-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
2011-04-13 10:56             ` Sebastian Andrzej Siewior
2011-04-13 10:56               ` Sebastian Andrzej Siewior
2011-04-13 10:59               ` Michal Nazarewicz
     [not found]       ` <1302636896-12717-1-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-04-12 19:34         ` Sebastian Andrzej Siewior [this message]
2011-04-12 19:34           ` [PATCH 1/5] usb/gadget: cleanup of "Add SuperSpeed support to the Gadget Framework" Sebastian Andrzej Siewior
2011-04-13  8:17           ` Felipe Balbi
2011-04-12 19:34         ` [PATCH 5/5] usb/gadget: don't auto-create SS descriptors if HS are avilable Sebastian Andrzej Siewior
2011-04-12 19:34           ` Sebastian Andrzej Siewior
2011-04-13 11:12       ` [PATCH 5/5 v5] usb:gadget: Add SuperSpeed support to the Gadget Framework Tanya Brokhman
2011-04-13 11:12         ` Tanya Brokhman
2011-04-14  7:36     ` Tanya Brokhman
2011-04-14  7:36       ` Tanya Brokhman

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=1302636896-12717-2-git-send-email-bigeasy@linutronix.de \
    --to=bigeasy-hfztesqfncyowbw4kg4ksq@public.gmane.org \
    --cc=ablay-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=balbi-l0cyMroinI0@public.gmane.org \
    --cc=gregkh-l3A5Bk7waGM@public.gmane.org \
    --cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=tlinder-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    /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.