Patch-ID# 109897-04 
Keywords: security USB usb_mid usba USB_SUCCESS usb_pipe_close scsa2usb
Synopsis: SunOS 5.8_x86: USB patch
Date: Nov/15/2000

Solaris Release: 8_x86

SunOS release: 5.8_x86

Unbundled Product: 

Unbundled Release: 

Topic: SunOS 5.8_x86: USB patch

	NOTE:	Refer to Special Install Instructions section for 
		IMPORTANT specific information on this patch.

BugId's fixed with this patch: 4042931 4178572 4179082 4204158 4207634 4257491 4278766 4282084 4284408 4284481 4288456 4290035 4290038 4290048 4295084 4297451 4297991 4298047 4299321 4299711 4300133 4301110 4302435 4303153 4303369 4303371 4304019 4304060 4304250 4304253 4304383 4304968 4305434 4305436 4305437 4305467 4305645 4305649 4305819 4306676 4307085 4307542 4308510 4308511 4309328 4309368 4309566 4309916 4311023 4312163 4312381 4313650 4314164 4314166 4315368 4317503 4317522 4317527 4317528 4320410 4323024 4326037 4328542 4328590 4329325 4329560 4330021 4331700 4331710 4332033 4332613 4332707 4333879 4336235 4336592 4337149 4337561 4337816 4338525 4338614 4339292 4341714 4341839 4342024 4342426 4342488 4343230 4343443 4343762 4344107 4344121 4344122 4346254 4346963 4347288 4349013 4349282 4349339 4350113 4350570 
BugId's fixed with this patch: 4350901 4351268 4351426 4351707 4352101 4352931 4353820 4357035 4357915 4359440 4359658 4359875 4362924 4363252 4364427 4364575 4364748 4365137 4365848 4366523 4366874 4369166 4380154 

Changes incorporated in this version: 4042931 4178572 4204158 4295084 4300133 4305434 4305436 4307542 4313650 4315368 4326037 4328590 4331710 4333879 4338614 4343762 4346254 4349339 4350570 4352931 4353820 4357035 4357915 4359440 4359658 4359875 4362924 4363252 4364427 4364575 4364748 4365137 4365848 4366523 4366874 4380154

Relevant Architectures: i386

Patches accumulated and obsoleted by this patch: 109315-03 

Patches which conflict with this patch: 

Patches required with this patch: 108980-05 110610-01 109884-01 108529-06 (or newer)

Obsoleted by: 

Files included with this patch:

/etc/format.dat
/kernel/drv/hid
/kernel/drv/hubd
/kernel/drv/scsa2usb
/kernel/drv/uhci
/kernel/drv/usb_mid
/kernel/drv/usbprn
/kernel/misc/usba
/kernel/strmod/usbkbm
/kernel/strmod/usbms
/usr/include/sys/usb/clients/mass_storage/usb_bulkonly.h
/usr/include/sys/usb/clients/printer/usb_printer.h
/usr/include/sys/usb/usba.h
/usr/include/sys/usb/usbai.h
/usr/lib/adb/hubd
/usr/lib/adb/ohci_ed
/usr/lib/adb/ohci_hcca
/usr/lib/adb/ohci_pipe_private
/usr/lib/adb/ohci_regs
/usr/lib/adb/ohci_root_hub
/usr/lib/adb/ohci_state
/usr/lib/adb/ohci_td
/usr/lib/adb/ohci_trans_wrapper
/usr/lib/adb/ohci_usb_dev
/usr/lib/adb/scsa2usb_cmd
/usr/lib/adb/scsa2usb_state
/usr/lib/adb/uhci_pipe_private
/usr/lib/adb/uhci_polled
/usr/lib/adb/uhci_qh
/usr/lib/adb/uhci_state
/usr/lib/adb/uhci_td
/usr/lib/adb/uhci_trans_wrapper
/usr/lib/adb/usb_device
/usr/lib/adb/usb_isoc_pkt_descr
/usr/lib/adb/usb_isoc_request
/usr/lib/adb/usb_pipe_policy
/usr/lib/adb/usbprn_def_arg
/usr/lib/adb/usbprn_power
/usr/lib/adb/usbprn_ps
/usr/lib/adb/usbprn_reset_arg
/usr/lib/adb/usbprn_state
/usr/lib/adb/openhci_state		(deleted file)

Problem Description:

4300133 Isoc support in ohci
4178572 Isochronous support must be added to the USB framework
4315368 Add Isochronous Support to UHCI
4042931 ohci should support for frame number overflow interrupt
4338614 usb_pipe_open returns "USB_NO_BANDWIDTH" for wMaxPacketSize=0
4204158 Interrupt polling for less than 3ms is not accurate
4353820 add cdr/cd-rw support to scsa2usb
4326037 add usbprn x86 support
4352931 panic in uhci - machine left idle overnight (Intel Only)
4359440 Grover with 128MB dimm  paniced with usb devices during boot time.
4349339 Large postscript or ascii files are not printed completely on usb printer(x86)
4307542 uhci needs to return no. of bytes successfully sent in bulk xfer timeout
4362924 USB stops working; apparent deadlock
4363252 hotplug_thread hang at ndi_event_add_callback & i_ndi_block_device_tree_changes
4364427 Hubd should not raise power for a device that is in detach
4366874 System panics due to dead lock condition
4359875 'phantom' usb_device structs left in list on hot unplug
4365848 Misuse of dma/memory handles in uhciutil.c
4305434 driver needs to put device in low power at detach time
4305436 driver needs to put device in low power at detach time
4331710 ohci is broken on x86 platform
4357035 put device in low power mode at detach time.
4357915 "Device disk1 failed to power up" for USB FlashGate device
4364575 check first if remotewakeup is supported before invoking it
4364748 scsa2usb needs enable and disable remote wakeup during attach and detach
4366523 remove assert after usbprn_clear_feature()
4313650 UHCI should return number of bytes received in case of "OVER RUN" condition
4328590 Data toggle handling needs change.
4350570 usb_prn adb macro should not use y
4359658 verify parental notification duties for hubd and usb_mid
4365137 hubd should cleanly maintain port states
4343762 Rename adb macro openhci_state to ohci_state
4295084 Change minor name format in hid
4333879 Correct typo in usb_printer.h
4346254 checking interrupt context needs to be done with servicing_interrupt()
4380154 usb warlock files are inconsistent in solaris 8 update gate

(from 109897-03)

4369166 I-DEAS F1+Mouse does not work on USB kbds

(from 109897-02)

4346963 ohci_handle_ue shouldn't call debug_enter
4350113 ohci root hub timeout is not restarted under allocb failure
4352101 UHCI_INTR_MASK macro value is wrong
4349282 prtconf hung when a protype Lex Mark printer connected at Plugfest
4314164 Error message "connecting device on port 1 failed" displayed when no devices ar
4308510 panic in uhci mutex_enter: uhci_sendup_td_message
4308511 panic in uhci mutex_enter: uhci_handle_intr_td_errors
4349013 zip driver won't suspend, even after drive is removed from system
4350901 scsa2usb_bulkin reset called after scsa2usb_bulkout reset
4351707 Stop issuing GET_MAX_LUN to USB zip drives
4347288 print a message when a device is in use and a user 'hot removes' it
4344122 usb_get_string_descriptor() can panic the system
4351268 string descriptors not being properly filled in
4351426 usb_dprintf0 adds an extra newline to the message on the console
4344107 panic when usba_clear_print_buf is called from kadb in non-debug kernel

(from 109897-01)

	This patch revision was generated to accumulate and obsolete
	the feature changes introduced in point patch 109315-03.

4179082 Remove RIO specific code from ohci driver after RIO pass2
4207634 usb packages : remove "pci108e,1103" entry from /etc/driver_aliases
4278766 assertion failed: ph->p_sync_result.p_done == 0 with usb_bobo
4282084 Need a mechanism to specify different timeouts for each command sent out on USB
4284481 uhci_cleanup refers to freed memory, panics DEBUG kernel
4297991 Beep goes non-stop  during console kbd/ms hotplug
4305437 driver needs to put device in low power at detach time
4312163 cleanup minor nits in usb files
4314166 usba: redundant check in usb_pipe_sync_close/usb_pipe_release on valid pipe
4323024 Extra device node created for Epson printer.
4329325 System panics on x86 with the usbprn driver on on81 gate
4329560 warlock.usb fails with errors on on81
4330021 GET_MAX_LUN bRequest and bmRequestType are in reverse order
4331700 usb_get_string_descriptor() panics in scsa2usb as len is less
4332033 usba/parser.c: none of the functions check for "ret_buf_len"
4332613 cybex hid device needs workaround to support multiple report id
4332707 need a function to figure out different alternate interfaces.
4336592 Castlewood ORB 2.2 GB drive does not work on x86
4337149 ohci: NULL pointer dereference during cpr on new platform
4337561 enable attaching Imation's USB LS-120 drive to scsa2usb
4338525 running label (under format) on zip100 returns error message
4339292 possible TRAP in ohci.c
4341839 Remove RIO1 specific code in ohci driver
4328542 hubd set feature port enable need to distinguish between root hub vs regular hub
4307085 USB printer support required on Solaris
4309566 64 bytes data loss problem with Lexmark Optra 310 when paper out
4312381 ohci should return whatever data received under data overrun condition
4317503 usb_mid: always enable PM
4317522 usba: eliminate assert on prop function's return value
4317527 hub driver needs to raise power level at attach time, lower at detach
4317528 usb_mid driver needs to raise power level at attach time, lower at detach
4257491 ohci cannot do 8k transfer per TD
4284408 usb_mid/hid need some clean up with respect to states
4288456 assertion failed: rval == USB_SUCCESS, file: ../../common/io/usb/usba/hubdi.c,
4290035 Workaround needed for Microsoft IntelliMouse & keyboard
4290038 root hub interrupt events must be emulated correctly
4290048 hubd may need to handle disconnect/reconnect
4297451 USB Power Management is incorrectly disabled on RIO Pass 2
4298047 Hangs on booting; also prtconf hangs
4299321 assertion in usb_mid regards mi_dev_state
4299711 assert caught while doing USB suspend/resume on PPX with rio 2.0
4301110 Add kadb macros to UHCI
4302435 USB_SHORT_XFER_OK instead of USB_FLAGS_SHORT_XFER_OK in usbai.h
4303153 ch11 tests fail with timeouts on UHCI
4303371 ohci code cleanup
4304019 get_max_lun request to hagiwara's flash gate device confuses it w/ ohci
4304060 ohci data structures and adb macros must have driver prefixes
4304250 Data under run case is not handled properly
4304253 Bulk Performance on UHCi is not good
4304383 cleanup usb_mid event posting mechanism
4304968 usb_pipe_close doesn't check if the pipe handle is NULL.
4305467 Bulk devices starve for the execution
4305645 ohci should return number of bytes transmitted when send command fails
4309916 hub enumeration fails on UHCI
4303369 Data toggle mismatch across pipe open/close and pipe reset between host & device
4305649 ohci TD  fields and definitions names must be changed appropriately
4305819 ohci incorrectly reports 4096 for min PCI clock
4306676 usba_impl.h should not be included in client drivers
4309328 memory leak in scsa2usb_bulk_only_transport()
4309368 usba_hcdi_soft_intr() uses PRINT_MASK_HCDI which is wrong
4311023 usba_destroy_pipe_handle() must wait for sync cmds to complete
4320410 /devices entries for USB devices have wrong permissions
4336235 Hid needs to power manage the new mouse
4342024 usb pipe policy changes need to be rev'ed
4342426 memory leak in usba_async_request_raise_power()
4342488 Move debug_enter code under ifdef DEBUG
4343443 for all usb devices check if they are bound to a driver; and report error if not
4341714 warn user that no driver has been found
4344121 memory leak in hid_default_pipe_exception_callback()
4337816 hubd panic during hotplug with hid tests
4343230 memory leak in usbms_wput()

(from 109315-03)

4336235 Hid needs to power manage the new mouse
4342024 usb pipe policy changes need to be rev'ed
4342426 memory leak in usba_async_request_raise_power()
4342488 Move debug_enter code under ifdef DEBUG
4343443 for all usb devices check if they are bound to a driver; and report error if not
4341714 warn user that no driver has been found
4344121 memory leak in hid_default_pipe_exception_callback()
4337816 hubd panic during hotplug with hid tests
4343230 memory leak in usbms_wput()

(from 109315-02)

4179082 Remove RIO specific code from ohci driver after RIO pass2
4207634 usb packages : remove "pci108e,1103" entry from /etc/driver_aliases
4278766 assertion failed: ph->p_sync_result.p_done == 0 with usb_bobo
4282084 Need a mechanism to specify different timeouts for each command sent out on USB
4284481 uhci_cleanup refers to freed memory, panics DEBUG kernel
4297991 Beep goes non-stop  during console kbd/ms hotplug
4305437 driver needs to put device in low power at detach time
4312163 cleanup minor nits in usb files
4314166 usba: redundant check in usb_pipe_sync_close/usb_pipe_release on valid pipe
4323024 Extra device node created for Epson printer.
4329325 System panics on x86 with the usbprn driver
4329560 warlock.usb fails with errors 
4330021 GET_MAX_LUN bRequest and bmRequestType are in reverse order
4331700 usb_get_string_descriptor() panics in scsa2usb as len is less
4332033 usba/parser.c: none of the functions check for "ret_buf_len"
4332613 cybex hid device needs workaround to support multiple report id
4332707 need a function to figure out different alternate interfaces.
4336592 Castlewood ORB 2.2 GB drive does not work on x86
4337149 ohci: NULL pointer dereference during cpr on new platform
4337561 enable attaching Imation's USB LS-120 drive to scsa2usb
4338525 running label (under format) on zip100 returns error message
4339292 possible TRAP in ohci.c
4341839 Remove RIO1 specific code in ohci driver
4328542 hubd set feature port enable need to distinguish between root hub vs regular hub

(from 109315-01)

4307085 USB printer support required on Solaris
4309566 64 bytes data loss problem with Lexmark Optra 310 when paper out
4312381 ohci should return whatever data received under data overrun condition
4317503 usb_mid: always enable PM
4317522 usba: eliminate assert on prop function's return value
4317527 hub driver needs to raise power level at attach time, lower at detach
4317528 usb_mid driver needs to raise power level at attach time, lower at detach
4257491 ohci cannot do 8k transfer per TD
4284408 usb_mid/hid need some clean up with respect to states
4288456 assertion failed: rval == USB_SUCCESS, file: ../../common/io/usb/usba/hubdi.c,
4290035 Workaround needed for Microsoft IntelliMouse & keyboard
4290038 root hub interrupt events must be emulated correctly
4290048 hubd may need to handle disconnect/reconnect
4297451 USB Power Management is incorrectly disabled on RIO Pass 2
4298047 Hangs on booting; also prtconf hangs
4299321 assertion in usb_mid regards mi_dev_state
4299711 assert caught while doing USB suspend/resume on PPX with rio 2.0
4301110 Add kadb macros to UHCI
4302435 USB_SHORT_XFER_OK instead of USB_FLAGS_SHORT_XFER_OK in usbai.h
4303153 ch11 tests fail with timeouts on UHCI
4303371 ohci code cleanup
4304019 get_max_lun request to hagiwara's flash gate device confuses it w/ ohci
4304060 ohci data structures and adb macros must have driver prefixes
4304250 Data under run case is not handled properly
4304253 Bulk Performance on UHCi is not good
4304383 cleanup usb_mid event posting mechanism
4304968 usb_pipe_close doesn't check if the pipe handle is NULL.
4305467 Bulk devices starve for the execution
4305645 ohci should return number of bytes transmitted when send command fails
4309916 hub enumeration fails on UHCI
4303369 Data toggle mismatch across pipe open/close and pipe reset between host & device
4305649 ohci TD  fields and definitions names must be changed appropriately
4305819 ohci incorrectly reports 4096 for min PCI clock
4306676 usba_impl.h should not be included in client drivers
4309328 memory leak in scsa2usb_bulk_only_transport()
4309368 usba_hcdi_soft_intr() uses PRINT_MASK_HCDI which is wrong
4311023 usba_destroy_pipe_handle() must wait for sync cmds to complete
4320410 /devices entries for USB devices have wrong permissions

Patch Installation Instructions:
--------------------------------

For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
'installpatch' and 'backoutpatch' scripts provided with each patch.

For Solaris 7-8 releases, refer to the man pages for instructions
on using 'patchadd' and 'patchrm' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions.  The following example
installs a patch to a standalone machine:

       example# patchadd /var/spool/patch/104945-02

The following example removes a patch from a standalone system:

       example# patchrm 104945-02

For additional examples please see the appropriate man pages.

Special Install Instructions: 

----------------------------- 

	NOTE:	To get the full support for logical device namespace for 
                printers and new printer minor node type, one needs to
                install the following patches:

		108529-03 (or newer)    kernel update patch
		108980-05 (or newer)    devfsadm patch
		109884-01 (or newer)    ecppsys.h patch
		109895-01 (or newer)    lp driver patch
		109878-01 (or newer)    dma_i8237A.h patch
		109891-01 (or newer)    pmserver.jar patch
		109897-01 (or newer)    USB patch
