Peter Chen | 7 Jan 01:38 2014

[PATCH 1/1] usb: chipidea: udc: using MultO at TD as real mult value for ISO-TX

We have met a bug that the high bandwidth ISO-TX transfer has failed
at the last packet if it is less than 1024, the TD status shows it
is "Transaction Error".

The root cause of this problem is: the mult value at qh is not correct
for current TD's transfer length. We use TD list to queue un-transfer
TDs, and change mult for new adding TDs. If new adding TDs transfer length
less than 1024, but the queued un-transfer TDs transfer length is larger
than 1024, the transfer error will occur, and vice versa.
Usually, this problem occurs at the last packet, and the first packet for
new frame.

We fixed this problem by setting Mult at QH as the largest value (3), and
set MultO (Multiplier Override) at TD according to every transfer length.
It can cover both hardware version less than 2.3 (the real mult is MultO
if it is not 0) and 2.3+ (the real mult is min(qh.mult, td.multo)).

Since the MultO bits are only existed at TX TD, we keep the ISO-RX behavior
unchanged.

Cc: Michael Grzeschik <m.grzeschik@...>
Reported-by: Matthieu Vanin <b47495@...>
Tested-by: Matthieu Vanin <b47495@...>
Signed-off-by: Peter Chen <peter.chen@...>
---
 drivers/usb/chipidea/udc.c |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 69d20fb..ec27172 100644
(Continue reading)

Colin Leitner | 6 Jan 17:34 2014

Bugfix for CS5 handling in ftdi_sio broke support for certain smartcard readers

Hello everyone,

I received a bug report, that at least one type of smartcard reader fails to work with the bugfix to the
ftdi_sio driver of commit caf2e52920cddef72922cbe7c2140e5d3a690bc6 .

It's likely that the device doesn't use a genuine FTDI chip, but implements the protocol instead and abuses
the fact that with CS5 the data bits were sent as 0 in previous kernels. These devices are heavily in use in
settop boxes.

Because I have no hardware to develop against, I added a TODO for an appropriate quirk in the future. Patch
will follow right away.

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

administración | 6 Jan 09:47 2014
Picon

advertencia.

Usted necesita para proteger la seguridad de su cuenta de correo electrónico, con el fin de evitar la
interrupción de sus servicios. Haga clic en siguiente enlace para activar. http://utru.st/32
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Hayes Wang | 6 Jan 10:19 2014

[PATCH net] r8152: add terminating newline

The netif_err() and netif_info() should have the terminating newline
at the end of the message.

Signed-off-by: Hayes Wang <hayeswang@...>
---
 drivers/net/usb/r8152.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 5107372..3d8a565 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
 <at>  <at>  -2135,11 +2135,11  <at>  <at>  static int rtl8152_probe(struct usb_interface *intf,

 	ret = register_netdev(netdev);
 	if (ret != 0) {
-		netif_err(tp, probe, netdev, "couldn't register the device");
+		netif_err(tp, probe, netdev, "couldn't register the device\n");
 		goto out1;
 	}

-	netif_info(tp, probe, netdev, "%s", DRIVER_VERSION);
+	netif_info(tp, probe, netdev, "%s\n", DRIVER_VERSION);

 	return 0;

--

-- 
1.8.4.2

--
(Continue reading)

Peter Chen | 6 Jan 03:10 2014

[PATCH 0/8] USB Chipidea Patches for 3.14 Merge Window

Hi Greg,

It is based on your latest usb-next, and there are no compile
warnings and errors, some patches were sent for 3.13 before,
others are some tiny improvements.

Chris Ruehl (2):
  usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
  usb: chipidea: put hw_phymode_configure before ci_usb_phy_init

Marc Kleine-Budde (2):
  usb: chipidea: move malloced regmap directly into struct hw_bank
  usb: chipidea: mark register map as "const" and convert to u8

Peter Chen (4):
  usb: doc: rename ci13xxx-imx.txt to ci-hdrc-imx.txt
  usb: ehci: add freescale imx28 special write register method
  usb: chipidea: add freescale imx28 special write register method
  usb: chipidea: imx: set CI_HDRC_IMX28_WRITE_FIX for imx28

 .../devicetree/bindings/usb/ci-hdrc-imx.txt        |   31 ++++++
 .../devicetree/bindings/usb/ci13xxx-imx.txt        |   31 ------
 drivers/usb/chipidea/ci.h                          |   89 ++++++++++-------
 drivers/usb/chipidea/ci_hdrc_imx.c                 |   32 +++++-
 drivers/usb/chipidea/core.c                        |  102 ++++++++++----------
 drivers/usb/chipidea/host.c                        |    1 +
 drivers/usb/host/ehci.h                            |   18 ++++-
 include/linux/usb/chipidea.h                       |    1 +
 8 files changed, 179 insertions(+), 126 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
(Continue reading)

tatxarata | 5 Jan 08:23 2014
Picon

[Bug 68161] Unstable work of xhci with USB3.0 card reader and UDMA7 CompactFlash card.


https://bugzilla.kernel.org/show_bug.cgi?id=68161

--- Comment #6 from Greg Kroah-Hartman <greg@...> ---
On Sat, Jan 04, 2014 at 10:17:24PM +0000, 
bugzilla-daemon@...
wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=68161
>
>             Bug ID: 68161
>            Summary: Unstable work of xhci with USB3.0 card reader and
>                     UDMA7 CompactFlash card.

Please send this to the linux-usb@... mailing list.

--

-- 

Original text from bugzilla:
----------------------------
I've got SanDisk UDMA7 32Gb Extreme Pro CompactFlash card and Transcend
TS-RDF8K USB 3.0 card reader with latest firmware TS22. BIOS on my Dell
E6230is also updated to the latest version.

When card reader is in USB 2.0 port all work as expected.

When inserted to USB 3.0 port there are 3 opportunities.
1. In the most rare case all work as expected. However I have not managed to
reproduce this case with the latest kernel.
2. Sometimes card is not recognized and block device is not created.
3. In the most cases card is recognized, I can mount it from shell by 
(Continue reading)

Rahul Bedarkar | 4 Jan 09:43 2014
Picon

[PATCH] USB: wusbcore: fix up coding style issues in wusbhc.c and wusbhc.h


Signed-off-by: Rahul Bedarkar <rahulbedarkar89@...>
---
 drivers/usb/wusbcore/wusbhc.c | 15 ++++++++++-----
 drivers/usb/wusbcore/wusbhc.h |  7 ++++---
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/wusbcore/wusbhc.c b/drivers/usb/wusbcore/wusbhc.c
index e6b0fad92..a78b725 100644
--- a/drivers/usb/wusbcore/wusbhc.c
+++ b/drivers/usb/wusbcore/wusbhc.c
 <at>  <at>  -55,7 +55,8  <at>  <at>  static struct wusbhc *usbhc_dev_to_wusbhc(struct device *dev)
  * value of trust_timeout is jiffies.
  */
 static ssize_t wusb_trust_timeout_show(struct device *dev,
-				       struct device_attribute *attr, char *buf)
+					struct device_attribute *attr,
+					char *buf)
 {
 	struct wusbhc *wusbhc = usbhc_dev_to_wusbhc(dev);

 <at>  <at>  -173,7 +174,8  <at>  <at>  static ssize_t wusb_phy_rate_store(struct device *dev,
 	wusbhc->phy_rate = phy_rate;
 	return size;
 }
-static DEVICE_ATTR(wusb_phy_rate, 0644, wusb_phy_rate_show, wusb_phy_rate_store);
+static DEVICE_ATTR(wusb_phy_rate, 0644, wusb_phy_rate_show,
+			wusb_phy_rate_store);

 static ssize_t wusb_dnts_show(struct device *dev,
(Continue reading)

Rahul Bedarkar | 4 Jan 09:42 2014
Picon

[PATCH] USB: wusbcore: fix up coding style issues in wa-rpipe.c


Signed-off-by: Rahul Bedarkar <rahulbedarkar89@...>
---
 drivers/usb/wusbcore/wa-rpipe.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/wusbcore/wa-rpipe.c b/drivers/usb/wusbcore/wa-rpipe.c
index e8fc003..7b69edb 100644
--- a/drivers/usb/wusbcore/wa-rpipe.c
+++ b/drivers/usb/wusbcore/wa-rpipe.c
 <at>  <at>  -184,7 +184,7  <at>  <at>  EXPORT_SYMBOL_GPL(rpipe_destroy);
 /*
  * Locate an idle rpipe, create an structure for it and return it
  *
- *  <at> wa 	  is referenced and unlocked
+ *  <at> wa	  is referenced and unlocked
  *  <at> crs   enum rpipe_attr, required endpoint characteristics
  *
  * The rpipe can be used only sequentially (not in parallel).
 <at>  <at>  -329,7 +329,8  <at>  <at>  static int rpipe_aim(struct wa_rpipe *rpipe, struct wahc *wa,
 	}
 	unauth = usb_dev->wusb && !usb_dev->authenticated ? 0x80 : 0;
 	__rpipe_reset(wa, le16_to_cpu(rpipe->descr.wRPipeIndex));
-	atomic_set(&rpipe->segs_available, le16_to_cpu(rpipe->descr.wRequests));
+	atomic_set(&rpipe->segs_available,
+		le16_to_cpu(rpipe->descr.wRequests));
 	/* FIXME: block allocation system; request with queuing and timeout */
 	/* FIXME: compute so seg_size > ep->maxpktsize */
 	rpipe->descr.wBlocks = cpu_to_le16(16);		/* given */
 <at>  <at>  -553,4 +554,3  <at>  <at>  void rpipe_clear_feature_stalled(struct wahc *wa, struct usb_host_endpoint *ep)
(Continue reading)

Rahul Bedarkar | 4 Jan 09:41 2014
Picon

[PATCH] USB: wusbcore: fix up coding style issues in wa-nep.c


Signed-off-by: Rahul Bedarkar <rahulbedarkar89@...>
---
 drivers/usb/wusbcore/wa-nep.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/wusbcore/wa-nep.c b/drivers/usb/wusbcore/wa-nep.c
index ada4e08..60a10d2 100644
--- a/drivers/usb/wusbcore/wa-nep.c
+++ b/drivers/usb/wusbcore/wa-nep.c
 <at>  <at>  -69,8 +69,8  <at>  <at>  struct wa_notif_work {
  * [the wuswad daemon, basically]
  *
  *  <at> _nw:	Pointer to a descriptor which has the pointer to the
- * 		 <at> wa, the size of the buffer and the work queue
- * 		structure (so we can free all when done).
+ *		 <at> wa, the size of the buffer and the work queue
+ *		structure (so we can free all when done).
  *  <at> returns     0 if ok, < 0 errno code on error.
  *
  * All notifications follow the same format; they need to start with a
 <at>  <at>  -93,7 +93,8  <at>  <at>  static void wa_notif_dispatch(struct work_struct *ws)
 {
 	void *itr;
 	u8 missing = 0;
-	struct wa_notif_work *nw = container_of(ws, struct wa_notif_work, work);
+	struct wa_notif_work *nw = container_of(ws, struct wa_notif_work,
+						work);
 	struct wahc *wa = nw->wa;
 	struct wa_notif_hdr *notif_hdr;
(Continue reading)

Rahul Bedarkar | 4 Jan 09:40 2014
Picon

[PATCH] USB: wusbcore: fix up line break coding style issues in wa-hc.h


Signed-off-by: Rahul Bedarkar <rahulbedarkar89@...>
---
 drivers/usb/wusbcore/wa-hc.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
index 50cb033..a58d7c2 100644
--- a/drivers/usb/wusbcore/wa-hc.h
+++ b/drivers/usb/wusbcore/wa-hc.h
 <at>  <at>  -197,10 +197,10  <at>  <at>  struct wahc {
 	struct mutex rpipe_mutex;	/* assigning resources to endpoints */

 	/*
-	 * dti_state is used to track the state of the dti_urb.  When dti_state
+	 * dti_state is used to track the state of the dti_urb. When dti_state
 	 * is WA_DTI_ISOC_PACKET_STATUS_PENDING, dti_isoc_xfer_in_progress and
-	 * dti_isoc_xfer_seg identify which xfer the incoming isoc packet status
-	 * refers to.
+	 * dti_isoc_xfer_seg identify which xfer the incoming isoc packet
+	 * status refers to.
 	 */
 	enum wa_dti_state dti_state;
 	u32 dti_isoc_xfer_in_progress;
 <at>  <at>  -211,7 +211,7  <at>  <at>  struct wahc {
 	void *dti_buf;
 	size_t dti_buf_size;

-	unsigned long dto_in_use;	/* protect dto endoint serialization. */
+	unsigned long dto_in_use;	/* protect dto endoint serialization */
(Continue reading)

Rahul Bedarkar | 4 Jan 09:39 2014
Picon

[PATCH] USB: wusbcore: fix up line break coding style issues in security.c


Signed-off-by: Rahul Bedarkar <rahulbedarkar89@...>
---
 drivers/usb/wusbcore/security.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/wusbcore/security.c b/drivers/usb/wusbcore/security.c
index f0f29ff..722c39c 100644
--- a/drivers/usb/wusbcore/security.c
+++ b/drivers/usb/wusbcore/security.c
 <at>  <at>  -33,7 +33,8  <at>  <at>  static void wusbhc_gtk_rekey_work(struct work_struct *work);

 int wusbhc_sec_create(struct wusbhc *wusbhc)
 {
-	wusbhc->gtk.descr.bLength = sizeof(wusbhc->gtk.descr) + sizeof(wusbhc->gtk.data);
+	wusbhc->gtk.descr.bLength = sizeof(wusbhc->gtk.descr) +
+		sizeof(wusbhc->gtk.data);
 	wusbhc->gtk.descr.bDescriptorType = USB_DT_KEY;
 	wusbhc->gtk.descr.bReserved = 0;
 	wusbhc->gtk_index = 0;
 <at>  <at>  -138,7 +139,7  <at>  <at>  const char *wusb_et_name(u8 x)
 	case USB_ENC_TYPE_WIRED:	return "wired";
 	case USB_ENC_TYPE_CCM_1:	return "CCM-1";
 	case USB_ENC_TYPE_RSA_1:	return "RSA-1";
-	default: 			return "unknown";
+	default:			return "unknown";
 	}
 }
 EXPORT_SYMBOL_GPL(wusb_et_name);
 <at>  <at>  -222,7 +223,8  <at>  <at>  int wusb_dev_sec_add(struct wusbhc *wusbhc,
(Continue reading)


Gmane