in platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_platform.c [1050:1137]
static ssize_t delta_bin_attr_write(struct file *filp, struct kobject *kobj, struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
{
struct delta_bin_attribute *delta_attr = to_delta_attr(attr);
char attr_path[100];
dni_klock();
switch(delta_attr->index){
case EEPROM_SFP_1:
case EEPROM_SFP_2:
case EEPROM_SFP_3:
case EEPROM_SFP_4:
case EEPROM_SFP_5:
case EEPROM_SFP_6:
case EEPROM_SFP_7:
case EEPROM_SFP_8:
case EEPROM_SFP_9:
case EEPROM_SFP_10:
case EEPROM_SFP_11:
case EEPROM_SFP_12:
case EEPROM_SFP_13:
case EEPROM_SFP_14:
case EEPROM_SFP_15:
case EEPROM_SFP_16:
case EEPROM_SFP_17:
case EEPROM_SFP_18:
case EEPROM_SFP_19:
case EEPROM_SFP_20:
case EEPROM_SFP_21:
case EEPROM_SFP_22:
case EEPROM_SFP_23:
case EEPROM_SFP_24:
case EEPROM_SFP_25:
case EEPROM_SFP_26:
case EEPROM_SFP_27:
case EEPROM_SFP_28:
case EEPROM_SFP_29:
case EEPROM_SFP_30:
case EEPROM_SFP_31:
case EEPROM_SFP_32:
case EEPROM_SFP_33:
case EEPROM_SFP_34:
case EEPROM_SFP_35:
case EEPROM_SFP_36:
case EEPROM_SFP_37:
case EEPROM_SFP_38:
case EEPROM_SFP_39:
case EEPROM_SFP_40:
case EEPROM_SFP_41:
case EEPROM_SFP_42:
case EEPROM_SFP_43:
case EEPROM_SFP_44:
case EEPROM_SFP_45:
case EEPROM_SFP_46:
case EEPROM_SFP_47:
case EEPROM_SFP_48:
case EEPROM_SFP_49:
case EEPROM_SFP_50:
case EEPROM_SFP_51:
case EEPROM_SFP_52:
case EEPROM_SFP_53:
case EEPROM_SFP_54:
case EEPROM_SFP_55:
case EEPROM_SFP_56:
case EEPROM_SFP_57:
case EEPROM_SFP_58:
case EEPROM_SFP_59:
case EEPROM_SFP_60:
case EEPROM_SFP_61:
case EEPROM_SFP_62:
case EEPROM_SFP_63:
case EEPROM_SFP_64:
sprintf(attr_path, "/sys/bus/i2c/devices/%d-0050/eeprom", delta_attr->index + EEPROM_MASK);
if (access_user_space(attr_path, buf, count, off, ATTR_W) < 0) {
goto ACCESS_ERROR;
}
break;
default:
goto ACCESS_ERROR;
}
dni_kunlock();
return count;
ACCESS_ERROR:
dni_kunlock();
return -ETIMEDOUT;
}