Date: Sat, 31 Dec 2011 01:36:38 GMT From: Stephen Hurd <shurd@sasktel.net> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/163726: sysutils/hal fills device_revision_bcd incorrectly Message-ID: <201112310136.pBV1acIY023920@red.freebsd.org> Resent-Message-ID: <201112310140.pBV1e72X000444@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 163726 >Category: ports >Synopsis: sysutils/hal fills device_revision_bcd incorrectly >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Dec 31 01:40:07 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Stephen Hurd >Release: 8.2-RELEASE >Organization: >Environment: FreeBSD stephen.hurd.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: The probe-usb2-device.c:191 (as patched) fills the device revision BCD field using the USB bcd data, resulting in incorrect data being used for matching and the device revision being unavailable to clients. >How-To-Repeat: Compare the output of "lhsal" usb_devuce.device_revision_bcd fields to the corresponding "usbconfig dump_device_desc" bcdDevice field. >Fix: Change line 191 to use bcdDevice rather than bcdUSB. Updated patch for files directory attached. Patch attached with submission follows: --- hald/freebsd/probing/probe-usb2-device.c.orig 2009-08-24 05:42:29.000000000 -0700 +++ hald/freebsd/probing/probe-usb2-device.c 2011-12-30 17:20:52.000000000 -0800 @@ -148,15 +148,16 @@ bcdspeed = 0x01200; break; case LIBUSB20_SPEED_HIGH: + case LIBUSB20_SPEED_VARIABLE: speed = 480.0; bcdspeed = 0x48000; break; case LIBUSB20_SPEED_SUPER: - speed = 4800.0; - bcdspeed = 0x480000; + speed = 5000.0; + bcdspeed = 0x500000; break; default: - ; + break; } libhal_device_set_property_double(hfp_ctx, hfp_udi, "usb_device.speed", @@ -169,6 +170,9 @@ case UD_USB_2_0: version = 2.0; break; + case 0x0250: + version = 2.5; + break; case UD_USB_3_0: version = 3.0; break; @@ -184,7 +188,7 @@ libhal_device_set_property_int(hfp_ctx, hfp_udi, "usb_device.vendor_id", di.udi_vendorNo, &hfp_error); libhal_device_set_property_int(hfp_ctx, hfp_udi, - "usb_device.device_revision_bcd", ddesc->bcdUSB, &hfp_error); + "usb_device.device_revision_bcd", ddesc->bcdDevice, &hfp_error); libhal_device_set_property_string(hfp_ctx, hfp_udi, "usb_device.serial", di.udi_serial, &hfp_error); libhal_device_set_property_string(hfp_ctx, hfp_udi, >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112310136.pBV1acIY023920>