Patch Name: PHKL_25609

Patch Description: s700_800 11.00 New audio h/w support + cumulative fixes

Creation Date: 01/12/12

Post Date: 01/12/12

Hardware Platforms - OS Releases:
	s700: 11.00
	s800: 11.00

Products: N/A

Filesets:
	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP

Automatic Reboot?: Yes

Status: General Release

Critical:
	No (superseded patches were critical)
	PHKL_24296: PANIC
	PHKL_21750: PANIC
	PHKL_20899: PANIC
	PHKL_20158: PANIC
		Audio application, mpeg3play, can cause kernel to
		panic. Also kernel panics on 710/705 machines.
	PHKL_18503: PANIC CORRUPTION

Category Tags:
	defect_repair hardware_enablement general_release critical
	panic corruption

Path Name: /hp-ux_patches/s700_800/11.X/PHKL_25609

Symptoms:
	PHKL_25609:
	( SR:8606225240 CR:JAGad94328 )
	Genius-Kye Sound Maker 5.1 unsupported in hpux audio driver.

	( SR:8606230038 CR:JAGad99089 )
	The AUDIO_GET_INPUT ioctl reports that the input is always
	AUDIO_IN_MIKE no matter what the actual input is.

	( SR:8606230035 CR:JAGad99086 )
	Potential sound distortion when using Open Sound Software.

	PHKL_25026:
	( SR:8606215184 CR:JAGad84372 )
	Normal user builds that include audio.h fail to
	compile

	PHKL_24296:
	( SR: 8606185626 CR: JAGad54828 )
	When the beep duration is set to a very small value, there
	is the possibility of getting a "callout table overflow"
	panic if a lot of beeps are generated close together

	( SR: 8606188289 CR: JAGad57497 )
	With the sound card for the B2600 system, if the audio
	driver gets an unexpected interrupt, it panics the system.

	( SR: 8606188861 CR: JAGad58077 )
	With the sound card for the B2600 system, when the
	driver reaches the end of a transmit buffer, the metering
	count may be off.

	PHKL_23388:
	( SR: 8606187687 CR: JAGad56896 )
	Enable support for the new sound card for B2600 systems.

	PHKL_21750:
	( SR: 8606139774 CR: JAGad09086 )
	Under certain circumstances, the audio driver could cause an
	HPMC.  The console and PIM output may show something like
	this pointing to the audio device:

	"A Data I/O Fetch Timeout occurred while CPU 0 was
	requesting information from a device at the path 10/0/15/1
	(built-in PCI device)"

	PHKL_20899:
	( SR: 8606124950  DTS: JAGac40342 )
	Under some circumstances, the audio driver could cause a
	data page fault.  Since this is dependent on the address of
	a buffer, it would not occur for all users.

	PHKL_20158:
	( SR: 8606107870  DTS: JAGab78174 )
	No audio support on B1000, C3000, J5000 and J7000

	( SR: 8606105699  DTS: JAGab73929 )
	install kernel panic's on a 710/705

	( SR: 8606106631  DTS: JAGab75904 )
	Audio application, mpeg3play, causes kernel panic

	PHKL_18503:
	(SR: 4701423210 DTS: JAGaa95627 )
	System panic playing audio files on 64-bit kernels.

Defect Description:
	PHKL_25609:
	( SR:8606225240 CR:JAGad94328 )
	Genius-Kye Sound Maker 5.1 audio card not supported in
	current versions of the audio driver

	Resolution:
	Add support for the Genius-Kye Sound Maker 5.1

	( SR:8606230038 CR:JAGad99089 )
	When AUDIO_SET_INPUT ioctl is called, the input is
	changed in the hardware but is not saved in the audio
	driver.  This means that the driver will always report that
	the input is AUDIO_IN_MIKE no matter what the actual input
	is.

	Resolution:
	Update the input in the audio driver.

	( SR:8606230035 CR:JAGad99086 )
	When OSS does a write, the write routine does not
	initialize one of the variables, causing the data
	to be potentially put into the wrong area in the
	write buffers.

	Resolution:
	Initialize the variable.

	PHKL_25026:
	( SR:8606215184 CR:JAGad84372 )
	audio.h references wsio/pci.h instead of sys/pci.h.
	wsio/pci.h is only used for kernel builds, making normal
	user builds that included audio.h fail.

	Resolution:
	Remove the reference to wsio/pci.h for normal user builds
	since a normal user build does not need any pci.h (both
	sys/pci.h or wsio/pci.h are unneeded).

	PHKL_24296:
	( SR: 860685626 CR: JAGad54828 )
	Near the end of each beep, a timeout was scheduled to
	restore the audio state.  When beeps were very short and
	spaced very close together, the timeout would get scheduled
	repeatedly.  If enough timeouts got generated before any
	timeouts expired, a callout table overflow panic occurs.

	Resolution:
	Before scheduling a timeout, verify that no timeouts were
	already schedule.  If a timeout has already been scheduled,
	untimeout the previous timeout and schedule a new timeout.

	( SR: 8606188289 CR: JAGad57497 )
	With the sound card for the B2600 system, if the audio
	driver gets an interrupt that it does not know how to
	handle, it panics the system.

	Resolution:
	Instead of generating a panic, the driver prints out a
	warning message, clears the interrupt, and returns.

	( SR: 8606188861 CR: JAGad58077 )
	With the sound card for the B2600 system, when a transmit
	buffer wraps around, the metering count is updated by
	the amount the buffer has wrapped around by.  The count
	ignores the amount that remained in the buffer prior to
	wrapping around

	Resolution:
	Add the amount remaining in the buffer as well as the
	amount that the buffer wrapped around by.

	PHKL_23388:
	( SR: 8606187687 CR: JAGad56896 )
	Enable support for the new sound card for B2600 systems.

	Resolution:
	Add code to support the new sound card.

	PHKL_21750:
	( SR: 8606139774 CR: JAGad09086 )
	The problem was that if all the data fit into one DMA buffer
	it was possible that the "next" DMA buffer information was
	set for a buffer which had since been deallocated. If that
	happened, an HPMC would occur when the current DMA buffer
	was completed.
	Resolution:
	The "next" DMA buffer will always be set up, even if all of
	the data will fit into one buffer.

	PHKL_20899:
	( SR: 8606124950  DTS: JAGac40342 )
	When audio3 support was added to HP-UX 11.00, a fix from
	HP-UX 10.20 was inadvertently omitted.  In addition,
	under some circumstances the driver would access a buffer
	using incorrect pointer logic.

	Resolution:
	Restore the missing HP-UX 10.20 fix, and rework the logic
	that uses the buffer pointers to always use the correct
	pointers.

	PHKL_20158:
	( SR: 8606107870  DTS: JAGab78174 )
	B1000, C3000, J5000 and J7000 use a new audio chip
	which is not supported by the audio driver.

	Resolution:
	Add code to support the Analog devices chip.

	( SR: 8606105699  DTS: JAGab73929 )
	There is a missing break statement in the code
	which causes audio2 driver code to be run on a
	machine that uses audio1 driver.

	Resolution:
	Add the missing break statement.

	( SR: 8606106631  DTS: JAGab75904 )
	Incorrect pointer being passed to a routine causes
	a bad pointer dereference.

	Resolution:
	Correct the parameters being passed to the routine.

	PHKL_18503:
	( SR: 4701423210 DTS: JAGaa95627 )
	When a play underflow was received, 64-bit pointer
	arithmetic was done incorrectly, causing a memory
	corruption.

	Resolution:
	Cast the pointer value to the correct data type.

SR:
	4701423210 8606105699 8606106631 8606107870 8606124950
	8606139774 8606185626 8606187687 8606188289 8606188861
	8606215184 8606225240 8606230035 8606230038

Patch Files:
	
	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/audio.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(audio.o)
	/usr/conf/lib/libhp-ux.a(audio1.o)
	/usr/conf/lib/libhp-ux.a(audio2.o)
	/usr/conf/lib/libhp-ux.a(audio3.o)
	/usr/conf/lib/libhp-ux.a(audio4.o)
	/usr/conf/lib/libhp-ux.a(audio5.o)
	/usr/conf/lib/libhp-ux.a(audio_shared.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(audio.o)
	/usr/conf/lib/libhp-ux.a(audio1.o)
	/usr/conf/lib/libhp-ux.a(audio2.o)
	/usr/conf/lib/libhp-ux.a(audio3.o)
	/usr/conf/lib/libhp-ux.a(audio4.o)
	/usr/conf/lib/libhp-ux.a(audio5.o)
	/usr/conf/lib/libhp-ux.a(audio_shared.o)

what(1) Output:
	
	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/audio.h:
		audio.h $Date: 2001/12/07 10:02:53 $Revision: r11ros
			/7 PATCH_11.00 (PHKL_25609) */

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(audio.o):
		audio.c $Date: 2001/12/07 10:02:53 $Revision: r11ros
			/8 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio1.o):
		audio1.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio2.o):
		audio2.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio3.o):
		audio3.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio4.o):
		audio4.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio5.o):
		audio5.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/1 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio_shared.o):
		audio_shared.c $Date: 2001/12/07 10:02:53 $Revision:
			 r11ros/3 PATCH_11.00 (PHKL_25609)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(audio.o):
		audio.c $Date: 2001/12/07 10:02:53 $Revision: r11ros
			/8 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio1.o):
		audio1.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio2.o):
		audio2.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio3.o):
		audio3.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio4.o):
		audio4.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/3 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio5.o):
		audio5.c $Date: 2001/12/07 10:02:53 $Revision: r11ro
			s/1 PATCH_11.00 (PHKL_25609)
	/usr/conf/lib/libhp-ux.a(audio_shared.o):
		audio_shared.c $Date: 2001/12/07 10:02:53 $Revision:
			 r11ros/3 PATCH_11.00 (PHKL_25609)

cksum(1) Output:
	
	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	1999372672 31001 /usr/include/sys/audio.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	3875519055 28552 /usr/conf/lib/libhp-ux.a(audio.o)
	2268902548 17600 /usr/conf/lib/libhp-ux.a(audio1.o)
	3965273574 27256 /usr/conf/lib/libhp-ux.a(audio2.o)
	2617296893 37188 /usr/conf/lib/libhp-ux.a(audio3.o)
	11047999 55160 /usr/conf/lib/libhp-ux.a(audio4.o)
	361350491 45060 /usr/conf/lib/libhp-ux.a(audio5.o)
	692014050 35452 /usr/conf/lib/libhp-ux.a(audio_shared.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	2644858125 60168 /usr/conf/lib/libhp-ux.a(audio.o)
	1359982381 33992 /usr/conf/lib/libhp-ux.a(audio1.o)
	1887264957 51112 /usr/conf/lib/libhp-ux.a(audio2.o)
	1348435615 72848 /usr/conf/lib/libhp-ux.a(audio3.o)
	3008278490 103944 /usr/conf/lib/libhp-ux.a(audio4.o)
	1375815874 86368 /usr/conf/lib/libhp-ux.a(audio5.o)
	1461915759 54320 /usr/conf/lib/libhp-ux.a(audio_shared.o)

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies: None

Supersedes:
	PHKL_18503 PHKL_25026 PHKL_24296 PHKL_23388 PHKL_21750 PHKL_20899
	PHKL_20158

Equivalent Patches:
	PHKL_25610:
	s700: 11.11
	s800: 11.11

Patch Package Size: 780 KBytes

Installation Instructions:
	Please review all instructions and the Hewlett-Packard
	SupportLine User Guide or your Hewlett-Packard support terms
	and conditions for precautions, scope of license,
	restrictions, and, limitation of liability and warranties,
	before installing this patch.
	------------------------------------------------------------
	1. Back up your system before installing a patch.

	2. Login as root.

	3. Copy the patch to the /tmp directory.

	4. Move to the /tmp directory and unshar the patch:

		cd /tmp
		sh PHKL_25609

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHKL_25609.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHKL_25609.  If you do not wish to retain a
	copy of the original software, include the patch_save_files
	option in the swinstall command above:

		-x patch_save_files=false

	WARNING: If patch_save_files is false when a patch is installed,
		 the patch cannot be deinstalled.  Please be careful
		 when using this feature.

	For future reference, the contents of the PHKL_25609.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHKL_25609.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHKL_25609.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions: None

