Re: [PATCH net-next 2/5] amd-xgbe: reorganize the xgbe_pci_probe() code path

From: Larysa Zaremba
Date: Fri Apr 11 2025 - 05:11:12 EST


On Tue, Apr 08, 2025 at 11:49:58PM +0530, Raju Rangoju wrote:
> Reorganize the xgbe_pci_probe() code path to convert if/else statements
> to switch case to help add future code. This helps code look cleaner.
>
> Signed-off-by: Raju Rangoju <Raju.Rangoju@xxxxxxx>

Reviewed-by: Larysa Zaremba <larysa.zaremba@xxxxxxxxx>

> ---
> drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 35 ++++++++++++++----------
> drivers/net/ethernet/amd/xgbe/xgbe.h | 4 +++
> 2 files changed, 25 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> index 3e9f31256dce..d36446e76d0a 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> @@ -165,20 +165,27 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>
> /* Set the PCS indirect addressing definition registers */
> rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
> - if (rdev &&
> - (rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 0x15d0)) {
> - pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
> - pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
> - } else if (rdev && (rdev->vendor == PCI_VENDOR_ID_AMD) &&
> - (rdev->device == 0x14b5)) {
> - pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
> - pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
> -
> - /* Yellow Carp devices do not need cdr workaround */
> - pdata->vdata->an_cdr_workaround = 0;
> -
> - /* Yellow Carp devices do not need rrc */
> - pdata->vdata->enable_rrc = 0;
> + if (rdev && rdev->vendor == PCI_VENDOR_ID_AMD) {
> + switch (rdev->device) {
> + case XGBE_RV_PCI_DEVICE_ID:
> + pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
> + pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
> + break;
> + case XGBE_YC_PCI_DEVICE_ID:
> + pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
> + pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
> +
> + /* Yellow Carp devices do not need cdr workaround */
> + pdata->vdata->an_cdr_workaround = 0;
> +
> + /* Yellow Carp devices do not need rrc */
> + pdata->vdata->enable_rrc = 0;
> + break;
> + default:
> + pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
> + pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
> + break;
> + }
> } else {
> pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
> pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
> index e5f5104342aa..2e9b3be44ff8 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
> @@ -238,6 +238,10 @@
> (_src)->link_modes._sname, \
> __ETHTOOL_LINK_MODE_MASK_NBITS)
>
> +/* XGBE PCI device id */
> +#define XGBE_RV_PCI_DEVICE_ID 0x15d0
> +#define XGBE_YC_PCI_DEVICE_ID 0x14b5
> +
> struct xgbe_prv_data;
>
> struct xgbe_packet_data {
> --
> 2.34.1
>
>