Drivers › Sound Cards. Creative EMU10K1 Audio Processor (WDM) by CREATIVE. SB X-Fi Xtreme Audio. SAA7134 TV Card. AF9005 BDA Device is a DVB-T device produced by AfaTech. This product comes with other software such as BlazeDTV. BlazeDTV is known in full as BlazeVideo HDTV Player. This software was initially developed by BlazeVideo and is a full featured player software which combines functions of FM receiving, DVD playback, video record and HDTV playback. Padarsey PCIe Sound Card, 5.1 Internal Sound Card for PC Windows 7 with Low Profile Bracket, 3D Stereo PCI-e Audio Card, CMI8738 Chip 32/64 Bit Sound Card PCI Express Adapter 3.8 out of 5 stars 187 CMI 8738 Chip.
Info:
Model: Afatech AF9015 BDA Device DriversVendor: Afatech / ITE Technologies, Inc.
Version: 10.6.22.1, v.9.6.3.1
Operating system: Windows XP, Windows Vista, Windows 7
Bits: 32-bit (x86), 64-bit (x64)
Driver Date: 2010-06-22
Size: 0.16 mb
Driver description
Download driver Afatech AF9015 BDA Device Drivers version 10.6.22.1, v.9.6.3.1 for Windows XP, Windows Vista, Windows 7 32-bit (x86), 64-bit (x64).Screenshot of files
File Name
drv_af15bda_10.6.22.1.zip - (0.16 mb) v.10.6.22.1 - 22.06.2010
drv_af15bda_9.6.3.1.zip - (0.16 mb) v.9.6.3.1 - 06.03.2009
Quotes of the week
Something like 'Linus Torvalds'. Except not exactly.
-- Linus Torvalds (Thanks to Matthew Burgess)Guys, I know we geeks aren't known for our sex-life, but do we have to make it so obvious?
-- Linus Torvalds (thanks to David Lang andWalter Franzini)Quotes of the week (part 2)
2.6.16 has become a bit dated, and I'll maintain 2.6.27 for a few years as a replacement.As with 2.6.16, I'll pickup maintenance when the normal -stable maintenance ends (at some point after 2.6.28 gets released in January).
It is intended to fill the niche for users who are not using distribution kernels but want to use a regression-free kernel for a longer time. It might be a small part of the userbase, but after the experiences with 2.6.16 I can say that there are quite a few userswho appreciate such an offering.
-- Adrian BunkMerged for 2.6.28
As of this writing, 4193 non-merge changesets have been incorporated forthe 2.6.28 kernel. In other words, this merge window is just beginning,having merged probably less than half of the patches which will eventuallyfind their way into the mainline. What we see so far are a lot of driversand incremental improvements, but not many major changes.User-visible changes for 2.6.28 include:
- There are new drivers for Analog Devices SSM2602, AD1882A and AD1980 codecs, Freescale MPC5200 I2S audio devices, Texas Instruments TLV320AIC26 codecs, Tascam US-122L USB Audio/MIDI interfaces, Wolfson Micro WM8580, WM8900, WM8903, and WM8971 audio devices, Blackfin SPORT peripheral interface controllers, NVIDIA HDMI HD-audio codecs, Toshiba RBTX4939 MIPS boards, Atheros L2 10/100 network adapters, Cisco 10G Ethernet adapters, JMicron JMC250 chipset-based network adapters, QLogic QLGE 10Gb Ethernet adapters, SMSC LAN95XX based USB 2.0 10/100 ethernet devices, AFEB9260 ARM-based boards (an open source board design), Arcom/Eurotech VIPER boards, AT91SAM9X watchdog devices, ITE IT8716, IT8718, IT8726, and IT8712 Super I/O watchdogs, W83697UG/W83697UF watchdog devices, TLV320AIC23 codecs, Micron MT9M111 camera chips, Magic-Pro DMB-TH tuners, Afatech AF9015 and AF9013 DVB-T USB2.0 receivers, Conexant cx24116/cx24118 tuners, DVB cards based on SDMC DM1105 PCI chip, Silicon Laboratories SI2109/2110 demodulators, ST STB6000 DVBS Silicon tuners, numerous Fujifilm FinePix cameras, ALi video camera controllers, WM8400 AudioPlus HiFi codecs, and SGS-Thomson M48T35 Timekeeper RAM chips.
- Support for the old Sun 4 architecture and ColdFire serial ports has been removed.
- There is a new sysfs file (unload_heads) which can be used by a user-space process to tell an ATA disk to retract its heads and prepare for an impact. When used in conjunction with an accelerometer, this feature could be used to attempt to preserve a disk in a falling laptop.
- Improved support for ptrace() - and support for precise event-based sampling in particular - has been added for the x86 architecture.
- The crypto subsystem has gained support for deterministic ANSI X9.31 A.2.4 pseudo-random number generation.
- The SMACK security module can now be configured to enforce mandatory access control rules on privileged processes.
- There is a script which can be used to generate a minimal 'dummy' policy for SELinux. The smallest workable policy, it seems, is 587 lines long.
- Some sound devices can detect the presence of audio devices on input and output jacks. The ALSA layer now allows drivers for those devices to register those jacks and report the presence of devices attached to sound cards through the input layer.
- Work with multiqueue networking continues; 2.6.28 will include the ability to associate a separate queueing discipline with each internal packet queue.
- The wireless regulatory compliance subsystem has been merged.
- The kernel now supports the Phonet packet protocol used by Nokia cellular modems. See networking/phonet.txt in the kernel documentation directory for more information.
- Also added to core networking is support for the Distributed Switch Architecture protocol, with initial support for a number of Marvell switch chips.
- The netfilter layer has been augmented to support network namespaces.
- The ext4 system has lost the 'ext4dev' name; this is a signal that the developers are getting ready to declare it ready for production use. Ext4 has also gained a set of static tracepoints for use with SystemTap or other tracing tools.
- The FIEMAPioctl() for extent mapping has been added.
- Xen has added CPU hotplugging support.
- Version 4 of the rpcbind protocol is now supported; this enables the kernel to offer RPC services via IPv6.
- The OCFS2 filesystem has gained a number of features, including POSIX locks, extended attributes, and use of the JBD2 journaling layer.
Changes visible to kernel developers include:
- Discard request and request timeout handling have been added to the block layer; a number of other internal API changes have been made as well. See this article for details.
- Video4Linux2 drivers no longer have their open() function called with the big kernel lock held. The lock_kernel() calls have been pushed down into individual drivers within the mainline tree; external drivers will need to be fixed.
The merge window is likely to remain open until approximatelyOctober 24.
Block layer: solid-state storage, timeouts, affinity, and more
October 15, 2008
Solid-state storage devices
There are some enhancements aimed at improving the kernel's supportof solid state storage devices. One of those, the discard API, has beencovered here before. This API allowshigh-level block subsystem users (filesystems) to indicate that a particular range of blocks no longercontains useful data. That allows the low-level device to incorporatethose blocks into its garbage collection scheme and to stop worrying abouttheir contents when performing wear leveling.
Since the initial LWN article, though, the API has changed a little. Theway to issue a discard request is now:
The end_io() parameter seen in previous versions of the API is nolonger present. There is no way for callers to know when the requestcompletes, or, indeed, if the request completes at all. Since the calleris indicating a lack of interest in the given sectors, it really should notmatter what the device does thereafter.
There is a filesystem-level function for creating discard requests:
Here, the interface is expecting block numbers using the filesystem blocksize, rather than 512-byte sectors.
User-space programs can issue discard requests with the newBLKDISCARDioctl() call. Needless to say, suchoperations should be done with care; about the only logical user of thisioctl() would be mkfs programs.
Block drivers which support discard requests will provide a suitablefunction to the block layer:
In the absence of a 'prepare discard' function, discard requests for thedevice will fail.
The block layer has also added a flag by which drivers can indicate that adevice is not rotating storage, and, thus, does not suffer from seekdelays. By setting QUEUE_FLAG_NONROT (withqueue_flag_set() or queue_flag_set_unlocked()), a drivertells the block layer that it is working with a solid state device. I/Oschedulers can use that information to avoid plugging the queue - a usefultechnique for combining requests to rotating storage devices, but a uselessoperation when there is no seek penalty to avoid.
Request affinity
On large, multiprocessor systems, there can be a performance benefit toensuring that all processing of a block I/O request happens on the sameCPU. In particular, data associated with a given request is most likely tobe found in the cache of the CPU which originated that request, so it makessense to perform the request postprocessing on that same CPU. With 2.6.28,sysfs entries for block devices will include an rq_affinity variable.If it is set to a non-zero value, CPU affinity will be turned on for thatdevice. According to the patch changelog, turning this feature on canreduce system time by 20-40% on some benchmarks.
Timeout handling
Robust device drivers typically have to be written to handle cases wheredevices fail to complete operations they have been instructed to do. In afew cases, higher-level code helps with this task; the networking layer,for example, can track outgoing packets and let a driver know when atransmit operation has taken too long. In most other drivers, though, it'sup to the driver itself to notice when an operation seems to be taking toolong.
Afatech Sound Cards & Media Devices Drivers
Like the network subsystem, the block layer manages queues of requestedoperations. As of 2.6.28 the block layer will, again like networking, havea mechanism for notifying drivers about request timeouts; that, in turn,will allow a bunch of timeout-related code to be removed from the lowerlayers. Timeout handling in the block layer can be more complex, though,and the associated API reflects that complexity.
A block driver must register a function to handle timed-out requests:
The amount of time a request should be outstanding before timing out is setup with:
The tracking of per-request timeouts is done within the block layer; thetimer for any individual request is started when that request is dispatchedto the driver by the I/O scheduler. Should a request fail to completebefore the timeout period passes, the driver's timeout function will becalled with a pointer to the languishing request. The driver then can doone of three things:
- Figure out that, in fact, the request was completed as expected, but that completion had not been noticed by the driver. A dropped interrupt could bring out such a situation, for example. In this case, the driver returns BLK_EH_HANDLED, and the request will be marked as completed.
- Decide that the request needs more time, perhaps because it has been re-issued by the driver. A BLK_EH_RESET_TIMER will start the timer again for this request.
- Punt and return BLK_EH_NOT_HANDLED. The block layer currently does nothing at all when it gets this return code; future plans appear to include aborting the request within the block layer when this return value is encountered.
If things look bad, the driver may decide to abort any outstandingrequests, reset the device, and start over. There are a couple of newfunctions which can help with this task:
Afatech Sound Cards & Media Devices Driver
These functions will abort the given request, or all requests on the queue,as appropriate. Part of that process involves calling the driver's timeouthandler for each aborted request.
Other changes in brief
Some other block-layer changes include:
- The handling of minor numbers has been changed, allowing disks to have an essentially unbounded number of partitions. The cost of this change is that minor numbers may be attached to a different major number, and they might not all be contiguous; for this reason, drivers must set the GENHD_FL_EXT_DEVT flag before the extended numbers will be used. See this article for more information on this change.
- The prototypes of blk_rq_map_user() and blk_rq_map_user_iov() have changed; there is now a gfp_mask parameter. This allows these functions to be used in atomic context.
- kblockd_schedule_work() has an additional parameter specifying the relevant request queue.
- The new function bio_kmalloc() behaves much like bio_alloc(), but it does not use a mempool to guarantee allocations and can thus fail.
It is, all told, one of the busier development cycles for the block layerin recent times.