module_param(disable_discovery, int, 0);
 MODULE_PARM_DESC(disable_discovery, " disable discovery ");
 
+/* permit overriding the host protection capabilities mask (EEDP/T10 PI) */
+static int prot_mask = 0;
+module_param(prot_mask, int, 0);
+MODULE_PARM_DESC(prot_mask, " host protection capabilities mask, def=7 ");
+
 /**
  * struct sense_info - common structure for obtaining sense keys
  * @skey: sense key
                goto out_add_shost_fail;
        }
 
-       scsi_host_set_prot(shost, SHOST_DIF_TYPE1_PROTECTION
-           | SHOST_DIF_TYPE2_PROTECTION | SHOST_DIF_TYPE3_PROTECTION);
+       /* register EEDP capabilities with SCSI layer */
+       if (prot_mask)
+               scsi_host_set_prot(shost, prot_mask);
+       else
+               scsi_host_set_prot(shost, SHOST_DIF_TYPE1_PROTECTION
+                                  | SHOST_DIF_TYPE2_PROTECTION
+                                  | SHOST_DIF_TYPE3_PROTECTION);
+
        scsi_host_set_guard(shost, SHOST_DIX_GUARD_CRC);
 
        /* event thread */