diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-22 11:08:11 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-22 11:08:11 -0700 |
commit | e726633b0f0ffb79382c39717e2c63b75eb55996 (patch) | |
tree | dd6be1337cab2a69682595bc7d948d212d465215 | |
parent | c1d4b292265debd33cf22eb4d9389864e9189ed1 (diff) | |
download | longterm-queue-2.6.33-e726633b0f0ffb79382c39717e2c63b75eb55996.tar.gz |
.33 patches
5 files changed, 208 insertions, 0 deletions
diff --git a/queue-2.6.33/asix-add-ax88772b-usb-id.patch b/queue-2.6.33/asix-add-ax88772b-usb-id.patch new file mode 100644 index 0000000..d844c99 --- /dev/null +++ b/queue-2.6.33/asix-add-ax88772b-usb-id.patch @@ -0,0 +1,32 @@ +From 308859097831831a979f2e82cbeef0a94f438080 Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marek.vasut@gmail.com> +Date: Wed, 20 Jul 2011 05:57:04 +0000 +Subject: ASIX: Add AX88772B USB ID + +From: Marek Vasut <marek.vasut@gmail.com> + +commit 308859097831831a979f2e82cbeef0a94f438080 upstream. + +This device can be found in Acer Iconia TAB W500 tablet dock. + +Signed-off-by: Marek Vasut <marek.vasut@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/net/usb/asix.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/net/usb/asix.c ++++ b/drivers/net/usb/asix.c +@@ -1441,6 +1441,10 @@ static const struct usb_device_id produc + USB_DEVICE (0x04f1, 0x3008), + .driver_info = (unsigned long) &ax8817x_info, + }, { ++ // ASIX AX88772B 10/100 ++ USB_DEVICE (0x0b95, 0x772b), ++ .driver_info = (unsigned long) &ax88772_info, ++}, { + // ASIX AX88772 10/100 + USB_DEVICE (0x0b95, 0x7720), + .driver_info = (unsigned long) &ax88772_info, diff --git a/queue-2.6.33/fcoe-unable-to-select-the-exchangeid-from-offload-pool-for-storage-targets.patch b/queue-2.6.33/fcoe-unable-to-select-the-exchangeid-from-offload-pool-for-storage-targets.patch new file mode 100644 index 0000000..c483b3b --- /dev/null +++ b/queue-2.6.33/fcoe-unable-to-select-the-exchangeid-from-offload-pool-for-storage-targets.patch @@ -0,0 +1,62 @@ +From 1ff9918b625457ce20d450d00f9ed0a12ba191b7 Mon Sep 17 00:00:00 2001 +From: Kiran Patil <kiran.patil@intel.com> +Date: Mon, 20 Jun 2011 16:59:15 -0700 +Subject: [SCSI] fcoe: Unable to select the exchangeID from offload pool for storage targets + +From: Kiran Patil <kiran.patil@intel.com> + +commit 1ff9918b625457ce20d450d00f9ed0a12ba191b7 upstream. + +Problem: When initiator sends write command to target, target tries to +assign new sequence. It allocates new exchangeID (RX_ID) +always from non-offloaded pool (Non-offload EMA) + +Fix: Enhanced fcoe_oem_match routine to look at F_CTL flags and if it +is exchange responder and command type is WRITEDATA, then function +returns TRUE instead of FALSE. This function is used to determine +which pool to use (offload pool of exchange is used only if this +function returns TRUE). + +Technical Notes: N/A + +Signed-off-by: Kiran Patil <kiran.patil@intel.com> +Signed-off-by: Robert Love <robert.w.love@intel.com> +Signed-off-by: James Bottomley <JBottomley@Parallels.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/scsi/fcoe/fcoe.c | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +--- a/drivers/scsi/fcoe/fcoe.c ++++ b/drivers/scsi/fcoe/fcoe.c +@@ -704,12 +704,27 @@ static int fcoe_shost_config(struct fc_l + * The offload EM that this routine is associated with will handle any + * packets that are for SCSI read requests. + * ++ * This has been enhanced to work when FCoE stack is operating in target ++ * mode. ++ * + * Returns: True for read types I/O, otherwise returns false. + */ + bool fcoe_oem_match(struct fc_frame *fp) + { +- return fc_fcp_is_read(fr_fsp(fp)) && +- (fr_fsp(fp)->data_len > fcoe_ddp_min); ++ struct fc_frame_header *fh = fc_frame_header_get(fp); ++ struct fcp_cmnd *fcp; ++ ++ if (fc_fcp_is_read(fr_fsp(fp)) && ++ (fr_fsp(fp)->data_len > fcoe_ddp_min)) ++ return true; ++ else if (!(ntoh24(fh->fh_f_ctl) & FC_FC_EX_CTX)) { ++ fcp = fc_frame_payload_get(fp, sizeof(*fcp)); ++ if (ntohs(fh->fh_rx_id) == FC_XID_UNKNOWN && ++ fcp && (ntohl(fcp->fc_dl) > fcoe_ddp_min) && ++ (fcp->fc_flags & FCP_CFL_WRDATA)) ++ return true; ++ } ++ return false; + } + + /** diff --git a/queue-2.6.33/hvc_console-improve-tty-console-put_chars-handling.patch b/queue-2.6.33/hvc_console-improve-tty-console-put_chars-handling.patch new file mode 100644 index 0000000..34d21d7 --- /dev/null +++ b/queue-2.6.33/hvc_console-improve-tty-console-put_chars-handling.patch @@ -0,0 +1,57 @@ +From 8c2381af0d3ef62a681dac5a141b6dabb27bf2e1 Mon Sep 17 00:00:00 2001 +From: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> +Date: Tue, 5 Jul 2011 21:50:18 +0000 +Subject: hvc_console: Improve tty/console put_chars handling + +From: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> + +commit 8c2381af0d3ef62a681dac5a141b6dabb27bf2e1 upstream. + +Currently, the hvc_console_print() function drops console output if the +hvc backend's put_chars() returns 0. This patch changes this behavior +to allow a retry through returning -EAGAIN. + +This change also affects the hvc_push() function. Both functions are +changed to handle -EAGAIN and to retry the put_chars() operation. + +If a hvc backend returns -EAGAIN, the retry handling differs: + + - hvc_console_print() spins to write the complete console output. + - hvc_push() behaves the same way as for returning 0. + +Now hvc backends can indirectly control the way how console output is +handled through the hvc console layer. + +Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> +Acked-by: Anton Blanchard <anton@samba.org> +Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/char/hvc_console.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/drivers/char/hvc_console.c ++++ b/drivers/char/hvc_console.c +@@ -162,8 +162,10 @@ static void hvc_console_print(struct con + } else { + r = cons_ops[index]->put_chars(vtermnos[index], c, i); + if (r <= 0) { +- /* throw away chars on error */ +- i = 0; ++ /* throw away characters on error ++ * but spin in case of -EAGAIN */ ++ if (r != -EAGAIN) ++ i = 0; + } else if (r > 0) { + i -= r; + if (i > 0) +@@ -442,7 +444,7 @@ static int hvc_push(struct hvc_struct *h + + n = hp->ops->put_chars(hp->vtermno, hp->outbuf, hp->n_outbuf); + if (n <= 0) { +- if (n == 0) { ++ if (n == 0 || n == -EAGAIN) { + hp->do_wakeup = 1; + return 0; + } diff --git a/queue-2.6.33/series b/queue-2.6.33/series index eaab303..48e043a 100644 --- a/queue-2.6.33/series +++ b/queue-2.6.33/series @@ -29,3 +29,7 @@ cifs-fix-possible-memory-corruption-in-cifsfindnext.patch b43-fix-beacon-problem-in-ad-hoc-mode.patch wireless-reset-beacon_found-while-updating-regulatory.patch rtl2800usb-fix-incorrect-storage-of-mac-address-on.patch +usb-pl2303-correctly-handle-baudrates-above-115200.patch +asix-add-ax88772b-usb-id.patch +fcoe-unable-to-select-the-exchangeid-from-offload-pool-for-storage-targets.patch +hvc_console-improve-tty-console-put_chars-handling.patch diff --git a/queue-2.6.33/usb-pl2303-correctly-handle-baudrates-above-115200.patch b/queue-2.6.33/usb-pl2303-correctly-handle-baudrates-above-115200.patch new file mode 100644 index 0000000..69bdf34 --- /dev/null +++ b/queue-2.6.33/usb-pl2303-correctly-handle-baudrates-above-115200.patch @@ -0,0 +1,53 @@ +From 8d48fdf689fed2c73c493e5146d1463689246442 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Sroczy=C5=84ski?= <msroczyn@gmail.com> +Date: Tue, 5 Jul 2011 21:53:35 +0200 +Subject: USB: PL2303: correctly handle baudrates above 115200 + +From: Michal Sroczynski <msroczyn@gmail.com> + +commit 8d48fdf689fed2c73c493e5146d1463689246442 upstream. + +PL2303: correctly handle baudrates above 115200 + +Signed-off-by: Michal Sroczynski <msroczyn@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/pl2303.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +--- a/drivers/usb/serial/pl2303.c ++++ b/drivers/usb/serial/pl2303.c +@@ -616,10 +616,28 @@ static void pl2303_set_termios(struct tt + baud = 6000000; + } + dbg("%s - baud set = %d", __func__, baud); +- buf[0] = baud & 0xff; +- buf[1] = (baud >> 8) & 0xff; +- buf[2] = (baud >> 16) & 0xff; +- buf[3] = (baud >> 24) & 0xff; ++ if (baud <= 115200) { ++ buf[0] = baud & 0xff; ++ buf[1] = (baud >> 8) & 0xff; ++ buf[2] = (baud >> 16) & 0xff; ++ buf[3] = (baud >> 24) & 0xff; ++ } else { ++ /* apparently the formula for higher speeds is: ++ * baudrate = 12M * 32 / (2^buf[1]) / buf[0] ++ */ ++ unsigned tmp = 12*1000*1000*32 / baud; ++ buf[3] = 0x80; ++ buf[2] = 0; ++ buf[1] = (tmp >= 256); ++ while (tmp >= 256) { ++ tmp >>= 2; ++ buf[1] <<= 1; ++ } ++ if (tmp > 256) { ++ tmp %= 256; ++ } ++ buf[0] = tmp; ++ } + } + + /* For reference buf[4]=0 is 1 stop bits */ |