int ret;
unsigned long flags;
+ if (!data) {
+ BCM_ERR("%s: data is not ready!\n", __func__);
+ return -ENODEV;
+ }
+
spin_lock_irqsave(&data->lock, flags);
ret = __exynos_bcm_dbg_ipc_send_data(ipc_type, data, cmd);
spin_unlock_irqrestore(&data->lock, flags);
void exynos_bcm_dbg_start(void)
{
int ret;
+
+ if (!bcm_dbg_data) {
+ BCM_ERR("%s: bcm_dbg_data is not ready!\n", __func__);
+ return;
+ }
+
#ifdef CONFIG_EXYNOS_BCM_DBG_GNR
if (!bcm_dbg_data->bcm_load_bin) {
ret = exynos_bcm_dbg_load_bin();
}
}
#endif
+
ret = exynos_bcm_dbg_run(BCM_RUN, bcm_dbg_data);
if (ret) {
BCM_ERR("%s: failed to bcm start\n", __func__);
int ret;
if (!bcm_dbg_data) {
- BCM_ERR("bcm_dbg_data is not ready!\n");
+ BCM_ERR("%s: bcm_dbg_data is not ready!\n", __func__);
return;
}
err_init:
#endif
kfree(data);
+ data = NULL;
err_data:
return ret;
}
exynos_bcm_dbg_ipc_channel_release(data);
kfree(data);
+ data = NULL;
BCM_INFO("%s: exynos bcm is removed!!\n", __func__);