From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753032AbcKSSUK (ORCPT ); Sat, 19 Nov 2016 13:20:10 -0500 Received: from fllnx210.ext.ti.com ([198.47.19.17]:56831 "EHLO fllnx210.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752441AbcKSSUH (ORCPT ); Sat, 19 Nov 2016 13:20:07 -0500 From: Roger Quadros To: , CC: , , Subject: [PATCH 0/3] usb: xhci: Add broken port disable quirk Date: Thu, 17 Nov 2016 17:01:18 +0200 Message-ID: <1479394881-13863-1-git-send-email-rogerq@ti.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Some XHCI controllers e.g. dwc3 based have a broken Port disable [1]. If the attached high-speed device is misbehaving, the USB stack typically disables the port using the PED bit in PORTSC. For the controllers that have broken port disable, the port fails to detect further attach/detach events and so high-speed devices can no longer be enumerated on the port. The workaround is to prevent port disable using PED on such controllers. We add a new BROKEN_PED quirk flag and 'quirk-broken-port-ped' device property and prevent port disable using PED if we encounter the quirk flag. [1] - AM572x Silicon Errata http://www.ti.com/lit/er/sprz429j/sprz429j.pdf Section i896— USB xHCI Port Disable Feature Does Not Work cheers, -roger Felipe Balbi (3): usb: xhci: add quirk flag for broken PED bits usb: host: xhci-plat: enable BROKEN_PED quirk if platform requested usb: dwc3: host: pass quirk-broken-port-ped property for known broken revisions Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 + drivers/usb/dwc3/host.c | 21 ++++++++++++++++++--- drivers/usb/host/xhci-hub.c | 6 ++++++ drivers/usb/host/xhci-plat.c | 3 +++ drivers/usb/host/xhci.h | 3 +++ 5 files changed, 31 insertions(+), 3 deletions(-) -- 2.7.4