Copyright (c) 2015, Qualcomm Atheros, Inc.
All rights reserved.

Redistribution. Reproduction and redistribution in binary form, without
modification, for use solely in conjunction with a Qualcomm Atheros, Inc.
chipset, is permitted provided that the following conditions are met:

  • Redistributions must reproduce the above copyright notice and the following
    disclaimer in the documentation and/or other materials provided with the
    distribution.

  • Neither the name of Qualcomm Atheros, Inc. nor the names of its suppliers
    may be used to endorse or promote products derived from this Software
    without specific prior written permission.

  • No reverse engineering, decompilation, or disassembly of this Software is
    permitted.

Limited patent license. Qualcomm Atheros, Inc. (“Licensor”) grants you
(“Licensee”) a limited, worldwide, royalty-free, non-exclusive license under
the Patents to make, have made, use, import, offer to sell and sell the
Software. No hardware per se is licensed hereunder.
The term “Patents” as used in this agreement means only those patents or patent
applications owned solely and exclusively by Licensor as of the date of
Licensor’s submission of the Software and any patents deriving priority (i.e.,
having a first effective filing date) therefrom. The term “Software” as used in
this agreement means the firmware image submitted by Licensor, under the terms
of this license, to git://git.kernel.org/pub/scm/linux/kernel/git/firmware/
linux-firmware.git.
Notwithstanding anything to the contrary herein, Licensor does not grant and
Licensee does not receive, by virtue of this agreement or the Licensor’s
submission of any Software, any license or other rights under any patent or
patent application owned by any affiliate of Licensor or any other entity
(other than Licensor), whether expressly, impliedly, by virtue of estoppel or
exhaustion, or otherwise.

DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
