예제 #1
0
int altek6045_load_firmware(const hwextisp_intf_t* i)
{
    int rc = 0;
    cam_notice("enter %s.", __func__);

    rc = misp_load_fw();
    if (rc < 0) {
        cam_err("%s failed to load firmware for altek6045.", __func__);
        return rc;
    }
    return 0;
}
static int
    imx278_carrera_match_id(
        hwsensor_intf_t* si, void * data)
{
    sensor_t* sensor = I2S(si);
    struct sensor_cfg_data *cdata = (struct sensor_cfg_data *)data;
    uint16_t sensor_id = 0;
    uint8_t modue_id = 0;
    char *sensor_name[4]={"imx278_sunny","imx278_liteon","imx278_lg","imx278"};

    cam_info("%s TODO.", __func__);

    misp_load_fw(NULL);
    misp_get_module_info(sensor->board_info->sensor_index,&sensor_id,&modue_id);

    if (sensor_id == 0x278) {
        cdata->data = sensor->board_info->sensor_index;
        if(modue_id == 0x01) {
            strncpy(cdata->cfg.name, sensor_name[0], DEVICE_NAME_SIZE);
        } else if (modue_id == 0x03) {
            strncpy(cdata->cfg.name, sensor_name[1], DEVICE_NAME_SIZE);
        } else if (modue_id == 0x07) {
            strncpy(cdata->cfg.name, sensor_name[2], DEVICE_NAME_SIZE);
        } else {
            strncpy(cdata->cfg.name, sensor_name[3], DEVICE_NAME_SIZE);
        }

        hwsensor_writefile(sensor->board_info->sensor_index, cdata->cfg.name);
    } else {
            cdata->data = SENSOR_INDEX_INVALID;
    }

    cam_info("%s TODO.  cdata->data=%d", __func__, cdata->data);

    return 0;
}
int altek6045_load_firmware(const hwextisp_intf_t* i, hwextisp_config_data_t *data)
{
    cam_notice("enter %s.", __func__);
    return misp_load_fw(data->u.buf);
}