[Skiboot] [PATCH] phb4: Fix slot presence detect

Benjamin Herrenschmidt benh at kernel.crashing.org
Sat May 6 02:05:35 AEST 2017


On Fri, 2017-05-05 at 15:47 +1000, Michael Neuling wrote:
> phb4_get_presence_state() needs to set *val to indicate the presence
> of something in the slot. Currently it doesn't set *val at all.
> 
> The existing logic is correct, so this patch just sets val in the
> right places.
> 
> This has the nice side effect of improving boot times since we no
> longer waste time tring to train links that don't have anything
> present.
> 
> Signed-off-by: Michael Neuling <mikey at neuling.org>

Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

> ---
>  hw/phb4.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/hw/phb4.c b/hw/phb4.c
> index 0065a3f79a..49d4a0f4c9 100644
> --- a/hw/phb4.c
> +++ b/hw/phb4.c
> @@ -1847,6 +1847,7 @@ static int64_t phb4_get_presence_state(struct pci_slot *slot, uint8_t *val)
>  	PHBDBG(p, "hp_status=0x%016llx, dlp_train_ctl=0x%016llx\n",
>  	       hps, dtctl);
>  
> +	*val = OPAL_PCI_SLOT_PRESENT;
>  	/* Check presence detect */
>  	if (hps & PHB_PCIE_HPSTAT_PRESENCE) {
>  		/* If it says not present but link is up, then we assume
> @@ -1857,6 +1858,7 @@ static int64_t phb4_get_presence_state(struct pci_slot *slot, uint8_t *val)
>  			PHBERR(p, "Presence detect 0 but link set !\n");
>  			return OPAL_SHPC_DEV_PRESENT;
>  		}
> +		*val = OPAL_PCI_SLOT_EMPTY;
>  		return OPAL_SHPC_DEV_NOT_PRESENT;
>  	}
>  


More information about the Skiboot mailing list