From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v1,2/2] usb:cdns3 Add Cadence USB3 DRD Driver From: Felipe Balbi Message-Id: <877egfmdxk.fsf@linux.intel.com> Date: Wed, 12 Dec 2018 08:55:51 +0200 To: Peter Chen , pawell@cadence.com Cc: devicetree@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, rogerq@ti.com, lkml , adouglas@cadence.com, jbergsagel@ti.com, nsekhar@ti.com, nm@ti.com, sureshp@cadence.com, peter.chen@nxp.com, pjez@cadence.com, kurahul@cadence.com List-ID: UGV0ZXIgQ2hlbiA8aHpwZXRlcmNoZW5AZ21haWwuY29tPiB3cml0ZXM6Cgo+PiA+PiArICAgICAg ICAgICAgdG1vZGUgPSBsZTE2X3RvX2NwdShjdHJsLT53SW5kZXgpOwo+PiA+PiArCj4+ID4+ICsg ICAgICAgICAgICBpZiAoIXNldCB8fCAodG1vZGUgJiAweGZmKSAhPSAwKQo+PiA+PiArICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gPj4gKwo+PiA+PiArICAgICAgICAgICAg c3dpdGNoICh0bW9kZSA+PiA4KSB7Cj4+ID4+ICsgICAgICAgICAgICBjYXNlIFRFU1RfSjoKPj4g Pj4gKyAgICAgICAgICAgIGNhc2UgVEVTVF9LOgo+PiA+PiArICAgICAgICAgICAgY2FzZSBURVNU X1NFMF9OQUs6Cj4+ID4+ICsgICAgICAgICAgICBjYXNlIFRFU1RfUEFDS0VUOgo+PiA+PiArICAg ICAgICAgICAgICAgICAgICBjZG5zM19zZXRfcmVnaXN0ZXJfYml0KCZwcml2X2Rldi0+cmVncy0+ dXNiX2NtZCwKPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBVU0JfQ01EX1NUTU9ERSB8Cj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVVNCX1NUU19UTU9ERV9TRUwodG1vZGUgLSAxKSk7Cj4+ID4KPj4gPkknbSA5 MCUgc3VyZSB0aGlzIHdvbid0IHdvcmsuIFRoZXJlJ3MgYSByZWFzb24gd2h5IHdlIG9ubHkgZW50 ZXIgdGhlCj4+ID5yZXF1ZXN0ZWQgdGVzdCBtb2RlIGZyb20gc3RhdHVzIHN0YWdlLiBIb3cgaGF2 ZSB5b3UgdGVzdGVkIHRoaXM/Cj4+Cj4KPiBXaGF0J3MgdGhlIHJlYXNvbj8KPiBJdCBjYW4gd29y ayBhbHRob3VnaCB0aGUgY29kZSBpcyBhIGxpdHRsZSBkaWZmZXJlbnQgd2l0aCBhYm92ZSwgSQo+ IHRlc3RlZCBpdCB1c2luZyBVU0J4SFNFVFQgdG9vbCBhdCBXaW5kb3dzLgoKcHV0IGEgc25pZmZl ci4gU3RhdHVzIHN0YWdlIHdvbid0IGNvbXBsZXRlCgo+PiA+PiArICAgIGlycXJldHVybl90IHJl dCA9IElSUV9OT05FOwo+PiA+PiArICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ID4+ICsgICAg dTMyIHJlZzsKPj4gPj4gKwo+PiA+PiArICAgIHByaXZfZGV2ID0gY2Rucy0+Z2FkZ2V0X2RldjsK Pj4gPj4gKyAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdl9kZXYtPmxvY2ssIGZsYWdzKTsKPj4g Pgo+PiA+eW91J3JlIGFscmVhZHkgcnVubmluZyBpbiBoYXJkaXJxIGNvbnRleHQuIFdoeSBkbyB5 b3UgbmVlZCB0aGlzIGxvY2sgYXQKPj4gPmFsbD8gSSB3b3VsZCBiZSBiZXR0ZXIgdG8gdXNlIHRo ZSBoYXJkaXJxIGhhbmRsZXIgdG8gbWFzayB5b3VyCj4+ID5pbnRlcnJ1cHRzLCBzbyB0aGV5IGRv bid0IGZpcmUgYWdhaW4sIHRoZW4gdXNlZCB0aGUgdG9wLWhhbGYgKHNvZnRpcnEpCj4+ID5oYW5k bGVyIHRvIGFjdHVhbGx5IGhhbmRsZSB0aGUgaW50ZXJydXB0cy4KPj4KPgo+IFRoaXMgY29udHJv bGxlciBtYXkgYmUgcmFuIGF0IFNNUCBlbnZpcm9ubWVudCwgcmVnaXN0ZXIgYW5kIGZsYWcgYWNj ZXNzCj4gbmVlZHMgdG8gYmUgcHJvdGVjdGVkIGFtb25nIENQVXMgcnVubmluZy4KCmluIGhhcmRp cnEgY29udGV4dD8gV2hlbiBpbnRlcnJ1cHRzIGFyZSBhbHJlYWR5IGRpc2FibGVkPwo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Balbi Subject: Re: [PATCH v1 2/2] usb:cdns3 Add Cadence USB3 DRD Driver Date: Wed, 12 Dec 2018 08:55:51 +0200 Message-ID: <877egfmdxk.fsf@linux.intel.com> References: <1544445555-17325-1-git-send-email-pawell@cadence.com> <1544445555-17325-3-git-send-email-pawell@cadence.com> <87h8fkmfar.fsf@linux.intel.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Peter Chen , pawell@cadence.com Cc: devicetree@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, rogerq@ti.com, lkml , adouglas@cadence.com, jbergsagel@ti.com, nsekhar@ti.com, nm@ti.com, sureshp@cadence.com, peter.chen@nxp.com, pjez@cadence.com, kurahul@cadence.com List-Id: devicetree@vger.kernel.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Peter Chen writes: >> >> + tmode =3D le16_to_cpu(ctrl->wIndex); >> >> + >> >> + if (!set || (tmode & 0xff) !=3D 0) >> >> + return -EINVAL; >> >> + >> >> + switch (tmode >> 8) { >> >> + case TEST_J: >> >> + case TEST_K: >> >> + case TEST_SE0_NAK: >> >> + case TEST_PACKET: >> >> + cdns3_set_register_bit(&priv_dev->regs->usb_cmd, >> >> + USB_CMD_STMODE | >> >> + USB_STS_TMODE_SEL(tmode -= 1)); >> > >> >I'm 90% sure this won't work. There's a reason why we only enter the >> >requested test mode from status stage. How have you tested this? >> > > What's the reason? > It can work although the code is a little different with above, I > tested it using USBxHSETT tool at Windows. put a sniffer. Status stage won't complete >> >> + irqreturn_t ret =3D IRQ_NONE; >> >> + unsigned long flags; >> >> + u32 reg; >> >> + >> >> + priv_dev =3D cdns->gadget_dev; >> >> + spin_lock_irqsave(&priv_dev->lock, flags); >> > >> >you're already running in hardirq context. Why do you need this lock at >> >all? I would be better to use the hardirq handler to mask your >> >interrupts, so they don't fire again, then used the top-half (softirq) >> >handler to actually handle the interrupts. >> > > This controller may be ran at SMP environment, register and flag access > needs to be protected among CPUs running. in hardirq context? When interrupts are already disabled? =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEElLzh7wn96CXwjh2IzL64meEamQYFAlwQsPcACgkQzL64meEa mQaFMhAAivaFXmE5zk1145Lxf0qGZfICtUAOftRLhjxoE8QiyVaONzDrWmSfVZOV BFxf5p2YunTi5DEk2o/YVvDnmqmg5ctc5MASUeyuvBskEK8xAj5pcJ3zC4fGc10F roSp3Lh8VPvTy9p9Plzj6wqtCf6cGQGdmFhZU9m8uOBH+5venL7+l2Nr/i+YwFyN iq8s6YxT/qVNr311BZFokIH3ddfUNWRrizVfgfYORHU4NrSw5XV8185YvpRmZgbf Ji8F6PNxtwkdVDhYlBcdApxMTpwsz8ZksPuJ8g8NhRoyksxL4J02qQUykMcSEkDS h4H4+kMJWF+lC6a9Aj6KbaECK6IglZrkn7XLZURUmV6GxduvuiRWQ/FjAMbvrsYa DjSPCyrIH1SODNw26ij0N/EYtGMQqkM5voRYN1fDb+u1dTT8ZTYZAYbHMAUDX+Kv Fd3CZjeG7mQGWq7ctGWTKZAOA539rBczTN12YquxGneXa7xMjh4PuUfi6hqA9nxP 4S/+yyu51P1qrdCFjKcbiSd/SrPnOLLtKmb2tppokczi2H51XubfZcSNLha2OCfs edcJQnY1XSbB+fHuZ3mKtwP+5RzhTnSEvAor96/hz6WPGh2W2xgySWieoRR2jauO oOawN3NoHxsj8MTILERYcMKE3mfTZclHEv7Q58KjZTlssnudmDo= =kGLu -----END PGP SIGNATURE----- --=-=-=--