Пример #1
0
static ssize_t snd_adie_debug_write(struct file *file, const char __user *buf,
                                    size_t count, loff_t *ppos)
{
    int rc = 0, op = 0;
    int id = 0, adie_block = 0, config = 1;

    sscanf(buf, "%d %d %d %d", &op, &id, &adie_block, &config);
    MM_INFO("\nUser input: op %d id %d block %d config %d\n", op, id,
            adie_block, config);
    switch (op) {
    case ADIE_SVC_REGISTER_CLIENT:
        MM_INFO("ADIE_SVC_REGISTER_CLIENT\n");
        rc = adie_svc_get();
        if (rc >= 0)
            MM_INFO("Client registered: %d\n", rc);
        else
            MM_ERR("Failed registering client\n");
        break;
    case ADIE_SVC_DEREGISTER_CLIENT:
        MM_INFO("ADIE_SVC_DEREGISTER_CLIENT: %d\n", id);
        rc = adie_svc_put(id);
        if (!rc)
            MM_INFO("Client %d deregistered\n", id);
        else
            MM_ERR("Failed unregistering the client: %d\n",	id);
        break;
    case ADIE_SVC_CONFIG_ADIE_BLOCK:
        MM_INFO("ADIE_SVC_CONFIG_ADIE_BLOCK: id %d adie_block %d \
				config %d\n", id, adie_block, config);
        rc =  adie_svc_config_adie_block(id,
                                         (enum adie_block_enum_type)adie_block, (bool)config);
        if (!rc)
            MM_INFO("ADIE block %d %s", adie_block,
                    config ? "enabled\n" : "disabled\n");
        else if (rc == 2)
            MM_INFO("ADIE block %d already in use\n", adie_block);
        else
            MM_ERR("ERROR configuring the ADIE block\n");
        break;
    default:
        MM_INFO("Invalid operation\n");
    }
    return count;
}
Пример #2
0
int seport_platform_enable_mic_bias_measurement(u8 enable)
{
	int err = adie_svc_config_adie_block(seport_pf_client_id,
					     HPH_PA, enable);

	if (ADIE_SVC_STATUS_SUCCESS != err && ADIE_SVC_STATUS_INUSE != err) {
			printk(KERN_CRIT
			       "%s - %s of ADIE failed!\n",
			       __func__, enable ? "Enabling" : "Disabling");
			return err;
	}

	err = seport_platform_enable_mic_bias(enable);
	if (err)
		printk(KERN_INFO "%s - Failed to %s MIC Bias\n",
		       __func__, enable ? "enable" : "disable");

	return err;
}
Пример #3
0
int seport_platform_enable_mic_bias(u8 enable)
{
	int err = -1;

	if (seport_pf_client_id == -1) {
		printk(KERN_ERR "%s - No registered client when trying to " \
		       "start MIC Bias. Aborting!", __func__);
		goto out;
	}

	if (enable) {
		err = adie_svc_config_adie_block(seport_pf_client_id, HSSD, 1);

		if (ADIE_SVC_STATUS_SUCCESS != err) {
			if (ADIE_SVC_STATUS_INUSE == err)
				printk(KERN_INFO "%s - Ooops! Client is in " \
				       "use\n", __func__);
			else
				printk(KERN_INFO "%s - Enabling of HSSD " \
				       "failed!\n", __func__);
			goto out;
		}

		err = adie_svc_config_adie_block(seport_pf_client_id,
						 MIC_BIAS, 1);

		if (ADIE_SVC_STATUS_SUCCESS != err) {
			if (ADIE_SVC_STATUS_INUSE == err)
				printk(KERN_INFO "%s - Ooops! Client is in " \
				       "use\n", __func__);
			else
				printk(KERN_INFO "%s - Enabling of MIC Bias " \
				       "failed!\n", __func__);
			goto out;
		}
	} else {
		err = adie_svc_config_adie_block(seport_pf_client_id,
						 MIC_BIAS, 0);

		if (ADIE_SVC_STATUS_SUCCESS != err) {
			if (ADIE_SVC_STATUS_INUSE == err)
				printk(KERN_INFO "%s - Ooops! Client is in " \
				       "use\n", __func__);
			else
				printk(KERN_INFO "%s - Enabling of MIC Bias " \
				       "failed!\n", __func__);
			goto out;
		}


		err = adie_svc_config_adie_block(seport_pf_client_id, HSSD, 0);

		if (ADIE_SVC_STATUS_SUCCESS != err) {
			if (ADIE_SVC_STATUS_INUSE == err)
				printk(KERN_INFO "%s - Ooops! Client is in " \
				       "use\n", __func__);
			else
				printk(KERN_INFO "%s - Enabling of HSSD " \
				       "failed!\n", __func__);
			goto out;
		}
	}
out:
	return err;
}