mirror of
https://github.com/torvalds/linux
synced 2024-09-30 00:10:51 +00:00
mlxsw: pci: Move software reset code to a separate function
In general, the existing flow of software reset in the driver is: 1. Wait for system ready status. 2. Send MRSR command, to start the reset. 3. Wait for system ready status. This flow will be extended once a new reset command is supported. As a preparation, move step #2 to a separate function. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bdf85f3a69
commit
8d9da4672f
|
@ -1476,11 +1476,18 @@ static int mlxsw_pci_sys_ready_wait(struct mlxsw_pci *mlxsw_pci,
|
|||
return -EBUSY;
|
||||
}
|
||||
|
||||
static int mlxsw_pci_reset_sw(struct mlxsw_pci *mlxsw_pci)
|
||||
{
|
||||
char mrsr_pl[MLXSW_REG_MRSR_LEN];
|
||||
|
||||
mlxsw_reg_mrsr_pack(mrsr_pl, MLXSW_REG_MRSR_COMMAND_SOFTWARE_RESET);
|
||||
return mlxsw_reg_write(mlxsw_pci->core, MLXSW_REG(mrsr), mrsr_pl);
|
||||
}
|
||||
|
||||
static int
|
||||
mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci, const struct pci_device_id *id)
|
||||
{
|
||||
struct pci_dev *pdev = mlxsw_pci->pdev;
|
||||
char mrsr_pl[MLXSW_REG_MRSR_LEN];
|
||||
u32 sys_status;
|
||||
int err;
|
||||
|
||||
|
@ -1491,8 +1498,7 @@ mlxsw_pci_reset(struct mlxsw_pci *mlxsw_pci, const struct pci_device_id *id)
|
|||
return err;
|
||||
}
|
||||
|
||||
mlxsw_reg_mrsr_pack(mrsr_pl, MLXSW_REG_MRSR_COMMAND_SOFTWARE_RESET);
|
||||
err = mlxsw_reg_write(mlxsw_pci->core, MLXSW_REG(mrsr), mrsr_pl);
|
||||
err = mlxsw_pci_reset_sw(mlxsw_pci);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
|
Loading…
Reference in a new issue