Opened 6 years ago

Last modified 6 years ago

#9933 new enhancement

Support for Displaylink vendor devices

Reported by: modeenf Owned by: mmlr
Priority: normal Milestone: Unscheduled
Component: Drivers/USB Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by korli)

Change History (8)

comment:1 by korli, 6 years ago

Blocked By: 1045, 5940 removed
Description: modified (diff)
Milestone: R1Unscheduled
Summary: Support for Displaylink (usb_graphic)Support for Displaylink vendor devices
Version: R1/alpha4.1R1/Development

I removed the relation with UVC and isochronous streams as these devices use a vendor specific bulk-only interface.

comment:2 by modeenf, 6 years ago

It does? Haven't looked at it. :)

Mine says USB\VID_17E9&PID_0360&REV_0112 USB\Class_FF&SubClass_00&Prot_00

Last edited 6 years ago by modeenf (previous) (diff)

comment:3 by siarzhuk, 6 years ago

Do you have listusb -v output for this device?

comment:4 by modeenf, 6 years ago

I haven't tested it on Haiku but I will paste a list :)

Some more links :), right now I just collect what information I can get my hands on :)

http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/dev/usb/udl.h?rev=1.21;content-type=text%2Fplain;only_with_tag=HEAD http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/dev/usb/udl.c?rev=1.76;content-type=text%2Fplain;only_with_tag=HEAD http://floe.butterbrot.org/displaylink/doku.php

What would be the best approach? Borrow udl.h from openbsd but make our own usb_grafic.cpp based on usb_audio?

comment:5 by siarzhuk, 6 years ago

As this is vendor-specific device the name usb_udl is preferred. In my opinion, the name usb_graphics should be reserved for devices of standard USB Monitor Class. Looks like the device works using bulk transfers so usb_audio cannot help a lot implementing the usb_udl driver.

comment:6 by modeenf, 6 years ago

ok thanks

comment:7 by modeenf, 6 years ago

Getting this with listusb -v

[Device /dev/bus/usb/1/0/1]

Class .................. 0x00 (Per-interface classes) Subclass ............... 0x00 Protocol ............... 0x00 Max Endpoint 0 Packet .. 64 USB Version ............ 0x0200 Vendor ID .............. 0x17e9 (DisplayLink) Product ID ............. 0x0360 Product Version ........ 0x0112 Manufacturer String .... "DisplayLink" Product String ......... "USB to DVI-19" Serial Number .......... "764633" [Configuration 0]

Configuration String . "" [Interface 0]

[Alternate 0 active]

Class .............. 0xff (Vendor specific) Subclass ........... 0x00 Protocol ........... 0x00 Interface String ... "" [Endpoint 0]

MaxPacketSize .... 512 Interval ......... 0 Type ............. Bulk Direction ........ Output

[Endpoint 1]

MaxPacketSize .... 8 Interval ......... 4 Type ............. Interrupt Direction ........ Input

[Endpoint 2]

MaxPacketSize .... 512 Interval ......... 0 Type ............. Bulk Direction ........ Output

[Descriptor 0]

Type ............. 0x5f Data ............. 01 00 20 05 00 01 03 00 04 04 01 00 03 c0 00 02 04 c0 02 24 00 01 04 01 02 01 02 04 00 08 00 00

comment:8 by scottmc, 6 years ago

Here's the listusb -v from a mimo UM710S usb touch monitor, in case it is off any help:

[Device /dev/bus/usb/1/0]
    Class .................. 0x00 (Per-interface classes)
    Subclass ............... 0x00
    Protocol ............... 0x00
    Max Endpoint 0 Packet .. 64
    USB Version ............ 0x0200
    Vendor ID .............. 0x17e9 (DisplayLink)
    Product ID ............. 0x401a
    Product Version ........ 0x0118
    Manufacturer String .... "DisplayLink"
    Product String ......... "mimo inc"
    Serial Number .......... "7040480"
    [Configuration 0]
        Configuration String . ""
        [Interface 0]
            [Alternate 0 active]
                Class .............. 0xff (Vendor specific)
                Subclass ........... 0x00
                Protocol ........... 0x00
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 512
                    Interval ......... 0
                    Type ............. Bulk
                    Direction ........ Output
                [Endpoint 1]
                    MaxPacketSize .... 8
                    Interval ......... 4
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Type ............. 0x5f
                    Data ............. 01 00 21 00 04 04 07 00 01 00 00 02 04 60 e3 16 00 06 00 01 01 07 00 01 07 05 00 01 02 02 05 01 01 
        [Interface 1]
            [Alternate 0 active]
                Class .............. 0x03 (HID)
                Subclass ........... 0x00
                Protocol ........... 0x00
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 16
                    Interval ......... 4
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Type ............. 0x21
                    Data ............. 10 01 00 01 22 1d 00 
Note: See TracTickets for help on using tickets.