Problem with 4-lane DP video and non-Thunderbolt port in dock

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
OlEr_1999891
Level 5
Level 5
50 replies posted 25 replies posted 25 sign-ins

Hi!

We are developing a CCG4-based dock with PS8742 mux. We have dual ports for docking and using a passive DP-mux to select which video is selected to the DP-to-HDMI converter. We are using the 3.2.1 host SDK. Updated config.h and stack_params.h included.

When connecting laptop (Dell, Macbook, HP) using the Thunderbolt-enabled ports via get 2-lane video to work. (4k2k@30Hz)

When we connected e.g. Samsung or Huawei phone or using the DP-only USB-C ports on HP / Dell laptops, the laptops thinks that there are a monitor connected, but nothing shows up on the external moniitor and it is not properbly detected. For mobiles, it gives an error message that "HDMI cable is not properly connected".

Since we don't have any USB 3/Superspeed ports, we want to always force 4-lane DP as well. Looking at the I2C communication to the PS8742 is sends 0x0030 when connecting on both Thunderbolt and non-TB ports. PD Analyzer trace included and the configuration used for CCG4.

HPD works as it should.

We are speculating that there is a problem with the number of lanes, provisioning of PS8742  and Mode C/D/E selection here maybe?

Where should we modify in configuration file and CCG4 defines to force 4-lane DP (no USB SS) or could there be some other reason why it works on Thunderbolt ports but not pure DP USB Type-C ports? I hope you can spot the errors by looking at the attached files.

Kind Regards

Olof

0 Likes
1 Solution
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Olof,

1. Can you please kindly share file datamux_ctrl.c of your project in this threads? Since you mentioned that you are changing the project based on notebook. I could like to take a look whether the file datamux_ctrl.c is correct or not.

2. Based on the cc log between dptest.ccgx and thunderboltest.ccgx, both the cc log is same log. Either of them (thunderbolt host and DP host) are selected pin assignment D (2 lane DP) after CC negotiation. Refer below screen shot.,

pastedImage_1.png

3. If you could like to support 4 lane DP only. Please only support pin assignment C and pin assignment E in your config. You could edit it with Ez-PD configuration Utility. And then update @file config.c.

pastedImage_1.png

Best Regards,

Lisa

View solution in original post

0 Likes
6 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Olof,

1. Can you please kindly share file datamux_ctrl.c of your project in this threads? Since you mentioned that you are changing the project based on notebook. I could like to take a look whether the file datamux_ctrl.c is correct or not.

2. Based on the cc log between dptest.ccgx and thunderboltest.ccgx, both the cc log is same log. Either of them (thunderbolt host and DP host) are selected pin assignment D (2 lane DP) after CC negotiation. Refer below screen shot.,

pastedImage_1.png

3. If you could like to support 4 lane DP only. Please only support pin assignment C and pin assignment E in your config. You could edit it with Ez-PD configuration Utility. And then update @file config.c.

pastedImage_1.png

Best Regards,

Lisa

0 Likes
lock attach
Attachments are accessible only for community members.

Hi Lisa!

Thanks for prompt response. Tried to modify the modes there as you pointed out to CE, but then nothing worked on the laptop I tested with. I got a different dock and there the laptop selects mode E. Will do some more comparison.

datamux source code attached.

I also noted that the negotiation between the two ports are the same, so the problem must be related to some internal difference that the TB-controller handles differently from the other USB-C controller managing the third USB-C port.

I noted some other other defines, maybe are relevant?

/*******************************************************************************

* Types of Data path switches supported.

******************************************************************************/

/* CCG controlled switch for DisplayPort and USB lines. */

#define DP_MUX                                  (0u)

/* Data path switching handled by Alpine Ridge. */

#define AR_MUX                                  (1u)

/* This firmware supports only CCG controlled DP/USB switch operation. */

#define MUX_TYPE                                DP_MUX

Cheers

Olof

0 Likes

Hi Lisa!

Did you find anything in the datamux_ctrl.c file?

We also see the CCG4_DOCK in the code-base, e..g

/* Workaround for CCG4 Dock. This info is needed to enable DP config E */

#if ((CCG4_DOCK) && (DP_UFP_SUPP))

uint8_t get_dp_config(uint8_t port)

{

    return dp[port].dp_4_lane;

}

#endif /* CCG4_DOCK && DP_UFP_SUPP */

Looks like there are some special things needed to enable config E? Does that relate to the HW design somehow?

Cheers

Olof

0 Likes

Hi Olof,

1. The datamux_ctrl.c file is good. And I also using same configure as attached file. It shall be okay with this, since we have verified on many difference boards.

2. Could you please kindly add UART debug information in the datamux_ctrl.c and test DP notebook to make sure CCG3 set PS8742B with

            case MUX_CONFIG_DP_4_LANE:

                /* Set mux to 4-lane DP mode state. */

                tmp_buf[1] |= PS8740_DP_C_E_UNFLP;

                break;

Or

            case MUX_CONFIG_DP_2_LANE:

                /* Set mux to to 2-lane DP plus USB-only mode state. */

                tmp_buf[1] |= PS8740_DP_D_F_UNFLP;

                break;

as per CC negotiation on DisplayPort Configuration?

3. May I know is any possible to compare the hardware design between your schematic and CCG4 Dock? The US shall be same design.

Best Regards,

Lisa

0 Likes

Hi Lisa!

The problem with getting standard DP-ports USB-C ports to work (in comparison to TB-port) got solved when we copied the configuration-file from the Dock ref design and activated CCG4_DOCK. Must have been some error in the old config.

The problem now with that the laptops doesn't select UFP_D Pin Assiment = Mode E is not solved however. We have tried to work both with the SVID Mode 0 value and the DP Mode Parameters (C/D/E). Could you explain how these two works together? Our assumption is that the mode-support that is contained within the "SVID Mode 0" bytes are what is expose to the laptop whereas the DP Mode Parameters are data used by the firmware internally or?

If we change DP Mode Parameters to say C/E, we also need to change SVID Mode value as well right?

Problem is that regardless what modes we put in SVID Mode and DP Mode Parameters, laptops always selects Mode D and not C or E with 4 DP lanes. Looks like the laptop doesn't "care" what is included in the SVID information.

We have run I2C-analyzer on the CCG4<>PS8742 and it looks ok (but still only 2 DP lanes)

Any other ideas that could be the problem?

Second question:

Since we have 4 UFP ports in our video switch solution we have somewhat longer datalanes on the PCB and each port has different length. To deal with that we have tried to work with the DP redriver parameters PS8742 in the datamux file. Noted however that all commands in the file relates to the old PS8740 and not the newer PS8742/3 which has more parameters and higher compensation. Do you have a datamux file including these newer commands or should we work out that ourself? We have access to the I2C i/f specification for PS8742.

Cheers

Olof

0 Likes

Hi Olof,

1. Your understand is correct. The SVID shall be updated. As per DisplayPort Alt Mode DisplayPort Capabilities for supporting DP Mode Parameters (C/D/E)., The SVID shall be set to 140045.

2. The CCG4 dock is using PS8742B, this the our latest version. You have already got it.

Best Regards,

Lisa

0 Likes