[Skiboot] [RFC PATCH 17/23] hw/phb4: Move link tracing into poll_link()

Frederic Barrat fbarrat at linux.ibm.com
Thu Aug 1 05:28:25 AEST 2019



Le 03/04/2019 à 11:09, Oliver O'Halloran a écrit :
> Currently when we bring the link up we'll stay in the and the link
> training trace is enabled we stay in the FRESET_ASSERT_DELAY state until
> the link is trained.

Something is not quite right in that sentence.

   Fred


> Although this is not wrong, it does mean that we don't get a link training
> trace in the HRESET case and it's additional PHB4 specific behavior
> in the FRESET path. We want to move to a generic FRESET function that
> correctly deals with power-controlled slots, so this patch moves the
> link trace into the poll_link() function to handle the HRESET case
> and make the FRESET path more generic.
> 
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
> ---
>   hw/phb4.c | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/phb4.c b/hw/phb4.c
> index c63e916da0b7..3a6b05b4a5a6 100644
> --- a/hw/phb4.c
> +++ b/hw/phb4.c
> @@ -2789,8 +2789,11 @@ static int64_t phb4_poll_link(struct pci_slot *slot)
>   		PHBDBG(p, "LINK: Start polling\n");
>   		slot->retries = PHB4_LINK_ELECTRICAL_RETRIES;
>   		pci_slot_set_state(slot, PHB4_SLOT_LINK_WAIT_ELECTRICAL);
> -		/* Polling early here has no chance of a false positive */
> -		return pci_slot_set_sm_timeout(slot, msecs_to_tb(1));
> +
> +		if (pci_tracing)
> +			phb4_training_trace(p);
> +
> +		/* fallthrough */
>   	case PHB4_SLOT_LINK_WAIT_ELECTRICAL:
>   		/*
>   		 * Wait for the link electrical connection to be
> @@ -3049,8 +3052,6 @@ static int64_t phb4_freset(struct pci_slot *slot)
>   		PHBDBG(p, "FRESET: Deassert\n");
>   		phb4_assert_perst(slot, false);
>   
> -		phb4_training_trace(p);
> -
>   		pci_slot_set_state(slot, PHB4_SLOT_LINK_START);
>   		return slot->ops.poll_link(slot);
>   	default:
> 



More information about the Skiboot mailing list