Bug 174254 - MIDI keyboard not recognised
Summary: MIDI keyboard not recognised
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: 9.1-PRERELEASE
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-usb (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-07 09:10 UTC by Walter C. Pelissero
Modified: 2019-01-20 03:22 UTC (History)
1 user (show)

See Also:


Attachments
uaudio.diff (7.24 KB, patch)
2012-12-07 12:08 UTC, Hans Petter Selasky
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Walter C. Pelissero 2012-12-07 09:10:00 UTC
	Yamaha E423 doesn't seem to be recognised as MIDI device by
	the system.  All that is available is a /dev/ugen.

How-To-Repeat: 	Plug the keyboard in.

	# kldstat | fgrep snd
	9     1 0xffffffff80ce5000 3cce0    snd_hda.ko
	52    1 0xffffffff812f5000 828d     snd_uaudio.ko

	# cat /dev/midistat 
	FreeBSD Midi Driver (midi2)
	No devices installed.

	# ls /dev/umidi*
	ls: No match.

	# dmesg
	[...]
	usb_alloc_device: set address 4 failed (USB_ERR_IOERROR, ignored)
	usbd_setup_device_desc: getting device descriptor at addr 4 failed, USB_ERR_IOERROR
	usbd_req_re_enumerate: addr=4, set address failed! (USB_ERR_IOERROR, ignored)
	usbd_setup_device_desc: getting device descriptor at addr 4 failed, USB_ERR_IOERROR
	usbd_req_re_enumerate: addr=4, set address failed! (USB_ERR_IOERROR, ignored)
	usbd_setup_device_desc: getting device descriptor at addr 4 failed, USB_ERR_IOERROR
	ugen2.4: <Unknown> at usbus2 (disconnected)
	uhub_reattach_port: could not allocate new device
	ugen2.4: <YAMAHA Corporation> at usbus2

	# usbconfig | fgrep YAMAHA
	ugen2.4: <DigitalKBD YAMAHA Corporation> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

	# usbconfig dump_device_desc
	[...]
	ugen2.4: <DigitalKBD YAMAHA Corporation> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

	  bLength = 0x0012 
	  bDescriptorType = 0x0001 
	  bcdUSB = 0x0200 
	  bDeviceClass = 0x0000 
	  bDeviceSubClass = 0x0000 
	  bDeviceProtocol = 0x0000 
	  bMaxPacketSize0 = 0x0008 
	  idVendor = 0x0499 
	  idProduct = 0x1037 
	  bcdDevice = 0x0100 
	  iManufacturer = 0x0001  <YAMAHA Corporation>
	  iProduct = 0x0002  <DigitalKBD>
	  iSerialNumber = 0x0000  <no string>
	  bNumConfigurations = 0x0001
Comment 1 Hans Petter Selasky 2012-12-07 10:07:11 UTC
On Friday 07 December 2012 10:03:15 Walter C. Pelissero wrote:
> >Number:         174254
> >Category:       usb
> >Synopsis:       MIDI keyboard not recognised
> >Confidential:   no
> >Severity:       serious
> >Priority:       medium
> >Responsible:    freebsd-usb
> >State:          open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class:          sw-bug
> >Submitter-Id:   current-users
> >Arrival-Date:   Fri Dec 07 09:10:00 UTC 2012
> >Closed-Date:
> >Last-Modified:
> >Originator:     Walter C. Pelissero
> >Release:        FreeBSD 9.1-PRERELEASE amd64
> >Organization:
> 
> >Environment:
> System: FreeBSD scylla.home.lan 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #0:
> Wed Aug 8 16:38:32 CEST 2012
> root@scylla.home.lan:/usr/obj/usr/src/sys/GA870AUD3 amd64
> 
> >Description:
> 	Yamaha E423 doesn't seem to be recognised as MIDI device by
> 	the system.  All that is available is a /dev/ugen.
> 
> >How-To-Repeat:
> 	Plug the keyboard in.
> 
> 	# kldstat | fgrep snd
> 	9     1 0xffffffff80ce5000 3cce0    snd_hda.ko
> 	52    1 0xffffffff812f5000 828d     snd_uaudio.ko
> 
> 	# cat /dev/midistat
> 	FreeBSD Midi Driver (midi2)
> 	No devices installed.
> 
> 	# ls /dev/umidi*
> 	ls: No match.
> 
> 	# dmesg
> 	[...]
> 	usb_alloc_device: set address 4 failed (USB_ERR_IOERROR, ignored)
> 	usbd_setup_device_desc: getting device descriptor at addr 4 failed,
> USB_ERR_IOERROR usbd_req_re_enumerate: addr=4, set address failed!
> (USB_ERR_IOERROR, ignored) usbd_setup_device_desc: getting device
> descriptor at addr 4 failed, USB_ERR_IOERROR usbd_req_re_enumerate:
> addr=4, set address failed! (USB_ERR_IOERROR, ignored)
> usbd_setup_device_desc: getting device descriptor at addr 4 failed,
> USB_ERR_IOERROR ugen2.4: <Unknown> at usbus2 (disconnected)
> 	uhub_reattach_port: could not allocate new device
> 	ugen2.4: <YAMAHA Corporation> at usbus2
> 
> 	# usbconfig | fgrep YAMAHA
> 	ugen2.4: <DigitalKBD YAMAHA Corporation> at usbus2, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON
> 
> 	# usbconfig dump_device_desc
> 	[...]
> 	ugen2.4: <DigitalKBD YAMAHA Corporation> at usbus2, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON
> 
> 	  bLength = 0x0012
> 	  bDescriptorType = 0x0001
> 	  bcdUSB = 0x0200
> 	  bDeviceClass = 0x0000
> 	  bDeviceSubClass = 0x0000
> 	  bDeviceProtocol = 0x0000
> 	  bMaxPacketSize0 = 0x0008
> 	  idVendor = 0x0499
> 	  idProduct = 0x1037
> 	  bcdDevice = 0x0100
> 	  iManufacturer = 0x0001  <YAMAHA Corporation>
> 	  iProduct = 0x0002  <DigitalKBD>
> 	  iSerialNumber = 0x0000  <no string>
> 	  bNumConfigurations = 0x0001

Hi,

Can you try this:

usbconfig -d 2.4 add_quirk UQ_AU_VENDOR_CLASS

Then replug the device?

--HPS
Comment 2 walter 2012-12-07 10:32:12 UTC
Hans Petter Selasky writes:
 > Can you try this:
 > 
 > usbconfig -d 2.4 add_quirk UQ_AU_VENDOR_CLASS
 > 
 > Then replug the device?

Forgot to mention I had already tried:

# usbconfig add_dev_quirk_vplh 0x0499 0x1037 0x0000 0xffff UQ_AU_VENDOR_CLASS

to no effect.

# usbconfig dump_device_quirks | fgrep 499
VID=0x0499 PID=0x1037 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_AU_VENDOR_CLASS

-- 
http://pelissero.de
Comment 3 Hans Petter Selasky 2012-12-07 10:48:48 UTC
On Friday 07 December 2012 11:32:12 Walter C. Pelissero wrote:
> Hans Petter Selasky writes:
>  > Can you try this:
>  > 
>  > usbconfig -d 2.4 add_quirk UQ_AU_VENDOR_CLASS
>  > 
>  > Then replug the device?
> 
> Forgot to mention I had already tried:
> 
> # usbconfig add_dev_quirk_vplh 0x0499 0x1037 0x0000 0xffff
> UQ_AU_VENDOR_CLASS
> 
> to no effect.
> 
> # usbconfig dump_device_quirks | fgrep 499
> VID=0x0499 PID=0x1037 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_AU_VENDOR_CLASS

Can you dump the configuration descriptor of your device using usbconfig -d 
X.Y dump_curr_config_desc ?

--HPS
Comment 4 walter 2012-12-07 10:59:25 UTC
Hans Petter Selasky writes:
 > On Friday 07 December 2012 11:32:12 Walter C. Pelissero wrote:
 > > Hans Petter Selasky writes:
 > >  > Can you try this:
 > >  > 
 > >  > usbconfig -d 2.4 add_quirk UQ_AU_VENDOR_CLASS
 > >  > 
 > >  > Then replug the device?
 > > 
 > > Forgot to mention I had already tried:
 > > 
 > > # usbconfig add_dev_quirk_vplh 0x0499 0x1037 0x0000 0xffff
 > > UQ_AU_VENDOR_CLASS
 > > 
 > > to no effect.
 > > 
 > > # usbconfig dump_device_quirks | fgrep 499
 > > VID=0x0499 PID=0x1037 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_AU_VENDOR_CLASS
 > 
 > Can you dump the configuration descriptor of your device using usbconfig -d 
 > X.Y dump_curr_config_desc ?

# usbconfig -d ugen2.4 dump_curr_config_desc
ugen2.4: <DigitalKBD YAMAHA Corporation> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0036 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00c0 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002 
      bInterfaceClass = 0x00ff 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x00ff 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x24, 0x00


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x06, 0x24, 0x02, 0x02, 0x01, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


-- 
http://pelissero.de
Comment 5 Hans Petter Selasky 2012-12-07 12:08:32 UTC
Hi,

Can you try the attached patch?

--HPS
Comment 6 walter 2012-12-07 20:30:58 UTC
Hans Petter Selasky writes:
 > Can you try the attached patch?

That did it.  Brilliant.

I think you have just given a great present to many of those who will
receive an electric piano these Christmas holidays,

-- 
http://pelissero.de
Comment 7 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 08:01:39 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped
Comment 8 Oleksandr Tymoshenko freebsd_committer freebsd_triage 2019-01-20 03:22:29 UTC
Fixed in base r244027