rapidio: add default handler for error-stopped state
The default error-stopped state handler provides recovery mechanism as defined by RIO specification. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Thomas Moll <thomas.moll@sysgo.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Micha Nelissen <micha@neli.hopto.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
此提交包含在:
@@ -117,6 +117,10 @@ idtcps_get_domain(struct rio_mport *mport, u16 destid, u8 hopcount,
|
||||
|
||||
static int idtcps_switch_init(struct rio_dev *rdev, int do_enum)
|
||||
{
|
||||
struct rio_mport *mport = rdev->net->hport;
|
||||
u16 destid = rdev->rswitch->destid;
|
||||
u8 hopcount = rdev->rswitch->hopcount;
|
||||
|
||||
pr_debug("RIO: %s for %s\n", __func__, rio_name(rdev));
|
||||
rdev->rswitch->add_entry = idtcps_route_add_entry;
|
||||
rdev->rswitch->get_entry = idtcps_route_get_entry;
|
||||
@@ -126,6 +130,12 @@ static int idtcps_switch_init(struct rio_dev *rdev, int do_enum)
|
||||
rdev->rswitch->em_init = NULL;
|
||||
rdev->rswitch->em_handle = NULL;
|
||||
|
||||
if (do_enum) {
|
||||
/* set TVAL = ~50us */
|
||||
rio_mport_write_config_32(mport, destid, hopcount,
|
||||
rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x8e << 8);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -205,6 +205,10 @@ tsi57x_em_init(struct rio_dev *rdev)
|
||||
portnum++;
|
||||
}
|
||||
|
||||
/* set TVAL = ~50us */
|
||||
rio_mport_write_config_32(mport, destid, hopcount,
|
||||
rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x9a << 8);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
新增問題並參考
封鎖使用者