Giter VIP home page Giter VIP logo

ines-hpmm / linux-l4t Goto Github PK

View Code? Open in Web Editor NEW
20.0 10.0 17.0 772.74 MB

Linux kernel 3.10 forked from Nvidia Linux4Tegra for the TX1. Branches for L4T 24.2.1. Also available: 23.1 (DEPRECATED), 24.1 (DEPRECATED).

Home Page: https://blog.zhaw.ch/high-performance/

License: Other

Makefile 0.28% C 95.25% Assembly 2.00% C++ 2.03% Objective-C 0.25% Shell 0.03% Perl 0.09% Awk 0.01% SourcePawn 0.01% Python 0.02% Yacc 0.02% Lex 0.01% M4 0.01% Groff 0.01% UnrealScript 0.01% Scilab 0.01% ASP 0.01% GDB 0.01%
linux kernel nvidia tx1 hdmi csi hdmi2csi linux4tegra

linux-l4t's Issues

Capturing on HDMI-B must be disabled

A problem during initialization of the TC358840 on HDMI Input B fails. This causes the driver to abort initialization of HDMI-A and HDMI-B.
A temporary workaround is to disable HDMI-B in the device tree 994b649

Framerate falls to half of expected in subsequent captures

After rebooting and loading the driver the first HDMI capture appears to perform as expected (e.g. 2160p30). But subsequent captures with the same GStreamer pipeline only achieve half the framerate (e.g. 15 FPS instead of 30).

Examples

GStreamer pipeline:

sudo modprobe tc358840

gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, width=3840, height=2160, framerate=30/1, format=UYVY' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3840, height=2160, framerate=30/1, format=I420' ! nvoverlaysink sync=false

The problem can also be reproduced with v4l2-ctl:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=3840,height=2160,pixelformat=YUYV --stream-mmap --stream-count=400 --stream-to=/dev/null 

Observed on

Workarounds

  • The framerate can be increased by running the performance scripts
  • The framerate can be increased by stressing all cpu cores: stress -c 4

Fails to boot with prebuilt image

Downloaded both images from https://github.com/InES-HPMM/linux-l4t/wiki/l4t_prebuilt_image
Boot results in failure: "ERROR: board-specific fdt fixup failed: FDT_ERR_NOTFOUND"

Complete boot log:
U-Boot 2015.07-rc2-dirty (Dec 02 2016 - 16:21:18 +0100)

TEGRA210
Model: NVIDIA P2371-2180
DRAM: 4 GiB
MC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
*** Warning - bad CRC, using default environment

tegra-pcie: PCI regions:
tegra-pcie: I/O: 0x0000000012000000-0x0000000012010000
tegra-pcie: non-prefetchable memory: 0x0000000013000000-0x0000000020000000
tegra-pcie: prefetchable memory: 0x0000000020000000-0x0000000040000000
tegra-pcie: 4x1, 1x1 configuration
tegra-pcie: probing port 0, using 4 lanes
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, ignoring
tegra-pcie: probing port 1, using 1 lanes
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, ignoring
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Tegra210 (P2371-2180) # [0000.171] [TegraBoot] (version 24.00.2015.42-mobile-8f63c9bf)
[0000.176] Processing in cold boot mode Bootloader 2
[0000.181] A02 Bootrom Patch rev = 63
[0000.184] Power-up reason: reset button
[0000.188] No Battery Present
[0000.191] RamCode = 0
[0000.193] Platform has Ddr4 type ram
[0000.196] max77620 disabling SD1 Remote Sense
[0000.200] Setting Ddr voltage to 1125mv
[0000.204] Serial Number of Pmic Max77663: 0x2003b6
[0000.212] Entering ramdump check
[0000.215] Get RamDumpCarveOut = 0x0
[0000.218] RamDumpCarveOut=0x0, RamDumperFlag=0xe59ff3f8
[0000.223] Last reboot was clean, booting normally!
[0000.228] Sdram initialization is successful
[0000.232] SecureOs Carveout Base=0xff800000 Size=0x00800000
[0000.238] GSC1 Carveout Base=0xff700000 Size=0x00100000
[0000.243] GSC2 Carveout Base=0xff600000 Size=0x00100000
[0000.248] GSC3 Carveout Base=0xff500000 Size=0x00100000
[0000.253] GSC4 Carveout Base=0xff400000 Size=0x00100000
[0000.258] GSC5 Carveout Base=0xff300000 Size=0x00100000
[0000.263] BpmpFw Carveout Base=0xff2c0000 Size=0x00040000
[0000.269] Lp0 Carveout Base=0xff2bf000 Size=0x00001000
[0000.284] RamDump Carveout Base=0xff23f000 Size=0x00080000
[0000.289] Platform-DebugCarveout: 0
[0000.293] Nck Carveout Base=0xff03f000 Size=0x00200000
[0000.298] Non secure mode. Disable rollback prevention
[0000.303] AOTAG Init Done
[0000.350] Using GPT Primary to query partitions
[0000.355] Loading Tboot-CPU binary
[0000.404] Verifying bootloader in OdmNonSecureSBK mode
[0000.414] Bootloader load address is 0xa0000000, entry address is 0xa0000258
[0000.421] Bootloader downloaded successfully.
[0000.425] Downloaded Tboot-CPU binary to 0xa0000258
[0000.430] MAX77620_GPIO1 Configured.
[0000.434] MAX77620_GPIO5 Configured.
[0000.437] CPU power rail is up
[0000.440] CPU clock enabled
[0000.444] Performing RAM repair
[0000.447] Updating A64 Warmreset Address to 0xa00002e9
[0000.464] Bootloader DTB Load Address: 0x83000000
[0000.481] Kernel DTB Load Address: 0x83080000
[0000.486] Loading cboot binary
[0000.580] Verifying bootloader in OdmNonSecureSBK mode
[0000.673] Bootloader load address is 0x8010fda8, entry address is 0x80110000
[0000.680] Bootloader downloaded successfully.
[0000.684] GPT: Partition NOT found !
[0000.687] Find Partition via GPT Failed
[0000.691] Find Partition via PT Failed
[0000.694] function NvTbootGetBinaryOffsets: 0x1 error
[0000.699] Error in NvTbootLoadBinary: 0x1 !
[0000.703] Next binary entry address: 0x80110000
[0000.708] BoardId: 2180
[0000.734] NvTbootI2cProbe(): error code 0x00045100 Error while read
[0000.740] Display board id is not available
[0000.744] dram memory type is 3
[0000.748] WB0 init successful
[0000.774] Bpmp FW successfully loaded
[0000.777] Set NvDecSticky Bits
[0000.781] GSC1 address : ff700000
[0000.784] GSC2 address ff63fffc value c0edbbcc
[0000.789] GSC2 address : ff600000
[0000.793] GSC3 address : ff500000
[0000.796] GSC4 address : ff400000
[0000.800] GSC5 address : ff300000
[0000.803] GSC MC Settings done
[0000.807] TOS old plaintext Image length 65536
[0000.813] *** Secure OS image signature not verified ***
[0000.818] Loading and Validation of Secure OS Successful
[0000.823] NvTbootPackSdramParams: start.
[0000.829] NvTbootPackSdramParams: done.
[0000.832] Tegraboot started after 150541 us
[0000.836] Basic modules init took 312933 us
[0000.840] Sec Bootdevice Read Time = 194 ms, Read Size = 8464 KB
[0000.846] Sec Bootdevice Write Time = -1940251267 ms, Write Size = 343597383 KB
[0000.853] Next stage binary read took 12282 us
[0000.858] Carveout took 251697 us
[0000.861] CPU initialization took 125254 us
[0000.865] Total time taken by TegraBoot 702166 us

[0000.869] Starting CPU & Halting co-processor

64b[0000.994] LPDDR4 Training: Read DT: Number of tables = 10
[0000.999] EMC Training (SRC-freq: 204000; DST-freq: 40800)
[0001.004] EMC Training Skipped
[0001.007] EMC Training (SRC-freq: 204000; DST-freq: 68000)
[0001.012] EMC Training Skipped
[0001.015] EMC Training (SRC-freq: 204000; DST-freq: 102000)
[0001.021] EMC Training Skipped
[0001.023] EMC Training (SRC-freq: 204000; DST-freq: 204000)
[0001.029] EMC Training Skipped
[0001.031] EMC Training (SRC-freq: 204000; DST-freq: 408000)
[0001.038] EMC Training Successful
[0001.041] EMC Training (SRC-freq: 204000; DST-freq: 665600)
[0001.046] EMC Training Successful
[0001.049] EMC Training (SRC-freq: 204000; DST-freq: 800000)
[0001.061] EMC Training Successful
[0001.064] EMC Training (SRC-freq: 204000; DST-freq: 1065600)
[0001.087] EMC Training Successful
[0001.090] EMC Training (SRC-freq: 204000; DST-freq: 1331200)
[0001.111] EMC Training Successful
[0001.114] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0001.134] EMC Training Successful
[0001.137] Switching to 800000 KHz Success
[0001.146] DT Write: emc-table@40800 succeeded
[0001.152] DT Write: emc-table@68000 succeeded
[0001.158] DT Write: emc-table@102000 succeeded
[0001.164] DT Write: emc-table@204000 succeeded
[0001.170] DT Write: emc-table@408000 succeeded
[0001.176] DT Write: emc-table@665600 succeeded
[0001.182] DT Write: emc-table@800000 succeeded
[0001.188] DT Write: emc-table@1065600 succeeded
[0001.194] DT Write: emc-table@1331200 succeeded
[0001.200] DT Write: emc-table@1600000 succeeded
[0001.204] LPDDR4 Training: Write DT: Number of tables = 10

U-Boot 2015.07-rc2-dirty (Dec 02 2016 - 16:21:18 +0100)

TEGRA210
Model: NVIDIA P2371-2180
DRAM: 4 GiB
MC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
*** Warning - bad CRC, using default environment

tegra-pcie: PCI regions:
tegra-pcie: I/O: 0x0000000012000000-0x0000000012010000
tegra-pcie: non-prefetchable memory: 0x0000000013000000-0x0000000020000000
tegra-pcie: prefetchable memory: 0x0000000020000000-0x0000000040000000
tegra-pcie: 4x1, 1x1 configuration
tegra-pcie: probing port 0, using 4 lanes
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, retrying
tegra-pcie: link 0 down, ignoring
tegra-pcie: probing port 1, using 1 lanes
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, retrying
tegra-pcie: link 1 down, ignoring
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
2870 bytes read in 351 ms (7.8 KiB/s)
p2371-2180 eMMC boot options
1: primary kernel
2: hdmi2csi
3: hdmi2csi (HDMI-B disabled)
Enter choice: 2
2: hdmi2csi
Retrieving file: /boot/initrd
6902654 bytes read in 382 ms (17.2 MiB/s)
Retrieving file: /boot/Image_hdmi2csi
20114760 bytes read in 995 ms (19.3 MiB/s)
append: fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c0t
Retrieving file: /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit-hdmi2csi.dtb
384555 bytes read in 268 ms (1.4 MiB/s)

Flattened Device Tree blob at 82000000

Booting using the fdt blob at 0x82000000
reserving fdt memory region: addr=80000000 size=20000
Using Device Tree in place at 0000000082000000, end 0000000082060e2a
Can't create DT prop nvidia,emc-burst-mc-regs to copy
Can't create DT prop nvidia,dvfs-version to copy
Can't create DT node emc-table@204000 to copy
ERROR: board-specific fdt fixup failed: FDT_ERR_NOTFOUND

  • must RESET the board to recover.

FDT creation failed! hanging...### ERROR ### Please RESET the board ###

CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7 | VT102 | Не на линии | ttyUSB0

Disabling HDMI in B

Hello
I am looking for a way to change the device tree files to disable HDMI in B input . What i did was commenting out some of the lines in the device tree which i thought is related with HDMI in B
Following is the file i changed . and it didn't seem to work
`
/*

  • arch/arm64/boot/dts/tegra210-jetson-tx1-p2597-2180-a01-devkit.dts
  • Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
  • This program is free software; you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation; version 2 of the License.
  • This program is distributed in the hope that it will be useful, but WITHOUT
  • ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  • FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  • more details.

*/

#include "tegra210-jetson-cv-base-p2597-2180-a00.dts"

/ {
model = "jetson_tx1";
compatible = "nvidia,jetson-cv", "nvidia,tegra210";
nvidia,dtsfilename = FILE;

#address-cells = <2>;
#size-cells = <2>;

chosen {
	bootloader {
		nvidia,skip-display-init;
	};
};

host1x {
	dc@54200000 {
		status = "disabled";
	};

	dc@54240000 {
		nvidia,dc-or-node = "/host1x/sor1";
	};

	dsi {
		status = "disabled";
		panel-a-wuxga-8-0 {
			status = "disabled";
		};
		panel-s-wqxga-10-1 {
			status = "disabled";
		};
	};
};

i2c@7000c400 {
	lp8557-backlight-a-wuxga-8-0@2c {
		status = "disabled";
	};
};


pinmux@700008d4 {
	common {
		/*
		 * Pull down the INT pin of the TC358840 (HDMI IN A) while
		 * in reset in order to set i2c address 0x0F.
		 */
		cam1_pwdn_ps7 {
			nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
			nvidia,tristate = <TEGRA_PIN_DISABLE>;
		};

		/*
		 * Pull up the INT pin of the TC358840 (HDMI IN B) while
		 * in reset in order to set i2c address 0x1F.
		 */

// cam2_pwdn_pt0 {
// nvidia,enable-input = <TEGRA_PIN_ENABLE>;
// nvidia,pull = <TEGRA_PIN_PULL_UP>;
// nvidia,tristate = <TEGRA_PIN_DISABLE>;
// };
};
};

/* 
 * Delete device-tree entries by Nvidia for camera hardware that is not
 * available on the HDMI2CSI hardware and not supported by tegra_vi2
 */
/delete-node/ plugin-manager;
i2c1: i2c@7000c000 {
	/delete-node/ ov23850_c@36;
	/delete-node/ lc898212@72;
};
aliases {
	/delete-property/ gpio288;
};
host1x {
	/delete-node/ vi;
	/delete-node/ i2c@546c0000;
	/delete-node/ i2c@70000c000;
};

host1x {
/* /dev/i2c-6: Note the shift of 1! */
	i2c7: i2c@546c0000 {
		#address-cells = <1>;
		#size-cells = <0>;

		compatible = "nvidia,tegra210-vii2c";
		reg = <0x0 0x546C0000 0x0 0x00034000>;
		status = "okay";
		
		iommus = <&smmu 18>;
		interrupts = <0 17 0x04>;
		scl-gpio = <&gpio ((18 * 8) + 2) 0>;
		sda-gpio = <&gpio ((18 * 8) + 3) 0>;
		clock-frequency = <400000>;
		bus-pullup-supply = <&max77620_sd3>;
		avdd_dsi_csi-supply = <&max77620_sd3>;

		/* HDMI IN A (4K) */
		tc358840xbg@0f {
			compatible = "toshiba,tc358840xbg";
			reg = <0x0f>;
			status = "okay";

			/* GPIO */
			reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_LOW>;

			/* Interrupt */
			interrupt-parent = <&gpio>;
			interrupts = <CAM0_PWDN IRQ_TYPE_LEVEL_HIGH>;

			refclk_hz = <48000000>; /* 40 - 50 MHz */

			ddc5v_delay = <1>;		/* 50 ms */

			/* HDCP */
			/* TODO: Not yet implemented */
			enable_hdcp = <0>;

			/* CSI Output */
			csi_port = <3>;			/* Enable TX0 (4 lanes) & TX1 (4 lanes) */

			lineinitcnt = <0x00000FA0>;
			lptxtimecnt = <0x00000004>;
			tclk_headercnt = <0x00180203>;
			tclk_trailcnt = <0x00040005>;
			ths_headercnt = <0x000D0004>;
			twakeup = <0x00003E80>;
			tclk_postcnt = <0x0000000A>;
			ths_trailcnt = <0x00080006>;
			hstxvregcnt = <0x00000020>;

			/* PLL */
			/* Bps per lane is (refclk_hz / pll_prd) * pll_fbd */
			pll_prd = <10>;
			pll_fbd = <125>;

			port {
				hdmi_in_a: endpoint {
					remote-endpoint = <&csi_a>;
				};
			};
		};

// /* HDMI IN B (Full HD) /
// tc358840xbg@1f {
// compatible = "toshiba,tc358840xbg";
// reg = <0x1f>;
// status = "okay";
//
// /
GPIO /
// reset-gpios = <&gpio CAM1_RST_L GPIO_ACTIVE_LOW>;
//
// /
Interrupt /
// interrupt-parent = <&gpio>;
// interrupts = <CAM1_PWDN IRQ_TYPE_LEVEL_HIGH>;
//
// refclk_hz = <48000000>; /
40 - 50 MHz /
//
// ddc5v_delay = <1>; /
50 ms /
//
// /
HDCP /
// /
TODO: Not yet implemented /
// enable_hdcp = <0>;
//
// /
CSI Output /
// csi_port = <1>; /
Enable TX0 only /
//
// lineinitcnt = <0x00000FA0>;
// lptxtimecnt = <0x00000004>;
/// tclk_headercnt = <0x00180203>;
// tclk_trailcnt = <0x00040005>;
// ths_headercnt = <0x000D0004>;
// twakeup = <0x00003E80>;
// tclk_postcnt = <0x0000000A>;
// ths_trailcnt = <0x00080006>;
// hstxvregcnt = <0x00000020>;
//
// /
PLL /
// /
Bps per lane is (refclk_hz / pll_prd) * pll_fbd */
// pll_prd = <10>;
// pll_fbd = <125>;
//
// port {
// hdmi_in_b: endpoint {
// remote-endpoint = <&csi_b>;
// };
// };
// };
};
};

pinmux@700008d4 {
	common {
		/*
		 * Pull down the INT pin of the TC358840 (HDMI IN A) while
		 * in reset in order to set i2c address 0x0F.
		 */
		cam1_pwdn_ps7 {
			nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
			nvidia,tristate = <TEGRA_PIN_DISABLE>;
		};

		/*
		 * Pull up the INT pin of the TC358840 (HDMI IN B) while
		 * in reset in order to set i2c address 0x1F.
		 */

// cam2_pwdn_pt0 {
// nvidia,enable-input = <TEGRA_PIN_ENABLE>;
// nvidia,pull = <TEGRA_PIN_PULL_UP>;
// nvidia,tristate = <TEGRA_PIN_DISABLE>;
// };
};
};

host1x {
	vi {
		compatible = "nvidia,tegra210-vi2";
		reg = <0x0 0x54080000 0x0 0x40000>;
		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
		status = "okay";
		//clocks = <&tegra_car TEGRA210_CLK_VI>,<&tegra_car TEGRA210_CLK_CSI>,<&tegra_car TEGRA210_CLK_PLL_C>;
		clocks = <&tegra_car TEGRA210_CLK_ID_VI>,
			 <&tegra_car TEGRA210_CLK_ID_CSI>,
			 <&tegra_car TEGRA210_CLK_ID_CSUS>,
			 <&tegra_car TEGRA210_CLK_ID_ISP>,
			 <&tegra_car TEGRA210_CLK_ID_CILAB>,
			 <&tegra_car TEGRA210_CLK_ID_CILCD>,
			 <&tegra_car TEGRA210_CLK_ID_CILE>,
			 <&tegra_car TEGRA210_CLK_ID_VI_SENSOR>,
			 <&tegra_car TEGRA210_CLK_ID_VI_SENSOR2>,
			 <&tegra_car TEGRA210_CLK_ID_PLL_D>;
		clock-names = "vi", "csi", "csus", "isp", "cilab",
					"cilcd", "cile", "vi_sensor", "vi_sensor2", "pll_d";

		power-domains = <&ve_pd>;
		iommus = <&smmu 18>;
		resets = <&tegra_car 20>;
		reset-names = "vi";

		avdd_dsi_csi-supply = <&max77620_ldo0>;

		#address-cells = <1>;
		#size-cells = <0>;

		/* HDMI IN A (dual-link) */
		vi_port_0: port@0 {
			reg = <0>;
			
			#address-cells = <1>;
			#size-cells = <0>;

			csi_a: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&hdmi_in_a>;
				clock-lanes = <0>;
				data-lanes = <1 2 3 4>;
			};
			csi_b: endpoint@1 {
				reg = <1>;
				remote-endpoint = <&hdmi_in_a>;
				clock-lanes = <0>;
				data-lanes = <1 2 3 4>;
			};
		};

		/* HDMI IN B */

// port@2 {
// reg = <2>;
//
// #address-cells = <1>;
// #size-cells = <0>;
//
// csi_c: endpoint {
// reg = <0>;
// remote-endpoint = <&hdmi_in_b>;
// clock-lanes = <0>;
// data-lanes = <1 2 3 4>;
// };
// };
};
};

backlight {
	status = "disabled";
};

regulators {
	/* Enable power supply for HDMI extension board */

	/* VDD_SYS_EN */
	en_vdd_cam: regulator@5 {
		regulator-boot-on;
		regulator-always-on;
	};

	/* CAM_VDD_1V8_EN */
	en_vdd_cam_1v8: regulator@211 {
		regulator-boot-on;
		regulator-always-on;
	};

	/* CAM_VDD_1V2_EN */
	en_vdd_cam_1v2: regulator@209 {
		regulator-boot-on;
		regulator-always-on;
	};
};

tegra_axbar: ahub {
	status = "okay";

	tegra_i2s4: i2s@702d1300 {
		status = "okay";
	};      
};

sound_card: sound {
	compatible = "nvidia,tegra-audio-t210ref-mobile-rt565x";
	nvidia,model = "tegra-snd-t210ref-mobile-rt565x";

	nvidia,num-codec-link = <5>;

	nvidia,audio-routing =
	  "x Headphone Jack", "x HPO L Playback",
	  "x Headphone Jack", "x HPO R Playback",
	  "x MICBIAS1",   "x Mic Jack",
	  "x IN1P",   "x Mic Jack",
	  "x Mic Det Power",  "x Mic Jack",
	  "x Int Spk",    "x SPO Playback",
	  "x DMIC L1",            "x Int Mic",
	  "x DMIC L2",            "x Int Mic",
	  "x DMIC R1",            "x Int Mic",
	  "x DMIC R2",            "x Int Mic",
	  "x Headphone",    "x OUT",
	  "x IN",     "x Mic",
	  "y Headphone",    "y OUT",
	  "y IN",     "y Mic",
	  "l IN",     "l OUT",
	  "s Headphone",    "s OUT",
	  "s IN",     "s Mic";

	nvidia,xbar = <&tegra_axbar>;

	/* The codec-dai here is initialized to dummy and will be   */
	/* replaced with rt565x codec-dai on detecting super-module */
	nvidia,dai-link-1 {
	  link-name = "rt565x-playback";
	  cpu-dai = <&tegra_i2s1>;
	  codec-dai = <&spdif_dit4>;
	  cpu-dai-name = "I2S1";
	  codec-dai-name = "dit-hifi";
	  format = "i2s";
//      bitclock-slave;
	  bitclock-master;
//      frame-slave;
	  frame-master;
	  bitclock-noninversion;
	  frame-noninversion;
//      bit-format = "s16_le";
	  bit-format = "s32_le";
//      bclk_ratio = <0>;
	  bclk_ratio = <0>;
	  srate = <48000>;
	  num-channel = <2>;
	  ignore_suspend;
	  name-prefix = "x";
	};

	nvidia,dai-link-2 {
	  link-name = "spdif-dit-1";
	  cpu-dai = <&tegra_i2s2>;
	  codec-dai = <&spdif_dit1>;
	  cpu-dai-name = "I2S2";
	  codec-dai-name = "dit-hifi";
	  format = "dsp_a";
	  bitclock-slave;
	  frame-slave;
	  bitclock-inversion;
	  frame-inversion;
	  bit-format = "s16_le";
	  bclk_ratio = <4>;
	  srate = <8000>;
	  num-channel = <1>;
	  ignore_suspend;
	  name-prefix = "y";
	};

	nvidia,dai-link-3 {
	  link-name = "spdif-dit-2";
	  cpu-dai = <&tegra_dmic3>;
	  codec-dai = <&spdif_dit2>;
	  cpu-dai-name = "DMIC3";
	  codec-dai-name = "dit-hifi";
	  format = "i2s";
	  bit-format = "s16_le";
	  srate = <48000>;
	  num-channel = <2>;
	  ignore_suspend;
	  name-prefix = "z";
	};

	nvidia,dai-link-4 {
	  link-name = "spdif-dit-3";
	  cpu-dai = <&tegra_i2s3>;
	  codec-dai = <&spdif_dit3>;
	  cpu-dai-name = "I2S3";
	  codec-dai-name = "dit-hifi";
	  format = "i2s";
	  bitclock-slave;
	  frame-slave;
	  bitclock-noninversion;
	  frame-noninversion;
	  bit-format = "s16_le";
	  bclk_ratio = <0>;
	  srate = <48000>;
	  num-channel = <2>;
	  ignore_suspend;
	  name-prefix = "l";
	};

	nvidia,dai-link-5 {
	  link-name = "spdif-dit-0";
	  cpu-dai = <&tegra_i2s4>;
	  codec-dai = <&spdif_dit0>;
	  cpu-dai-name = "I2S4";
	  codec-dai-name = "dit-hifi";
	  format = "i2s";
//      bitclock-slave;
	  bitclock-master;
//      frame-slave;
	  frame-master;
	  bitclock-noninversion;
	  frame-noninversion;
//      bit-format = "s16_le";
	  bit-format = "s32_le";
//      bclk_ratio = <0>;
	  bclk_ratio = <0>;
	  srate = <48000>;
	  num-channel = <2>;
	  ignore_suspend;
	  name-prefix = "s";
	};
};

hda@70030000 {
	status = "okay";
};

};
`

However i saw a dtb file in the prebuilt image named tegra210-jetson-tx1-p2597-2180-a01-devkit-hdmi2csi-hdmib-disabled.dtb but i didnt find the source file of this binary . I am using l4t-24.2.1 . using the prebuilt image isn't an option for me because of other changes and drivers . I must compile by myself . So if you happen to have the source file of the hdmi B disabling dtb file (dtsi) it would mean a lot to me .
Regards

Gstreamer pipeline hangs with appsink element

Hello,
when I use appsink to get data from a GStreamer pipeline,jetson tx1 will crash,and can not powered off,but if we only use sink like ximagesink,nvoverlaysink,udpsink...tx1 works well.It seems that tc358840 driver do not support Gstreamer's element appsink. The pipeline I used si following
gst-launch-1.0 v4l2src ! 'video/x-raw, format=UYVY, width=1280, height=720, framerate=(fraction)60/1' ! queue ! videoconvert ! appsink
If i use ximagesink, nvoverlaysink, udpsink everything works fine .
Please advise if there is a workaround possible .
Regards

videoconvert performance on L4T 24.2.1

On L4T r24.2.1 the performance of video convert for color space conversion appears to be very slow.

Example pipeline videoconvert:

6 FPS

DISPLAY=:0 gst-launch-1.0 v4l2src io-mode=3 ! 'video/x-raw, width=3840, height=2160, framerate=30/1, format=UYVY' ! videoconvert ! 'video/x-raw, format=I420' ! xvimagesink

[ 4784.232217] video4linux video0: Captured 27 frames in 4507 ms (5.990 fps), 23 missed buffers

# Tested with custom GStreamer 1.10.2 with Userptr support

Example pipeline nvvidconv:

30 FPS

gst-launch-1.0 v4l2src io-mode=2 ! 'video/x-raw, width=3840, height=2160, framerate=30/1, format=UYVY' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=I420' ! nvoverlaysink

[ 4901.203991] video4linux video0: Captured 129 frames in 4356 ms (29.614 fps), 1 missed buffers

# Tested with custom GSt 1.10.2 or default 1.8.1

Comparison to 24.1

Previously on L4T 24.1 both pipelines performed at around 30 FPS.

Audio on HDMIB not working for TX2

Hi there,

We have HDMI-B working at HD resolution on TX2. We have wired I2S1 as referred. EDID is also configured as advised.

We are still unable to get the audio. Any pointers?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.