From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25995C5DF60 for ; Tue, 5 Nov 2019 17:33:51 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EED872087E for ; Tue, 5 Nov 2019 17:33:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="lPkq3PJB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EED872087E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bdJJyMCFGPMQ8ZiANPjOtN+INj14qITC5MoRpsrM9BU=; b=lPkq3PJB8s3SSV ivGOOTQKbheDWJ2wNJXI6/meEeI1wNJCCX+7oR7YIuytNiTAeLmkctVK7hSnpX738TQ73MkqRX6Uj a2FXiOc9zifjWD67MPS7ZtnWarmMuQOokxX2Y0011RhvvZ/ZOKd16VkKRdEkFvXvibfTD4297ZgLD WojJAaXO/JBNGKta+uiNuvCi/zzMu7X9qIJXpIQkUXeHYtAbtAr9IvIsVmZLXawxegofrlA8bc/BU fNxjBXqwAEUEZwxqWxhxnqfh/y5BfaVHvx0EtyhAUi1TDGtPX2QY1JKB5dVfqGS1sIbe1IYmZ+rj3 YYR3v+W+oteXOQnANWHw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iS2i8-0003o5-4J; Tue, 05 Nov 2019 17:33:44 +0000 Received: from verein.lst.de ([213.95.11.211]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iS2i3-0003nD-Dr for linux-arm-kernel@lists.infradead.org; Tue, 05 Nov 2019 17:33:42 +0000 Received: by verein.lst.de (Postfix, from userid 2005) id 11A0668B05; Tue, 5 Nov 2019 18:33:33 +0100 (CET) Date: Tue, 5 Nov 2019 18:33:32 +0100 From: Torsten Duwe To: Maxime Ripard Subject: Re: [PATCH v5 2/7] drm/bridge: split some definitions of ANX78xx to dedicated headers Message-ID: <20191105173332.GA11570@lst.de> References: <20191104110400.F319F68BE1@verein.lst.de> <20191104110605.F012268BFE@verein.lst.de> <20191105104126.GC3876@gilmour.lan> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191105104126.GC3876@gilmour.lan> User-Agent: Mutt/1.5.17 (2007-11-01) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191105_093339_778914_F9B37C79 X-CRM114-Status: GOOD ( 14.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, David Airlie , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Andrzej Hajda , Chen-Yu Tsai , Rob Herring , Thierry Reding , Laurent Pinchart , Daniel Vetter , Harald Geyer , Sean Paul , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Icenowy Zheng Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Icenowy Zheng Some definitions currently in analogix-anx78xx.h are not restricted to the ANX78xx series, but also applicable to other DisplayPort transmitters by Analogix. Split out them to dedicated headers, and make analogix-anx78xx.h include them. Signed-off-by: Icenowy Zheng Signed-off-by: Vasily Khoruzhick Signed-off-by: Torsten Duwe Reviewed-by: Andrzej Hajda --- On Tue, Nov 05, 2019 at 11:41:26AM +0100, Maxime Ripard wrote: > > This one doesn't apply on drm-misc-next. The fix doesn't look really > obvious to me, can you rebase and resend it? Sure. The set was based on 5.4-rc5, which lacks 025910db8057f from drm-misc-next You'll also have to diff -r anx6345-v5/v5-0005-drm-bridge-Add-Analogix-anx6345-support.patch anx6345-v5a/v5-0005-drm-bridge-Add-Analogix-anx6345-support.patch 116,117c116,117 < + [I2C_IDX_DPTX] = ANALOGIX_I2C_DPTX, < + [I2C_IDX_TXCOM] = ANALOGIX_I2C_TXCOMMON, --- > + [I2C_IDX_DPTX] = 0x70, > + [I2C_IDX_TXCOM] = 0x72, To make it compile, with the changed coding style of 025910db8057f. Can you change that on the fly in 5/7 or shall I resend that, too? Torsten --- drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h | 461 +-------------------- .../gpu/drm/bridge/analogix/analogix-i2c-dptx.h | 247 +++++++++++ .../drm/bridge/analogix/analogix-i2c-txcommon.h | 233 +++++++++++ 3 files changed, 483 insertions(+), 458 deletions(-) --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h @@ -6,6 +6,9 @@ #ifndef __ANX78xx_H #define __ANX78xx_H +#include "analogix-i2c-dptx.h" +#include "analogix-i2c-txcommon.h" + /***************************************************************/ /* Register definitions for RX_PO */ /***************************************************************/ @@ -210,463 +213,6 @@ #define SP_SET_AVMUTE BIT(0) /***************************************************************/ -/* Register definitions for TX_P0 */ -/***************************************************************/ - -/* HDCP Status Register */ -#define SP_TX_HDCP_STATUS_REG 0x00 -#define SP_AUTH_FAIL BIT(5) -#define SP_AUTHEN_PASS BIT(1) - -/* HDCP Control Register 0 */ -#define SP_HDCP_CTRL0_REG 0x01 -#define SP_RX_REPEATER BIT(6) -#define SP_RE_AUTH BIT(5) -#define SP_SW_AUTH_OK BIT(4) -#define SP_HARD_AUTH_EN BIT(3) -#define SP_HDCP_ENC_EN BIT(2) -#define SP_BKSV_SRM_PASS BIT(1) -#define SP_KSVLIST_VLD BIT(0) -/* HDCP Function Enabled */ -#define SP_HDCP_FUNCTION_ENABLED (BIT(0) | BIT(1) | BIT(2) | BIT(3)) - -/* HDCP Receiver BSTATUS Register 0 */ -#define SP_HDCP_RX_BSTATUS0_REG 0x1b -/* HDCP Receiver BSTATUS Register 1 */ -#define SP_HDCP_RX_BSTATUS1_REG 0x1c - -/* HDCP Embedded "Blue Screen" Content Registers */ -#define SP_HDCP_VID0_BLUE_SCREEN_REG 0x2c -#define SP_HDCP_VID1_BLUE_SCREEN_REG 0x2d -#define SP_HDCP_VID2_BLUE_SCREEN_REG 0x2e - -/* HDCP Wait R0 Timing Register */ -#define SP_HDCP_WAIT_R0_TIME_REG 0x40 - -/* HDCP Link Integrity Check Timer Register */ -#define SP_HDCP_LINK_CHECK_TIMER_REG 0x41 - -/* HDCP Repeater Ready Wait Timer Register */ -#define SP_HDCP_RPTR_RDY_WAIT_TIME_REG 0x42 - -/* HDCP Auto Timer Register */ -#define SP_HDCP_AUTO_TIMER_REG 0x51 - -/* HDCP Key Status Register */ -#define SP_HDCP_KEY_STATUS_REG 0x5e - -/* HDCP Key Command Register */ -#define SP_HDCP_KEY_COMMAND_REG 0x5f -#define SP_DISABLE_SYNC_HDCP BIT(2) - -/* OTP Memory Key Protection Registers */ -#define SP_OTP_KEY_PROTECT1_REG 0x60 -#define SP_OTP_KEY_PROTECT2_REG 0x61 -#define SP_OTP_KEY_PROTECT3_REG 0x62 -#define SP_OTP_PSW1 0xa2 -#define SP_OTP_PSW2 0x7e -#define SP_OTP_PSW3 0xc6 - -/* DP System Control Registers */ -#define SP_DP_SYSTEM_CTRL_BASE (0x80 - 1) -/* Bits for DP System Control Register 2 */ -#define SP_CHA_STA BIT(2) -/* Bits for DP System Control Register 3 */ -#define SP_HPD_STATUS BIT(6) -#define SP_STRM_VALID BIT(2) -/* Bits for DP System Control Register 4 */ -#define SP_ENHANCED_MODE BIT(3) - -/* DP Video Control Register */ -#define SP_DP_VIDEO_CTRL_REG 0x84 -#define SP_COLOR_F_MASK 0x06 -#define SP_COLOR_F_SHIFT 1 -#define SP_BPC_MASK 0xe0 -#define SP_BPC_SHIFT 5 -# define SP_BPC_6BITS 0x00 -# define SP_BPC_8BITS 0x01 -# define SP_BPC_10BITS 0x02 -# define SP_BPC_12BITS 0x03 - -/* DP Audio Control Register */ -#define SP_DP_AUDIO_CTRL_REG 0x87 -#define SP_AUD_EN BIT(0) - -/* 10us Pulse Generate Timer Registers */ -#define SP_I2C_GEN_10US_TIMER0_REG 0x88 -#define SP_I2C_GEN_10US_TIMER1_REG 0x89 - -/* Packet Send Control Register */ -#define SP_PACKET_SEND_CTRL_REG 0x90 -#define SP_AUD_IF_UP BIT(7) -#define SP_AVI_IF_UD BIT(6) -#define SP_MPEG_IF_UD BIT(5) -#define SP_SPD_IF_UD BIT(4) -#define SP_AUD_IF_EN BIT(3) -#define SP_AVI_IF_EN BIT(2) -#define SP_MPEG_IF_EN BIT(1) -#define SP_SPD_IF_EN BIT(0) - -/* DP HDCP Control Register */ -#define SP_DP_HDCP_CTRL_REG 0x92 -#define SP_AUTO_EN BIT(7) -#define SP_AUTO_START BIT(5) -#define SP_LINK_POLLING BIT(1) - -/* DP Main Link Bandwidth Setting Register */ -#define SP_DP_MAIN_LINK_BW_SET_REG 0xa0 -#define SP_LINK_BW_SET_MASK 0x1f -#define SP_INITIAL_SLIM_M_AUD_SEL BIT(5) - -/* DP Training Pattern Set Register */ -#define SP_DP_TRAINING_PATTERN_SET_REG 0xa2 - -/* DP Lane 0 Link Training Control Register */ -#define SP_DP_LANE0_LT_CTRL_REG 0xa3 -#define SP_TX_SW_SET_MASK 0x1b -#define SP_MAX_PRE_REACH BIT(5) -#define SP_MAX_DRIVE_REACH BIT(4) -#define SP_PRE_EMP_LEVEL1 BIT(3) -#define SP_DRVIE_CURRENT_LEVEL1 BIT(0) - -/* DP Link Training Control Register */ -#define SP_DP_LT_CTRL_REG 0xa8 -#define SP_LT_ERROR_TYPE_MASK 0x70 -# define SP_LT_NO_ERROR 0x00 -# define SP_LT_AUX_WRITE_ERROR 0x01 -# define SP_LT_MAX_DRIVE_REACHED 0x02 -# define SP_LT_WRONG_LANE_COUNT_SET 0x03 -# define SP_LT_LOOP_SAME_5_TIME 0x04 -# define SP_LT_CR_FAIL_IN_EQ 0x05 -# define SP_LT_EQ_LOOP_5_TIME 0x06 -#define SP_LT_EN BIT(0) - -/* DP CEP Training Control Registers */ -#define SP_DP_CEP_TRAINING_CTRL0_REG 0xa9 -#define SP_DP_CEP_TRAINING_CTRL1_REG 0xaa - -/* DP Debug Register 1 */ -#define SP_DP_DEBUG1_REG 0xb0 -#define SP_DEBUG_PLL_LOCK BIT(4) -#define SP_POLLING_EN BIT(1) - -/* DP Polling Control Register */ -#define SP_DP_POLLING_CTRL_REG 0xb4 -#define SP_AUTO_POLLING_DISABLE BIT(0) - -/* DP Link Debug Control Register */ -#define SP_DP_LINK_DEBUG_CTRL_REG 0xb8 -#define SP_M_VID_DEBUG BIT(5) -#define SP_NEW_PRBS7 BIT(4) -#define SP_INSERT_ER BIT(1) -#define SP_PRBS31_EN BIT(0) - -/* AUX Misc control Register */ -#define SP_AUX_MISC_CTRL_REG 0xbf - -/* DP PLL control Register */ -#define SP_DP_PLL_CTRL_REG 0xc7 -#define SP_PLL_RST BIT(6) - -/* DP Analog Power Down Register */ -#define SP_DP_ANALOG_POWER_DOWN_REG 0xc8 -#define SP_CH0_PD BIT(0) - -/* DP Misc Control Register */ -#define SP_DP_MISC_CTRL_REG 0xcd -#define SP_EQ_TRAINING_LOOP BIT(6) - -/* DP Extra I2C Device Address Register */ -#define SP_DP_EXTRA_I2C_DEV_ADDR_REG 0xce -#define SP_I2C_STRETCH_DISABLE BIT(7) - -#define SP_I2C_EXTRA_ADDR 0x50 - -/* DP Downspread Control Register 1 */ -#define SP_DP_DOWNSPREAD_CTRL1_REG 0xd0 - -/* DP M Value Calculation Control Register */ -#define SP_DP_M_CALCULATION_CTRL_REG 0xd9 -#define SP_M_GEN_CLK_SEL BIT(0) - -/* AUX Channel Access Status Register */ -#define SP_AUX_CH_STATUS_REG 0xe0 -#define SP_AUX_STATUS 0x0f - -/* AUX Channel DEFER Control Register */ -#define SP_AUX_DEFER_CTRL_REG 0xe2 -#define SP_DEFER_CTRL_EN BIT(7) - -/* DP Buffer Data Count Register */ -#define SP_BUF_DATA_COUNT_REG 0xe4 -#define SP_BUF_DATA_COUNT_MASK 0x1f -#define SP_BUF_CLR BIT(7) - -/* DP AUX Channel Control Register 1 */ -#define SP_DP_AUX_CH_CTRL1_REG 0xe5 -#define SP_AUX_TX_COMM_MASK 0x0f -#define SP_AUX_LENGTH_MASK 0xf0 -#define SP_AUX_LENGTH_SHIFT 4 - -/* DP AUX CH Address Register 0 */ -#define SP_AUX_ADDR_7_0_REG 0xe6 - -/* DP AUX CH Address Register 1 */ -#define SP_AUX_ADDR_15_8_REG 0xe7 - -/* DP AUX CH Address Register 2 */ -#define SP_AUX_ADDR_19_16_REG 0xe8 -#define SP_AUX_ADDR_19_16_MASK 0x0f - -/* DP AUX Channel Control Register 2 */ -#define SP_DP_AUX_CH_CTRL2_REG 0xe9 -#define SP_AUX_SEL_RXCM BIT(6) -#define SP_AUX_CHSEL BIT(3) -#define SP_AUX_PN_INV BIT(2) -#define SP_ADDR_ONLY BIT(1) -#define SP_AUX_EN BIT(0) - -/* DP Video Stream Control InfoFrame Register */ -#define SP_DP_3D_VSC_CTRL_REG 0xea -#define SP_INFO_FRAME_VSC_EN BIT(0) - -/* DP Video Stream Data Byte 1 Register */ -#define SP_DP_VSC_DB1_REG 0xeb - -/* DP AUX Channel Control Register 3 */ -#define SP_DP_AUX_CH_CTRL3_REG 0xec -#define SP_WAIT_COUNTER_7_0_MASK 0xff - -/* DP AUX Channel Control Register 4 */ -#define SP_DP_AUX_CH_CTRL4_REG 0xed - -/* DP AUX Buffer Data Registers */ -#define SP_DP_BUF_DATA0_REG 0xf0 - -/***************************************************************/ -/* Register definitions for TX_P2 */ -/***************************************************************/ - -/* - * Core Register Definitions - */ - -/* Device ID Low Byte Register */ -#define SP_DEVICE_IDL_REG 0x02 - -/* Device ID High Byte Register */ -#define SP_DEVICE_IDH_REG 0x03 - -/* Device version register */ -#define SP_DEVICE_VERSION_REG 0x04 - -/* Power Down Control Register */ -#define SP_POWERDOWN_CTRL_REG 0x05 -#define SP_REGISTER_PD BIT(7) -#define SP_HDCP_PD BIT(5) -#define SP_AUDIO_PD BIT(4) -#define SP_VIDEO_PD BIT(3) -#define SP_LINK_PD BIT(2) -#define SP_TOTAL_PD BIT(1) - -/* Reset Control Register 1 */ -#define SP_RESET_CTRL1_REG 0x06 -#define SP_MISC_RST BIT(7) -#define SP_VIDCAP_RST BIT(6) -#define SP_VIDFIF_RST BIT(5) -#define SP_AUDFIF_RST BIT(4) -#define SP_AUDCAP_RST BIT(3) -#define SP_HDCP_RST BIT(2) -#define SP_SW_RST BIT(1) -#define SP_HW_RST BIT(0) - -/* Reset Control Register 2 */ -#define SP_RESET_CTRL2_REG 0x07 -#define SP_AUX_RST BIT(2) -#define SP_SERDES_FIFO_RST BIT(1) -#define SP_I2C_REG_RST BIT(0) - -/* Video Control Register 1 */ -#define SP_VID_CTRL1_REG 0x08 -#define SP_VIDEO_EN BIT(7) -#define SP_VIDEO_MUTE BIT(2) -#define SP_DE_GEN BIT(1) -#define SP_DEMUX BIT(0) - -/* Video Control Register 2 */ -#define SP_VID_CTRL2_REG 0x09 -#define SP_IN_COLOR_F_MASK 0x03 -#define SP_IN_YC_BIT_SEL BIT(2) -#define SP_IN_BPC_MASK 0x70 -#define SP_IN_BPC_SHIFT 4 -# define SP_IN_BPC_12BIT 0x03 -# define SP_IN_BPC_10BIT 0x02 -# define SP_IN_BPC_8BIT 0x01 -# define SP_IN_BPC_6BIT 0x00 -#define SP_IN_D_RANGE BIT(7) - -/* Video Control Register 3 */ -#define SP_VID_CTRL3_REG 0x0a -#define SP_HPD_OUT BIT(6) - -/* Video Control Register 5 */ -#define SP_VID_CTRL5_REG 0x0c -#define SP_CSC_STD_SEL BIT(7) -#define SP_XVYCC_RNG_LMT BIT(6) -#define SP_RANGE_Y2R BIT(5) -#define SP_CSPACE_Y2R BIT(4) -#define SP_RGB_RNG_LMT BIT(3) -#define SP_Y_RNG_LMT BIT(2) -#define SP_RANGE_R2Y BIT(1) -#define SP_CSPACE_R2Y BIT(0) - -/* Video Control Register 6 */ -#define SP_VID_CTRL6_REG 0x0d -#define SP_TEST_PATTERN_EN BIT(7) -#define SP_VIDEO_PROCESS_EN BIT(6) -#define SP_VID_US_MODE BIT(3) -#define SP_VID_DS_MODE BIT(2) -#define SP_UP_SAMPLE BIT(1) -#define SP_DOWN_SAMPLE BIT(0) - -/* Video Control Register 8 */ -#define SP_VID_CTRL8_REG 0x0f -#define SP_VID_VRES_TH BIT(0) - -/* Total Line Status Low Byte Register */ -#define SP_TOTAL_LINE_STAL_REG 0x24 - -/* Total Line Status High Byte Register */ -#define SP_TOTAL_LINE_STAH_REG 0x25 - -/* Active Line Status Low Byte Register */ -#define SP_ACT_LINE_STAL_REG 0x26 - -/* Active Line Status High Byte Register */ -#define SP_ACT_LINE_STAH_REG 0x27 - -/* Vertical Front Porch Status Register */ -#define SP_V_F_PORCH_STA_REG 0x28 - -/* Vertical SYNC Width Status Register */ -#define SP_V_SYNC_STA_REG 0x29 - -/* Vertical Back Porch Status Register */ -#define SP_V_B_PORCH_STA_REG 0x2a - -/* Total Pixel Status Low Byte Register */ -#define SP_TOTAL_PIXEL_STAL_REG 0x2b - -/* Total Pixel Status High Byte Register */ -#define SP_TOTAL_PIXEL_STAH_REG 0x2c - -/* Active Pixel Status Low Byte Register */ -#define SP_ACT_PIXEL_STAL_REG 0x2d - -/* Active Pixel Status High Byte Register */ -#define SP_ACT_PIXEL_STAH_REG 0x2e - -/* Horizontal Front Porch Status Low Byte Register */ -#define SP_H_F_PORCH_STAL_REG 0x2f - -/* Horizontal Front Porch Statys High Byte Register */ -#define SP_H_F_PORCH_STAH_REG 0x30 - -/* Horizontal SYNC Width Status Low Byte Register */ -#define SP_H_SYNC_STAL_REG 0x31 - -/* Horizontal SYNC Width Status High Byte Register */ -#define SP_H_SYNC_STAH_REG 0x32 - -/* Horizontal Back Porch Status Low Byte Register */ -#define SP_H_B_PORCH_STAL_REG 0x33 - -/* Horizontal Back Porch Status High Byte Register */ -#define SP_H_B_PORCH_STAH_REG 0x34 - -/* InfoFrame AVI Packet DB1 Register */ -#define SP_INFOFRAME_AVI_DB1_REG 0x70 - -/* Bit Control Specific Register */ -#define SP_BIT_CTRL_SPECIFIC_REG 0x80 -#define SP_BIT_CTRL_SELECT_SHIFT 1 -#define SP_ENABLE_BIT_CTRL BIT(0) - -/* InfoFrame Audio Packet DB1 Register */ -#define SP_INFOFRAME_AUD_DB1_REG 0x83 - -/* InfoFrame MPEG Packet DB1 Register */ -#define SP_INFOFRAME_MPEG_DB1_REG 0xb0 - -/* Audio Channel Status Registers */ -#define SP_AUD_CH_STATUS_BASE 0xd0 - -/* Audio Channel Num Register 5 */ -#define SP_I2S_CHANNEL_NUM_MASK 0xe0 -# define SP_I2S_CH_NUM_1 (0x00 << 5) -# define SP_I2S_CH_NUM_2 (0x01 << 5) -# define SP_I2S_CH_NUM_3 (0x02 << 5) -# define SP_I2S_CH_NUM_4 (0x03 << 5) -# define SP_I2S_CH_NUM_5 (0x04 << 5) -# define SP_I2S_CH_NUM_6 (0x05 << 5) -# define SP_I2S_CH_NUM_7 (0x06 << 5) -# define SP_I2S_CH_NUM_8 (0x07 << 5) -#define SP_EXT_VUCP BIT(2) -#define SP_VBIT BIT(1) -#define SP_AUDIO_LAYOUT BIT(0) - -/* Analog Debug Register 2 */ -#define SP_ANALOG_DEBUG2_REG 0xdd -#define SP_FORCE_SW_OFF_BYPASS 0x20 -#define SP_XTAL_FRQ 0x1c -# define SP_XTAL_FRQ_19M2 (0x00 << 2) -# define SP_XTAL_FRQ_24M (0x01 << 2) -# define SP_XTAL_FRQ_25M (0x02 << 2) -# define SP_XTAL_FRQ_26M (0x03 << 2) -# define SP_XTAL_FRQ_27M (0x04 << 2) -# define SP_XTAL_FRQ_38M4 (0x05 << 2) -# define SP_XTAL_FRQ_52M (0x06 << 2) -#define SP_POWERON_TIME_1P5MS 0x03 - -/* Analog Control 0 Register */ -#define SP_ANALOG_CTRL0_REG 0xe1 - -/* Common Interrupt Status Register 1 */ -#define SP_COMMON_INT_STATUS_BASE (0xf1 - 1) -#define SP_PLL_LOCK_CHG 0x40 - -/* Common Interrupt Status Register 2 */ -#define SP_COMMON_INT_STATUS2 0xf2 -#define SP_HDCP_AUTH_CHG BIT(1) -#define SP_HDCP_AUTH_DONE BIT(0) - -#define SP_HDCP_LINK_CHECK_FAIL BIT(0) - -/* Common Interrupt Status Register 4 */ -#define SP_COMMON_INT_STATUS4_REG 0xf4 -#define SP_HPD_IRQ BIT(6) -#define SP_HPD_ESYNC_ERR BIT(4) -#define SP_HPD_CHG BIT(2) -#define SP_HPD_LOST BIT(1) -#define SP_HPD_PLUG BIT(0) - -/* DP Interrupt Status Register */ -#define SP_DP_INT_STATUS1_REG 0xf7 -#define SP_TRAINING_FINISH BIT(5) -#define SP_POLLING_ERR BIT(4) - -/* Common Interrupt Mask Register */ -#define SP_COMMON_INT_MASK_BASE (0xf8 - 1) - -#define SP_COMMON_INT_MASK4_REG 0xfb - -/* DP Interrupts Mask Register */ -#define SP_DP_INT_MASK1_REG 0xfe - -/* Interrupt Control Register */ -#define SP_INT_CTRL_REG 0xff - -/***************************************************************/ /* Register definitions for TX_P1 */ /***************************************************************/ --- /dev/null +++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h @@ -0,0 +1,245 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright(c) 2016, Analogix Semiconductor. + * + * Based on anx7808 driver obtained from chromeos with copyright: + * Copyright(c) 2013, Google Inc. + */ +#ifndef _ANALOGIX_I2C_DPTX_H_ +#define _ANALOGIX_I2C_DPTX_H_ + +/***************************************************************/ +/* Register definitions for TX_P0 */ +/***************************************************************/ + +/* HDCP Status Register */ +#define SP_TX_HDCP_STATUS_REG 0x00 +#define SP_AUTH_FAIL BIT(5) +#define SP_AUTHEN_PASS BIT(1) + +/* HDCP Control Register 0 */ +#define SP_HDCP_CTRL0_REG 0x01 +#define SP_RX_REPEATER BIT(6) +#define SP_RE_AUTH BIT(5) +#define SP_SW_AUTH_OK BIT(4) +#define SP_HARD_AUTH_EN BIT(3) +#define SP_HDCP_ENC_EN BIT(2) +#define SP_BKSV_SRM_PASS BIT(1) +#define SP_KSVLIST_VLD BIT(0) +/* HDCP Function Enabled */ +#define SP_HDCP_FUNCTION_ENABLED (BIT(0) | BIT(1) | BIT(2) | BIT(3)) + +/* HDCP Receiver BSTATUS Register 0 */ +#define SP_HDCP_RX_BSTATUS0_REG 0x1b +/* HDCP Receiver BSTATUS Register 1 */ +#define SP_HDCP_RX_BSTATUS1_REG 0x1c + +/* HDCP Embedded "Blue Screen" Content Registers */ +#define SP_HDCP_VID0_BLUE_SCREEN_REG 0x2c +#define SP_HDCP_VID1_BLUE_SCREEN_REG 0x2d +#define SP_HDCP_VID2_BLUE_SCREEN_REG 0x2e + +/* HDCP Wait R0 Timing Register */ +#define SP_HDCP_WAIT_R0_TIME_REG 0x40 + +/* HDCP Link Integrity Check Timer Register */ +#define SP_HDCP_LINK_CHECK_TIMER_REG 0x41 + +/* HDCP Repeater Ready Wait Timer Register */ +#define SP_HDCP_RPTR_RDY_WAIT_TIME_REG 0x42 + +/* HDCP Auto Timer Register */ +#define SP_HDCP_AUTO_TIMER_REG 0x51 + +/* HDCP Key Status Register */ +#define SP_HDCP_KEY_STATUS_REG 0x5e + +/* HDCP Key Command Register */ +#define SP_HDCP_KEY_COMMAND_REG 0x5f +#define SP_DISABLE_SYNC_HDCP BIT(2) + +/* OTP Memory Key Protection Registers */ +#define SP_OTP_KEY_PROTECT1_REG 0x60 +#define SP_OTP_KEY_PROTECT2_REG 0x61 +#define SP_OTP_KEY_PROTECT3_REG 0x62 +#define SP_OTP_PSW1 0xa2 +#define SP_OTP_PSW2 0x7e +#define SP_OTP_PSW3 0xc6 + +/* DP System Control Registers */ +#define SP_DP_SYSTEM_CTRL_BASE (0x80 - 1) +/* Bits for DP System Control Register 2 */ +#define SP_CHA_STA BIT(2) +/* Bits for DP System Control Register 3 */ +#define SP_HPD_STATUS BIT(6) +#define SP_STRM_VALID BIT(2) +/* Bits for DP System Control Register 4 */ +#define SP_ENHANCED_MODE BIT(3) + +/* DP Video Control Register */ +#define SP_DP_VIDEO_CTRL_REG 0x84 +#define SP_COLOR_F_MASK 0x06 +#define SP_COLOR_F_SHIFT 1 +#define SP_BPC_MASK 0xe0 +#define SP_BPC_SHIFT 5 +# define SP_BPC_6BITS 0x00 +# define SP_BPC_8BITS 0x01 +# define SP_BPC_10BITS 0x02 +# define SP_BPC_12BITS 0x03 + +/* DP Audio Control Register */ +#define SP_DP_AUDIO_CTRL_REG 0x87 +#define SP_AUD_EN BIT(0) + +/* 10us Pulse Generate Timer Registers */ +#define SP_I2C_GEN_10US_TIMER0_REG 0x88 +#define SP_I2C_GEN_10US_TIMER1_REG 0x89 + +/* Packet Send Control Register */ +#define SP_PACKET_SEND_CTRL_REG 0x90 +#define SP_AUD_IF_UP BIT(7) +#define SP_AVI_IF_UD BIT(6) +#define SP_MPEG_IF_UD BIT(5) +#define SP_SPD_IF_UD BIT(4) +#define SP_AUD_IF_EN BIT(3) +#define SP_AVI_IF_EN BIT(2) +#define SP_MPEG_IF_EN BIT(1) +#define SP_SPD_IF_EN BIT(0) + +/* DP HDCP Control Register */ +#define SP_DP_HDCP_CTRL_REG 0x92 +#define SP_AUTO_EN BIT(7) +#define SP_AUTO_START BIT(5) +#define SP_LINK_POLLING BIT(1) + +/* DP Main Link Bandwidth Setting Register */ +#define SP_DP_MAIN_LINK_BW_SET_REG 0xa0 +#define SP_LINK_BW_SET_MASK 0x1f +#define SP_INITIAL_SLIM_M_AUD_SEL BIT(5) + +/* DP Training Pattern Set Register */ +#define SP_DP_TRAINING_PATTERN_SET_REG 0xa2 + +/* DP Lane 0 Link Training Control Register */ +#define SP_DP_LANE0_LT_CTRL_REG 0xa3 +#define SP_TX_SW_SET_MASK 0x1b +#define SP_MAX_PRE_REACH BIT(5) +#define SP_MAX_DRIVE_REACH BIT(4) +#define SP_PRE_EMP_LEVEL1 BIT(3) +#define SP_DRVIE_CURRENT_LEVEL1 BIT(0) + +/* DP Link Training Control Register */ +#define SP_DP_LT_CTRL_REG 0xa8 +#define SP_LT_ERROR_TYPE_MASK 0x70 +# define SP_LT_NO_ERROR 0x00 +# define SP_LT_AUX_WRITE_ERROR 0x01 +# define SP_LT_MAX_DRIVE_REACHED 0x02 +# define SP_LT_WRONG_LANE_COUNT_SET 0x03 +# define SP_LT_LOOP_SAME_5_TIME 0x04 +# define SP_LT_CR_FAIL_IN_EQ 0x05 +# define SP_LT_EQ_LOOP_5_TIME 0x06 +#define SP_LT_EN BIT(0) + +/* DP CEP Training Control Registers */ +#define SP_DP_CEP_TRAINING_CTRL0_REG 0xa9 +#define SP_DP_CEP_TRAINING_CTRL1_REG 0xaa + +/* DP Debug Register 1 */ +#define SP_DP_DEBUG1_REG 0xb0 +#define SP_DEBUG_PLL_LOCK BIT(4) +#define SP_POLLING_EN BIT(1) + +/* DP Polling Control Register */ +#define SP_DP_POLLING_CTRL_REG 0xb4 +#define SP_AUTO_POLLING_DISABLE BIT(0) + +/* DP Link Debug Control Register */ +#define SP_DP_LINK_DEBUG_CTRL_REG 0xb8 +#define SP_M_VID_DEBUG BIT(5) +#define SP_NEW_PRBS7 BIT(4) +#define SP_INSERT_ER BIT(1) +#define SP_PRBS31_EN BIT(0) + +/* AUX Misc control Register */ +#define SP_AUX_MISC_CTRL_REG 0xbf + +/* DP PLL control Register */ +#define SP_DP_PLL_CTRL_REG 0xc7 +#define SP_PLL_RST BIT(6) + +/* DP Analog Power Down Register */ +#define SP_DP_ANALOG_POWER_DOWN_REG 0xc8 +#define SP_CH0_PD BIT(0) + +/* DP Misc Control Register */ +#define SP_DP_MISC_CTRL_REG 0xcd +#define SP_EQ_TRAINING_LOOP BIT(6) + +/* DP Extra I2C Device Address Register */ +#define SP_DP_EXTRA_I2C_DEV_ADDR_REG 0xce +#define SP_I2C_STRETCH_DISABLE BIT(7) + +#define SP_I2C_EXTRA_ADDR 0x50 + +/* DP Downspread Control Register 1 */ +#define SP_DP_DOWNSPREAD_CTRL1_REG 0xd0 + +/* DP M Value Calculation Control Register */ +#define SP_DP_M_CALCULATION_CTRL_REG 0xd9 +#define SP_M_GEN_CLK_SEL BIT(0) + +/* AUX Channel Access Status Register */ +#define SP_AUX_CH_STATUS_REG 0xe0 +#define SP_AUX_STATUS 0x0f + +/* AUX Channel DEFER Control Register */ +#define SP_AUX_DEFER_CTRL_REG 0xe2 +#define SP_DEFER_CTRL_EN BIT(7) + +/* DP Buffer Data Count Register */ +#define SP_BUF_DATA_COUNT_REG 0xe4 +#define SP_BUF_DATA_COUNT_MASK 0x1f +#define SP_BUF_CLR BIT(7) + +/* DP AUX Channel Control Register 1 */ +#define SP_DP_AUX_CH_CTRL1_REG 0xe5 +#define SP_AUX_TX_COMM_MASK 0x0f +#define SP_AUX_LENGTH_MASK 0xf0 +#define SP_AUX_LENGTH_SHIFT 4 + +/* DP AUX CH Address Register 0 */ +#define SP_AUX_ADDR_7_0_REG 0xe6 + +/* DP AUX CH Address Register 1 */ +#define SP_AUX_ADDR_15_8_REG 0xe7 + +/* DP AUX CH Address Register 2 */ +#define SP_AUX_ADDR_19_16_REG 0xe8 +#define SP_AUX_ADDR_19_16_MASK 0x0f + +/* DP AUX Channel Control Register 2 */ +#define SP_DP_AUX_CH_CTRL2_REG 0xe9 +#define SP_AUX_SEL_RXCM BIT(6) +#define SP_AUX_CHSEL BIT(3) +#define SP_AUX_PN_INV BIT(2) +#define SP_ADDR_ONLY BIT(1) +#define SP_AUX_EN BIT(0) + +/* DP Video Stream Control InfoFrame Register */ +#define SP_DP_3D_VSC_CTRL_REG 0xea +#define SP_INFO_FRAME_VSC_EN BIT(0) + +/* DP Video Stream Data Byte 1 Register */ +#define SP_DP_VSC_DB1_REG 0xeb + +/* DP AUX Channel Control Register 3 */ +#define SP_DP_AUX_CH_CTRL3_REG 0xec +#define SP_WAIT_COUNTER_7_0_MASK 0xff + +/* DP AUX Channel Control Register 4 */ +#define SP_DP_AUX_CH_CTRL4_REG 0xed + +/* DP AUX Buffer Data Registers */ +#define SP_DP_BUF_DATA0_REG 0xf0 + +#endif --- /dev/null +++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h @@ -0,0 +1,231 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright(c) 2016, Analogix Semiconductor. All rights reserved. + */ +#ifndef _ANALOGIX_I2C_TXCOMMON_H_ +#define _ANALOGIX_I2C_TXCOMMON_H_ + +/***************************************************************/ +/* Register definitions for TX_P2 */ +/***************************************************************/ + +/* + * Core Register Definitions + */ + +/* Device ID Low Byte Register */ +#define SP_DEVICE_IDL_REG 0x02 + +/* Device ID High Byte Register */ +#define SP_DEVICE_IDH_REG 0x03 + +/* Device version register */ +#define SP_DEVICE_VERSION_REG 0x04 + +/* Power Down Control Register */ +#define SP_POWERDOWN_CTRL_REG 0x05 +#define SP_REGISTER_PD BIT(7) +#define SP_HDCP_PD BIT(5) +#define SP_AUDIO_PD BIT(4) +#define SP_VIDEO_PD BIT(3) +#define SP_LINK_PD BIT(2) +#define SP_TOTAL_PD BIT(1) + +/* Reset Control Register 1 */ +#define SP_RESET_CTRL1_REG 0x06 +#define SP_MISC_RST BIT(7) +#define SP_VIDCAP_RST BIT(6) +#define SP_VIDFIF_RST BIT(5) +#define SP_AUDFIF_RST BIT(4) +#define SP_AUDCAP_RST BIT(3) +#define SP_HDCP_RST BIT(2) +#define SP_SW_RST BIT(1) +#define SP_HW_RST BIT(0) + +/* Reset Control Register 2 */ +#define SP_RESET_CTRL2_REG 0x07 +#define SP_AUX_RST BIT(2) +#define SP_SERDES_FIFO_RST BIT(1) +#define SP_I2C_REG_RST BIT(0) + +/* Video Control Register 1 */ +#define SP_VID_CTRL1_REG 0x08 +#define SP_VIDEO_EN BIT(7) +#define SP_VIDEO_MUTE BIT(2) +#define SP_DE_GEN BIT(1) +#define SP_DEMUX BIT(0) + +/* Video Control Register 2 */ +#define SP_VID_CTRL2_REG 0x09 +#define SP_IN_COLOR_F_MASK 0x03 +#define SP_IN_YC_BIT_SEL BIT(2) +#define SP_IN_BPC_MASK 0x70 +#define SP_IN_BPC_SHIFT 4 +# define SP_IN_BPC_12BIT 0x03 +# define SP_IN_BPC_10BIT 0x02 +# define SP_IN_BPC_8BIT 0x01 +# define SP_IN_BPC_6BIT 0x00 +#define SP_IN_D_RANGE BIT(7) + +/* Video Control Register 3 */ +#define SP_VID_CTRL3_REG 0x0a +#define SP_HPD_OUT BIT(6) + +/* Video Control Register 5 */ +#define SP_VID_CTRL5_REG 0x0c +#define SP_CSC_STD_SEL BIT(7) +#define SP_XVYCC_RNG_LMT BIT(6) +#define SP_RANGE_Y2R BIT(5) +#define SP_CSPACE_Y2R BIT(4) +#define SP_RGB_RNG_LMT BIT(3) +#define SP_Y_RNG_LMT BIT(2) +#define SP_RANGE_R2Y BIT(1) +#define SP_CSPACE_R2Y BIT(0) + +/* Video Control Register 6 */ +#define SP_VID_CTRL6_REG 0x0d +#define SP_TEST_PATTERN_EN BIT(7) +#define SP_VIDEO_PROCESS_EN BIT(6) +#define SP_VID_US_MODE BIT(3) +#define SP_VID_DS_MODE BIT(2) +#define SP_UP_SAMPLE BIT(1) +#define SP_DOWN_SAMPLE BIT(0) + +/* Video Control Register 8 */ +#define SP_VID_CTRL8_REG 0x0f +#define SP_VID_VRES_TH BIT(0) + +/* Total Line Status Low Byte Register */ +#define SP_TOTAL_LINE_STAL_REG 0x24 + +/* Total Line Status High Byte Register */ +#define SP_TOTAL_LINE_STAH_REG 0x25 + +/* Active Line Status Low Byte Register */ +#define SP_ACT_LINE_STAL_REG 0x26 + +/* Active Line Status High Byte Register */ +#define SP_ACT_LINE_STAH_REG 0x27 + +/* Vertical Front Porch Status Register */ +#define SP_V_F_PORCH_STA_REG 0x28 + +/* Vertical SYNC Width Status Register */ +#define SP_V_SYNC_STA_REG 0x29 + +/* Vertical Back Porch Status Register */ +#define SP_V_B_PORCH_STA_REG 0x2a + +/* Total Pixel Status Low Byte Register */ +#define SP_TOTAL_PIXEL_STAL_REG 0x2b + +/* Total Pixel Status High Byte Register */ +#define SP_TOTAL_PIXEL_STAH_REG 0x2c + +/* Active Pixel Status Low Byte Register */ +#define SP_ACT_PIXEL_STAL_REG 0x2d + +/* Active Pixel Status High Byte Register */ +#define SP_ACT_PIXEL_STAH_REG 0x2e + +/* Horizontal Front Porch Status Low Byte Register */ +#define SP_H_F_PORCH_STAL_REG 0x2f + +/* Horizontal Front Porch Statys High Byte Register */ +#define SP_H_F_PORCH_STAH_REG 0x30 + +/* Horizontal SYNC Width Status Low Byte Register */ +#define SP_H_SYNC_STAL_REG 0x31 + +/* Horizontal SYNC Width Status High Byte Register */ +#define SP_H_SYNC_STAH_REG 0x32 + +/* Horizontal Back Porch Status Low Byte Register */ +#define SP_H_B_PORCH_STAL_REG 0x33 + +/* Horizontal Back Porch Status High Byte Register */ +#define SP_H_B_PORCH_STAH_REG 0x34 + +/* InfoFrame AVI Packet DB1 Register */ +#define SP_INFOFRAME_AVI_DB1_REG 0x70 + +/* Bit Control Specific Register */ +#define SP_BIT_CTRL_SPECIFIC_REG 0x80 +#define SP_BIT_CTRL_SELECT_SHIFT 1 +#define SP_ENABLE_BIT_CTRL BIT(0) + +/* InfoFrame Audio Packet DB1 Register */ +#define SP_INFOFRAME_AUD_DB1_REG 0x83 + +/* InfoFrame MPEG Packet DB1 Register */ +#define SP_INFOFRAME_MPEG_DB1_REG 0xb0 + +/* Audio Channel Status Registers */ +#define SP_AUD_CH_STATUS_BASE 0xd0 + +/* Audio Channel Num Register 5 */ +#define SP_I2S_CHANNEL_NUM_MASK 0xe0 +# define SP_I2S_CH_NUM_1 (0x00 << 5) +# define SP_I2S_CH_NUM_2 (0x01 << 5) +# define SP_I2S_CH_NUM_3 (0x02 << 5) +# define SP_I2S_CH_NUM_4 (0x03 << 5) +# define SP_I2S_CH_NUM_5 (0x04 << 5) +# define SP_I2S_CH_NUM_6 (0x05 << 5) +# define SP_I2S_CH_NUM_7 (0x06 << 5) +# define SP_I2S_CH_NUM_8 (0x07 << 5) +#define SP_EXT_VUCP BIT(2) +#define SP_VBIT BIT(1) +#define SP_AUDIO_LAYOUT BIT(0) + +/* Analog Debug Register 2 */ +#define SP_ANALOG_DEBUG2_REG 0xdd +#define SP_FORCE_SW_OFF_BYPASS 0x20 +#define SP_XTAL_FRQ 0x1c +# define SP_XTAL_FRQ_19M2 (0x00 << 2) +# define SP_XTAL_FRQ_24M (0x01 << 2) +# define SP_XTAL_FRQ_25M (0x02 << 2) +# define SP_XTAL_FRQ_26M (0x03 << 2) +# define SP_XTAL_FRQ_27M (0x04 << 2) +# define SP_XTAL_FRQ_38M4 (0x05 << 2) +# define SP_XTAL_FRQ_52M (0x06 << 2) +#define SP_POWERON_TIME_1P5MS 0x03 + +/* Analog Control 0 Register */ +#define SP_ANALOG_CTRL0_REG 0xe1 + +/* Common Interrupt Status Register 1 */ +#define SP_COMMON_INT_STATUS_BASE (0xf1 - 1) +#define SP_PLL_LOCK_CHG 0x40 + +/* Common Interrupt Status Register 2 */ +#define SP_COMMON_INT_STATUS2 0xf2 +#define SP_HDCP_AUTH_CHG BIT(1) +#define SP_HDCP_AUTH_DONE BIT(0) + +#define SP_HDCP_LINK_CHECK_FAIL BIT(0) + +/* Common Interrupt Status Register 4 */ +#define SP_COMMON_INT_STATUS4_REG 0xf4 +#define SP_HPD_IRQ BIT(6) +#define SP_HPD_ESYNC_ERR BIT(4) +#define SP_HPD_CHG BIT(2) +#define SP_HPD_LOST BIT(1) +#define SP_HPD_PLUG BIT(0) + +/* DP Interrupt Status Register */ +#define SP_DP_INT_STATUS1_REG 0xf7 +#define SP_TRAINING_FINISH BIT(5) +#define SP_POLLING_ERR BIT(4) + +/* Common Interrupt Mask Register */ +#define SP_COMMON_INT_MASK_BASE (0xf8 - 1) + +#define SP_COMMON_INT_MASK4_REG 0xfb + +/* DP Interrupts Mask Register */ +#define SP_DP_INT_MASK1_REG 0xfe + +/* Interrupt Control Register */ +#define SP_INT_CTRL_REG 0xff + +#endif /* _ANALOGIX_I2C_TXCOMMON_H_ */ _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1CC5FC5DF60 for ; Tue, 5 Nov 2019 17:33:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D38B1214D8 for ; Tue, 5 Nov 2019 17:33:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389356AbfKERdj (ORCPT ); Tue, 5 Nov 2019 12:33:39 -0500 Received: from verein.lst.de ([213.95.11.211]:46710 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387776AbfKERdj (ORCPT ); Tue, 5 Nov 2019 12:33:39 -0500 Received: by verein.lst.de (Postfix, from userid 2005) id 11A0668B05; Tue, 5 Nov 2019 18:33:33 +0100 (CET) Date: Tue, 5 Nov 2019 18:33:32 +0100 From: Torsten Duwe To: Maxime Ripard Cc: Chen-Yu Tsai , Rob Herring , Mark Rutland , Thierry Reding , David Airlie , Daniel Vetter , Andrzej Hajda , Laurent Pinchart , Icenowy Zheng , Sean Paul , Vasily Khoruzhick , Harald Geyer , Greg Kroah-Hartman , Thomas Gleixner , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 2/7] drm/bridge: split some definitions of ANX78xx to dedicated headers Message-ID: <20191105173332.GA11570@lst.de> References: <20191104110400.F319F68BE1@verein.lst.de> <20191104110605.F012268BFE@verein.lst.de> <20191105104126.GC3876@gilmour.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191105104126.GC3876@gilmour.lan> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Icenowy Zheng Some definitions currently in analogix-anx78xx.h are not restricted to the ANX78xx series, but also applicable to other DisplayPort transmitters by Analogix. Split out them to dedicated headers, and make analogix-anx78xx.h include them. Signed-off-by: Icenowy Zheng Signed-off-by: Vasily Khoruzhick Signed-off-by: Torsten Duwe Reviewed-by: Andrzej Hajda --- On Tue, Nov 05, 2019 at 11:41:26AM +0100, Maxime Ripard wrote: > > This one doesn't apply on drm-misc-next. The fix doesn't look really > obvious to me, can you rebase and resend it? Sure. The set was based on 5.4-rc5, which lacks 025910db8057f from drm-misc-next You'll also have to diff -r anx6345-v5/v5-0005-drm-bridge-Add-Analogix-anx6345-support.patch anx6345-v5a/v5-0005-drm-bridge-Add-Analogix-anx6345-support.patch 116,117c116,117 < + [I2C_IDX_DPTX] = ANALOGIX_I2C_DPTX, < + [I2C_IDX_TXCOM] = ANALOGIX_I2C_TXCOMMON, --- > + [I2C_IDX_DPTX] = 0x70, > + [I2C_IDX_TXCOM] = 0x72, To make it compile, with the changed coding style of 025910db8057f. Can you change that on the fly in 5/7 or shall I resend that, too? Torsten --- drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h | 461 +-------------------- .../gpu/drm/bridge/analogix/analogix-i2c-dptx.h | 247 +++++++++++ .../drm/bridge/analogix/analogix-i2c-txcommon.h | 233 +++++++++++ 3 files changed, 483 insertions(+), 458 deletions(-) --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.h @@ -6,6 +6,9 @@ #ifndef __ANX78xx_H #define __ANX78xx_H +#include "analogix-i2c-dptx.h" +#include "analogix-i2c-txcommon.h" + /***************************************************************/ /* Register definitions for RX_PO */ /***************************************************************/ @@ -210,463 +213,6 @@ #define SP_SET_AVMUTE BIT(0) /***************************************************************/ -/* Register definitions for TX_P0 */ -/***************************************************************/ - -/* HDCP Status Register */ -#define SP_TX_HDCP_STATUS_REG 0x00 -#define SP_AUTH_FAIL BIT(5) -#define SP_AUTHEN_PASS BIT(1) - -/* HDCP Control Register 0 */ -#define SP_HDCP_CTRL0_REG 0x01 -#define SP_RX_REPEATER BIT(6) -#define SP_RE_AUTH BIT(5) -#define SP_SW_AUTH_OK BIT(4) -#define SP_HARD_AUTH_EN BIT(3) -#define SP_HDCP_ENC_EN BIT(2) -#define SP_BKSV_SRM_PASS BIT(1) -#define SP_KSVLIST_VLD BIT(0) -/* HDCP Function Enabled */ -#define SP_HDCP_FUNCTION_ENABLED (BIT(0) | BIT(1) | BIT(2) | BIT(3)) - -/* HDCP Receiver BSTATUS Register 0 */ -#define SP_HDCP_RX_BSTATUS0_REG 0x1b -/* HDCP Receiver BSTATUS Register 1 */ -#define SP_HDCP_RX_BSTATUS1_REG 0x1c - -/* HDCP Embedded "Blue Screen" Content Registers */ -#define SP_HDCP_VID0_BLUE_SCREEN_REG 0x2c -#define SP_HDCP_VID1_BLUE_SCREEN_REG 0x2d -#define SP_HDCP_VID2_BLUE_SCREEN_REG 0x2e - -/* HDCP Wait R0 Timing Register */ -#define SP_HDCP_WAIT_R0_TIME_REG 0x40 - -/* HDCP Link Integrity Check Timer Register */ -#define SP_HDCP_LINK_CHECK_TIMER_REG 0x41 - -/* HDCP Repeater Ready Wait Timer Register */ -#define SP_HDCP_RPTR_RDY_WAIT_TIME_REG 0x42 - -/* HDCP Auto Timer Register */ -#define SP_HDCP_AUTO_TIMER_REG 0x51 - -/* HDCP Key Status Register */ -#define SP_HDCP_KEY_STATUS_REG 0x5e - -/* HDCP Key Command Register */ -#define SP_HDCP_KEY_COMMAND_REG 0x5f -#define SP_DISABLE_SYNC_HDCP BIT(2) - -/* OTP Memory Key Protection Registers */ -#define SP_OTP_KEY_PROTECT1_REG 0x60 -#define SP_OTP_KEY_PROTECT2_REG 0x61 -#define SP_OTP_KEY_PROTECT3_REG 0x62 -#define SP_OTP_PSW1 0xa2 -#define SP_OTP_PSW2 0x7e -#define SP_OTP_PSW3 0xc6 - -/* DP System Control Registers */ -#define SP_DP_SYSTEM_CTRL_BASE (0x80 - 1) -/* Bits for DP System Control Register 2 */ -#define SP_CHA_STA BIT(2) -/* Bits for DP System Control Register 3 */ -#define SP_HPD_STATUS BIT(6) -#define SP_STRM_VALID BIT(2) -/* Bits for DP System Control Register 4 */ -#define SP_ENHANCED_MODE BIT(3) - -/* DP Video Control Register */ -#define SP_DP_VIDEO_CTRL_REG 0x84 -#define SP_COLOR_F_MASK 0x06 -#define SP_COLOR_F_SHIFT 1 -#define SP_BPC_MASK 0xe0 -#define SP_BPC_SHIFT 5 -# define SP_BPC_6BITS 0x00 -# define SP_BPC_8BITS 0x01 -# define SP_BPC_10BITS 0x02 -# define SP_BPC_12BITS 0x03 - -/* DP Audio Control Register */ -#define SP_DP_AUDIO_CTRL_REG 0x87 -#define SP_AUD_EN BIT(0) - -/* 10us Pulse Generate Timer Registers */ -#define SP_I2C_GEN_10US_TIMER0_REG 0x88 -#define SP_I2C_GEN_10US_TIMER1_REG 0x89 - -/* Packet Send Control Register */ -#define SP_PACKET_SEND_CTRL_REG 0x90 -#define SP_AUD_IF_UP BIT(7) -#define SP_AVI_IF_UD BIT(6) -#define SP_MPEG_IF_UD BIT(5) -#define SP_SPD_IF_UD BIT(4) -#define SP_AUD_IF_EN BIT(3) -#define SP_AVI_IF_EN BIT(2) -#define SP_MPEG_IF_EN BIT(1) -#define SP_SPD_IF_EN BIT(0) - -/* DP HDCP Control Register */ -#define SP_DP_HDCP_CTRL_REG 0x92 -#define SP_AUTO_EN BIT(7) -#define SP_AUTO_START BIT(5) -#define SP_LINK_POLLING BIT(1) - -/* DP Main Link Bandwidth Setting Register */ -#define SP_DP_MAIN_LINK_BW_SET_REG 0xa0 -#define SP_LINK_BW_SET_MASK 0x1f -#define SP_INITIAL_SLIM_M_AUD_SEL BIT(5) - -/* DP Training Pattern Set Register */ -#define SP_DP_TRAINING_PATTERN_SET_REG 0xa2 - -/* DP Lane 0 Link Training Control Register */ -#define SP_DP_LANE0_LT_CTRL_REG 0xa3 -#define SP_TX_SW_SET_MASK 0x1b -#define SP_MAX_PRE_REACH BIT(5) -#define SP_MAX_DRIVE_REACH BIT(4) -#define SP_PRE_EMP_LEVEL1 BIT(3) -#define SP_DRVIE_CURRENT_LEVEL1 BIT(0) - -/* DP Link Training Control Register */ -#define SP_DP_LT_CTRL_REG 0xa8 -#define SP_LT_ERROR_TYPE_MASK 0x70 -# define SP_LT_NO_ERROR 0x00 -# define SP_LT_AUX_WRITE_ERROR 0x01 -# define SP_LT_MAX_DRIVE_REACHED 0x02 -# define SP_LT_WRONG_LANE_COUNT_SET 0x03 -# define SP_LT_LOOP_SAME_5_TIME 0x04 -# define SP_LT_CR_FAIL_IN_EQ 0x05 -# define SP_LT_EQ_LOOP_5_TIME 0x06 -#define SP_LT_EN BIT(0) - -/* DP CEP Training Control Registers */ -#define SP_DP_CEP_TRAINING_CTRL0_REG 0xa9 -#define SP_DP_CEP_TRAINING_CTRL1_REG 0xaa - -/* DP Debug Register 1 */ -#define SP_DP_DEBUG1_REG 0xb0 -#define SP_DEBUG_PLL_LOCK BIT(4) -#define SP_POLLING_EN BIT(1) - -/* DP Polling Control Register */ -#define SP_DP_POLLING_CTRL_REG 0xb4 -#define SP_AUTO_POLLING_DISABLE BIT(0) - -/* DP Link Debug Control Register */ -#define SP_DP_LINK_DEBUG_CTRL_REG 0xb8 -#define SP_M_VID_DEBUG BIT(5) -#define SP_NEW_PRBS7 BIT(4) -#define SP_INSERT_ER BIT(1) -#define SP_PRBS31_EN BIT(0) - -/* AUX Misc control Register */ -#define SP_AUX_MISC_CTRL_REG 0xbf - -/* DP PLL control Register */ -#define SP_DP_PLL_CTRL_REG 0xc7 -#define SP_PLL_RST BIT(6) - -/* DP Analog Power Down Register */ -#define SP_DP_ANALOG_POWER_DOWN_REG 0xc8 -#define SP_CH0_PD BIT(0) - -/* DP Misc Control Register */ -#define SP_DP_MISC_CTRL_REG 0xcd -#define SP_EQ_TRAINING_LOOP BIT(6) - -/* DP Extra I2C Device Address Register */ -#define SP_DP_EXTRA_I2C_DEV_ADDR_REG 0xce -#define SP_I2C_STRETCH_DISABLE BIT(7) - -#define SP_I2C_EXTRA_ADDR 0x50 - -/* DP Downspread Control Register 1 */ -#define SP_DP_DOWNSPREAD_CTRL1_REG 0xd0 - -/* DP M Value Calculation Control Register */ -#define SP_DP_M_CALCULATION_CTRL_REG 0xd9 -#define SP_M_GEN_CLK_SEL BIT(0) - -/* AUX Channel Access Status Register */ -#define SP_AUX_CH_STATUS_REG 0xe0 -#define SP_AUX_STATUS 0x0f - -/* AUX Channel DEFER Control Register */ -#define SP_AUX_DEFER_CTRL_REG 0xe2 -#define SP_DEFER_CTRL_EN BIT(7) - -/* DP Buffer Data Count Register */ -#define SP_BUF_DATA_COUNT_REG 0xe4 -#define SP_BUF_DATA_COUNT_MASK 0x1f -#define SP_BUF_CLR BIT(7) - -/* DP AUX Channel Control Register 1 */ -#define SP_DP_AUX_CH_CTRL1_REG 0xe5 -#define SP_AUX_TX_COMM_MASK 0x0f -#define SP_AUX_LENGTH_MASK 0xf0 -#define SP_AUX_LENGTH_SHIFT 4 - -/* DP AUX CH Address Register 0 */ -#define SP_AUX_ADDR_7_0_REG 0xe6 - -/* DP AUX CH Address Register 1 */ -#define SP_AUX_ADDR_15_8_REG 0xe7 - -/* DP AUX CH Address Register 2 */ -#define SP_AUX_ADDR_19_16_REG 0xe8 -#define SP_AUX_ADDR_19_16_MASK 0x0f - -/* DP AUX Channel Control Register 2 */ -#define SP_DP_AUX_CH_CTRL2_REG 0xe9 -#define SP_AUX_SEL_RXCM BIT(6) -#define SP_AUX_CHSEL BIT(3) -#define SP_AUX_PN_INV BIT(2) -#define SP_ADDR_ONLY BIT(1) -#define SP_AUX_EN BIT(0) - -/* DP Video Stream Control InfoFrame Register */ -#define SP_DP_3D_VSC_CTRL_REG 0xea -#define SP_INFO_FRAME_VSC_EN BIT(0) - -/* DP Video Stream Data Byte 1 Register */ -#define SP_DP_VSC_DB1_REG 0xeb - -/* DP AUX Channel Control Register 3 */ -#define SP_DP_AUX_CH_CTRL3_REG 0xec -#define SP_WAIT_COUNTER_7_0_MASK 0xff - -/* DP AUX Channel Control Register 4 */ -#define SP_DP_AUX_CH_CTRL4_REG 0xed - -/* DP AUX Buffer Data Registers */ -#define SP_DP_BUF_DATA0_REG 0xf0 - -/***************************************************************/ -/* Register definitions for TX_P2 */ -/***************************************************************/ - -/* - * Core Register Definitions - */ - -/* Device ID Low Byte Register */ -#define SP_DEVICE_IDL_REG 0x02 - -/* Device ID High Byte Register */ -#define SP_DEVICE_IDH_REG 0x03 - -/* Device version register */ -#define SP_DEVICE_VERSION_REG 0x04 - -/* Power Down Control Register */ -#define SP_POWERDOWN_CTRL_REG 0x05 -#define SP_REGISTER_PD BIT(7) -#define SP_HDCP_PD BIT(5) -#define SP_AUDIO_PD BIT(4) -#define SP_VIDEO_PD BIT(3) -#define SP_LINK_PD BIT(2) -#define SP_TOTAL_PD BIT(1) - -/* Reset Control Register 1 */ -#define SP_RESET_CTRL1_REG 0x06 -#define SP_MISC_RST BIT(7) -#define SP_VIDCAP_RST BIT(6) -#define SP_VIDFIF_RST BIT(5) -#define SP_AUDFIF_RST BIT(4) -#define SP_AUDCAP_RST BIT(3) -#define SP_HDCP_RST BIT(2) -#define SP_SW_RST BIT(1) -#define SP_HW_RST BIT(0) - -/* Reset Control Register 2 */ -#define SP_RESET_CTRL2_REG 0x07 -#define SP_AUX_RST BIT(2) -#define SP_SERDES_FIFO_RST BIT(1) -#define SP_I2C_REG_RST BIT(0) - -/* Video Control Register 1 */ -#define SP_VID_CTRL1_REG 0x08 -#define SP_VIDEO_EN BIT(7) -#define SP_VIDEO_MUTE BIT(2) -#define SP_DE_GEN BIT(1) -#define SP_DEMUX BIT(0) - -/* Video Control Register 2 */ -#define SP_VID_CTRL2_REG 0x09 -#define SP_IN_COLOR_F_MASK 0x03 -#define SP_IN_YC_BIT_SEL BIT(2) -#define SP_IN_BPC_MASK 0x70 -#define SP_IN_BPC_SHIFT 4 -# define SP_IN_BPC_12BIT 0x03 -# define SP_IN_BPC_10BIT 0x02 -# define SP_IN_BPC_8BIT 0x01 -# define SP_IN_BPC_6BIT 0x00 -#define SP_IN_D_RANGE BIT(7) - -/* Video Control Register 3 */ -#define SP_VID_CTRL3_REG 0x0a -#define SP_HPD_OUT BIT(6) - -/* Video Control Register 5 */ -#define SP_VID_CTRL5_REG 0x0c -#define SP_CSC_STD_SEL BIT(7) -#define SP_XVYCC_RNG_LMT BIT(6) -#define SP_RANGE_Y2R BIT(5) -#define SP_CSPACE_Y2R BIT(4) -#define SP_RGB_RNG_LMT BIT(3) -#define SP_Y_RNG_LMT BIT(2) -#define SP_RANGE_R2Y BIT(1) -#define SP_CSPACE_R2Y BIT(0) - -/* Video Control Register 6 */ -#define SP_VID_CTRL6_REG 0x0d -#define SP_TEST_PATTERN_EN BIT(7) -#define SP_VIDEO_PROCESS_EN BIT(6) -#define SP_VID_US_MODE BIT(3) -#define SP_VID_DS_MODE BIT(2) -#define SP_UP_SAMPLE BIT(1) -#define SP_DOWN_SAMPLE BIT(0) - -/* Video Control Register 8 */ -#define SP_VID_CTRL8_REG 0x0f -#define SP_VID_VRES_TH BIT(0) - -/* Total Line Status Low Byte Register */ -#define SP_TOTAL_LINE_STAL_REG 0x24 - -/* Total Line Status High Byte Register */ -#define SP_TOTAL_LINE_STAH_REG 0x25 - -/* Active Line Status Low Byte Register */ -#define SP_ACT_LINE_STAL_REG 0x26 - -/* Active Line Status High Byte Register */ -#define SP_ACT_LINE_STAH_REG 0x27 - -/* Vertical Front Porch Status Register */ -#define SP_V_F_PORCH_STA_REG 0x28 - -/* Vertical SYNC Width Status Register */ -#define SP_V_SYNC_STA_REG 0x29 - -/* Vertical Back Porch Status Register */ -#define SP_V_B_PORCH_STA_REG 0x2a - -/* Total Pixel Status Low Byte Register */ -#define SP_TOTAL_PIXEL_STAL_REG 0x2b - -/* Total Pixel Status High Byte Register */ -#define SP_TOTAL_PIXEL_STAH_REG 0x2c - -/* Active Pixel Status Low Byte Register */ -#define SP_ACT_PIXEL_STAL_REG 0x2d - -/* Active Pixel Status High Byte Register */ -#define SP_ACT_PIXEL_STAH_REG 0x2e - -/* Horizontal Front Porch Status Low Byte Register */ -#define SP_H_F_PORCH_STAL_REG 0x2f - -/* Horizontal Front Porch Statys High Byte Register */ -#define SP_H_F_PORCH_STAH_REG 0x30 - -/* Horizontal SYNC Width Status Low Byte Register */ -#define SP_H_SYNC_STAL_REG 0x31 - -/* Horizontal SYNC Width Status High Byte Register */ -#define SP_H_SYNC_STAH_REG 0x32 - -/* Horizontal Back Porch Status Low Byte Register */ -#define SP_H_B_PORCH_STAL_REG 0x33 - -/* Horizontal Back Porch Status High Byte Register */ -#define SP_H_B_PORCH_STAH_REG 0x34 - -/* InfoFrame AVI Packet DB1 Register */ -#define SP_INFOFRAME_AVI_DB1_REG 0x70 - -/* Bit Control Specific Register */ -#define SP_BIT_CTRL_SPECIFIC_REG 0x80 -#define SP_BIT_CTRL_SELECT_SHIFT 1 -#define SP_ENABLE_BIT_CTRL BIT(0) - -/* InfoFrame Audio Packet DB1 Register */ -#define SP_INFOFRAME_AUD_DB1_REG 0x83 - -/* InfoFrame MPEG Packet DB1 Register */ -#define SP_INFOFRAME_MPEG_DB1_REG 0xb0 - -/* Audio Channel Status Registers */ -#define SP_AUD_CH_STATUS_BASE 0xd0 - -/* Audio Channel Num Register 5 */ -#define SP_I2S_CHANNEL_NUM_MASK 0xe0 -# define SP_I2S_CH_NUM_1 (0x00 << 5) -# define SP_I2S_CH_NUM_2 (0x01 << 5) -# define SP_I2S_CH_NUM_3 (0x02 << 5) -# define SP_I2S_CH_NUM_4 (0x03 << 5) -# define SP_I2S_CH_NUM_5 (0x04 << 5) -# define SP_I2S_CH_NUM_6 (0x05 << 5) -# define SP_I2S_CH_NUM_7 (0x06 << 5) -# define SP_I2S_CH_NUM_8 (0x07 << 5) -#define SP_EXT_VUCP BIT(2) -#define SP_VBIT BIT(1) -#define SP_AUDIO_LAYOUT BIT(0) - -/* Analog Debug Register 2 */ -#define SP_ANALOG_DEBUG2_REG 0xdd -#define SP_FORCE_SW_OFF_BYPASS 0x20 -#define SP_XTAL_FRQ 0x1c -# define SP_XTAL_FRQ_19M2 (0x00 << 2) -# define SP_XTAL_FRQ_24M (0x01 << 2) -# define SP_XTAL_FRQ_25M (0x02 << 2) -# define SP_XTAL_FRQ_26M (0x03 << 2) -# define SP_XTAL_FRQ_27M (0x04 << 2) -# define SP_XTAL_FRQ_38M4 (0x05 << 2) -# define SP_XTAL_FRQ_52M (0x06 << 2) -#define SP_POWERON_TIME_1P5MS 0x03 - -/* Analog Control 0 Register */ -#define SP_ANALOG_CTRL0_REG 0xe1 - -/* Common Interrupt Status Register 1 */ -#define SP_COMMON_INT_STATUS_BASE (0xf1 - 1) -#define SP_PLL_LOCK_CHG 0x40 - -/* Common Interrupt Status Register 2 */ -#define SP_COMMON_INT_STATUS2 0xf2 -#define SP_HDCP_AUTH_CHG BIT(1) -#define SP_HDCP_AUTH_DONE BIT(0) - -#define SP_HDCP_LINK_CHECK_FAIL BIT(0) - -/* Common Interrupt Status Register 4 */ -#define SP_COMMON_INT_STATUS4_REG 0xf4 -#define SP_HPD_IRQ BIT(6) -#define SP_HPD_ESYNC_ERR BIT(4) -#define SP_HPD_CHG BIT(2) -#define SP_HPD_LOST BIT(1) -#define SP_HPD_PLUG BIT(0) - -/* DP Interrupt Status Register */ -#define SP_DP_INT_STATUS1_REG 0xf7 -#define SP_TRAINING_FINISH BIT(5) -#define SP_POLLING_ERR BIT(4) - -/* Common Interrupt Mask Register */ -#define SP_COMMON_INT_MASK_BASE (0xf8 - 1) - -#define SP_COMMON_INT_MASK4_REG 0xfb - -/* DP Interrupts Mask Register */ -#define SP_DP_INT_MASK1_REG 0xfe - -/* Interrupt Control Register */ -#define SP_INT_CTRL_REG 0xff - -/***************************************************************/ /* Register definitions for TX_P1 */ /***************************************************************/ --- /dev/null +++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h @@ -0,0 +1,245 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright(c) 2016, Analogix Semiconductor. + * + * Based on anx7808 driver obtained from chromeos with copyright: + * Copyright(c) 2013, Google Inc. + */ +#ifndef _ANALOGIX_I2C_DPTX_H_ +#define _ANALOGIX_I2C_DPTX_H_ + +/***************************************************************/ +/* Register definitions for TX_P0 */ +/***************************************************************/ + +/* HDCP Status Register */ +#define SP_TX_HDCP_STATUS_REG 0x00 +#define SP_AUTH_FAIL BIT(5) +#define SP_AUTHEN_PASS BIT(1) + +/* HDCP Control Register 0 */ +#define SP_HDCP_CTRL0_REG 0x01 +#define SP_RX_REPEATER BIT(6) +#define SP_RE_AUTH BIT(5) +#define SP_SW_AUTH_OK BIT(4) +#define SP_HARD_AUTH_EN BIT(3) +#define SP_HDCP_ENC_EN BIT(2) +#define SP_BKSV_SRM_PASS BIT(1) +#define SP_KSVLIST_VLD BIT(0) +/* HDCP Function Enabled */ +#define SP_HDCP_FUNCTION_ENABLED (BIT(0) | BIT(1) | BIT(2) | BIT(3)) + +/* HDCP Receiver BSTATUS Register 0 */ +#define SP_HDCP_RX_BSTATUS0_REG 0x1b +/* HDCP Receiver BSTATUS Register 1 */ +#define SP_HDCP_RX_BSTATUS1_REG 0x1c + +/* HDCP Embedded "Blue Screen" Content Registers */ +#define SP_HDCP_VID0_BLUE_SCREEN_REG 0x2c +#define SP_HDCP_VID1_BLUE_SCREEN_REG 0x2d +#define SP_HDCP_VID2_BLUE_SCREEN_REG 0x2e + +/* HDCP Wait R0 Timing Register */ +#define SP_HDCP_WAIT_R0_TIME_REG 0x40 + +/* HDCP Link Integrity Check Timer Register */ +#define SP_HDCP_LINK_CHECK_TIMER_REG 0x41 + +/* HDCP Repeater Ready Wait Timer Register */ +#define SP_HDCP_RPTR_RDY_WAIT_TIME_REG 0x42 + +/* HDCP Auto Timer Register */ +#define SP_HDCP_AUTO_TIMER_REG 0x51 + +/* HDCP Key Status Register */ +#define SP_HDCP_KEY_STATUS_REG 0x5e + +/* HDCP Key Command Register */ +#define SP_HDCP_KEY_COMMAND_REG 0x5f +#define SP_DISABLE_SYNC_HDCP BIT(2) + +/* OTP Memory Key Protection Registers */ +#define SP_OTP_KEY_PROTECT1_REG 0x60 +#define SP_OTP_KEY_PROTECT2_REG 0x61 +#define SP_OTP_KEY_PROTECT3_REG 0x62 +#define SP_OTP_PSW1 0xa2 +#define SP_OTP_PSW2 0x7e +#define SP_OTP_PSW3 0xc6 + +/* DP System Control Registers */ +#define SP_DP_SYSTEM_CTRL_BASE (0x80 - 1) +/* Bits for DP System Control Register 2 */ +#define SP_CHA_STA BIT(2) +/* Bits for DP System Control Register 3 */ +#define SP_HPD_STATUS BIT(6) +#define SP_STRM_VALID BIT(2) +/* Bits for DP System Control Register 4 */ +#define SP_ENHANCED_MODE BIT(3) + +/* DP Video Control Register */ +#define SP_DP_VIDEO_CTRL_REG 0x84 +#define SP_COLOR_F_MASK 0x06 +#define SP_COLOR_F_SHIFT 1 +#define SP_BPC_MASK 0xe0 +#define SP_BPC_SHIFT 5 +# define SP_BPC_6BITS 0x00 +# define SP_BPC_8BITS 0x01 +# define SP_BPC_10BITS 0x02 +# define SP_BPC_12BITS 0x03 + +/* DP Audio Control Register */ +#define SP_DP_AUDIO_CTRL_REG 0x87 +#define SP_AUD_EN BIT(0) + +/* 10us Pulse Generate Timer Registers */ +#define SP_I2C_GEN_10US_TIMER0_REG 0x88 +#define SP_I2C_GEN_10US_TIMER1_REG 0x89 + +/* Packet Send Control Register */ +#define SP_PACKET_SEND_CTRL_REG 0x90 +#define SP_AUD_IF_UP BIT(7) +#define SP_AVI_IF_UD BIT(6) +#define SP_MPEG_IF_UD BIT(5) +#define SP_SPD_IF_UD BIT(4) +#define SP_AUD_IF_EN BIT(3) +#define SP_AVI_IF_EN BIT(2) +#define SP_MPEG_IF_EN BIT(1) +#define SP_SPD_IF_EN BIT(0) + +/* DP HDCP Control Register */ +#define SP_DP_HDCP_CTRL_REG 0x92 +#define SP_AUTO_EN BIT(7) +#define SP_AUTO_START BIT(5) +#define SP_LINK_POLLING BIT(1) + +/* DP Main Link Bandwidth Setting Register */ +#define SP_DP_MAIN_LINK_BW_SET_REG 0xa0 +#define SP_LINK_BW_SET_MASK 0x1f +#define SP_INITIAL_SLIM_M_AUD_SEL BIT(5) + +/* DP Training Pattern Set Register */ +#define SP_DP_TRAINING_PATTERN_SET_REG 0xa2 + +/* DP Lane 0 Link Training Control Register */ +#define SP_DP_LANE0_LT_CTRL_REG 0xa3 +#define SP_TX_SW_SET_MASK 0x1b +#define SP_MAX_PRE_REACH BIT(5) +#define SP_MAX_DRIVE_REACH BIT(4) +#define SP_PRE_EMP_LEVEL1 BIT(3) +#define SP_DRVIE_CURRENT_LEVEL1 BIT(0) + +/* DP Link Training Control Register */ +#define SP_DP_LT_CTRL_REG 0xa8 +#define SP_LT_ERROR_TYPE_MASK 0x70 +# define SP_LT_NO_ERROR 0x00 +# define SP_LT_AUX_WRITE_ERROR 0x01 +# define SP_LT_MAX_DRIVE_REACHED 0x02 +# define SP_LT_WRONG_LANE_COUNT_SET 0x03 +# define SP_LT_LOOP_SAME_5_TIME 0x04 +# define SP_LT_CR_FAIL_IN_EQ 0x05 +# define SP_LT_EQ_LOOP_5_TIME 0x06 +#define SP_LT_EN BIT(0) + +/* DP CEP Training Control Registers */ +#define SP_DP_CEP_TRAINING_CTRL0_REG 0xa9 +#define SP_DP_CEP_TRAINING_CTRL1_REG 0xaa + +/* DP Debug Register 1 */ +#define SP_DP_DEBUG1_REG 0xb0 +#define SP_DEBUG_PLL_LOCK BIT(4) +#define SP_POLLING_EN BIT(1) + +/* DP Polling Control Register */ +#define SP_DP_POLLING_CTRL_REG 0xb4 +#define SP_AUTO_POLLING_DISABLE BIT(0) + +/* DP Link Debug Control Register */ +#define SP_DP_LINK_DEBUG_CTRL_REG 0xb8 +#define SP_M_VID_DEBUG BIT(5) +#define SP_NEW_PRBS7 BIT(4) +#define SP_INSERT_ER BIT(1) +#define SP_PRBS31_EN BIT(0) + +/* AUX Misc control Register */ +#define SP_AUX_MISC_CTRL_REG 0xbf + +/* DP PLL control Register */ +#define SP_DP_PLL_CTRL_REG 0xc7 +#define SP_PLL_RST BIT(6) + +/* DP Analog Power Down Register */ +#define SP_DP_ANALOG_POWER_DOWN_REG 0xc8 +#define SP_CH0_PD BIT(0) + +/* DP Misc Control Register */ +#define SP_DP_MISC_CTRL_REG 0xcd +#define SP_EQ_TRAINING_LOOP BIT(6) + +/* DP Extra I2C Device Address Register */ +#define SP_DP_EXTRA_I2C_DEV_ADDR_REG 0xce +#define SP_I2C_STRETCH_DISABLE BIT(7) + +#define SP_I2C_EXTRA_ADDR 0x50 + +/* DP Downspread Control Register 1 */ +#define SP_DP_DOWNSPREAD_CTRL1_REG 0xd0 + +/* DP M Value Calculation Control Register */ +#define SP_DP_M_CALCULATION_CTRL_REG 0xd9 +#define SP_M_GEN_CLK_SEL BIT(0) + +/* AUX Channel Access Status Register */ +#define SP_AUX_CH_STATUS_REG 0xe0 +#define SP_AUX_STATUS 0x0f + +/* AUX Channel DEFER Control Register */ +#define SP_AUX_DEFER_CTRL_REG 0xe2 +#define SP_DEFER_CTRL_EN BIT(7) + +/* DP Buffer Data Count Register */ +#define SP_BUF_DATA_COUNT_REG 0xe4 +#define SP_BUF_DATA_COUNT_MASK 0x1f +#define SP_BUF_CLR BIT(7) + +/* DP AUX Channel Control Register 1 */ +#define SP_DP_AUX_CH_CTRL1_REG 0xe5 +#define SP_AUX_TX_COMM_MASK 0x0f +#define SP_AUX_LENGTH_MASK 0xf0 +#define SP_AUX_LENGTH_SHIFT 4 + +/* DP AUX CH Address Register 0 */ +#define SP_AUX_ADDR_7_0_REG 0xe6 + +/* DP AUX CH Address Register 1 */ +#define SP_AUX_ADDR_15_8_REG 0xe7 + +/* DP AUX CH Address Register 2 */ +#define SP_AUX_ADDR_19_16_REG 0xe8 +#define SP_AUX_ADDR_19_16_MASK 0x0f + +/* DP AUX Channel Control Register 2 */ +#define SP_DP_AUX_CH_CTRL2_REG 0xe9 +#define SP_AUX_SEL_RXCM BIT(6) +#define SP_AUX_CHSEL BIT(3) +#define SP_AUX_PN_INV BIT(2) +#define SP_ADDR_ONLY BIT(1) +#define SP_AUX_EN BIT(0) + +/* DP Video Stream Control InfoFrame Register */ +#define SP_DP_3D_VSC_CTRL_REG 0xea +#define SP_INFO_FRAME_VSC_EN BIT(0) + +/* DP Video Stream Data Byte 1 Register */ +#define SP_DP_VSC_DB1_REG 0xeb + +/* DP AUX Channel Control Register 3 */ +#define SP_DP_AUX_CH_CTRL3_REG 0xec +#define SP_WAIT_COUNTER_7_0_MASK 0xff + +/* DP AUX Channel Control Register 4 */ +#define SP_DP_AUX_CH_CTRL4_REG 0xed + +/* DP AUX Buffer Data Registers */ +#define SP_DP_BUF_DATA0_REG 0xf0 + +#endif --- /dev/null +++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h @@ -0,0 +1,231 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright(c) 2016, Analogix Semiconductor. All rights reserved. + */ +#ifndef _ANALOGIX_I2C_TXCOMMON_H_ +#define _ANALOGIX_I2C_TXCOMMON_H_ + +/***************************************************************/ +/* Register definitions for TX_P2 */ +/***************************************************************/ + +/* + * Core Register Definitions + */ + +/* Device ID Low Byte Register */ +#define SP_DEVICE_IDL_REG 0x02 + +/* Device ID High Byte Register */ +#define SP_DEVICE_IDH_REG 0x03 + +/* Device version register */ +#define SP_DEVICE_VERSION_REG 0x04 + +/* Power Down Control Register */ +#define SP_POWERDOWN_CTRL_REG 0x05 +#define SP_REGISTER_PD BIT(7) +#define SP_HDCP_PD BIT(5) +#define SP_AUDIO_PD BIT(4) +#define SP_VIDEO_PD BIT(3) +#define SP_LINK_PD BIT(2) +#define SP_TOTAL_PD BIT(1) + +/* Reset Control Register 1 */ +#define SP_RESET_CTRL1_REG 0x06 +#define SP_MISC_RST BIT(7) +#define SP_VIDCAP_RST BIT(6) +#define SP_VIDFIF_RST BIT(5) +#define SP_AUDFIF_RST BIT(4) +#define SP_AUDCAP_RST BIT(3) +#define SP_HDCP_RST BIT(2) +#define SP_SW_RST BIT(1) +#define SP_HW_RST BIT(0) + +/* Reset Control Register 2 */ +#define SP_RESET_CTRL2_REG 0x07 +#define SP_AUX_RST BIT(2) +#define SP_SERDES_FIFO_RST BIT(1) +#define SP_I2C_REG_RST BIT(0) + +/* Video Control Register 1 */ +#define SP_VID_CTRL1_REG 0x08 +#define SP_VIDEO_EN BIT(7) +#define SP_VIDEO_MUTE BIT(2) +#define SP_DE_GEN BIT(1) +#define SP_DEMUX BIT(0) + +/* Video Control Register 2 */ +#define SP_VID_CTRL2_REG 0x09 +#define SP_IN_COLOR_F_MASK 0x03 +#define SP_IN_YC_BIT_SEL BIT(2) +#define SP_IN_BPC_MASK 0x70 +#define SP_IN_BPC_SHIFT 4 +# define SP_IN_BPC_12BIT 0x03 +# define SP_IN_BPC_10BIT 0x02 +# define SP_IN_BPC_8BIT 0x01 +# define SP_IN_BPC_6BIT 0x00 +#define SP_IN_D_RANGE BIT(7) + +/* Video Control Register 3 */ +#define SP_VID_CTRL3_REG 0x0a +#define SP_HPD_OUT BIT(6) + +/* Video Control Register 5 */ +#define SP_VID_CTRL5_REG 0x0c +#define SP_CSC_STD_SEL BIT(7) +#define SP_XVYCC_RNG_LMT BIT(6) +#define SP_RANGE_Y2R BIT(5) +#define SP_CSPACE_Y2R BIT(4) +#define SP_RGB_RNG_LMT BIT(3) +#define SP_Y_RNG_LMT BIT(2) +#define SP_RANGE_R2Y BIT(1) +#define SP_CSPACE_R2Y BIT(0) + +/* Video Control Register 6 */ +#define SP_VID_CTRL6_REG 0x0d +#define SP_TEST_PATTERN_EN BIT(7) +#define SP_VIDEO_PROCESS_EN BIT(6) +#define SP_VID_US_MODE BIT(3) +#define SP_VID_DS_MODE BIT(2) +#define SP_UP_SAMPLE BIT(1) +#define SP_DOWN_SAMPLE BIT(0) + +/* Video Control Register 8 */ +#define SP_VID_CTRL8_REG 0x0f +#define SP_VID_VRES_TH BIT(0) + +/* Total Line Status Low Byte Register */ +#define SP_TOTAL_LINE_STAL_REG 0x24 + +/* Total Line Status High Byte Register */ +#define SP_TOTAL_LINE_STAH_REG 0x25 + +/* Active Line Status Low Byte Register */ +#define SP_ACT_LINE_STAL_REG 0x26 + +/* Active Line Status High Byte Register */ +#define SP_ACT_LINE_STAH_REG 0x27 + +/* Vertical Front Porch Status Register */ +#define SP_V_F_PORCH_STA_REG 0x28 + +/* Vertical SYNC Width Status Register */ +#define SP_V_SYNC_STA_REG 0x29 + +/* Vertical Back Porch Status Register */ +#define SP_V_B_PORCH_STA_REG 0x2a + +/* Total Pixel Status Low Byte Register */ +#define SP_TOTAL_PIXEL_STAL_REG 0x2b + +/* Total Pixel Status High Byte Register */ +#define SP_TOTAL_PIXEL_STAH_REG 0x2c + +/* Active Pixel Status Low Byte Register */ +#define SP_ACT_PIXEL_STAL_REG 0x2d + +/* Active Pixel Status High Byte Register */ +#define SP_ACT_PIXEL_STAH_REG 0x2e + +/* Horizontal Front Porch Status Low Byte Register */ +#define SP_H_F_PORCH_STAL_REG 0x2f + +/* Horizontal Front Porch Statys High Byte Register */ +#define SP_H_F_PORCH_STAH_REG 0x30 + +/* Horizontal SYNC Width Status Low Byte Register */ +#define SP_H_SYNC_STAL_REG 0x31 + +/* Horizontal SYNC Width Status High Byte Register */ +#define SP_H_SYNC_STAH_REG 0x32 + +/* Horizontal Back Porch Status Low Byte Register */ +#define SP_H_B_PORCH_STAL_REG 0x33 + +/* Horizontal Back Porch Status High Byte Register */ +#define SP_H_B_PORCH_STAH_REG 0x34 + +/* InfoFrame AVI Packet DB1 Register */ +#define SP_INFOFRAME_AVI_DB1_REG 0x70 + +/* Bit Control Specific Register */ +#define SP_BIT_CTRL_SPECIFIC_REG 0x80 +#define SP_BIT_CTRL_SELECT_SHIFT 1 +#define SP_ENABLE_BIT_CTRL BIT(0) + +/* InfoFrame Audio Packet DB1 Register */ +#define SP_INFOFRAME_AUD_DB1_REG 0x83 + +/* InfoFrame MPEG Packet DB1 Register */ +#define SP_INFOFRAME_MPEG_DB1_REG 0xb0 + +/* Audio Channel Status Registers */ +#define SP_AUD_CH_STATUS_BASE 0xd0 + +/* Audio Channel Num Register 5 */ +#define SP_I2S_CHANNEL_NUM_MASK 0xe0 +# define SP_I2S_CH_NUM_1 (0x00 << 5) +# define SP_I2S_CH_NUM_2 (0x01 << 5) +# define SP_I2S_CH_NUM_3 (0x02 << 5) +# define SP_I2S_CH_NUM_4 (0x03 << 5) +# define SP_I2S_CH_NUM_5 (0x04 << 5) +# define SP_I2S_CH_NUM_6 (0x05 << 5) +# define SP_I2S_CH_NUM_7 (0x06 << 5) +# define SP_I2S_CH_NUM_8 (0x07 << 5) +#define SP_EXT_VUCP BIT(2) +#define SP_VBIT BIT(1) +#define SP_AUDIO_LAYOUT BIT(0) + +/* Analog Debug Register 2 */ +#define SP_ANALOG_DEBUG2_REG 0xdd +#define SP_FORCE_SW_OFF_BYPASS 0x20 +#define SP_XTAL_FRQ 0x1c +# define SP_XTAL_FRQ_19M2 (0x00 << 2) +# define SP_XTAL_FRQ_24M (0x01 << 2) +# define SP_XTAL_FRQ_25M (0x02 << 2) +# define SP_XTAL_FRQ_26M (0x03 << 2) +# define SP_XTAL_FRQ_27M (0x04 << 2) +# define SP_XTAL_FRQ_38M4 (0x05 << 2) +# define SP_XTAL_FRQ_52M (0x06 << 2) +#define SP_POWERON_TIME_1P5MS 0x03 + +/* Analog Control 0 Register */ +#define SP_ANALOG_CTRL0_REG 0xe1 + +/* Common Interrupt Status Register 1 */ +#define SP_COMMON_INT_STATUS_BASE (0xf1 - 1) +#define SP_PLL_LOCK_CHG 0x40 + +/* Common Interrupt Status Register 2 */ +#define SP_COMMON_INT_STATUS2 0xf2 +#define SP_HDCP_AUTH_CHG BIT(1) +#define SP_HDCP_AUTH_DONE BIT(0) + +#define SP_HDCP_LINK_CHECK_FAIL BIT(0) + +/* Common Interrupt Status Register 4 */ +#define SP_COMMON_INT_STATUS4_REG 0xf4 +#define SP_HPD_IRQ BIT(6) +#define SP_HPD_ESYNC_ERR BIT(4) +#define SP_HPD_CHG BIT(2) +#define SP_HPD_LOST BIT(1) +#define SP_HPD_PLUG BIT(0) + +/* DP Interrupt Status Register */ +#define SP_DP_INT_STATUS1_REG 0xf7 +#define SP_TRAINING_FINISH BIT(5) +#define SP_POLLING_ERR BIT(4) + +/* Common Interrupt Mask Register */ +#define SP_COMMON_INT_MASK_BASE (0xf8 - 1) + +#define SP_COMMON_INT_MASK4_REG 0xfb + +/* DP Interrupts Mask Register */ +#define SP_DP_INT_MASK1_REG 0xfe + +/* Interrupt Control Register */ +#define SP_INT_CTRL_REG 0xff + +#endif /* _ANALOGIX_I2C_TXCOMMON_H_ */ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2138AC5DF61 for ; Tue, 5 Nov 2019 19:26:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E06D021882 for ; Tue, 5 Nov 2019 19:26:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E06D021882 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B70F36EB62; Tue, 5 Nov 2019 19:26:44 +0000 (UTC) Received: from verein.lst.de (verein.lst.de [213.95.11.211]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EC0E6E51A for ; Tue, 5 Nov 2019 17:33:38 +0000 (UTC) Received: by verein.lst.de (Postfix, from userid 2005) id 11A0668B05; Tue, 5 Nov 2019 18:33:33 +0100 (CET) Date: Tue, 5 Nov 2019 18:33:32 +0100 From: Torsten Duwe To: Maxime Ripard Subject: Re: [PATCH v5 2/7] drm/bridge: split some definitions of ANX78xx to dedicated headers Message-ID: <20191105173332.GA11570@lst.de> References: <20191104110400.F319F68BE1@verein.lst.de> <20191104110605.F012268BFE@verein.lst.de> <20191105104126.GC3876@gilmour.lan> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191105104126.GC3876@gilmour.lan> User-Agent: Mutt/1.5.17 (2007-11-01) X-Mailman-Approved-At: Tue, 05 Nov 2019 19:26:40 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, David Airlie , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Vasily Khoruzhick , Chen-Yu Tsai , Rob Herring , Thierry Reding , Laurent Pinchart , Harald Geyer , Sean Paul , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Icenowy Zheng Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191105173332.tW2G39s6lOOpadLs7pSEtN6fNFZudZ98ef9xR6o9Ssg@z> RnJvbTogSWNlbm93eSBaaGVuZyA8aWNlbm93eUBhb3NjLmlvPgoKU29tZSBkZWZpbml0aW9ucyBj dXJyZW50bHkgaW4gYW5hbG9naXgtYW54Nzh4eC5oIGFyZSBub3QgcmVzdHJpY3RlZCB0bwp0aGUg QU5YNzh4eCBzZXJpZXMsIGJ1dCBhbHNvIGFwcGxpY2FibGUgdG8gb3RoZXIgRGlzcGxheVBvcnQK dHJhbnNtaXR0ZXJzIGJ5IEFuYWxvZ2l4LgoKU3BsaXQgb3V0IHRoZW0gdG8gZGVkaWNhdGVkIGhl YWRlcnMsIGFuZCBtYWtlIGFuYWxvZ2l4LWFueDc4eHguaCBpbmNsdWRlCnRoZW0uCgpTaWduZWQt b2ZmLWJ5OiBJY2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFvc2MuaW8+ClNpZ25lZC1vZmYtYnk6IFZh c2lseSBLaG9ydXpoaWNrIDxhbmFyc291bEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRvcnN0 ZW4gRHV3ZSA8ZHV3ZUBzdXNlLmRlPgpSZXZpZXdlZC1ieTogQW5kcnplaiBIYWpkYSA8YS5oYWpk YUBzYW1zdW5nLmNvbT4KCi0tLQoKT24gVHVlLCBOb3YgMDUsIDIwMTkgYXQgMTE6NDE6MjZBTSAr MDEwMCwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiAKPiBUaGlzIG9uZSBkb2Vzbid0IGFwcGx5IG9u IGRybS1taXNjLW5leHQuIFRoZSBmaXggZG9lc24ndCBsb29rIHJlYWxseQo+IG9idmlvdXMgdG8g bWUsIGNhbiB5b3UgcmViYXNlIGFuZCByZXNlbmQgaXQ/CgpTdXJlLgpUaGUgc2V0IHdhcyBiYXNl ZCBvbiA1LjQtcmM1LCB3aGljaCBsYWNrcyAwMjU5MTBkYjgwNTdmIGZyb20gZHJtLW1pc2MtbmV4 dApZb3UnbGwgYWxzbyBoYXZlIHRvIApkaWZmIC1yIGFueDYzNDUtdjUvdjUtMDAwNS1kcm0tYnJp ZGdlLUFkZC1BbmFsb2dpeC1hbng2MzQ1LXN1cHBvcnQucGF0Y2ggYW54NjM0NS12NWEvdjUtMDAw NS1kcm0tYnJpZGdlLUFkZC1BbmFsb2dpeC1hbng2MzQ1LXN1cHBvcnQucGF0Y2gKMTE2LDExN2Mx MTYsMTE3CjwgKyAgICAgW0kyQ19JRFhfRFBUWF0gID0gQU5BTE9HSVhfSTJDX0RQVFgsCjwgKyAg ICAgW0kyQ19JRFhfVFhDT01dID0gQU5BTE9HSVhfSTJDX1RYQ09NTU9OLAotLS0KPiArICAgICBb STJDX0lEWF9EUFRYXSAgPSAweDcwLAo+ICsgICAgIFtJMkNfSURYX1RYQ09NXSA9IDB4NzIsCgpU byBtYWtlIGl0IGNvbXBpbGUsIHdpdGggdGhlIGNoYW5nZWQgY29kaW5nIHN0eWxlIG9mIDAyNTkx MGRiODA1N2YuCkNhbiB5b3UgY2hhbmdlIHRoYXQgb24gdGhlIGZseSBpbiA1Lzcgb3Igc2hhbGwg SSByZXNlbmQgdGhhdCwgdG9vPwoKCVRvcnN0ZW4KCi0tLQogZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9hbmFsb2dpeC9hbmFsb2dpeC1hbng3OHh4LmggfCA0NjEgKy0tLS0tLS0tLS0tLS0tLS0tLS0t CiAuLi4vZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXgtaTJjLWRwdHguaCAgICB8IDI0 NyArKysrKysrKysrKwogLi4uL2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXgtaTJjLXR4Y29t bW9uLmggICAgfCAyMzMgKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDgzIGluc2VydGlv bnMoKyksIDQ1OCBkZWxldGlvbnMoLSkKCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXgtYW54Nzh4eC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXgtYW54Nzh4eC5oCkBAIC02LDYgKzYsOSBAQAogI2lmbmRlZiBfX0FOWDc4 eHhfSAogI2RlZmluZSBfX0FOWDc4eHhfSAogCisjaW5jbHVkZSAiYW5hbG9naXgtaTJjLWRwdHgu aCIKKyNpbmNsdWRlICJhbmFsb2dpeC1pMmMtdHhjb21tb24uaCIKKwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFJl Z2lzdGVyIGRlZmluaXRpb25zIGZvciBSWF9QTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLwpAQCAtMjEwLDQ2MyArMjEzLDYgQEAKICNkZWZpbmUgU1BfU0VUX0FWTVVU RQkJCUJJVCgwKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwotLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIFRYX1Aw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIEhEQ1AgU3Rh dHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX1RYX0hEQ1BfU1RBVFVTX1JFRwkJMHgwMAotI2Rl ZmluZSBTUF9BVVRIX0ZBSUwJCQlCSVQoNSkKLSNkZWZpbmUgU1BfQVVUSEVOX1BBU1MJCQlCSVQo MSkKLQotLyogSERDUCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KLSNkZWZpbmUgU1BfSERDUF9DVFJM MF9SRUcJCTB4MDEKLSNkZWZpbmUgU1BfUlhfUkVQRUFURVIJCQlCSVQoNikKLSNkZWZpbmUgU1Bf UkVfQVVUSAkJCUJJVCg1KQotI2RlZmluZSBTUF9TV19BVVRIX09LCQkJQklUKDQpCi0jZGVmaW5l IFNQX0hBUkRfQVVUSF9FTgkJCUJJVCgzKQotI2RlZmluZSBTUF9IRENQX0VOQ19FTgkJCUJJVCgy KQotI2RlZmluZSBTUF9CS1NWX1NSTV9QQVNTCQlCSVQoMSkKLSNkZWZpbmUgU1BfS1NWTElTVF9W TEQJCQlCSVQoMCkKLS8qIEhEQ1AgRnVuY3Rpb24gRW5hYmxlZCAqLwotI2RlZmluZSBTUF9IRENQ X0ZVTkNUSU9OX0VOQUJMRUQJKEJJVCgwKSB8IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCgzKSkKLQot LyogSERDUCBSZWNlaXZlciBCU1RBVFVTIFJlZ2lzdGVyIDAgKi8KLSNkZWZpbmUJU1BfSERDUF9S WF9CU1RBVFVTMF9SRUcJCTB4MWIKLS8qIEhEQ1AgUmVjZWl2ZXIgQlNUQVRVUyBSZWdpc3RlciAx ICovCi0jZGVmaW5lCVNQX0hEQ1BfUlhfQlNUQVRVUzFfUkVHCQkweDFjCi0KLS8qIEhEQ1AgRW1i ZWRkZWQgIkJsdWUgU2NyZWVuIiBDb250ZW50IFJlZ2lzdGVycyAqLwotI2RlZmluZSBTUF9IRENQ X1ZJRDBfQkxVRV9TQ1JFRU5fUkVHCTB4MmMKLSNkZWZpbmUgU1BfSERDUF9WSUQxX0JMVUVfU0NS RUVOX1JFRwkweDJkCi0jZGVmaW5lIFNQX0hEQ1BfVklEMl9CTFVFX1NDUkVFTl9SRUcJMHgyZQot Ci0vKiBIRENQIFdhaXQgUjAgVGltaW5nIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0hEQ1BfV0FJ VF9SMF9USU1FX1JFRwkweDQwCi0KLS8qIEhEQ1AgTGluayBJbnRlZ3JpdHkgQ2hlY2sgVGltZXIg UmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSERDUF9MSU5LX0NIRUNLX1RJTUVSX1JFRwkweDQxCi0K LS8qIEhEQ1AgUmVwZWF0ZXIgUmVhZHkgV2FpdCBUaW1lciBSZWdpc3RlciAqLwotI2RlZmluZSBT UF9IRENQX1JQVFJfUkRZX1dBSVRfVElNRV9SRUcJMHg0MgotCi0vKiBIRENQIEF1dG8gVGltZXIg UmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSERDUF9BVVRPX1RJTUVSX1JFRwkJMHg1MQotCi0vKiBI RENQIEtleSBTdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSERDUF9LRVlfU1RBVFVTX1JF RwkJMHg1ZQotCi0vKiBIRENQIEtleSBDb21tYW5kIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0hE Q1BfS0VZX0NPTU1BTkRfUkVHCQkweDVmCi0jZGVmaW5lIFNQX0RJU0FCTEVfU1lOQ19IRENQCQlC SVQoMikKLQotLyogT1RQIE1lbW9yeSBLZXkgUHJvdGVjdGlvbiBSZWdpc3RlcnMgKi8KLSNkZWZp bmUgU1BfT1RQX0tFWV9QUk9URUNUMV9SRUcJCTB4NjAKLSNkZWZpbmUgU1BfT1RQX0tFWV9QUk9U RUNUMl9SRUcJCTB4NjEKLSNkZWZpbmUgU1BfT1RQX0tFWV9QUk9URUNUM19SRUcJCTB4NjIKLSNk ZWZpbmUgU1BfT1RQX1BTVzEJCQkweGEyCi0jZGVmaW5lIFNQX09UUF9QU1cyCQkJMHg3ZQotI2Rl ZmluZSBTUF9PVFBfUFNXMwkJCTB4YzYKLQotLyogRFAgU3lzdGVtIENvbnRyb2wgUmVnaXN0ZXJz ICovCi0jZGVmaW5lIFNQX0RQX1NZU1RFTV9DVFJMX0JBU0UJCSgweDgwIC0gMSkKLS8qIEJpdHMg Zm9yIERQIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyIDIgKi8KLSNkZWZpbmUgU1BfQ0hBX1NUQQkJ CUJJVCgyKQotLyogQml0cyBmb3IgRFAgU3lzdGVtIENvbnRyb2wgUmVnaXN0ZXIgMyAqLwotI2Rl ZmluZSBTUF9IUERfU1RBVFVTCQkJQklUKDYpCi0jZGVmaW5lIFNQX1NUUk1fVkFMSUQJCQlCSVQo MikKLS8qIEJpdHMgZm9yIERQIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyIDQgKi8KLSNkZWZpbmUg U1BfRU5IQU5DRURfTU9ERQkJQklUKDMpCi0KLS8qIERQIFZpZGVvIENvbnRyb2wgUmVnaXN0ZXIg Ki8KLSNkZWZpbmUgU1BfRFBfVklERU9fQ1RSTF9SRUcJCTB4ODQKLSNkZWZpbmUgU1BfQ09MT1Jf Rl9NQVNLCQkJMHgwNgotI2RlZmluZSBTUF9DT0xPUl9GX1NISUZUCQkxCi0jZGVmaW5lIFNQX0JQ Q19NQVNLCQkJMHhlMAotI2RlZmluZSBTUF9CUENfU0hJRlQJCQk1Ci0jICBkZWZpbmUgU1BfQlBD XzZCSVRTCQkJMHgwMAotIyAgZGVmaW5lIFNQX0JQQ184QklUUwkJCTB4MDEKLSMgIGRlZmluZSBT UF9CUENfMTBCSVRTCQkJMHgwMgotIyAgZGVmaW5lIFNQX0JQQ18xMkJJVFMJCQkweDAzCi0KLS8q IERQIEF1ZGlvIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfRFBfQVVESU9fQ1RSTF9S RUcJCTB4ODcKLSNkZWZpbmUgU1BfQVVEX0VOCQkJQklUKDApCi0KLS8qIDEwdXMgUHVsc2UgR2Vu ZXJhdGUgVGltZXIgUmVnaXN0ZXJzICovCi0jZGVmaW5lIFNQX0kyQ19HRU5fMTBVU19USU1FUjBf UkVHCTB4ODgKLSNkZWZpbmUgU1BfSTJDX0dFTl8xMFVTX1RJTUVSMV9SRUcJMHg4OQotCi0vKiBQ YWNrZXQgU2VuZCBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX1BBQ0tFVF9TRU5EX0NU UkxfUkVHCQkweDkwCi0jZGVmaW5lIFNQX0FVRF9JRl9VUAkJCUJJVCg3KQotI2RlZmluZSBTUF9B VklfSUZfVUQJCQlCSVQoNikKLSNkZWZpbmUgU1BfTVBFR19JRl9VRAkJCUJJVCg1KQotI2RlZmlu ZSBTUF9TUERfSUZfVUQJCQlCSVQoNCkKLSNkZWZpbmUgU1BfQVVEX0lGX0VOCQkJQklUKDMpCi0j ZGVmaW5lIFNQX0FWSV9JRl9FTgkJCUJJVCgyKQotI2RlZmluZSBTUF9NUEVHX0lGX0VOCQkJQklU KDEpCi0jZGVmaW5lIFNQX1NQRF9JRl9FTgkJCUJJVCgwKQotCi0vKiBEUCBIRENQIENvbnRyb2wg UmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfRFBfSERDUF9DVFJMX1JFRwkJMHg5MgotI2RlZmluZSBT UF9BVVRPX0VOCQkJQklUKDcpCi0jZGVmaW5lIFNQX0FVVE9fU1RBUlQJCQlCSVQoNSkKLSNkZWZp bmUgU1BfTElOS19QT0xMSU5HCQkJQklUKDEpCi0KLS8qIERQIE1haW4gTGluayBCYW5kd2lkdGgg U2V0dGluZyBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9EUF9NQUlOX0xJTktfQldfU0VUX1JFRwkw eGEwCi0jZGVmaW5lIFNQX0xJTktfQldfU0VUX01BU0sJCTB4MWYKLSNkZWZpbmUgU1BfSU5JVElB TF9TTElNX01fQVVEX1NFTAlCSVQoNSkKLQotLyogRFAgVHJhaW5pbmcgUGF0dGVybiBTZXQgUmVn aXN0ZXIgKi8KLSNkZWZpbmUgU1BfRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVRfUkVHCTB4YTIKLQot LyogRFAgTGFuZSAwIExpbmsgVHJhaW5pbmcgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBT UF9EUF9MQU5FMF9MVF9DVFJMX1JFRwkJMHhhMwotI2RlZmluZSBTUF9UWF9TV19TRVRfTUFTSwkJ MHgxYgotI2RlZmluZSBTUF9NQVhfUFJFX1JFQUNICQlCSVQoNSkKLSNkZWZpbmUgU1BfTUFYX0RS SVZFX1JFQUNICQlCSVQoNCkKLSNkZWZpbmUgU1BfUFJFX0VNUF9MRVZFTDEJCUJJVCgzKQotI2Rl ZmluZSBTUF9EUlZJRV9DVVJSRU5UX0xFVkVMMQkJQklUKDApCi0KLS8qIERQIExpbmsgVHJhaW5p bmcgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9EUF9MVF9DVFJMX1JFRwkJMHhhOAot I2RlZmluZSBTUF9MVF9FUlJPUl9UWVBFX01BU0sJCTB4NzAKLSMgIGRlZmluZSBTUF9MVF9OT19F UlJPUgkJMHgwMAotIyAgZGVmaW5lIFNQX0xUX0FVWF9XUklURV9FUlJPUgkJMHgwMQotIyAgZGVm aW5lIFNQX0xUX01BWF9EUklWRV9SRUFDSEVECTB4MDIKLSMgIGRlZmluZSBTUF9MVF9XUk9OR19M QU5FX0NPVU5UX1NFVAkweDAzCi0jICBkZWZpbmUgU1BfTFRfTE9PUF9TQU1FXzVfVElNRQkweDA0 Ci0jICBkZWZpbmUgU1BfTFRfQ1JfRkFJTF9JTl9FUQkJMHgwNQotIyAgZGVmaW5lIFNQX0xUX0VR X0xPT1BfNV9USU1FCQkweDA2Ci0jZGVmaW5lIFNQX0xUX0VOCQkJQklUKDApCi0KLS8qIERQIENF UCBUcmFpbmluZyBDb250cm9sIFJlZ2lzdGVycyAqLwotI2RlZmluZSBTUF9EUF9DRVBfVFJBSU5J TkdfQ1RSTDBfUkVHCTB4YTkKLSNkZWZpbmUgU1BfRFBfQ0VQX1RSQUlOSU5HX0NUUkwxX1JFRwkw eGFhCi0KLS8qIERQIERlYnVnIFJlZ2lzdGVyIDEgKi8KLSNkZWZpbmUgU1BfRFBfREVCVUcxX1JF RwkJMHhiMAotI2RlZmluZSBTUF9ERUJVR19QTExfTE9DSwkJQklUKDQpCi0jZGVmaW5lIFNQX1BP TExJTkdfRU4JCQlCSVQoMSkKLQotLyogRFAgUG9sbGluZyBDb250cm9sIFJlZ2lzdGVyICovCi0j ZGVmaW5lIFNQX0RQX1BPTExJTkdfQ1RSTF9SRUcJCTB4YjQKLSNkZWZpbmUgU1BfQVVUT19QT0xM SU5HX0RJU0FCTEUJCUJJVCgwKQotCi0vKiBEUCBMaW5rIERlYnVnIENvbnRyb2wgUmVnaXN0ZXIg Ki8KLSNkZWZpbmUgU1BfRFBfTElOS19ERUJVR19DVFJMX1JFRwkweGI4Ci0jZGVmaW5lIFNQX01f VklEX0RFQlVHCQkJQklUKDUpCi0jZGVmaW5lIFNQX05FV19QUkJTNwkJCUJJVCg0KQotI2RlZmlu ZSBTUF9JTlNFUlRfRVIJCQlCSVQoMSkKLSNkZWZpbmUgU1BfUFJCUzMxX0VOCQkJQklUKDApCi0K LS8qIEFVWCBNaXNjIGNvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfQVVYX01JU0NfQ1RS TF9SRUcJCTB4YmYKLQotLyogRFAgUExMIGNvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1Bf RFBfUExMX0NUUkxfUkVHCQkweGM3Ci0jZGVmaW5lIFNQX1BMTF9SU1QJCQlCSVQoNikKLQotLyog RFAgQW5hbG9nIFBvd2VyIERvd24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfRFBfQU5BTE9HX1BP V0VSX0RPV05fUkVHCTB4YzgKLSNkZWZpbmUgU1BfQ0gwX1BECQkJQklUKDApCi0KLS8qIERQIE1p c2MgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9EUF9NSVNDX0NUUkxfUkVHCQkweGNk Ci0jZGVmaW5lIFNQX0VRX1RSQUlOSU5HX0xPT1AJCUJJVCg2KQotCi0vKiBEUCBFeHRyYSBJMkMg RGV2aWNlIEFkZHJlc3MgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfRFBfRVhUUkFfSTJDX0RFVl9B RERSX1JFRwkweGNlCi0jZGVmaW5lIFNQX0kyQ19TVFJFVENIX0RJU0FCTEUJCUJJVCg3KQotCi0j ZGVmaW5lIFNQX0kyQ19FWFRSQV9BRERSCQkweDUwCi0KLS8qIERQIERvd25zcHJlYWQgQ29udHJv bCBSZWdpc3RlciAxICovCi0jZGVmaW5lIFNQX0RQX0RPV05TUFJFQURfQ1RSTDFfUkVHCTB4ZDAK LQotLyogRFAgTSBWYWx1ZSBDYWxjdWxhdGlvbiBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVmaW5l IFNQX0RQX01fQ0FMQ1VMQVRJT05fQ1RSTF9SRUcJMHhkOQotI2RlZmluZSBTUF9NX0dFTl9DTEtf U0VMCQlCSVQoMCkKLQotLyogQVVYIENoYW5uZWwgQWNjZXNzIFN0YXR1cyBSZWdpc3RlciAqLwot I2RlZmluZSBTUF9BVVhfQ0hfU1RBVFVTX1JFRwkJMHhlMAotI2RlZmluZSBTUF9BVVhfU1RBVFVT CQkJMHgwZgotCi0vKiBBVVggQ2hhbm5lbCBERUZFUiBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVm aW5lIFNQX0FVWF9ERUZFUl9DVFJMX1JFRwkJMHhlMgotI2RlZmluZSBTUF9ERUZFUl9DVFJMX0VO CQlCSVQoNykKLQotLyogRFAgQnVmZmVyIERhdGEgQ291bnQgUmVnaXN0ZXIgKi8KLSNkZWZpbmUg U1BfQlVGX0RBVEFfQ09VTlRfUkVHCQkweGU0Ci0jZGVmaW5lIFNQX0JVRl9EQVRBX0NPVU5UX01B U0sJCTB4MWYKLSNkZWZpbmUgU1BfQlVGX0NMUgkJCUJJVCg3KQotCi0vKiBEUCBBVVggQ2hhbm5l bCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KLSNkZWZpbmUgU1BfRFBfQVVYX0NIX0NUUkwxX1JFRwkJ MHhlNQotI2RlZmluZSBTUF9BVVhfVFhfQ09NTV9NQVNLCQkweDBmCi0jZGVmaW5lIFNQX0FVWF9M RU5HVEhfTUFTSwkJMHhmMAotI2RlZmluZSBTUF9BVVhfTEVOR1RIX1NISUZUCQk0Ci0KLS8qIERQ IEFVWCBDSCBBZGRyZXNzIFJlZ2lzdGVyIDAgKi8KLSNkZWZpbmUgU1BfQVVYX0FERFJfN18wX1JF RwkJMHhlNgotCi0vKiBEUCBBVVggQ0ggQWRkcmVzcyBSZWdpc3RlciAxICovCi0jZGVmaW5lIFNQ X0FVWF9BRERSXzE1XzhfUkVHCQkweGU3Ci0KLS8qIERQIEFVWCBDSCBBZGRyZXNzIFJlZ2lzdGVy IDIgKi8KLSNkZWZpbmUgU1BfQVVYX0FERFJfMTlfMTZfUkVHCQkweGU4Ci0jZGVmaW5lIFNQX0FV WF9BRERSXzE5XzE2X01BU0sJCTB4MGYKLQotLyogRFAgQVVYIENoYW5uZWwgQ29udHJvbCBSZWdp c3RlciAyICovCi0jZGVmaW5lIFNQX0RQX0FVWF9DSF9DVFJMMl9SRUcJCTB4ZTkKLSNkZWZpbmUg U1BfQVVYX1NFTF9SWENNCQkJQklUKDYpCi0jZGVmaW5lIFNQX0FVWF9DSFNFTAkJCUJJVCgzKQot I2RlZmluZSBTUF9BVVhfUE5fSU5WCQkJQklUKDIpCi0jZGVmaW5lIFNQX0FERFJfT05MWQkJCUJJ VCgxKQotI2RlZmluZSBTUF9BVVhfRU4JCQlCSVQoMCkKLQotLyogRFAgVmlkZW8gU3RyZWFtIENv bnRyb2wgSW5mb0ZyYW1lIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0RQXzNEX1ZTQ19DVFJMX1JF RwkJMHhlYQotI2RlZmluZSBTUF9JTkZPX0ZSQU1FX1ZTQ19FTgkJQklUKDApCi0KLS8qIERQIFZp ZGVvIFN0cmVhbSBEYXRhIEJ5dGUgMSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9EUF9WU0NfREIx X1JFRwkJMHhlYgotCi0vKiBEUCBBVVggQ2hhbm5lbCBDb250cm9sIFJlZ2lzdGVyIDMgKi8KLSNk ZWZpbmUgU1BfRFBfQVVYX0NIX0NUUkwzX1JFRwkJMHhlYwotI2RlZmluZSBTUF9XQUlUX0NPVU5U RVJfN18wX01BU0sJMHhmZgotCi0vKiBEUCBBVVggQ2hhbm5lbCBDb250cm9sIFJlZ2lzdGVyIDQg Ki8KLSNkZWZpbmUgU1BfRFBfQVVYX0NIX0NUUkw0X1JFRwkJMHhlZAotCi0vKiBEUCBBVVggQnVm ZmVyIERhdGEgUmVnaXN0ZXJzICovCi0jZGVmaW5lIFNQX0RQX0JVRl9EQVRBMF9SRUcJCTB4ZjAK LQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KLS8qIFJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBUWF9QMiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKgotICogQ29yZSBSZWdpc3RlciBE ZWZpbml0aW9ucwotICovCi0KLS8qIERldmljZSBJRCBMb3cgQnl0ZSBSZWdpc3RlciAqLwotI2Rl ZmluZSBTUF9ERVZJQ0VfSURMX1JFRwkJMHgwMgotCi0vKiBEZXZpY2UgSUQgSGlnaCBCeXRlIFJl Z2lzdGVyICovCi0jZGVmaW5lIFNQX0RFVklDRV9JREhfUkVHCQkweDAzCi0KLS8qIERldmljZSB2 ZXJzaW9uIHJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0RFVklDRV9WRVJTSU9OX1JFRwkJMHgwNAot Ci0vKiBQb3dlciBEb3duIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfUE9XRVJET1dO X0NUUkxfUkVHCQkweDA1Ci0jZGVmaW5lIFNQX1JFR0lTVEVSX1BECQkJQklUKDcpCi0jZGVmaW5l IFNQX0hEQ1BfUEQJCQlCSVQoNSkKLSNkZWZpbmUgU1BfQVVESU9fUEQJCQlCSVQoNCkKLSNkZWZp bmUgU1BfVklERU9fUEQJCQlCSVQoMykKLSNkZWZpbmUgU1BfTElOS19QRAkJCUJJVCgyKQotI2Rl ZmluZSBTUF9UT1RBTF9QRAkJCUJJVCgxKQotCi0vKiBSZXNldCBDb250cm9sIFJlZ2lzdGVyIDEg Ki8KLSNkZWZpbmUgU1BfUkVTRVRfQ1RSTDFfUkVHCQkweDA2Ci0jZGVmaW5lIFNQX01JU0NfUlNU CQkJQklUKDcpCi0jZGVmaW5lIFNQX1ZJRENBUF9SU1QJCQlCSVQoNikKLSNkZWZpbmUgU1BfVklE RklGX1JTVAkJCUJJVCg1KQotI2RlZmluZSBTUF9BVURGSUZfUlNUCQkJQklUKDQpCi0jZGVmaW5l IFNQX0FVRENBUF9SU1QJCQlCSVQoMykKLSNkZWZpbmUgU1BfSERDUF9SU1QJCQlCSVQoMikKLSNk ZWZpbmUgU1BfU1dfUlNUCQkJQklUKDEpCi0jZGVmaW5lIFNQX0hXX1JTVAkJCUJJVCgwKQotCi0v KiBSZXNldCBDb250cm9sIFJlZ2lzdGVyIDIgKi8KLSNkZWZpbmUgU1BfUkVTRVRfQ1RSTDJfUkVH CQkweDA3Ci0jZGVmaW5lIFNQX0FVWF9SU1QJCQlCSVQoMikKLSNkZWZpbmUgU1BfU0VSREVTX0ZJ Rk9fUlNUCQlCSVQoMSkKLSNkZWZpbmUgU1BfSTJDX1JFR19SU1QJCQlCSVQoMCkKLQotLyogVmlk ZW8gQ29udHJvbCBSZWdpc3RlciAxICovCi0jZGVmaW5lIFNQX1ZJRF9DVFJMMV9SRUcJCTB4MDgK LSNkZWZpbmUgU1BfVklERU9fRU4JCQlCSVQoNykKLSNkZWZpbmUgU1BfVklERU9fTVVURQkJCUJJ VCgyKQotI2RlZmluZSBTUF9ERV9HRU4JCQlCSVQoMSkKLSNkZWZpbmUgU1BfREVNVVgJCQlCSVQo MCkKLQotLyogVmlkZW8gQ29udHJvbCBSZWdpc3RlciAyICovCi0jZGVmaW5lIFNQX1ZJRF9DVFJM Ml9SRUcJCTB4MDkKLSNkZWZpbmUgU1BfSU5fQ09MT1JfRl9NQVNLCQkweDAzCi0jZGVmaW5lIFNQ X0lOX1lDX0JJVF9TRUwJCUJJVCgyKQotI2RlZmluZSBTUF9JTl9CUENfTUFTSwkJCTB4NzAKLSNk ZWZpbmUgU1BfSU5fQlBDX1NISUZUCQkJNAotIyAgZGVmaW5lIFNQX0lOX0JQQ18xMkJJVAkJMHgw MwotIyAgZGVmaW5lIFNQX0lOX0JQQ18xMEJJVAkJMHgwMgotIyAgZGVmaW5lIFNQX0lOX0JQQ184 QklUCQkweDAxCi0jICBkZWZpbmUgU1BfSU5fQlBDXzZCSVQJCTB4MDAKLSNkZWZpbmUgU1BfSU5f RF9SQU5HRQkJCUJJVCg3KQotCi0vKiBWaWRlbyBDb250cm9sIFJlZ2lzdGVyIDMgKi8KLSNkZWZp bmUgU1BfVklEX0NUUkwzX1JFRwkJMHgwYQotI2RlZmluZSBTUF9IUERfT1VUCQkJQklUKDYpCi0K LS8qIFZpZGVvIENvbnRyb2wgUmVnaXN0ZXIgNSAqLwotI2RlZmluZSBTUF9WSURfQ1RSTDVfUkVH CQkweDBjCi0jZGVmaW5lIFNQX0NTQ19TVERfU0VMCQkJQklUKDcpCi0jZGVmaW5lIFNQX1hWWUND X1JOR19MTVQJCUJJVCg2KQotI2RlZmluZSBTUF9SQU5HRV9ZMlIJCQlCSVQoNSkKLSNkZWZpbmUg U1BfQ1NQQUNFX1kyUgkJCUJJVCg0KQotI2RlZmluZSBTUF9SR0JfUk5HX0xNVAkJCUJJVCgzKQot I2RlZmluZSBTUF9ZX1JOR19MTVQJCQlCSVQoMikKLSNkZWZpbmUgU1BfUkFOR0VfUjJZCQkJQklU KDEpCi0jZGVmaW5lIFNQX0NTUEFDRV9SMlkJCQlCSVQoMCkKLQotLyogVmlkZW8gQ29udHJvbCBS ZWdpc3RlciA2ICovCi0jZGVmaW5lIFNQX1ZJRF9DVFJMNl9SRUcJCTB4MGQKLSNkZWZpbmUgU1Bf VEVTVF9QQVRURVJOX0VOCQlCSVQoNykKLSNkZWZpbmUgU1BfVklERU9fUFJPQ0VTU19FTgkJQklU KDYpCi0jZGVmaW5lIFNQX1ZJRF9VU19NT0RFCQkJQklUKDMpCi0jZGVmaW5lIFNQX1ZJRF9EU19N T0RFCQkJQklUKDIpCi0jZGVmaW5lIFNQX1VQX1NBTVBMRQkJCUJJVCgxKQotI2RlZmluZSBTUF9E T1dOX1NBTVBMRQkJCUJJVCgwKQotCi0vKiBWaWRlbyBDb250cm9sIFJlZ2lzdGVyIDggKi8KLSNk ZWZpbmUgU1BfVklEX0NUUkw4X1JFRwkJMHgwZgotI2RlZmluZSBTUF9WSURfVlJFU19USAkJCUJJ VCgwKQotCi0vKiBUb3RhbCBMaW5lIFN0YXR1cyBMb3cgQnl0ZSBSZWdpc3RlciAqLwotI2RlZmlu ZSBTUF9UT1RBTF9MSU5FX1NUQUxfUkVHCQkweDI0Ci0KLS8qIFRvdGFsIExpbmUgU3RhdHVzIEhp Z2ggQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9UT1RBTF9MSU5FX1NUQUhfUkVHCQkweDI1 Ci0KLS8qIEFjdGl2ZSBMaW5lIFN0YXR1cyBMb3cgQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBT UF9BQ1RfTElORV9TVEFMX1JFRwkJMHgyNgotCi0vKiBBY3RpdmUgTGluZSBTdGF0dXMgSGlnaCBC eXRlIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0FDVF9MSU5FX1NUQUhfUkVHCQkweDI3Ci0KLS8q IFZlcnRpY2FsIEZyb250IFBvcmNoIFN0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9WX0Zf UE9SQ0hfU1RBX1JFRwkJMHgyOAotCi0vKiBWZXJ0aWNhbCBTWU5DIFdpZHRoIFN0YXR1cyBSZWdp c3RlciAqLwotI2RlZmluZSBTUF9WX1NZTkNfU1RBX1JFRwkJMHgyOQotCi0vKiBWZXJ0aWNhbCBC YWNrIFBvcmNoIFN0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9WX0JfUE9SQ0hfU1RBX1JF RwkJMHgyYQotCi0vKiBUb3RhbCBQaXhlbCBTdGF0dXMgTG93IEJ5dGUgUmVnaXN0ZXIgKi8KLSNk ZWZpbmUgU1BfVE9UQUxfUElYRUxfU1RBTF9SRUcJCTB4MmIKLQotLyogVG90YWwgUGl4ZWwgU3Rh dHVzIEhpZ2ggQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9UT1RBTF9QSVhFTF9TVEFIX1JF RwkJMHgyYwotCi0vKiBBY3RpdmUgUGl4ZWwgU3RhdHVzIExvdyBCeXRlIFJlZ2lzdGVyICovCi0j ZGVmaW5lIFNQX0FDVF9QSVhFTF9TVEFMX1JFRwkJMHgyZAotCi0vKiBBY3RpdmUgUGl4ZWwgU3Rh dHVzIEhpZ2ggQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9BQ1RfUElYRUxfU1RBSF9SRUcJ CTB4MmUKLQotLyogSG9yaXpvbnRhbCBGcm9udCBQb3JjaCBTdGF0dXMgTG93IEJ5dGUgUmVnaXN0 ZXIgKi8KLSNkZWZpbmUgU1BfSF9GX1BPUkNIX1NUQUxfUkVHCQkweDJmCi0KLS8qIEhvcml6b250 YWwgRnJvbnQgUG9yY2ggU3RhdHlzIEhpZ2ggQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9I X0ZfUE9SQ0hfU1RBSF9SRUcJCTB4MzAKLQotLyogSG9yaXpvbnRhbCBTWU5DIFdpZHRoIFN0YXR1 cyBMb3cgQnl0ZSBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9IX1NZTkNfU1RBTF9SRUcJCTB4MzEK LQotLyogSG9yaXpvbnRhbCBTWU5DIFdpZHRoIFN0YXR1cyBIaWdoIEJ5dGUgUmVnaXN0ZXIgKi8K LSNkZWZpbmUgU1BfSF9TWU5DX1NUQUhfUkVHCQkweDMyCi0KLS8qIEhvcml6b250YWwgQmFjayBQ b3JjaCBTdGF0dXMgTG93IEJ5dGUgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSF9CX1BPUkNIX1NU QUxfUkVHCQkweDMzCi0KLS8qIEhvcml6b250YWwgQmFjayBQb3JjaCBTdGF0dXMgSGlnaCBCeXRl IFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0hfQl9QT1JDSF9TVEFIX1JFRwkJMHgzNAotCi0vKiBJ bmZvRnJhbWUgQVZJIFBhY2tldCBEQjEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSU5GT0ZSQU1F X0FWSV9EQjFfUkVHCTB4NzAKLQotLyogQml0IENvbnRyb2wgU3BlY2lmaWMgUmVnaXN0ZXIgKi8K LSNkZWZpbmUgU1BfQklUX0NUUkxfU1BFQ0lGSUNfUkVHCTB4ODAKLSNkZWZpbmUgU1BfQklUX0NU UkxfU0VMRUNUX1NISUZUCTEKLSNkZWZpbmUgU1BfRU5BQkxFX0JJVF9DVFJMCQlCSVQoMCkKLQot LyogSW5mb0ZyYW1lIEF1ZGlvIFBhY2tldCBEQjEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgU1BfSU5G T0ZSQU1FX0FVRF9EQjFfUkVHCTB4ODMKLQotLyogSW5mb0ZyYW1lIE1QRUcgUGFja2V0IERCMSBS ZWdpc3RlciAqLwotI2RlZmluZSBTUF9JTkZPRlJBTUVfTVBFR19EQjFfUkVHCTB4YjAKLQotLyog QXVkaW8gQ2hhbm5lbCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIFNQX0FVRF9DSF9TVEFU VVNfQkFTRQkJMHhkMAotCi0vKiBBdWRpbyBDaGFubmVsIE51bSBSZWdpc3RlciA1ICovCi0jZGVm aW5lIFNQX0kyU19DSEFOTkVMX05VTV9NQVNLCQkweGUwCi0jICBkZWZpbmUgU1BfSTJTX0NIX05V TV8xCQkoMHgwMCA8PCA1KQotIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1fMgkJKDB4MDEgPDwgNSkK LSMgIGRlZmluZSBTUF9JMlNfQ0hfTlVNXzMJCSgweDAyIDw8IDUpCi0jICBkZWZpbmUgU1BfSTJT X0NIX05VTV80CQkoMHgwMyA8PCA1KQotIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1fNQkJKDB4MDQg PDwgNSkKLSMgIGRlZmluZSBTUF9JMlNfQ0hfTlVNXzYJCSgweDA1IDw8IDUpCi0jICBkZWZpbmUg U1BfSTJTX0NIX05VTV83CQkoMHgwNiA8PCA1KQotIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1fOAkJ KDB4MDcgPDwgNSkKLSNkZWZpbmUgU1BfRVhUX1ZVQ1AJCQlCSVQoMikKLSNkZWZpbmUgU1BfVkJJ VAkJCQlCSVQoMSkKLSNkZWZpbmUgU1BfQVVESU9fTEFZT1VUCQkJQklUKDApCi0KLS8qIEFuYWxv ZyBEZWJ1ZyBSZWdpc3RlciAyICovCi0jZGVmaW5lIFNQX0FOQUxPR19ERUJVRzJfUkVHCQkweGRk Ci0jZGVmaW5lIFNQX0ZPUkNFX1NXX09GRl9CWVBBU1MJCTB4MjAKLSNkZWZpbmUgU1BfWFRBTF9G UlEJCQkweDFjCi0jICBkZWZpbmUgU1BfWFRBTF9GUlFfMTlNMgkJKDB4MDAgPDwgMikKLSMgIGRl ZmluZSBTUF9YVEFMX0ZSUV8yNE0JCSgweDAxIDw8IDIpCi0jICBkZWZpbmUgU1BfWFRBTF9GUlFf MjVNCQkoMHgwMiA8PCAyKQotIyAgZGVmaW5lIFNQX1hUQUxfRlJRXzI2TQkJKDB4MDMgPDwgMikK LSMgIGRlZmluZSBTUF9YVEFMX0ZSUV8yN00JCSgweDA0IDw8IDIpCi0jICBkZWZpbmUgU1BfWFRB TF9GUlFfMzhNNAkJKDB4MDUgPDwgMikKLSMgIGRlZmluZSBTUF9YVEFMX0ZSUV81Mk0JCSgweDA2 IDw8IDIpCi0jZGVmaW5lIFNQX1BPV0VST05fVElNRV8xUDVNUwkJMHgwMwotCi0vKiBBbmFsb2cg Q29udHJvbCAwIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0FOQUxPR19DVFJMMF9SRUcJCTB4ZTEK LQotLyogQ29tbW9uIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMSAqLwotI2RlZmluZSBTUF9D T01NT05fSU5UX1NUQVRVU19CQVNFCSgweGYxIC0gMSkKLSNkZWZpbmUgU1BfUExMX0xPQ0tfQ0hH CQkJMHg0MAotCi0vKiBDb21tb24gSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAyICovCi0jZGVm aW5lIFNQX0NPTU1PTl9JTlRfU1RBVFVTMgkJMHhmMgotI2RlZmluZSBTUF9IRENQX0FVVEhfQ0hH CQlCSVQoMSkKLSNkZWZpbmUgU1BfSERDUF9BVVRIX0RPTkUJCUJJVCgwKQotCi0jZGVmaW5lIFNQ X0hEQ1BfTElOS19DSEVDS19GQUlMCQlCSVQoMCkKLQotLyogQ29tbW9uIEludGVycnVwdCBTdGF0 dXMgUmVnaXN0ZXIgNCAqLwotI2RlZmluZSBTUF9DT01NT05fSU5UX1NUQVRVUzRfUkVHCTB4ZjQK LSNkZWZpbmUgU1BfSFBEX0lSUQkJCUJJVCg2KQotI2RlZmluZSBTUF9IUERfRVNZTkNfRVJSCQlC SVQoNCkKLSNkZWZpbmUgU1BfSFBEX0NIRwkJCUJJVCgyKQotI2RlZmluZSBTUF9IUERfTE9TVAkJ CUJJVCgxKQotI2RlZmluZSBTUF9IUERfUExVRwkJCUJJVCgwKQotCi0vKiBEUCBJbnRlcnJ1cHQg U3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFNQX0RQX0lOVF9TVEFUVVMxX1JFRwkJMHhmNwot I2RlZmluZSBTUF9UUkFJTklOR19GSU5JU0gJCUJJVCg1KQotI2RlZmluZSBTUF9QT0xMSU5HX0VS UgkJCUJJVCg0KQotCi0vKiBDb21tb24gSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIgKi8KLSNkZWZp bmUgU1BfQ09NTU9OX0lOVF9NQVNLX0JBU0UJCSgweGY4IC0gMSkKLQotI2RlZmluZSBTUF9DT01N T05fSU5UX01BU0s0X1JFRwkJMHhmYgotCi0vKiBEUCBJbnRlcnJ1cHRzIE1hc2sgUmVnaXN0ZXIg Ki8KLSNkZWZpbmUgU1BfRFBfSU5UX01BU0sxX1JFRwkJMHhmZQotCi0vKiBJbnRlcnJ1cHQgQ29u dHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBTUF9JTlRfQ1RSTF9SRUcJCQkweGZmCi0KLS8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCiAvKiBSZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgVFhfUDEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KIAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXgtaTJjLWRwdHguaApAQCAtMCwwICsxLDI0NSBA QAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoKKyAqIENv cHlyaWdodChjKSAyMDE2LCBBbmFsb2dpeCBTZW1pY29uZHVjdG9yLgorICoKKyAqIEJhc2VkIG9u IGFueDc4MDggZHJpdmVyIG9idGFpbmVkIGZyb20gY2hyb21lb3Mgd2l0aCBjb3B5cmlnaHQ6Cisg KiBDb3B5cmlnaHQoYykgMjAxMywgR29vZ2xlIEluYy4KKyAqLworI2lmbmRlZiBfQU5BTE9HSVhf STJDX0RQVFhfSF8KKyNkZWZpbmUgX0FOQUxPR0lYX0kyQ19EUFRYX0hfCisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisv KiBSZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgVFhfUDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworLyogSERDUCBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUg U1BfVFhfSERDUF9TVEFUVVNfUkVHCQkweDAwCisjZGVmaW5lIFNQX0FVVEhfRkFJTAkJCUJJVCg1 KQorI2RlZmluZSBTUF9BVVRIRU5fUEFTUwkJCUJJVCgxKQorCisvKiBIRENQIENvbnRyb2wgUmVn aXN0ZXIgMCAqLworI2RlZmluZSBTUF9IRENQX0NUUkwwX1JFRwkJMHgwMQorI2RlZmluZSBTUF9S WF9SRVBFQVRFUgkJCUJJVCg2KQorI2RlZmluZSBTUF9SRV9BVVRICQkJQklUKDUpCisjZGVmaW5l IFNQX1NXX0FVVEhfT0sJCQlCSVQoNCkKKyNkZWZpbmUgU1BfSEFSRF9BVVRIX0VOCQkJQklUKDMp CisjZGVmaW5lIFNQX0hEQ1BfRU5DX0VOCQkJQklUKDIpCisjZGVmaW5lIFNQX0JLU1ZfU1JNX1BB U1MJCUJJVCgxKQorI2RlZmluZSBTUF9LU1ZMSVNUX1ZMRAkJCUJJVCgwKQorLyogSERDUCBGdW5j dGlvbiBFbmFibGVkICovCisjZGVmaW5lIFNQX0hEQ1BfRlVOQ1RJT05fRU5BQkxFRAkoQklUKDAp IHwgQklUKDEpIHwgQklUKDIpIHwgQklUKDMpKQorCisvKiBIRENQIFJlY2VpdmVyIEJTVEFUVVMg UmVnaXN0ZXIgMCAqLworI2RlZmluZQlTUF9IRENQX1JYX0JTVEFUVVMwX1JFRwkJMHgxYgorLyog SERDUCBSZWNlaXZlciBCU1RBVFVTIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUJU1BfSERDUF9SWF9C U1RBVFVTMV9SRUcJCTB4MWMKKworLyogSERDUCBFbWJlZGRlZCAiQmx1ZSBTY3JlZW4iIENvbnRl bnQgUmVnaXN0ZXJzICovCisjZGVmaW5lIFNQX0hEQ1BfVklEMF9CTFVFX1NDUkVFTl9SRUcJMHgy YworI2RlZmluZSBTUF9IRENQX1ZJRDFfQkxVRV9TQ1JFRU5fUkVHCTB4MmQKKyNkZWZpbmUgU1Bf SERDUF9WSUQyX0JMVUVfU0NSRUVOX1JFRwkweDJlCisKKy8qIEhEQ1AgV2FpdCBSMCBUaW1pbmcg UmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfSERDUF9XQUlUX1IwX1RJTUVfUkVHCTB4NDAKKworLyog SERDUCBMaW5rIEludGVncml0eSBDaGVjayBUaW1lciBSZWdpc3RlciAqLworI2RlZmluZSBTUF9I RENQX0xJTktfQ0hFQ0tfVElNRVJfUkVHCTB4NDEKKworLyogSERDUCBSZXBlYXRlciBSZWFkeSBX YWl0IFRpbWVyIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0hEQ1BfUlBUUl9SRFlfV0FJVF9USU1F X1JFRwkweDQyCisKKy8qIEhEQ1AgQXV0byBUaW1lciBSZWdpc3RlciAqLworI2RlZmluZSBTUF9I RENQX0FVVE9fVElNRVJfUkVHCQkweDUxCisKKy8qIEhEQ1AgS2V5IFN0YXR1cyBSZWdpc3RlciAq LworI2RlZmluZSBTUF9IRENQX0tFWV9TVEFUVVNfUkVHCQkweDVlCisKKy8qIEhEQ1AgS2V5IENv bW1hbmQgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfSERDUF9LRVlfQ09NTUFORF9SRUcJCTB4NWYK KyNkZWZpbmUgU1BfRElTQUJMRV9TWU5DX0hEQ1AJCUJJVCgyKQorCisvKiBPVFAgTWVtb3J5IEtl eSBQcm90ZWN0aW9uIFJlZ2lzdGVycyAqLworI2RlZmluZSBTUF9PVFBfS0VZX1BST1RFQ1QxX1JF RwkJMHg2MAorI2RlZmluZSBTUF9PVFBfS0VZX1BST1RFQ1QyX1JFRwkJMHg2MQorI2RlZmluZSBT UF9PVFBfS0VZX1BST1RFQ1QzX1JFRwkJMHg2MgorI2RlZmluZSBTUF9PVFBfUFNXMQkJCTB4YTIK KyNkZWZpbmUgU1BfT1RQX1BTVzIJCQkweDdlCisjZGVmaW5lIFNQX09UUF9QU1czCQkJMHhjNgor CisvKiBEUCBTeXN0ZW0gQ29udHJvbCBSZWdpc3RlcnMgKi8KKyNkZWZpbmUgU1BfRFBfU1lTVEVN X0NUUkxfQkFTRQkJKDB4ODAgLSAxKQorLyogQml0cyBmb3IgRFAgU3lzdGVtIENvbnRyb2wgUmVn aXN0ZXIgMiAqLworI2RlZmluZSBTUF9DSEFfU1RBCQkJQklUKDIpCisvKiBCaXRzIGZvciBEUCBT eXN0ZW0gQ29udHJvbCBSZWdpc3RlciAzICovCisjZGVmaW5lIFNQX0hQRF9TVEFUVVMJCQlCSVQo NikKKyNkZWZpbmUgU1BfU1RSTV9WQUxJRAkJCUJJVCgyKQorLyogQml0cyBmb3IgRFAgU3lzdGVt IENvbnRyb2wgUmVnaXN0ZXIgNCAqLworI2RlZmluZSBTUF9FTkhBTkNFRF9NT0RFCQlCSVQoMykK KworLyogRFAgVmlkZW8gQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9EUF9WSURFT19D VFJMX1JFRwkJMHg4NAorI2RlZmluZSBTUF9DT0xPUl9GX01BU0sJCQkweDA2CisjZGVmaW5lIFNQ X0NPTE9SX0ZfU0hJRlQJCTEKKyNkZWZpbmUgU1BfQlBDX01BU0sJCQkweGUwCisjZGVmaW5lIFNQ X0JQQ19TSElGVAkJCTUKKyMgIGRlZmluZSBTUF9CUENfNkJJVFMJCQkweDAwCisjICBkZWZpbmUg U1BfQlBDXzhCSVRTCQkJMHgwMQorIyAgZGVmaW5lIFNQX0JQQ18xMEJJVFMJCQkweDAyCisjICBk ZWZpbmUgU1BfQlBDXzEyQklUUwkJCTB4MDMKKworLyogRFAgQXVkaW8gQ29udHJvbCBSZWdpc3Rl ciAqLworI2RlZmluZSBTUF9EUF9BVURJT19DVFJMX1JFRwkJMHg4NworI2RlZmluZSBTUF9BVURf RU4JCQlCSVQoMCkKKworLyogMTB1cyBQdWxzZSBHZW5lcmF0ZSBUaW1lciBSZWdpc3RlcnMgKi8K KyNkZWZpbmUgU1BfSTJDX0dFTl8xMFVTX1RJTUVSMF9SRUcJMHg4OAorI2RlZmluZSBTUF9JMkNf R0VOXzEwVVNfVElNRVIxX1JFRwkweDg5CisKKy8qIFBhY2tldCBTZW5kIENvbnRyb2wgUmVnaXN0 ZXIgKi8KKyNkZWZpbmUgU1BfUEFDS0VUX1NFTkRfQ1RSTF9SRUcJCTB4OTAKKyNkZWZpbmUgU1Bf QVVEX0lGX1VQCQkJQklUKDcpCisjZGVmaW5lIFNQX0FWSV9JRl9VRAkJCUJJVCg2KQorI2RlZmlu ZSBTUF9NUEVHX0lGX1VECQkJQklUKDUpCisjZGVmaW5lIFNQX1NQRF9JRl9VRAkJCUJJVCg0KQor I2RlZmluZSBTUF9BVURfSUZfRU4JCQlCSVQoMykKKyNkZWZpbmUgU1BfQVZJX0lGX0VOCQkJQklU KDIpCisjZGVmaW5lIFNQX01QRUdfSUZfRU4JCQlCSVQoMSkKKyNkZWZpbmUgU1BfU1BEX0lGX0VO CQkJQklUKDApCisKKy8qIERQIEhEQ1AgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9E UF9IRENQX0NUUkxfUkVHCQkweDkyCisjZGVmaW5lIFNQX0FVVE9fRU4JCQlCSVQoNykKKyNkZWZp bmUgU1BfQVVUT19TVEFSVAkJCUJJVCg1KQorI2RlZmluZSBTUF9MSU5LX1BPTExJTkcJCQlCSVQo MSkKKworLyogRFAgTWFpbiBMaW5rIEJhbmR3aWR0aCBTZXR0aW5nIFJlZ2lzdGVyICovCisjZGVm aW5lIFNQX0RQX01BSU5fTElOS19CV19TRVRfUkVHCTB4YTAKKyNkZWZpbmUgU1BfTElOS19CV19T RVRfTUFTSwkJMHgxZgorI2RlZmluZSBTUF9JTklUSUFMX1NMSU1fTV9BVURfU0VMCUJJVCg1KQor CisvKiBEUCBUcmFpbmluZyBQYXR0ZXJuIFNldCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9EUF9U UkFJTklOR19QQVRURVJOX1NFVF9SRUcJMHhhMgorCisvKiBEUCBMYW5lIDAgTGluayBUcmFpbmlu ZyBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0RQX0xBTkUwX0xUX0NUUkxfUkVHCQkw eGEzCisjZGVmaW5lIFNQX1RYX1NXX1NFVF9NQVNLCQkweDFiCisjZGVmaW5lIFNQX01BWF9QUkVf UkVBQ0gJCUJJVCg1KQorI2RlZmluZSBTUF9NQVhfRFJJVkVfUkVBQ0gJCUJJVCg0KQorI2RlZmlu ZSBTUF9QUkVfRU1QX0xFVkVMMQkJQklUKDMpCisjZGVmaW5lIFNQX0RSVklFX0NVUlJFTlRfTEVW RUwxCQlCSVQoMCkKKworLyogRFAgTGluayBUcmFpbmluZyBDb250cm9sIFJlZ2lzdGVyICovCisj ZGVmaW5lIFNQX0RQX0xUX0NUUkxfUkVHCQkweGE4CisjZGVmaW5lIFNQX0xUX0VSUk9SX1RZUEVf TUFTSwkJMHg3MAorIyAgZGVmaW5lIFNQX0xUX05PX0VSUk9SCQkweDAwCisjICBkZWZpbmUgU1Bf TFRfQVVYX1dSSVRFX0VSUk9SCQkweDAxCisjICBkZWZpbmUgU1BfTFRfTUFYX0RSSVZFX1JFQUNI RUQJMHgwMgorIyAgZGVmaW5lIFNQX0xUX1dST05HX0xBTkVfQ09VTlRfU0VUCTB4MDMKKyMgIGRl ZmluZSBTUF9MVF9MT09QX1NBTUVfNV9USU1FCTB4MDQKKyMgIGRlZmluZSBTUF9MVF9DUl9GQUlM X0lOX0VRCQkweDA1CisjICBkZWZpbmUgU1BfTFRfRVFfTE9PUF81X1RJTUUJCTB4MDYKKyNkZWZp bmUgU1BfTFRfRU4JCQlCSVQoMCkKKworLyogRFAgQ0VQIFRyYWluaW5nIENvbnRyb2wgUmVnaXN0 ZXJzICovCisjZGVmaW5lIFNQX0RQX0NFUF9UUkFJTklOR19DVFJMMF9SRUcJMHhhOQorI2RlZmlu ZSBTUF9EUF9DRVBfVFJBSU5JTkdfQ1RSTDFfUkVHCTB4YWEKKworLyogRFAgRGVidWcgUmVnaXN0 ZXIgMSAqLworI2RlZmluZSBTUF9EUF9ERUJVRzFfUkVHCQkweGIwCisjZGVmaW5lIFNQX0RFQlVH X1BMTF9MT0NLCQlCSVQoNCkKKyNkZWZpbmUgU1BfUE9MTElOR19FTgkJCUJJVCgxKQorCisvKiBE UCBQb2xsaW5nIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfRFBfUE9MTElOR19DVFJM X1JFRwkJMHhiNAorI2RlZmluZSBTUF9BVVRPX1BPTExJTkdfRElTQUJMRQkJQklUKDApCisKKy8q IERQIExpbmsgRGVidWcgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9EUF9MSU5LX0RF QlVHX0NUUkxfUkVHCTB4YjgKKyNkZWZpbmUgU1BfTV9WSURfREVCVUcJCQlCSVQoNSkKKyNkZWZp bmUgU1BfTkVXX1BSQlM3CQkJQklUKDQpCisjZGVmaW5lIFNQX0lOU0VSVF9FUgkJCUJJVCgxKQor I2RlZmluZSBTUF9QUkJTMzFfRU4JCQlCSVQoMCkKKworLyogQVVYIE1pc2MgY29udHJvbCBSZWdp c3RlciAqLworI2RlZmluZSBTUF9BVVhfTUlTQ19DVFJMX1JFRwkJMHhiZgorCisvKiBEUCBQTEwg Y29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9EUF9QTExfQ1RSTF9SRUcJCTB4YzcKKyNk ZWZpbmUgU1BfUExMX1JTVAkJCUJJVCg2KQorCisvKiBEUCBBbmFsb2cgUG93ZXIgRG93biBSZWdp c3RlciAqLworI2RlZmluZSBTUF9EUF9BTkFMT0dfUE9XRVJfRE9XTl9SRUcJMHhjOAorI2RlZmlu ZSBTUF9DSDBfUEQJCQlCSVQoMCkKKworLyogRFAgTWlzYyBDb250cm9sIFJlZ2lzdGVyICovCisj ZGVmaW5lIFNQX0RQX01JU0NfQ1RSTF9SRUcJCTB4Y2QKKyNkZWZpbmUgU1BfRVFfVFJBSU5JTkdf TE9PUAkJQklUKDYpCisKKy8qIERQIEV4dHJhIEkyQyBEZXZpY2UgQWRkcmVzcyBSZWdpc3RlciAq LworI2RlZmluZSBTUF9EUF9FWFRSQV9JMkNfREVWX0FERFJfUkVHCTB4Y2UKKyNkZWZpbmUgU1Bf STJDX1NUUkVUQ0hfRElTQUJMRQkJQklUKDcpCisKKyNkZWZpbmUgU1BfSTJDX0VYVFJBX0FERFIJ CTB4NTAKKworLyogRFAgRG93bnNwcmVhZCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUg U1BfRFBfRE9XTlNQUkVBRF9DVFJMMV9SRUcJMHhkMAorCisvKiBEUCBNIFZhbHVlIENhbGN1bGF0 aW9uIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfRFBfTV9DQUxDVUxBVElPTl9DVFJM X1JFRwkweGQ5CisjZGVmaW5lIFNQX01fR0VOX0NMS19TRUwJCUJJVCgwKQorCisvKiBBVVggQ2hh bm5lbCBBY2Nlc3MgU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0FVWF9DSF9TVEFUVVNf UkVHCQkweGUwCisjZGVmaW5lIFNQX0FVWF9TVEFUVVMJCQkweDBmCisKKy8qIEFVWCBDaGFubmVs IERFRkVSIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfQVVYX0RFRkVSX0NUUkxfUkVH CQkweGUyCisjZGVmaW5lIFNQX0RFRkVSX0NUUkxfRU4JCUJJVCg3KQorCisvKiBEUCBCdWZmZXIg RGF0YSBDb3VudCBSZWdpc3RlciAqLworI2RlZmluZSBTUF9CVUZfREFUQV9DT1VOVF9SRUcJCTB4 ZTQKKyNkZWZpbmUgU1BfQlVGX0RBVEFfQ09VTlRfTUFTSwkJMHgxZgorI2RlZmluZSBTUF9CVUZf Q0xSCQkJQklUKDcpCisKKy8qIERQIEFVWCBDaGFubmVsIENvbnRyb2wgUmVnaXN0ZXIgMSAqLwor I2RlZmluZSBTUF9EUF9BVVhfQ0hfQ1RSTDFfUkVHCQkweGU1CisjZGVmaW5lIFNQX0FVWF9UWF9D T01NX01BU0sJCTB4MGYKKyNkZWZpbmUgU1BfQVVYX0xFTkdUSF9NQVNLCQkweGYwCisjZGVmaW5l IFNQX0FVWF9MRU5HVEhfU0hJRlQJCTQKKworLyogRFAgQVVYIENIIEFkZHJlc3MgUmVnaXN0ZXIg MCAqLworI2RlZmluZSBTUF9BVVhfQUREUl83XzBfUkVHCQkweGU2CisKKy8qIERQIEFVWCBDSCBB ZGRyZXNzIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgU1BfQVVYX0FERFJfMTVfOF9SRUcJCTB4ZTcK KworLyogRFAgQVVYIENIIEFkZHJlc3MgUmVnaXN0ZXIgMiAqLworI2RlZmluZSBTUF9BVVhfQURE Ul8xOV8xNl9SRUcJCTB4ZTgKKyNkZWZpbmUgU1BfQVVYX0FERFJfMTlfMTZfTUFTSwkJMHgwZgor CisvKiBEUCBBVVggQ2hhbm5lbCBDb250cm9sIFJlZ2lzdGVyIDIgKi8KKyNkZWZpbmUgU1BfRFBf QVVYX0NIX0NUUkwyX1JFRwkJMHhlOQorI2RlZmluZSBTUF9BVVhfU0VMX1JYQ00JCQlCSVQoNikK KyNkZWZpbmUgU1BfQVVYX0NIU0VMCQkJQklUKDMpCisjZGVmaW5lIFNQX0FVWF9QTl9JTlYJCQlC SVQoMikKKyNkZWZpbmUgU1BfQUREUl9PTkxZCQkJQklUKDEpCisjZGVmaW5lIFNQX0FVWF9FTgkJ CUJJVCgwKQorCisvKiBEUCBWaWRlbyBTdHJlYW0gQ29udHJvbCBJbmZvRnJhbWUgUmVnaXN0ZXIg Ki8KKyNkZWZpbmUgU1BfRFBfM0RfVlNDX0NUUkxfUkVHCQkweGVhCisjZGVmaW5lIFNQX0lORk9f RlJBTUVfVlNDX0VOCQlCSVQoMCkKKworLyogRFAgVmlkZW8gU3RyZWFtIERhdGEgQnl0ZSAxIFJl Z2lzdGVyICovCisjZGVmaW5lIFNQX0RQX1ZTQ19EQjFfUkVHCQkweGViCisKKy8qIERQIEFVWCBD aGFubmVsIENvbnRyb2wgUmVnaXN0ZXIgMyAqLworI2RlZmluZSBTUF9EUF9BVVhfQ0hfQ1RSTDNf UkVHCQkweGVjCisjZGVmaW5lIFNQX1dBSVRfQ09VTlRFUl83XzBfTUFTSwkweGZmCisKKy8qIERQ IEFVWCBDaGFubmVsIENvbnRyb2wgUmVnaXN0ZXIgNCAqLworI2RlZmluZSBTUF9EUF9BVVhfQ0hf Q1RSTDRfUkVHCQkweGVkCisKKy8qIERQIEFVWCBCdWZmZXIgRGF0YSBSZWdpc3RlcnMgKi8KKyNk ZWZpbmUgU1BfRFBfQlVGX0RBVEEwX1JFRwkJMHhmMAorCisjZW5kaWYKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4LWkyYy10eGNvbW1v bi5oCkBAIC0wLDAgKzEsMjMxIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5ICovCisvKgorICogQ29weXJpZ2h0KGMpIDIwMTYsIEFuYWxvZ2l4IFNlbWljb25kdWN0 b3IuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKyNpZm5kZWYgX0FOQUxPR0lYX0kyQ19UWENP TU1PTl9IXworI2RlZmluZSBfQU5BTE9HSVhfSTJDX1RYQ09NTU9OX0hfCisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisv KiBSZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgVFhfUDIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworLyoKKyAqIENvcmUgUmVnaXN0ZXIgRGVmaW5pdGlvbnMKKyAq LworCisvKiBEZXZpY2UgSUQgTG93IEJ5dGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfREVWSUNF X0lETF9SRUcJCTB4MDIKKworLyogRGV2aWNlIElEIEhpZ2ggQnl0ZSBSZWdpc3RlciAqLworI2Rl ZmluZSBTUF9ERVZJQ0VfSURIX1JFRwkJMHgwMworCisvKiBEZXZpY2UgdmVyc2lvbiByZWdpc3Rl ciAqLworI2RlZmluZSBTUF9ERVZJQ0VfVkVSU0lPTl9SRUcJCTB4MDQKKworLyogUG93ZXIgRG93 biBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX1BPV0VSRE9XTl9DVFJMX1JFRwkJMHgw NQorI2RlZmluZSBTUF9SRUdJU1RFUl9QRAkJCUJJVCg3KQorI2RlZmluZSBTUF9IRENQX1BECQkJ QklUKDUpCisjZGVmaW5lIFNQX0FVRElPX1BECQkJQklUKDQpCisjZGVmaW5lIFNQX1ZJREVPX1BE CQkJQklUKDMpCisjZGVmaW5lIFNQX0xJTktfUEQJCQlCSVQoMikKKyNkZWZpbmUgU1BfVE9UQUxf UEQJCQlCSVQoMSkKKworLyogUmVzZXQgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIFNQ X1JFU0VUX0NUUkwxX1JFRwkJMHgwNgorI2RlZmluZSBTUF9NSVNDX1JTVAkJCUJJVCg3KQorI2Rl ZmluZSBTUF9WSURDQVBfUlNUCQkJQklUKDYpCisjZGVmaW5lIFNQX1ZJREZJRl9SU1QJCQlCSVQo NSkKKyNkZWZpbmUgU1BfQVVERklGX1JTVAkJCUJJVCg0KQorI2RlZmluZSBTUF9BVURDQVBfUlNU CQkJQklUKDMpCisjZGVmaW5lIFNQX0hEQ1BfUlNUCQkJQklUKDIpCisjZGVmaW5lIFNQX1NXX1JT VAkJCUJJVCgxKQorI2RlZmluZSBTUF9IV19SU1QJCQlCSVQoMCkKKworLyogUmVzZXQgQ29udHJv bCBSZWdpc3RlciAyICovCisjZGVmaW5lIFNQX1JFU0VUX0NUUkwyX1JFRwkJMHgwNworI2RlZmlu ZSBTUF9BVVhfUlNUCQkJQklUKDIpCisjZGVmaW5lIFNQX1NFUkRFU19GSUZPX1JTVAkJQklUKDEp CisjZGVmaW5lIFNQX0kyQ19SRUdfUlNUCQkJQklUKDApCisKKy8qIFZpZGVvIENvbnRyb2wgUmVn aXN0ZXIgMSAqLworI2RlZmluZSBTUF9WSURfQ1RSTDFfUkVHCQkweDA4CisjZGVmaW5lIFNQX1ZJ REVPX0VOCQkJQklUKDcpCisjZGVmaW5lIFNQX1ZJREVPX01VVEUJCQlCSVQoMikKKyNkZWZpbmUg U1BfREVfR0VOCQkJQklUKDEpCisjZGVmaW5lIFNQX0RFTVVYCQkJQklUKDApCisKKy8qIFZpZGVv IENvbnRyb2wgUmVnaXN0ZXIgMiAqLworI2RlZmluZSBTUF9WSURfQ1RSTDJfUkVHCQkweDA5Cisj ZGVmaW5lIFNQX0lOX0NPTE9SX0ZfTUFTSwkJMHgwMworI2RlZmluZSBTUF9JTl9ZQ19CSVRfU0VM CQlCSVQoMikKKyNkZWZpbmUgU1BfSU5fQlBDX01BU0sJCQkweDcwCisjZGVmaW5lIFNQX0lOX0JQ Q19TSElGVAkJCTQKKyMgIGRlZmluZSBTUF9JTl9CUENfMTJCSVQJCTB4MDMKKyMgIGRlZmluZSBT UF9JTl9CUENfMTBCSVQJCTB4MDIKKyMgIGRlZmluZSBTUF9JTl9CUENfOEJJVAkJMHgwMQorIyAg ZGVmaW5lIFNQX0lOX0JQQ182QklUCQkweDAwCisjZGVmaW5lIFNQX0lOX0RfUkFOR0UJCQlCSVQo NykKKworLyogVmlkZW8gQ29udHJvbCBSZWdpc3RlciAzICovCisjZGVmaW5lIFNQX1ZJRF9DVFJM M19SRUcJCTB4MGEKKyNkZWZpbmUgU1BfSFBEX09VVAkJCUJJVCg2KQorCisvKiBWaWRlbyBDb250 cm9sIFJlZ2lzdGVyIDUgKi8KKyNkZWZpbmUgU1BfVklEX0NUUkw1X1JFRwkJMHgwYworI2RlZmlu ZSBTUF9DU0NfU1REX1NFTAkJCUJJVCg3KQorI2RlZmluZSBTUF9YVllDQ19STkdfTE1UCQlCSVQo NikKKyNkZWZpbmUgU1BfUkFOR0VfWTJSCQkJQklUKDUpCisjZGVmaW5lIFNQX0NTUEFDRV9ZMlIJ CQlCSVQoNCkKKyNkZWZpbmUgU1BfUkdCX1JOR19MTVQJCQlCSVQoMykKKyNkZWZpbmUgU1BfWV9S TkdfTE1UCQkJQklUKDIpCisjZGVmaW5lIFNQX1JBTkdFX1IyWQkJCUJJVCgxKQorI2RlZmluZSBT UF9DU1BBQ0VfUjJZCQkJQklUKDApCisKKy8qIFZpZGVvIENvbnRyb2wgUmVnaXN0ZXIgNiAqLwor I2RlZmluZSBTUF9WSURfQ1RSTDZfUkVHCQkweDBkCisjZGVmaW5lIFNQX1RFU1RfUEFUVEVSTl9F TgkJQklUKDcpCisjZGVmaW5lIFNQX1ZJREVPX1BST0NFU1NfRU4JCUJJVCg2KQorI2RlZmluZSBT UF9WSURfVVNfTU9ERQkJCUJJVCgzKQorI2RlZmluZSBTUF9WSURfRFNfTU9ERQkJCUJJVCgyKQor I2RlZmluZSBTUF9VUF9TQU1QTEUJCQlCSVQoMSkKKyNkZWZpbmUgU1BfRE9XTl9TQU1QTEUJCQlC SVQoMCkKKworLyogVmlkZW8gQ29udHJvbCBSZWdpc3RlciA4ICovCisjZGVmaW5lIFNQX1ZJRF9D VFJMOF9SRUcJCTB4MGYKKyNkZWZpbmUgU1BfVklEX1ZSRVNfVEgJCQlCSVQoMCkKKworLyogVG90 YWwgTGluZSBTdGF0dXMgTG93IEJ5dGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfVE9UQUxfTElO RV9TVEFMX1JFRwkJMHgyNAorCisvKiBUb3RhbCBMaW5lIFN0YXR1cyBIaWdoIEJ5dGUgUmVnaXN0 ZXIgKi8KKyNkZWZpbmUgU1BfVE9UQUxfTElORV9TVEFIX1JFRwkJMHgyNQorCisvKiBBY3RpdmUg TGluZSBTdGF0dXMgTG93IEJ5dGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfQUNUX0xJTkVfU1RB TF9SRUcJCTB4MjYKKworLyogQWN0aXZlIExpbmUgU3RhdHVzIEhpZ2ggQnl0ZSBSZWdpc3RlciAq LworI2RlZmluZSBTUF9BQ1RfTElORV9TVEFIX1JFRwkJMHgyNworCisvKiBWZXJ0aWNhbCBGcm9u dCBQb3JjaCBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfVl9GX1BPUkNIX1NUQV9SRUcJ CTB4MjgKKworLyogVmVydGljYWwgU1lOQyBXaWR0aCBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZp bmUgU1BfVl9TWU5DX1NUQV9SRUcJCTB4MjkKKworLyogVmVydGljYWwgQmFjayBQb3JjaCBTdGF0 dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfVl9CX1BPUkNIX1NUQV9SRUcJCTB4MmEKKworLyog VG90YWwgUGl4ZWwgU3RhdHVzIExvdyBCeXRlIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX1RPVEFM X1BJWEVMX1NUQUxfUkVHCQkweDJiCisKKy8qIFRvdGFsIFBpeGVsIFN0YXR1cyBIaWdoIEJ5dGUg UmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfVE9UQUxfUElYRUxfU1RBSF9SRUcJCTB4MmMKKworLyog QWN0aXZlIFBpeGVsIFN0YXR1cyBMb3cgQnl0ZSBSZWdpc3RlciAqLworI2RlZmluZSBTUF9BQ1Rf UElYRUxfU1RBTF9SRUcJCTB4MmQKKworLyogQWN0aXZlIFBpeGVsIFN0YXR1cyBIaWdoIEJ5dGUg UmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfQUNUX1BJWEVMX1NUQUhfUkVHCQkweDJlCisKKy8qIEhv cml6b250YWwgRnJvbnQgUG9yY2ggU3RhdHVzIExvdyBCeXRlIFJlZ2lzdGVyICovCisjZGVmaW5l IFNQX0hfRl9QT1JDSF9TVEFMX1JFRwkJMHgyZgorCisvKiBIb3Jpem9udGFsIEZyb250IFBvcmNo IFN0YXR5cyBIaWdoIEJ5dGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU1BfSF9GX1BPUkNIX1NUQUhf UkVHCQkweDMwCisKKy8qIEhvcml6b250YWwgU1lOQyBXaWR0aCBTdGF0dXMgTG93IEJ5dGUgUmVn aXN0ZXIgKi8KKyNkZWZpbmUgU1BfSF9TWU5DX1NUQUxfUkVHCQkweDMxCisKKy8qIEhvcml6b250 YWwgU1lOQyBXaWR0aCBTdGF0dXMgSGlnaCBCeXRlIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0hf U1lOQ19TVEFIX1JFRwkJMHgzMgorCisvKiBIb3Jpem9udGFsIEJhY2sgUG9yY2ggU3RhdHVzIExv dyBCeXRlIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0hfQl9QT1JDSF9TVEFMX1JFRwkJMHgzMwor CisvKiBIb3Jpem9udGFsIEJhY2sgUG9yY2ggU3RhdHVzIEhpZ2ggQnl0ZSBSZWdpc3RlciAqLwor I2RlZmluZSBTUF9IX0JfUE9SQ0hfU1RBSF9SRUcJCTB4MzQKKworLyogSW5mb0ZyYW1lIEFWSSBQ YWNrZXQgREIxIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0lORk9GUkFNRV9BVklfREIxX1JFRwkw eDcwCisKKy8qIEJpdCBDb250cm9sIFNwZWNpZmljIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0JJ VF9DVFJMX1NQRUNJRklDX1JFRwkweDgwCisjZGVmaW5lIFNQX0JJVF9DVFJMX1NFTEVDVF9TSElG VAkxCisjZGVmaW5lIFNQX0VOQUJMRV9CSVRfQ1RSTAkJQklUKDApCisKKy8qIEluZm9GcmFtZSBB dWRpbyBQYWNrZXQgREIxIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0lORk9GUkFNRV9BVURfREIx X1JFRwkweDgzCisKKy8qIEluZm9GcmFtZSBNUEVHIFBhY2tldCBEQjEgUmVnaXN0ZXIgKi8KKyNk ZWZpbmUgU1BfSU5GT0ZSQU1FX01QRUdfREIxX1JFRwkweGIwCisKKy8qIEF1ZGlvIENoYW5uZWwg U3RhdHVzIFJlZ2lzdGVycyAqLworI2RlZmluZSBTUF9BVURfQ0hfU1RBVFVTX0JBU0UJCTB4ZDAK KworLyogQXVkaW8gQ2hhbm5lbCBOdW0gUmVnaXN0ZXIgNSAqLworI2RlZmluZSBTUF9JMlNfQ0hB Tk5FTF9OVU1fTUFTSwkJMHhlMAorIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1fMQkJKDB4MDAgPDwg NSkKKyMgIGRlZmluZSBTUF9JMlNfQ0hfTlVNXzIJCSgweDAxIDw8IDUpCisjICBkZWZpbmUgU1Bf STJTX0NIX05VTV8zCQkoMHgwMiA8PCA1KQorIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1fNAkJKDB4 MDMgPDwgNSkKKyMgIGRlZmluZSBTUF9JMlNfQ0hfTlVNXzUJCSgweDA0IDw8IDUpCisjICBkZWZp bmUgU1BfSTJTX0NIX05VTV82CQkoMHgwNSA8PCA1KQorIyAgZGVmaW5lIFNQX0kyU19DSF9OVU1f NwkJKDB4MDYgPDwgNSkKKyMgIGRlZmluZSBTUF9JMlNfQ0hfTlVNXzgJCSgweDA3IDw8IDUpCisj ZGVmaW5lIFNQX0VYVF9WVUNQCQkJQklUKDIpCisjZGVmaW5lIFNQX1ZCSVQJCQkJQklUKDEpCisj ZGVmaW5lIFNQX0FVRElPX0xBWU9VVAkJCUJJVCgwKQorCisvKiBBbmFsb2cgRGVidWcgUmVnaXN0 ZXIgMiAqLworI2RlZmluZSBTUF9BTkFMT0dfREVCVUcyX1JFRwkJMHhkZAorI2RlZmluZSBTUF9G T1JDRV9TV19PRkZfQllQQVNTCQkweDIwCisjZGVmaW5lIFNQX1hUQUxfRlJRCQkJMHgxYworIyAg ZGVmaW5lIFNQX1hUQUxfRlJRXzE5TTIJCSgweDAwIDw8IDIpCisjICBkZWZpbmUgU1BfWFRBTF9G UlFfMjRNCQkoMHgwMSA8PCAyKQorIyAgZGVmaW5lIFNQX1hUQUxfRlJRXzI1TQkJKDB4MDIgPDwg MikKKyMgIGRlZmluZSBTUF9YVEFMX0ZSUV8yNk0JCSgweDAzIDw8IDIpCisjICBkZWZpbmUgU1Bf WFRBTF9GUlFfMjdNCQkoMHgwNCA8PCAyKQorIyAgZGVmaW5lIFNQX1hUQUxfRlJRXzM4TTQJCSgw eDA1IDw8IDIpCisjICBkZWZpbmUgU1BfWFRBTF9GUlFfNTJNCQkoMHgwNiA8PCAyKQorI2RlZmlu ZSBTUF9QT1dFUk9OX1RJTUVfMVA1TVMJCTB4MDMKKworLyogQW5hbG9nIENvbnRyb2wgMCBSZWdp c3RlciAqLworI2RlZmluZSBTUF9BTkFMT0dfQ1RSTDBfUkVHCQkweGUxCisKKy8qIENvbW1vbiBJ bnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgU1BfQ09NTU9OX0lOVF9TVEFU VVNfQkFTRQkoMHhmMSAtIDEpCisjZGVmaW5lIFNQX1BMTF9MT0NLX0NIRwkJCTB4NDAKKworLyog Q29tbW9uIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMiAqLworI2RlZmluZSBTUF9DT01NT05f SU5UX1NUQVRVUzIJCTB4ZjIKKyNkZWZpbmUgU1BfSERDUF9BVVRIX0NIRwkJQklUKDEpCisjZGVm aW5lIFNQX0hEQ1BfQVVUSF9ET05FCQlCSVQoMCkKKworI2RlZmluZSBTUF9IRENQX0xJTktfQ0hF Q0tfRkFJTAkJQklUKDApCisKKy8qIENvbW1vbiBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIDQg Ki8KKyNkZWZpbmUgU1BfQ09NTU9OX0lOVF9TVEFUVVM0X1JFRwkweGY0CisjZGVmaW5lIFNQX0hQ RF9JUlEJCQlCSVQoNikKKyNkZWZpbmUgU1BfSFBEX0VTWU5DX0VSUgkJQklUKDQpCisjZGVmaW5l IFNQX0hQRF9DSEcJCQlCSVQoMikKKyNkZWZpbmUgU1BfSFBEX0xPU1QJCQlCSVQoMSkKKyNkZWZp bmUgU1BfSFBEX1BMVUcJCQlCSVQoMCkKKworLyogRFAgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rl ciAqLworI2RlZmluZSBTUF9EUF9JTlRfU1RBVFVTMV9SRUcJCTB4ZjcKKyNkZWZpbmUgU1BfVFJB SU5JTkdfRklOSVNICQlCSVQoNSkKKyNkZWZpbmUgU1BfUE9MTElOR19FUlIJCQlCSVQoNCkKKwor LyogQ29tbW9uIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQX0NPTU1PTl9J TlRfTUFTS19CQVNFCQkoMHhmOCAtIDEpCisKKyNkZWZpbmUgU1BfQ09NTU9OX0lOVF9NQVNLNF9S RUcJCTB4ZmIKKworLyogRFAgSW50ZXJydXB0cyBNYXNrIFJlZ2lzdGVyICovCisjZGVmaW5lIFNQ X0RQX0lOVF9NQVNLMV9SRUcJCTB4ZmUKKworLyogSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIg Ki8KKyNkZWZpbmUgU1BfSU5UX0NUUkxfUkVHCQkJMHhmZgorCisjZW5kaWYgLyogX0FOQUxPR0lY X0kyQ19UWENPTU1PTl9IXyAqLwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=