The following XC4000 firmware file "dvb-fe-xc4000-1.4.1.fw" was
created based on version 1.4 of "xc4000_firmwares.h".

Firmware provided as part of an XC4000 Linux developers kit by Brian
Mathews <bmathews@xceive.com> to Devin Heitmueller
<dheitmueller@kernellabs.org> on July 1, 2009.

The code was released by Xceive under the following license:

// Copyright (c) 2009, Xceive Corporation <info@xceive.com>
//
// Permission to use, copy, modify, and/or distribute this software, only
// for use with Xceive ICs, for any purpose with or without fee is hereby
// granted, provided that the above copyright notice and this permission
// notice appear in all source code copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
