Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Roger Quadros <rogerq@ti.com>
Cc: Pawel Laszczak <pawell@cadence.com>,
	<felipe.balbi@linux.intel.com>, <gregkh@linuxfoundation.org>,
	<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<jbergsagel@ti.com>, <nsekhar@ti.com>, <nm@ti.com>,
	<sureshp@cadence.com>, <jpawar@cadence.com>,
	<kurahul@cadence.com>, <aniljoy@cadence.com>
Subject: Re: [PATCH v10 0/6] Introduced new Cadence USBSS DRD Driver.
Date: Thu, 15 Aug 2019 10:39:17 -0400 (EDT)
Message-ID: <Pine.LNX.4.44L0.1908151037120.1664-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <9f54d3d5-da99-327b-631e-fad1329dcde4@ti.com>

On Thu, 15 Aug 2019, Roger Quadros wrote:

> Felipe & Alan,
> 
> On 21/07/2019 21:32, Pawel Laszczak wrote:
> > This patch introduce new Cadence USBSS DRD driver to linux kernel.
> > 
> > The Cadence USBSS DRD Controller is a highly configurable IP Core which
> > can be instantiated as Dual-Role Device (DRD), Peripheral Only and
> > Host Only (XHCI)configurations.
> > 
> > The current driver has been validated with FPGA burned. We have support
> > for PCIe bus, which is used on FPGA prototyping.
> > 
> > The host side of USBSS-DRD controller is compliance with XHCI
> > specification, so it works with standard XHCI Linux driver.
> 
> While testing this driver I encountered the following issue if I do the following.
> 
> 1) USB port is "otg" and nothing connected so it is in IDLE mode to begin with.
>    i.e. HCD & UDC not registered.
> 
> 2) Load mass storage gadget with backing medium.
>    > modprobe g_mass_storage file=lun stall=0
> 
> [   28.172142] udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers
> 
> 3) Connect port to PC host
> 
> [   30.564767] cdns-usb3 6000000.usb: Initialized  ep0 support:  
> [   30.570591] cdns-usb3 6000000.usb: Initialized  ep1out support: BULK, INT ISO
> [   30.577713] cdns-usb3 6000000.usb: Initialized  ep2out support: BULK, INT ISO
> [   30.584835] cdns-usb3 6000000.usb: Initialized  ep3out support: BULK, INT ISO
> [   30.591957] cdns-usb3 6000000.usb: Initialized  ep4out support: BULK, INT ISO
> [   30.599078] cdns-usb3 6000000.usb: Initialized  ep5out support: BULK, INT ISO
> [   30.606199] cdns-usb3 6000000.usb: Initialized  ep6out support: BULK, INT ISO
> [   30.613320] cdns-usb3 6000000.usb: Initialized  ep7out support: BULK, INT ISO
> [   30.620441] cdns-usb3 6000000.usb: Initialized  ep8out support: BULK, INT ISO
> [   30.627562] cdns-usb3 6000000.usb: Initialized  ep9out support: BULK, INT ISO
> [   30.634684] cdns-usb3 6000000.usb: Initialized  ep10out support: BULK, INT ISO
> [   30.641893] cdns-usb3 6000000.usb: Initialized  ep11out support: BULK, INT ISO
> [   30.649100] cdns-usb3 6000000.usb: Initialized  ep12out support: BULK, INT ISO
> [   30.656309] cdns-usb3 6000000.usb: Initialized  ep13out support: BULK, INT ISO
> [   30.663516] cdns-usb3 6000000.usb: Initialized  ep14out support: BULK, INT ISO
> [   30.670724] cdns-usb3 6000000.usb: Initialized  ep15out support: BULK, INT ISO
> [   30.677935] cdns-usb3 6000000.usb: Initialized  ep1in support: BULK, INT ISO
> [   30.684979] cdns-usb3 6000000.usb: Initialized  ep2in support: BULK, INT ISO
> [   30.692020] cdns-usb3 6000000.usb: Initialized  ep3in support: BULK, INT ISO
> [   30.699057] cdns-usb3 6000000.usb: Initialized  ep4in support: BULK, INT ISO
> [   30.706097] cdns-usb3 6000000.usb: Initialized  ep5in support: BULK, INT ISO
> [   30.713135] cdns-usb3 6000000.usb: Initialized  ep6in support: BULK, INT ISO
> [   30.720175] cdns-usb3 6000000.usb: Initialized  ep7in support: BULK, INT ISO
> [   30.727213] cdns-usb3 6000000.usb: Initialized  ep8in support: BULK, INT ISO
> [   30.734252] cdns-usb3 6000000.usb: Initialized  ep9in support: BULK, INT ISO
> [   30.741289] cdns-usb3 6000000.usb: Initialized  ep10in support: BULK, INT ISO
> [   30.748414] cdns-usb3 6000000.usb: Initialized  ep11in support: BULK, INT ISO
> [   30.755536] cdns-usb3 6000000.usb: Initialized  ep12in support: BULK, INT ISO
> [   30.762661] cdns-usb3 6000000.usb: Initialized  ep13in support: BULK, INT ISO
> [   30.769785] cdns-usb3 6000000.usb: Initialized  ep14in support: BULK, INT ISO
> [   30.776910] cdns-usb3 6000000.usb: Initialized  ep15in support: BULK, INT ISO
> [   30.786313] Mass Storage Function, version: 2009/09/11
> [   30.791455] LUN: removable file: (no medium)
> [   31.039497] lun0: unable to open backing file: 500M.bin
> [   31.158689] g_mass_storage 6000000.usb: failed to start g_mass_storage: -2
> [   31.165606] cdns-usb3 6000000.usb: Failed to register USB device controller
> [   31.172585] cdns-usb3 6000000.usb: set 2 has failed, back to 0
> 
> Now, -2 is ENOENT i.e.	/* No such file or directory */
> The file is present so that's not the real issue.
> 
> The call trace to fsg_lun_open is below
> 
> [   30.952877]  fsg_lun_open+0x24/0x42c [usb_f_mass_storage]
> [   30.958259]  fsg_common_create_lun+0xc8/0x2b8 [usb_f_mass_storage]
> [   30.964422]  fsg_common_create_luns+0xa4/0x104 [usb_f_mass_storage]
> [   30.970670]  msg_bind+0xd8/0x1e0 [g_mass_storage]
> [   30.975360]  composite_bind+0x7c/0x180 [libcomposite]
> [   30.980396]  udc_bind_to_driver+0x68/0x110 [udc_core]
> [   30.985432]  check_pending_gadget_drivers+0x74/0xd8 [udc_core]
> [   30.991247]  usb_add_gadget_udc_release+0x180/0x1e8 [udc_core]
> [   30.997062]  usb_add_gadget_udc+0x10/0x18 [udc_core]
> [   31.002010]  __cdns3_gadget_init+0x3a0/0x628 [cdns3]
> [   31.006959]  cdns3_role_start+0x6c/0xd0 [cdns3]
> [   31.011473]  cdns3_hw_role_switch+0x80/0xe8 [cdns3]
> [   31.016336]  cdns3_drd_thread_irq+0x10/0x20 [cdns3]
> [   31.021197]  irq_thread_fn+0x28/0x78
> [   31.024757]  irq_thread+0x124/0x1b8
> [   31.028233]  kthread+0x124/0x128
> [   31.031447]  ret_from_fork+0x10/0x18
> 
> Is opening the backing file from irq_thread_fn the issue here?
> If yes, how to resolve this?

I would guess that it probably is related to that.

In any case, the backing filename should be an explicit complete path.  
Who knows what the current directory will be when the actual open call
takes place?

Alan Stern


  reply index

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-21 18:32 Pawel Laszczak
2019-07-21 18:32 ` [PATCH v10 1/6] dt-bindings: add binding for USBSS-DRD controller Pawel Laszczak
2019-07-21 18:32 ` [PATCH v10 2/6] usb:common Separated decoding functions from dwc3 driver Pawel Laszczak
2019-07-21 19:05   ` Joe Perches
2019-07-21 20:45     ` Alan Stern
2019-07-21 20:54       ` Joe Perches
2019-07-22 10:06     ` Pawel Laszczak
2019-07-22 11:49       ` gregkh
2019-07-21 18:32 ` [PATCH v10 3/6] usb:common Patch simplify usb_decode_set_clear_feature function Pawel Laszczak
2019-07-21 19:07   ` Joe Perches
2019-07-22 10:12     ` Pawel Laszczak
2019-07-21 18:32 ` [PATCH v10 4/6] usb:common Simplify usb_decode_get_set_descriptor function Pawel Laszczak
2019-07-21 18:32 ` [PATCH v10 5/6] usb:cdns3 Add Cadence USB3 DRD Driver Pawel Laszczak
2019-07-31  3:36   ` Pawel Laszczak
2019-08-07 12:08   ` Roger Quadros
2019-08-11 11:59     ` Pawel Laszczak
2019-08-12  8:45       ` Roger Quadros
2019-08-12  9:43         ` Pawel Laszczak
2019-08-12 10:31           ` Heikki Krogerus
2019-08-12 11:05             ` Roger Quadros
2019-08-12 12:46               ` Felipe Balbi
2019-08-12 13:04                 ` Roger Quadros
2019-08-13  5:15                   ` Felipe Balbi
2019-08-13  7:30                   ` Chunfeng Yun
2019-08-13  7:48                     ` Roger Quadros
2019-08-13  8:50                       ` Chunfeng Yun
2019-08-12 10:05       ` Roger Quadros
2019-08-12 11:10         ` Pawel Laszczak
2019-08-14 13:32   ` Roger Quadros
2019-08-15  6:10     ` Felipe Balbi
2019-08-19  8:20     ` Pawel Laszczak
2019-08-14 13:38   ` Roger Quadros
2019-08-14 14:30     ` Pawel Laszczak
2019-08-15 11:22   ` Roger Quadros
2019-08-19 10:30     ` Pawel Laszczak
2019-08-19 10:59       ` Roger Quadros
2019-08-23  8:53   ` Vignesh Raghavendra
2019-08-23  9:39     ` Pawel Laszczak
2019-08-26  2:16   ` Peter Chen
2019-08-26  7:53     ` Pawel Laszczak
2019-07-21 18:32 ` [PATCH v10 6/6] usb:cdns3 Fix for stuck packets in on-chip OUT buffer Pawel Laszczak
2019-07-21 19:03 ` [PATCH v10 0/6] Introduced new Cadence USBSS DRD Driver Pavel Machek
2019-07-22  9:58   ` Pawel Laszczak
2019-07-22 11:48     ` gregkh
2019-07-22 11:56       ` Pavel Machek
2019-07-22 12:11         ` gregkh
2019-07-22 12:11         ` Pawel Laszczak
2019-07-22 21:00         ` Pavel Machek
2019-07-23  4:32           ` Pawel Laszczak
2019-08-07 11:05             ` Roger Quadros
2019-08-08  4:12               ` Pawel Laszczak
2019-08-09 10:36                 ` Roger Quadros
2019-08-09 10:44                   ` Felipe Balbi
2019-08-13  8:22                 ` Pavel Machek
2019-08-15 12:12 ` Roger Quadros
2019-08-15 14:39   ` Alan Stern [this message]
2019-08-19 12:08     ` Roger Quadros
2019-08-19 14:19       ` Alan Stern
2019-08-21  9:54         ` Roger Quadros

Reply instructions:

You may reply publically 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=Pine.LNX.4.44L0.1908151037120.1664-100000@iolanthe.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=aniljoy@cadence.com \
    --cc=felipe.balbi@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jbergsagel@ti.com \
    --cc=jpawar@cadence.com \
    --cc=kurahul@cadence.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=nsekhar@ti.com \
    --cc=pawell@cadence.com \
    --cc=rogerq@ti.com \
    --cc=sureshp@cadence.com \
    /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

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org linux-usb@archiver.kernel.org
	public-inbox-index linux-usb


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/ public-inbox