/* asd_read_ocm - read on chip memory (OCM) @asd_ha: pointer to the host adapter structure  */
int asd_read_ocm(struct asd_ha_struct *asd_ha)
/* asd_read_ocm - read on chip memory (OCM) @asd_ha: pointer to the host adapter structure  */
int asd_read_ocm(struct asd_ha_struct *asd_ha)
{
	int err;
	struct asd_ocm_dir *dir;
	if (asd_hwi_check_ocm_access(asd_ha))
		return -1;
	dir = kmalloc(sizeof(*dir), GFP_KERNEL);
	if (!dir) {
		asd_printk("no memory for ocm dir\n");
		return -ENOMEM;
	}
	err = asd_read_ocm_dir(asd_ha, dir, 0);
	if (err)
		goto out;
	err = asd_get_bios_chim(asd_ha, dir);
out:
	kfree(dir);
	return err;
}