ism_dev
static inline void __ism_read_cmd(struct ism_dev *ism, void *data,
static inline void __ism_write_cmd(struct ism_dev *ism, void *data,
static inline int __ism_move(struct ism_dev *ism, u64 dmb_req, void *data,
static int register_ieq(struct ism_dev *ism)
static int unregister_sba(struct ism_dev *ism)
static int unregister_ieq(struct ism_dev *ism)
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
static void ism_free_dmb(struct ism_dev *ism, struct dibs_dmb *dmb)
static int ism_alloc_dmb(struct ism_dev *ism, struct dibs_dmb *dmb)
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
static int ism_cmd(struct ism_dev *ism, void *cmd)
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
struct ism_dev *ism = dibs->drv_priv;
static void ism_handle_event(struct ism_dev *ism)
struct ism_dev *ism = data;
static int ism_dev_init(struct ism_dev *ism)
static int ism_cmd_simple(struct ism_dev *ism, u32 cmd_code)
static void ism_dev_exit(struct ism_dev *ism)
struct ism_dev *ism;
static int query_info(struct ism_dev *ism)
struct ism_dev *ism = dev_get_drvdata(&pdev->dev);
static int register_sba(struct ism_dev *ism)
void (*handle_event)(struct ism_dev *dev, struct ism_event *event);
static inline void *ism_get_priv(struct ism_dev *dev,
static inline void ism_set_priv(struct ism_dev *dev, struct ism_client *client,
if (!ini->ism_dev[0])
ini->ism_chid[0] = smc_ism_get_chid(ini->ism_dev[0]);
int i = (!ini->ism_dev[0]) ? 1 : 0;
if (smcd->going_away || smcd == ini->ism_dev[0])
ini->ism_dev[i] = smcd;
if (!ini->ism_dev[0] && !ini->ism_dev[1])
if (ini->vlan_id && smc_ism_get_vlan(ini->ism_dev[0], ini->vlan_id))
if (ini->vlan_id && smc_ism_put_vlan(ini->ism_dev[0], ini->vlan_id))
if (smcd == ini->ism_dev[i])
ini->ism_dev[*matches] = smcd;
if (!ini->ism_dev[0]) {
ini->ism_dev[0] = NULL;
ini->ism_dev[0] = NULL;
if (ini->ism_dev[0])
if (ini->ism_dev[0])
if (ini->ism_dev[0]) {
smcd = ini->ism_dev[0];
htons(smc_ism_get_chid(ini->ism_dev[0]));
smcd = ini->ism_dev[i];
htons(smc_ism_get_chid(ini->ism_dev[i]));
smc_ism_put_vlan(ini->ism_dev[ini->ism_selected], ini->vlan_id);
lgr_list = ini->is_smcd ? &ini->ism_dev[ini->ism_selected]->lgr_list :
lgr_lock = ini->is_smcd ? &ini->ism_dev[ini->ism_selected]->lgr_lock :
smcd_lgr_match(lgr, ini->ism_dev[ini->ism_selected],
if (smc_ism_get_vlan(ini->ism_dev[ini->ism_selected],
smcd = ini->ism_dev[ini->ism_selected];
lgr->smcd = ini->ism_dev[ini->ism_selected];
lgr_list = &ini->ism_dev[ini->ism_selected]->lgr_list;
atomic_inc(&ini->ism_dev[ini->ism_selected]->lgr_cnt);
struct smcd_dev *ism_dev[SMC_MAX_V2_ISM_DEVS + 1];
ini->ism_dev[0] = ismdev;
ini->ism_dev[0] = NULL;