    memset(cmd,0,sizeof(cmd));
    cmd[0] = MODE_SENSE;
    cmd[1] = scsi_Changers[target].device->lun << 5 | (1<<3);
    cmd[2] = 0x1e;
    cmd[4] = 255;
    if (0 == (result = ch_do_cmd(target, cmd, buffer, 256))) {
	/* TODO: save this informartion somewhere */
#ifdef DEBUG
	printk(KERN_DEBUG DEVICE_NAME ": transport geometry page\n");
	for (i = 0; i < buffer[5]>>1; i++) {
	    printk(KERN_DEBUG "  %i: rotate=%s, nr=%i\n",i,
		   (buffer[6+2*i] & 1) ? "yes" : "no",
		   buffer[7+2*i]);
	}
#endif
    } else
	printk(KERN_WARNING DEVICE_NAME
	       ": reading transport geometry page failed!\n");

    memset(cmd,0,sizeof(cmd));
    cmd[0] = MODE_SENSE;
    cmd[1] = scsi_Changers[target].device->lun << 5 | (1<<3);
    cmd[2] = 0x1f;
    cmd[4] = 255;
    if (0 == (result = ch_do_cmd(target, cmd, buffer, 256))) {
	/* TODO: save this somewhere */
#ifdef DEBUG
	printk(KERN_DEBUG DEVICE_NAME "device capabilities page\n");
	printk(KERN_DEBUG "  stor    : %x\n",
	       buffer[ 6]);
	printk(KERN_DEBUG "  move    : %x %x %x %x\n",
	       buffer[ 8],buffer[ 9],buffer[10], buffer[11]);
	printk(KERN_DEBUG "  exchange: %x %x %x %x\n",
	       buffer[14],buffer[15],buffer[16], buffer[17]);
#endif
    } else
	printk(KERN_WARNING DEVICE_NAME
	       ": reading device capabilities page failed!\n");
