From nobody Sat May 30 20:07:24 2026 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gSWVM0mQ1z6gYgL for ; Sat, 30 May 2026 20:07:39 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gSWVK2D44z4QRr for ; Sat, 30 May 2026 20:07:37 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of adrian.chadd@gmail.com designates 209.85.222.175 as permitted sender) smtp.mailfrom=adrian.chadd@gmail.com; arc=pass ("google.com:s=arc-20240605:i=1") Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-915511c2cfcso8800385a.3 for ; Sat, 30 May 2026 13:07:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780171656; cv=none; d=google.com; s=arc-20240605; b=g3Fk8eW0ArtS51ATqdH7t+FSc1Ks3EotZTCg4CsYUqqs/IYg/mFHCGP+rZ3qE3GOgv W6Tjr3VPl7wsU/vpb2Za4xTEGbljQw0sCuGz1BLNPXU7wFv+3yfaM1yj0xWuudWl5oFQ ct1qiiZ/duvriPsEeL+j5hvwYOQpsHJxxkAWyCO4epdKm7Nj9RY8dy2lEzf4+hTWt2/r evNiQUoEVig6byZX7aXBjVn/aJfPcR2tGXyMzQ1cpOf6OTQ6igta9x8lHB+UCm9x2XaQ Blz+oO/9OqT+ejEowpkjEYfxgHP8jv0UViBwSRnNs+h+q1Bpsozlb+1FaUWxr+/9nMow ryfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=GQ4h/CTjCXJPEAvcEzFcyj2xBHQVMnnZuqNfWEW3GBQ=; fh=Z1NGhK94NfCx6ZjND0eP7iGoqJa0LbCFF4Q4Uqg7/Wc=; b=KyYSSvQU0EVBD9VyTGOPTcLJ94d5a9lm4usM+CCEjHCoua5rXV3sw6LvuYu2lGOzvL EKt8kC3EXsZJ0I3kYXo6eP70RXQTvem+SEqUtLSw5StzD+/Kr8Q33RW+ie4wQpJECKSu vM9ZHXfHk5CHzKzosAWlUy9FCk2mP3SkVKjiWDPa9njFXKWkIIk3MY2JicN3clZFRiYt 1eHLuMkYWK4cIuCvjyNyYTpUOL31NNJZ0TFz2Jo+uD6YXyndLZxOr1jtRU22FQZBZ83d i1Lp7eopw/xBi84EfxYMct9PZ9d2q2TVkuyyKcQQ8KUzBObnbSnQ0ChkW3XurtXUBNMt MIUw==; darn=freebsd.org ARC-Authentication-Results: i=1; mx.google.com; arc=none X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780171656; x=1780776456; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GQ4h/CTjCXJPEAvcEzFcyj2xBHQVMnnZuqNfWEW3GBQ=; b=D3fhA1VKAKVr7MjZGBIyCDBZi1PlWnbLf1j4v80jG9ruTjM+Gt8xTzUme2QY6RCRyx 2o96dqdZ/SXJY6Dwb1+X9oRr3PpzEWgsNjKJ2CvNZ6HjcPCDj6HUjCJEmw/eTOO8n70h P6ipO+XjAhhbSCG0ZlpZcua6anHybHyq8lc6y1lgajlwcKuV0Uj0/27wg4ks7wMs9zmW Uj42k3QPKsnK8HIBSxN6T2/qF+N01XOJaZ2BXIo6yFkg3ClFMyo/YhKiF0I5deoVQWf7 TqiucoPlZUlAURMXo5FWKlbPcOlM1NWFE9tm3n9kcFj9A4OK9E1qFuqHfY4voD48CXSt dKEQ== X-Forwarded-Encrypted: i=1; AFNElJ+NPFhiOd0zi7pm+SApGh6NFn5Cbl6UiKfbcvL4kfROkv7yuiaYQJj4j6mKzeQqAdbI6dx962PcPBMRcfN0GpE=@freebsd.org X-Gm-Message-State: AOJu0YyIsTE4NyH+YH/pxWyXttPABWLj9m4JaPiD7Y4O1/XKc2KIqpzo uRUv6acuHyiP2Q0Avr7cqOS6/H6kLVaXdVj3WZzBHzgZ3eQuXa0PzRlMxbxdXEZRcsS8Ut6duJl eRkczFLK/RaojpXIDPA6uHK9xfDh46FM= X-Gm-Gg: Acq92OGbkFnq43fyc/v/0zl6DD+DpGogOCyx79X4WfJFXME3HFDId8dVEsy4kCeDsWU 3qICJDpXR+OlF0FcRrbUKGZb4ZK4vHxKVgIccDaCDhMaV+oadFaIAqtzGRVPr9jzIYGJj9t7KpF CySrdiq4Ru1cm/ZNpuPtFCVh4YWE83ekVHx8AREhzMSANKhAqZk+4EDZJe5wx5ynhstCT1Ms7LS 7gUUKGn9OtUIFiEV3hAEZM6wP15P1MrhlJMYqPjeOZzjDKXHgvHCeNVulTrjFXUoVzlH2YLdFLC jUGd1gIVcm0C+OXwnSNgea0RaNe2xDOB0gUslnNqp9tup00nVkqLGrHjLH9u570HivftohWv60V auqyzz3BZfcKg2j/aVpX54qQAENKE1xejdeIkLAQ5Na8bSQ== X-Received: by 2002:a05:620a:8004:b0:8eb:f3c7:2246 with SMTP id af79cd13be357-9153d9f5fa7mr754356985a.35.1780171656192; Sat, 30 May 2026 13:07:36 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 References: <4d8c447c-e104-4008-9ca0-835178a41c1c@FreeBSD.org> In-Reply-To: From: Adrian Chadd Date: Sat, 30 May 2026 13:07:24 -0700 X-Gm-Features: AVHnY4LJVTX87HffTGg4MavRU84bJAPpVsGvEDhOW60oN2u7popXOkwr2XwhdxI Message-ID: Subject: =?UTF-8?Q?Re=3A_USB=2DC_DisplayPort_=2B_audio_bring=2Dup_on_RK3399_=28Ro?= =?UTF-8?Q?ckPro64=29_=E2=80=94_looking_for_reviewers?= To: Cristian A Trinidad Martinez Cc: Jesper Schmitz Mouridsen , Bin C0d3x , "freebsd-arm@freebsd.org" , "freebsd-current@freebsd.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-3.90 / 15.00]; ARC_ALLOW(-1.00)[google.com:s=arc-20240605:i=1]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; NEURAL_HAM_LONG(-1.00)[-0.999]; FORGED_SENDER(0.30)[adrian@freebsd.org,adrianchadd@gmail.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_TO(0.00)[outlook.com]; FROM_HAS_DN(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TAGGED_FROM(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_CC(0.00)[freebsd.org,gmail.com]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[209.85.222.175:from]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_NEQ_ENVFROM(0.00)[adrian@freebsd.org,adrianchadd@gmail.com]; MISSING_XM_UA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.222.175:from]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; RCPT_COUNT_FIVE(0.00)[5] X-Spamd-Bar: --- X-Rspamd-Queue-Id: 4gSWVK2D44z4QRr hi! I did a brief look over the diffs and honestly they look broadly fine. please break them into a stack in reviews.freebsd.org and I'll assign them the relevant tags / reviewers and let's get it into the tree. -adrian On Thu, 14 May 2026 at 20:11, Cristian A Trinidad Martinez wrote: > > USB-Zenmap in Kalilinux verified link rate BSD of dynamic lanes @ 60 Hz -= 1920x1080(3.7,Gbps); > ________________________________ > From: owner-freebsd-arm@FreeBSD.org on be= half of Cristian A Trinidad Martinez > Sent: Thursday, May 14, 2026 23:05 > To: Jesper Schmitz Mouridsen ; Bin C0d3x ; freebsd-arm@freebsd.org > Cc: freebsd-current@freebsd.org > Subject: Re: USB-C DisplayPort + audio bring-up on RK3399 (RockPro64) =E2= =80=94 looking for reviewers > > Go: *("https://pkg.kali.org/pkg/zenmap") during USB-Kernel up to bring-pa= nel artifact frame side by cosmetic software source ; > ________________________________ > From: owner-freebsd-arm@FreeBSD.org on be= half of Jesper Schmitz Mouridsen > Sent: Thursday, May 14, 2026 15:07 > To: Bin C0d3x ; freebsd-arm@freebsd.org > Cc: freebsd-current@freebsd.org > Subject: Re: USB-C DisplayPort + audio bring-up on RK3399 (RockPro64) =E2= =80=94 looking for reviewers > > > > On 5/14/26 17:27, Bin C0d3x wrote: > > Hi, > > > > > > > > > > I have a working USB-C DisplayPort + audio path for the RK3399 > > > > (RockPro64) on -CURRENT that I'd like to start landing. Looking for > > > > a reviewer or two before I split this into Differential reviews. > > > > > > > > Hardware: Pine64 RockPro64, FUSB302B Type-C controller (i2c), Cadence > > > > MHDP DPTX block at 0xfec00000, RK3399 Type-C PHY, dw-hdmi for audio > > > > codec endpoint, I2S2 (8-ch on-chip-only) feeding both HDMI and the > > > > Cadence DP audio packetizer. Sink: XYM W156F1 portable monitor over > > > > USB-C; verified 1920x1080 @ 60 Hz, link rate HBR (2.7 Gbps), 2 lanes, > > > > plus stereo LPCM 48 kHz audio through panel speakers. > > > > > > > > > > What's in the work (new drivers / subsystems): > > > > > > > > > > sys/dev/iicbus/usb/fusb302.c > > > > > > FUSB302B i2c driver: SRC/SNK PD policy state machine, > > > > DP Alt Mode VDM (Discover/Enter/DP_Status), role discovery, > > > > hard-reset, fault recovery. Modeled functionally on Linux's > > > > drivers/usb/typec/tcpm/fusb302.c -- not a port, clean > > > > re-implementation. > > > > > > > > > > sys/sys/usbc/* > > > > > > USB-PD policy state machine framework + TCPC abstraction so the > > PD/VDM logic is driver-agnostic. > > > > > > > > > > sys/arm64/rockchip/rk_typec_phy.c > > > > > > RK3399 Type-C PHY bring-up for DP altmode (combo PHY mode > > > > switch, lane swap, pin assignments C/D/E/F). > > > > > > > > > > sys/arm64/rockchip/rk_cdn_dp.c > > > > > > Cadence MHDP DPTX scaffold: firmware load, 19-stage bring-up, > > AUX over mailbox, link training (CR+EQ both lanes at HBR), > > > > DPCD, EDID readback, MSA/timing, audio packetizer with SDP > > > > infoframe, DPMS sleep/wake via scanout swap. > > > > > > > > > > sys/arm64/rockchip/rk_hdmi_codec_stub.c > > > > > > Tiny audio_dai shim that claims rockchip,rk3399-dw-hdmi so > > > > audio_soc's simple-audio-card codec phandle resolves -- enables > > > > /dev/dsp0 over both HDMI and DP audio paths. > > > > > > > > > > sys/arm64/rockchip/rk_gpio.c (PIC method fix) > > > > > > pic_disable_intr/enable_intr/pre_ithread/post_ithread, missing > > > > from the Rockchip GPIO PIC. Without them, level-sensitive > > > > sources (FUSB302 INT_N) starve the system with ~210 kHz storms > > > > during their ithread. > > > > > > > > > > sys/dev/drm2/drm_fb_helper.c (small fix) > > > > > > Don't strand on a safe-fallback fb after a late EDID arrives -- > > > > the cdn-dp panel EDID only becomes available after the 19-stage > > > > bring-up, well after the kernel's first hotplug pass. > > > > > > > > Status: > > > > > > * fusb302 + PD policy SM: stable. Source + sink contracts work, > > > > DP Alt Mode succeeds, retry/hard-reset paths exercised. > > > > * cdn-dp: panel lit at 1920x1080@60 HBR. Audio decodes through > > > > panel speakers via /dev/dsp0 with the rk_hdmi_codec_stub. > > > > * Trace output is gated behind dev.fusb302.0.debug / > > > > > > dev.rk_cdn_dp.0.debug (default 0), so default dmesg is quiet. > > > > * Known open: transient panel artifacts ("black tears") during > > > > USB-C boot bring-up. Source-side fully clean; appears framer- > > > > side; cosmetic only. > > > > > > > > > > Public reference: > > > > > > https://github.com/b1nc0d3x/FBSD_DEV/tree/rkdev > > > > > > > > > > That branch is a fork of freebsd/freebsd-src with ~30 commits on top. > > > > I plan to split into separate Differential reviews: > > > > > > 1. rk_gpio PIC method fix (independent, useful on its own) > > > > 2. drm_fb_helper hotplug fix > > > > > > 3. USB-PD policy SM framework (sys/sys/usbc/) > > > > > > 4. fusb302 driver > > > > > > 5. rk_typec_phy > > 6. rk_cdn_dp (scaffold + bring-up) > > > > > > 7. rk_cdn_dp DP audio + rk_hdmi_codec_stub > > > > > > 8. RockPro64 DT overlays + module hookup > > > > > > > > > > Each phase is self-contained and builds cleanly on the previous. > > > > > > > > Would anyone with arm64 / DRM / USB-C familiarity be willing to look > > > > at (1) and (2) first? They're the smallest and most clearly correct > > > > bits. I can post Differentials as soon as a reviewer says go. > > > > > > > > Thanks, > > > > > > Kyle Crenshaw > > > I did similar work but too gpl infected so I never published it. I can > test your work. Do you get any fusb302 interrupt on cold boot? Even the > RockChip kernel on linux did not.. > Do you know my anxdp port from openbsd for the edp? the HW is in the > pinebook pro, which share the usb-c graphics with rockpro64. With a > minor u-boot change it works the same. So you should add support for the > pinebook pro as well. If you do not have the hw i can test. > Great work, congrats! > /jsm >