#include <linux/stat.h>
#include <linux/module.h>
#include <linux/rio.h>
#include <linux/rio_drv.h>
#include <linux/rio_ids.h>
#include <linux/delay.h>
#include <asm/page.h>
#include "../rio.h"
#define LOCAL_RTE_CONF_DESTID_SEL …
#define LOCAL_RTE_CONF_DESTID_SEL_PSEL …
#define IDT_LT_ERR_REPORT_EN …
#define IDT_PORT_ERR_REPORT_EN(n) …
#define IDT_PORT_ERR_REPORT_EN_BC …
#define IDT_PORT_ISERR_REPORT_EN(n) …
#define IDT_PORT_ISERR_REPORT_EN_BC …
#define IDT_PORT_INIT_TX_ACQUIRED …
#define IDT_LANE_ERR_REPORT_EN(n) …
#define IDT_LANE_ERR_REPORT_EN_BC …
#define IDT_DEV_CTRL_1 …
#define IDT_DEV_CTRL_1_GENPW …
#define IDT_DEV_CTRL_1_PRSTBEH …
#define IDT_CFGBLK_ERR_CAPTURE_EN …
#define IDT_CFGBLK_ERR_REPORT …
#define IDT_CFGBLK_ERR_REPORT_GENPW …
#define IDT_AUX_PORT_ERR_CAP_EN …
#define IDT_AUX_ERR_REPORT_EN …
#define IDT_AUX_PORT_ERR_LOG_I2C …
#define IDT_AUX_PORT_ERR_LOG_JTAG …
#define IDT_ISLTL_ADDRESS_CAP …
#define IDT_RIO_DOMAIN …
#define IDT_RIO_DOMAIN_MASK …
#define IDT_PW_INFO_CSR …
#define IDT_SOFT_RESET …
#define IDT_SOFT_RESET_REQ …
#define IDT_I2C_MCTRL …
#define IDT_I2C_MCTRL_GENPW …
#define IDT_JTAG_CTRL …
#define IDT_JTAG_CTRL_GENPW …
#define IDT_LANE_CTRL(n) …
#define IDT_LANE_CTRL_BC …
#define IDT_LANE_CTRL_GENPW …
#define IDT_LANE_DFE_1_BC …
#define IDT_LANE_DFE_2_BC …
#define IDT_PORT_OPS(n) …
#define IDT_PORT_OPS_GENPW …
#define IDT_PORT_OPS_PL_ELOG …
#define IDT_PORT_OPS_LL_ELOG …
#define IDT_PORT_OPS_LT_ELOG …
#define IDT_PORT_OPS_BC …
#define IDT_PORT_ISERR_DET(n) …
#define IDT_ERR_CAP …
#define IDT_ERR_CAP_LOG_OVERWR …
#define IDT_ERR_RD …
#define IDT_DEFAULT_ROUTE …
#define IDT_NO_ROUTE …
static int
idtg2_route_add_entry(struct rio_mport *mport, u16 destid, u8 hopcount,
u16 table, u16 route_destid, u8 route_port)
{ … }
static int
idtg2_route_get_entry(struct rio_mport *mport, u16 destid, u8 hopcount,
u16 table, u16 route_destid, u8 *route_port)
{ … }
static int
idtg2_route_clr_table(struct rio_mport *mport, u16 destid, u8 hopcount,
u16 table)
{ … }
static int
idtg2_set_domain(struct rio_mport *mport, u16 destid, u8 hopcount,
u8 sw_domain)
{ … }
static int
idtg2_get_domain(struct rio_mport *mport, u16 destid, u8 hopcount,
u8 *sw_domain)
{ … }
static int
idtg2_em_init(struct rio_dev *rdev)
{ … }
static int
idtg2_em_handler(struct rio_dev *rdev, u8 portnum)
{ … }
static ssize_t
idtg2_show_errlog(struct device *dev, struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR(errlog, S_IRUGO, idtg2_show_errlog, NULL);
static int idtg2_sysfs(struct rio_dev *rdev, bool create)
{ … }
static struct rio_switch_ops idtg2_switch_ops = …;
static int idtg2_probe(struct rio_dev *rdev, const struct rio_device_id *id)
{ … }
static void idtg2_remove(struct rio_dev *rdev)
{ … }
static const struct rio_device_id idtg2_id_table[] = …;
static struct rio_driver idtg2_driver = …;
static int __init idtg2_init(void)
{ … }
static void __exit idtg2_exit(void)
{ … }
device_initcall(idtg2_init);
module_exit(idtg2_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;