530
530
static DEVICE_ATTR(isolation, 0644, qeth_dev_isolation_show,
531
531
qeth_dev_isolation_store);
533
static ssize_t qeth_hw_trap_show(struct device *dev,
534
struct device_attribute *attr, char *buf)
536
struct qeth_card *card = dev_get_drvdata(dev);
540
if (card->info.hwtrap)
541
return snprintf(buf, 5, "arm\n");
543
return snprintf(buf, 8, "disarm\n");
546
static ssize_t qeth_hw_trap_store(struct device *dev,
547
struct device_attribute *attr, const char *buf, size_t count)
549
struct qeth_card *card = dev_get_drvdata(dev);
551
char *tmp, *curtoken;
553
curtoken = (char *)buf;
558
mutex_lock(&card->conf_mutex);
559
if (card->state == CARD_STATE_SOFTSETUP || card->state == CARD_STATE_UP)
561
tmp = strsep(&curtoken, "\n");
563
if (!strcmp(tmp, "arm") && !card->info.hwtrap) {
565
if (qeth_is_diagass_supported(card,
566
QETH_DIAGS_CMD_TRAP)) {
567
rc = qeth_hw_trap(card, QETH_DIAGS_TRAP_ARM);
569
card->info.hwtrap = 1;
573
card->info.hwtrap = 1;
574
} else if (!strcmp(tmp, "disarm") && card->info.hwtrap) {
576
rc = qeth_hw_trap(card, QETH_DIAGS_TRAP_DISARM);
578
card->info.hwtrap = 0;
580
card->info.hwtrap = 0;
581
} else if (!strcmp(tmp, "trap") && state && card->info.hwtrap)
582
rc = qeth_hw_trap(card, QETH_DIAGS_TRAP_CAPTURE);
586
mutex_unlock(&card->conf_mutex);
587
return rc ? rc : count;
590
static DEVICE_ATTR(hw_trap, 0644, qeth_hw_trap_show,
533
593
static ssize_t qeth_dev_blkt_show(char *buf, struct qeth_card *card, int value)