+/**
+ * i2o_report_controller_unit - print information about a tid
+ * @c: controller
+ * @d: device
+ *
+ * Dump an information block associated with a given unit (TID). The
+ * tables are read and a block of text is output to printk that is
+ * formatted intended for the user.
+ */
+
+void i2o_report_controller_unit(struct i2o_controller *c, struct i2o_device *d)
+{
+ char buf[64];
+ char str[22];
+ int ret;
+
+ if (verbose == 0)
+ return;
+
+ printk(KERN_INFO "Target ID %03x.\n", d->lct_data.tid);
+ if ((ret = i2o_parm_field_get(d, 0xF100, 3, buf, 16)) >= 0) {
+ buf[16] = 0;
+ printk(KERN_INFO " Vendor: %s\n", buf);
+ }
+ if ((ret = i2o_parm_field_get(d, 0xF100, 4, buf, 16)) >= 0) {
+ buf[16] = 0;
+ printk(KERN_INFO " Device: %s\n", buf);
+ }
+ if (i2o_parm_field_get(d, 0xF100, 5, buf, 16) >= 0) {
+ buf[16] = 0;
+ printk(KERN_INFO " Description: %s\n", buf);
+ }
+ if ((ret = i2o_parm_field_get(d, 0xF100, 6, buf, 8)) >= 0) {
+ buf[8] = 0;
+ printk(KERN_INFO " Rev: %s\n", buf);
+ }
+
+ printk(KERN_INFO " Class: ");
+ //sprintf(str, "%-21s", i2o_get_class_name(d->lct_data.class_id));
+ printk("%s\n", str);
+
+ printk(KERN_INFO " Subclass: 0x%04X\n", d->lct_data.sub_class);
+ printk(KERN_INFO " Flags: ");
+
+ if (d->lct_data.device_flags & (1 << 0))
+ printk("C"); // ConfigDialog requested
+ if (d->lct_data.device_flags & (1 << 1))
+ printk("U"); // Multi-user capable
+ if (!(d->lct_data.device_flags & (1 << 4)))
+ printk("P"); // Peer service enabled!
+ if (!(d->lct_data.device_flags & (1 << 5)))
+ printk("M"); // Mgmt service enabled!
+ printk("\n");
+}
+
+/*
+MODULE_PARM(verbose, "i");
+MODULE_PARM_DESC(verbose, "Verbose diagnostics");
+*/