DragonBoard™ 410c based on Qualcomm Snapdragon™ 410E processor DSI Display Porting Guide

LM80-P0436-4

Qualcomm Technologies, Inc.

DragonBoard’ 410c based on Qualcomm Snapdragon...

Section 2.3 to Section 2.7 provides instructions for porting the display driver View

click here

DSI Display Porting Guide, Linux Android - Qualcomm Developer Network

PDF Viewing Options

Not Your Device? Search For Manuals or Datasheets below:


File Info : application/pdf, 16 Pages, 662.60KB

Document DEVICE REPORTlm80-p0436-4 dsi display porting guide
Qualcomm Technologies, Inc.
DragonBoardTM 410c based on Qualcomm® SnapdragonTM 410E processor DSI Display Porting Guide
LM80-P0436-4 Rev D September 2016
© 2015-2016 Qualcomm Technologies, Inc. All rights reserved. MSM and Qualcomm Snapdragon are products of Qualcomm Technologies, Inc. Other Qualcomm products referenced herein are products of Qualcomm Technologies, Inc. or its other subsidiaries. DragonBoard, MSM, Qualcomm and Snapdragon are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other product and brand names may be trademarks or registered trademarks of their respective owners. This technical data may be subject to U.S. and international export, re-export, or transfer ("export") laws. Diversion contrary to U.S. and international law is strictly prohibited. Use of this document is subject to the license set forth in Exhibit 1.
Questions or comments: https://www.96boards.org/DragonBoard410c/forum Qualcomm Technologies, Inc. 5775 Morehouse Drive San Diego, CA 92121 U.S.A. LM80-P0436-4 Rev D

Revision history

Revision D C B A

Date September 2016
June 16, 2015 May 22, 2015 April 22, 2015

Description Updated to `E' part. Miscellaneous updates. Updated Revision history and © date. Initial release.

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

2

Contents
1 Introduction ........................................................................................................................... 4
1.1 Purpose .....................................................................................................................................................4 1.2 Conventions...............................................................................................................................................4 1.3 Acronyms...................................................................................................................................................4 1.4 Additional information ................................................................................................................................5
2 Display Driver Porting Procedures ...................................................................................... 6
2.1 Download the display component driver ....................................................................................................6 2.2 Generate DTSI file for kernel and LK .........................................................................................................7
2.2.1 Bring up LK...............................................................................................................................7 2.2.2 Input LCD panel parameters in .xml file....................................................................................8 2.2.3 Calculate DSI PHY timings register .......................................................................................... 9 2.3 Input backlight control parameters ...........................................................................................................11 2.4 Set up DSI panel-related GPIO pins ........................................................................................................12 2.5 Add the panel device tree to the platform DTS file...................................................................................13 2.6 Add panel driver header file and detect panel ID in LK ............................................................................13 2.7 Rebuild images, flash, and debug through adb........................................................................................15
EXHIBIT 1.................................................................................................................................16

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

3

1 Introduction

1.1 Purpose
This document describes how to port the Linux Android display driver for MIPI DSI display panel onto Qualcomm® SnapdragonTM 410E processor using DragonBoard 410c development board. DragonBoardTM 410c has MIPI DSI interface exposed through the high speed Expansion Connector on the board.

1.2 Conventions
Function declarations, function names, type declarations, and code samples appear in a different font, e.g., #include.
Code variables appear in angle brackets, e.g., <number>.
Commands to be entered appear in a different font, e.g., copy a:*.* b:.
Button and key names appear in bold font, e.g., click Save or press Enter.
If you are viewing this document using a color monitor, or if you print this document to a color printer, red boldface indicates code that is to be added, and blue strikethrough indicates code that is to be replaced or removed.

1.3 Acronyms

Acronym
CLK CMD DCS D-PHY DSI DTS GCDB GPIO HS HW IC LCD LK MDP

Definition
Click Command Digital Cellular System Display Serial Interface Physical Layer Display Serial Interface Digital Test Sequence Global Component Database General Purpose Input/Output High Speed Hardware Integrated Circuit Liquid Crystal Display Little Kernel Mobile Display Processor

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

4

DragonBoardTM 410c based on Qualcomm® SnapdragonTM 410E processor DSI Display Porting Guide

Acronym
MDSS MIPI OEM PHY PMIC PWM TE XML

Definition
Multimedia Display Sub-System Mobile Industry Processor Interface Original Equipment Manufacturer Physical Layer Power Management Integrated Circuit Pulse Width Modulation Terminal Emulator eXtensible Markup Language

1.4 Additional information
For additional information, go to http://www.96boards.org/db410c-getting-started/ .

Introduction

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

5

2 Display Driver Porting Procedures

This chapter describes how to port the DSI driver into the Little Kernel (LK) and the Android kernel. Section 2.1 provides information on where to download the display driver. Section 2.2 describes how a DTSI and panel file can be manually generated per the XML input parameters from the display vendor. Section 2.3 to Section 2.7 provides instructions for porting the display driver.
NOTE: See the display vendor's specification for driver IC, bridge IC, etc., details before porting.
2.1 Download the display component driver
1. The reference panel driver can be found on the Codeaurora website. Here are the Codeaurora links https://www.codeaurora.org/cgit/external/thundersoft/ihvjointlab/gcdb-kernel/tree/display/ -- Kernel Space support https://www.codeaurora.org/cgit/external/thundersoft/ihvjointlab/gcdb-userspace/tree/display/ -- User Space support Download the relevant Kernel/User Space driver code patches and apply them in relevant repositories, e.g: In Kernel space:
cd $ANDROID_BUILD_TOP/kernel patch -p1 < 0001-ARM-dts-msm-support-truly-hx8379_a-devicetree.patch
In LK Bootloader:
cd $ANDROID_BUILD_TOP/ bootable/bootloader/lk patch -p1 < 0001-bootloader-lk-add-lcd-truly-hx8379_a.patch
NOTE: These are the reference patches. These may not apply directly on all the release code bases at all time. The user will have to resolve the conflicts (see Section 2.6).
2. Obtain the following information in preparation for DSI bringup:  Display specification, including parameters.  Display power-on sequence and signal duration for GPIO pins, e.g., RESET/IOVDD.  DSI initial command sequence and duration information.  bitclk, to reach the fps target number.

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

6

DSI Display Porting Guide

Display Driver Porting Procedures

2.2 Generate DTSI file for kernel and LK
The Global Component Database (GCDB) supported on APQ8016E chipsets allows the panel DTSI and LK panel header file to be generated according to the XML input parameters from the panel vendors. 1. Update the device tree parameters. The GCDB source is located in the
device/qcom/common/display/tools folder; the device tree parameters detail description is present at kernel\Documentation\devicetree\bindings\fb\mdss-dsipanel.txt. 2. Use the GCDB translate command to generate the DTSI and LK panel header files:
perl parser.pl <source xml file OEM edit> panel
For example:
#perl parser.pl panel_<vendor>_720p_video.xml panel
It generates dsi-panel-<vendor>-720p-video.dtsi and panel_<vendor>_720p_video.h files.
2.2.1 Bring up LK
NOTE: It is recommended to first bring up the panel in kernel.
1. Update Android Kernel by copying the panel driver DTSI file to the kernel/arch/arm64/boot/dts/qcom folder.
2. Update LK by copying the panel driver header file to the bootable/bootloader/lk/dev/gcdb/display/include/ folder.
3. Bring up the panel in the Android Kernel. 4. Disable the LK display and the continuous splash display.
a. To disable the continuous splash display, change DISPLAY_SPLASH_SCREEN to 0 at bootable/bootloader/lk/target/msm8916/rules.mk. Then continue to bring up in LK.
b. Update the target_cont_splash_screen function at
bootable/bootloader/lk/target/msm8916/init.c. For example: static uint8_t splash_override; /* Returns 1 if target supports continuous splash screen. */ int target_cont_splash_screen() {
uint8_t splash_screen = 0; if(!splash_override) {
switch(board_hardware_id()) {
case HW_PLATFORM_MTP: case HW_PLATFORM_QRD:
dprintf(SPEW, "Target_cont_splash=1\n");

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

7

DSI Display Porting Guide

Display Driver Porting Procedures

splash_screen = 1; // Change to "0" to disable continous splash screen
break; default: dprintf(SPEW, "Target_cont_splash=0\n"); splash_screen = 0; } } return splash_screen; }
5. Disable the continuous splash screen at msm8xxx-cdp.dts file.

&dsi_<vendor>_720p_video{

//

qcom,cont-splash-enabled; // Disable continous splash screen

}003B

};

2.2.2 Input LCD panel parameters in .xml file
Update the .xml file with the panel parameters from the LCD vendor. In the following example, red font indicates the panel parameters to be updated.

<!-- Panel configuration --> <PanelType>0</PanelType> // 0 stands for video mode panel, 1 stands for command mode panel <PanelFrameRate>60</PanelFrameRate>

<!-- Panel Resolution --> <PanelWidth>720</PanelWidth> <PanelHeight>1280</PanelHeight> <HFrontPorch>140</HFrontPorch> <HBackPorch>164</HBackPorch> <HPulseWidth>8</HPulseWidth> <HSyncSkew>0</HSyncSkew> <VBackPorch>4</VBackPorch> <VFrontPorch>8</VFrontPorch> <VPulseWidth>4</VPulseWidth>

<!-- Panel Color Information --> <ColorFormat>24</ColorFormat> // 24bpp

<!-- Panel Command information --> <OnCommand>"0x29, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xEE,
0x29, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFB, 0x01, ... ... ...

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

8

DSI Display Porting Guide

Display Driver Porting Procedures

0x29, 0x01, 0x00, 0x00, 0x78, 0x00, 0x02, 0x29, 0x00" </OnCommand> // add your panel on commands from LCD vendor
<OffCommand>"0x05, 0x01, 0x00, 0x00, 0x32, 0x00, 0x02, 0x28, 0x00, ... ... ... 0x05, 0x01, 0x00, 0x00, 0x78, 0x00, 0x02, 0x10, 0x00"
</OffCommand> // add your panel off commands from LCD vendor
<OnCommandState>0</OnCommandState> // 0 stands for lp mode <OffCommandState>1</OffCommandState> // 1 stands for hs mode
<!-- Video mode panel information --> <HSyncPulse>1</HSyncPulse> <BLLPEOFPowerMode>1</BLLPEOFPowerMode> <BLLPPowerMode>1</BLLPPowerMode> <TrafficMode>2</TrafficMode>
<!-- Panel Reset Sequence --> <ResetSequence>
<PinState1>1</PinState1> <PulseWidth1>20</PulseWidth1> <PinState2>0</PinState2> <PulseWidth2>2</PulseWidth2> <PinState3>1</PinState3> <PulseWidth3>20</PulseWidth3> </ResetSequence>
2.2.3 Calculate DSI PHY timings register
The D-PHY auto calculation spreadsheet (click the paperclip icon on the left of the PDF screen to open the file) is used to calculate the DSI PHY timing settings; this spreadsheet is intended for the MSM8x16 chipset, which uses the DSI6G DSI host design. 1. On the DSI and MDP registers worksheet, enter the panel resolution, porch values,
fps, color depth, and lane numbers into the fields shown.

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

9

DSI Display Porting Guide

Display Driver Porting Procedures

2. The DSI-related clock rate is calculated using the DSI PHY timing setting worksheet. An invalid value appears in the Check for T_CLK_ZERO field. Press CTRL+J and CTRL+K to recalculate T_CLK_ZERO to a valid value.

The panel requires PHY value setup for bitclk in the DSI PHY register.

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

10

DSI Display Porting Guide

Display Driver Porting Procedures

3. Input the panel timings value in the .xml file.
<!-- Panel Timing --> <PanelTimings>"0xDA, 0x34, 0x24, 0x00, 0x64, 0x68,
0x28, 0x38, 0x2A, 0x03, 0x04, 0x00"</PanelTimings> <TClkPost>0x03</TClkPost> <TClkPre>0x41</TClkPre>
NOTE: DSIPHY_TIMING_CTRL_3 is 0x00. DSIPHY_TIMING_CTRL_11 is used for the DSI secondary display; it is not necessary to modify it if there is no DSI secondary panel.
2.2.3.1 Set DSI clock to HS mode
Certain panels must be set to force_clk_lane_hs to send commands in HS mode. At kernel/drivers/video/msm/mdss/mdss_dsi.c file, on mdss_dsi_onfunction. For example,
mipi->force_clk_lane_hs= 1; if(mipi->force_clk_lane_hs) { u32tmp; tmp= MIPI_INP((ctrl_pdata->ctrl_base) + 0xac); tmp|= (1<<28); MIPI_OUTP((ctrl_pdata->ctrl_base) + 0xac, tmp); wmb(); }
2.3 Input backlight control parameters
Three methods used to control backlight are:  "bl_ctrl_pwm" = Backlight controlled by PWM GPIO  "bl_ctrl_wled" = Backlight controlled by WLED

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

11

DSI Display Porting Guide

Display Driver Porting Procedures

 "bl_ctrl_dcs" = Backlight control by DCS commands If WLED is used to control the backlight, input the backlight parameters in the .xml file:
<!-- Backlight --> <BLInterfaceType>1</BLInterfaceType> <BLMinLevel>1</BLMinLevel> <BLMaxLevel>4095</BLMaxLevel> <BLStep>100</BLStep> <BLPMICModel>"PMIC_8xxx"</BLPMICModel> <BLPMICControlType>1</BLPMICControlType> // 1 stands for Backlight controlled by WLED.
The DCS backlight control is selected at the panel side. The backlight control is highly related to hardware configuration/schematics. If the backlight uses a third-party backlight driver IC, or the schematics is changed from the QTI reference schematics, modify the software to add backlight control routines. The default backlight entry function is used in mdss_fb.c (do not modify).
2.4 Set up DSI panel-related GPIO pins
1. Input GPIO pins parameter in platform-8xxx.xml file. The information about setting up DSI panel-related GPIO reset pins can be found at arch/arm/boot/dts/qcom/msm8xxx-mdss.dts.The GPIO parameters are entered in the .xml file at device/qcom/common/display/tools/platform-8xxx.xml. For example,
<PlatformId>"msm8xxx"</PlatformId> <!-- GPIO configuration --> <ResetGPIO>
<PinSource>"msmgpio"</PinSource> <PinId>25</PinId> <PinStrength>3</PinStrength> <PinDirection>1</PinDirection> <PinPull>0</PinPull> <PinState>1</PinState> </ResetGPIO>
<EnableGPIO> <PinSource>"msmgpio"</PinSource> <PinId>32</PinId> <PinStrength>3</PinStrength> <PinDirection>1</PinDirection> <PinPull>0</PinPull> <PinState>1</PinState>

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

12

DSI Display Porting Guide

Display Driver Porting Procedures

For the TE GPIO and backlight GPIO using DCS backlight control, see the platform MDSS DSI parameters description at kernel/Documentation/devicetree/bindings/fb/mdss-dsi-
ctrl.txt.
For pin definitions, see the parameter details at /arch/arm/boot/dts/qcom/msm8xxxpinctrl.dtsi.
Any LCD module-specific reset sequences beyond QTI's default release software should be handled by the QEM. In general, the default release software should cover most use cases.

2.5 Add the panel device tree to the platform DTS file
Modify the msm8xxx-qrd.dts at arch/arm/boot/dts/qcom/ by adding the panel device tree. For example,

/include/ "dsi-panel-<vendor>-720p-video.dtsi"

&mdss_mdp { qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_pinmux { };

qcom,num-grp-pins = <3>; qcom,pins = <&gp 32>, <&gp 25>, <&gp 97>;

&mdss_dsi0 { qcom,dsi-pref-prim-pan = <&dsi_<vendor>_720p_video>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&mdss_dsi_active>; pinctrl-1 = <&mdss_dsi_suspend>;

2.6 Add panel driver header file and detect panel ID in LK
1. Add the panel header file to bootable/bootloader/lk/target/msm8xxx/oem_panel.c. For example,
#include "include/panel_toshiba_720p_video.h" #include "include/panel_nt35590_720p_video.h" #include "include/panel_nt35590_720p_cmd.h" #include "include/panel_hx8394a_720p_video.h" +#include "include/panel_nt35521_720p_video.h"
2. Add the <vendor>_<resolution>_VIDEO_PANEL parameter to the enum.
enum {

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

13

DSI Display Porting Guide

Display Driver Porting Procedures

TOSHIBA_720P_VIDEO_PANEL, NT35590_720P_CMD_PANEL, NT35590_720P_VIDEO_PANEL, HX8394A_720P_VIDEO_PANEL, +NT35521_720P_VIDEO_PANEL, UNKNOWN_PANEL };
3. Add the <vendor>_<resolution>_VIDEO_PANEL parameter to the panel_list_supp_panels struct.

static struct panel_list supp_panels[] = { {"toshiba_720p_video", TOSHIBA_720P_VIDEO_PANEL}, {"nt35590_720p_cmd", NT35590_720P_CMD_PANEL}, {"nt35590_720p_video", NT35590_720P_VIDEO_PANEL}, {"hx8394a_720p_video", HX8394A_720P_VIDEO_PANEL}, +{"nt35521_720p_video", NT35521_720P_VIDEO_PANEL}, };
4. Add the <vendor>_<resolution>_VIDEO_PANEL case to the init_panel_data function.

static void init_panel_data(struct panel_struct *panelstruct,

struct msm_panel_info *pinfo,

struct mdss_dsi_phy_ctrl *phy_db)

{

switch (panel_id) {

+case NT35521_720P_VIDEO_PANEL:

+ panelstruct->paneldata = &nt35521_720p_video_panel_data;

+ panelstruct->panelres

= &nt35521_720p_video_panel_res;

+ panelstruct->color

= &nt35521_720p_video_color;

+ panelstruct->videopanel = &nt35521_720p_video_video_panel;

+ panelstruct->commandpanel = &nt35521_720p_video_command_panel;

+ panelstruct->state

= &nt35521_720p_video_state;

+ panelstruct->laneconfig = &nt35521_720p_video_lane_config;

+ panelstruct->paneltiminginfo

= &nt35521_720p_video_timing_info;

+ panelstruct->panelresetseq

= &nt35521_720p_video_panel_reset_seq;

+ panelstruct->backlightinfo = &nt35521_720p_video_backlight;

+ pinfo->mipi.panel_cmds

= nt35521_720p_video_on_command;

+ pinfo->mipi.num_of_panel_cmds

= NT35521_720P_VIDEO_ON_COMMAND;

+ memcpy(phy_db->timing,

nt35521_720p_video_timings, TIMING_SIZE);

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

14

DSI Display Porting Guide

Display Driver Porting Procedures

break;
5. Select the panel ID according to hw_id in the oem_panel_select function.
enum target_subtype { HW_PLATFORM_SUBTYPE_SKUAA = 0, HW_PLATFORM_SUBTYPE_SKUF = 1, HW_PLATFORM_SUBTYPE_SKUAB = 2, HW_PLATFORM_SUBTYPE_SKUG = 3, +HW_PLATFORM_SUBTYPE_720P = 5,
};
switch (hw_id) {
case HW_PLATFORM_MTP: case HW_PLATFORM_QRD:
if (hw_subtype == HW_PLATFORM_SUBTYPE_720P) + panel_id = NT35521_720P_VIDEO_PANEL; else
panel_id = nt35590_panel_id; break; default: dprintf(CRITICAL, "Display not enabled for %d HW type\n"
, hw_id); return false;
2.7 Rebuild images, flash, and debug through adb
1. Rebuild the software. 2. Flash the emmc_appsboot.mbn and boot.img files onto the device. 3. Verify that the panel is lighted. If not, check the panel initialization commands, reset
sequence, and measure the signal for DSI clock lane and data lane, etc. 4. If there is no DSI Clock output, check the DSI-related clocks using adb commands.
a. adb root b. adb remount c. adb shell d. #mount ­t debugfs none /sys/kernel/debug e. #cd /sys/kernel/debug/clk/dsi1_byte_clk f. #cat measure

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

15

DSI Display Porting Guide

Display Driver Porting Procedures

EXHIBIT 1

PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY. THIS AGREEMENT IS A BINDING LEGAL AGREEMENT ENTERED INTO BY AND BETWEEN YOU (OR IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF AN ENTITY, THEN THE ENTITY THAT YOU REPRESENT) AND QUALCOMM TECHNOLOGIES, INC. ("QTI" "WE" "OUR" OR "US"). THIS IS THE AGREEMENT THAT APPLIES TO YOUR USE OF THE DESIGNATED AND/OR ATTACHED DOCUMENTATION AND ANY UPDATES OR IMPROVEMENTS THEREOF (COLLECTIVELY, "MATERIALS"). BY USING OR COMPLETING THE INSTALLATION OF THE MATERIALS, YOU ARE ACCEPTING THIS AGREEMENT AND YOU AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, QTI IS UNWILLING TO AND DOES NOT LICENSE THE MATERIALS TO YOU. IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE AND YOU MAY NOT USE THE MATERIALS OR RETAIN ANY COPIES OF THE MATERIALS. ANY USE OR POSSESSION OF THE MATERIALS BY YOU IS SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.

1.1 License. Subject to the terms and conditions of this Agreement, including, without limitation, the restrictions, conditions, limitations and exclusions set forth in this Agreement, Qualcomm Technologies, Inc. ("QTI") hereby grants to you a nonexclusive, limited license under QTI's copyrights to use the attached Materials; and to reproduce and redistribute a reasonable number of copies of the Materials. You may not use Qualcomm Technologies or its affiliates or subsidiaries name, logo or trademarks; and copyright, trademark, patent and any other notices that appear on the Materials may not be removed or obscured. QTI shall be free to use suggestions, feedback or other information received from You, without obligation of any kind to You. QTI may immediately terminate this Agreement upon your breach. Upon termination of this Agreement, Sections 1.2-4 shall survive.
1.2 Indemnification. You agree to indemnify and hold harmless QTI and its officers, directors, employees and successors and assigns against any and all third party claims, demands, causes of action, losses, liabilities, damages, costs and expenses, incurred by QTI (including but not limited to costs of defense, investigation and reasonable attorney's fees) arising out of, resulting from or related to: (i) any breach of this Agreement by You; and (ii) your acts, omissions, products and services. If requested by QTI, You agree to defend QTI in connection with any third party claims, demands, or causes of action resulting from, arising out of or in connection with any of the foregoing.

1.3 Ownership. QTI (or its licensors) shall retain title and all ownership rights in and to the Materials and all copies thereof, and nothing herein shall be deemed to grant any right to You under any of QTI's or its affiliates' patents. You shall not subject the Materials to any third party license terms (e.g., open source license terms). You shall not use the Materials for the purpose of identifying or providing evidence to support any potential patent infringement claim against QTI, its affiliates, or any of QTI's or QTI's affiliates' suppliers and/or direct or indirect customers. QTI hereby reserves all rights not expressly granted herein.

1.4 WARRANTY DISCLAIMER. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT THE USE OF THE MATERIALS IS AT YOUR SOLE RISK. THE MATERIALS AND TECHNICAL SUPPORT, IF ANY, ARE PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED. QTI ITS LICENSORS AND AFFILIATES MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH RESPECT TO THE MATERIALS OR ANY OTHER INFORMATION OR DOCUMENTATION PROVIDED UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE. NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS (I) A WARRANTY OR REPRESENTATION BY QTI, ITS LICENSORS OR AFFILIATES AS TO THE VALIDITY OR SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT OR (II) A WARRANTY OR REPRESENTATION BY QTI THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD PARTIES.

1.5 LIMITATION OF LIABILITY. IN NO EVENT SHALL QTI, QTI'S AFFILIATES OR ITS LICENSORS BE LIABLE TO YOU FOR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES, INCLUDING BUT NOT LIMITED TO ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE, OR THE DELIVERY OR FAILURE TO DELIVER, ANY OF THE MATERIALS, OR ANY BREACH OF ANY OBLIGATION UNDER THIS AGREEMENT, EVEN IF QTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE FOREGOING LIMITATION OF LIABILITY SHALL REMAIN IN FULL FORCE AND EFFECT REGARDLESS OF WHETHER YOUR REMEDIES HEREUNDER ARE DETERMINED TO HAVE FAILED OF THEIR ESSENTIAL PURPOSE. THE ENTIRE LIABILITY OF QTI, QTI's AFFILIATES AND ITS LICENSORS, AND THE SOLE AND EXCLUSIVE REMEDY OF YOU, FOR ANY CLAIM OR CAUSE OF ACTION ARISING HEREUNDER (WHETHER IN CONTRACT, TORT, OR OTHERWISE) SHALL NOT EXCEED US$10.

2.

COMPLIANCE WITH LAWS; APPLICABLE LAW. You agree to comply with all applicable local, international and national laws

and regulations and with U.S. Export Administration Regulations, as they apply to the subject matter of this Agreement. This Agreement is

governed by the laws of the State of California, excluding California's choice of law rules.

3.

CONTRACTING PARTIES. If the Materials are downloaded on any computer owned by a corporation or other legal entity, then this

Agreement is formed by and between QTI and such entity. The individual accepting the terms of this Agreement represents and warrants to QTI

that they have the authority to bind such entity to the terms and conditions of this Agreement.

4.

MISCELLANEOUS PROVISIONS. This Agreement, together with all exhibits attached hereto, which are incorporated herein by this

reference, constitutes the entire agreement between QTI and You and supersedes all prior negotiations, representations and agreements between

the parties with respect to the subject matter hereof. No addition or modification of this Agreement shall be effective unless made in writing and

signed by the respective representatives of QTI and You. The restrictions, limitations, exclusions and conditions set forth in this Agreement shall

apply even if QTI or any of its affiliates becomes aware of or fails to act in a manner to address any violation or failure to comply therewith. You

hereby acknowledge and agree that the restrictions, limitations, conditions and exclusions imposed in this Agreement on the rights granted in this

Agreement are not a derogation of the benefits of such rights. You further acknowledges that, in the absence of such restrictions, limitations,

conditions and exclusions, QTI would not have entered into this Agreement with You. Each party shall be responsible for and shall bear its own

expenses in connection with this Agreement. If any of the provisions of this Agreement are determined to be invalid, illegal, or otherwise

unenforceable, the remaining provisions shall remain in full force and effect. This Agreement is entered into solely in the English language, and

if for any reason any other language version is prepared by any party, it shall be solely for convenience and the English version shall govern and

control all aspects. If You are located in the province of Quebec, Canada, the following applies: The Parties hereby confirm they have requested

this Agreement and all related documents be prepared in English.

LM80-P0436-4 Rev D

MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

16


Microsoft Word 2013

Search Any Device: