static int __init mdss_dsi_panel_init(void) { mdss_dsi_buf_alloc(&dsi_panel_tx_buf, ALIGN(DSI_BUF_SIZE, SZ_4K)); mdss_dsi_buf_alloc(&dsi_panel_rx_buf, ALIGN(DSI_BUF_SIZE, SZ_4K)); return platform_driver_register(&this_driver); }
void mdss_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl) { if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { mdss_dsi0_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi0_hw; ctrl->ndx = DSI_CTRL_0; } else { mdss_dsi1_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi1_hw; ctrl->ndx = DSI_CTRL_1; } ctrl_list[ctrl->ndx] = ctrl; /* keep it */ if (mdss_register_irq(ctrl->dsi_hw)) pr_err("%s: mdss_register_irq failed.\n", __func__); pr_debug("%s: ndx=%d base=%p\n", __func__, ctrl->ndx, ctrl->ctrl_base); #ifdef LGE_HRTIMER_OLED_PATCH hrtimer_init(&oled_hrtimer, HRTIMER_BASE_MONOTONIC, HRTIMER_MODE_REL_PINNED); #endif init_completion(&ctrl->dma_comp); init_completion(&ctrl->mdp_comp); init_completion(&ctrl->video_comp); spin_lock_init(&ctrl->irq_lock); spin_lock_init(&ctrl->mdp_lock); mutex_init(&ctrl->mutex); mutex_init(&ctrl->cmd_mutex); mdss_dsi_buf_alloc(&ctrl->tx_buf, SZ_4K); mdss_dsi_buf_alloc(&ctrl->rx_buf, SZ_4K); }
void mipi_dsi_panel_create_debugfs(struct msm_fb_data_type *mfd) { struct device *dev; struct dentry *root; struct mdss_panel_data *pdata; struct platform_device *pdev; pdata = dev_get_platdata(&mfd->pdev->dev); if (!pdata) { pr_err("%s: no panel connected\n", __func__); return; } pdev = pdata->panel_pdev; if (!pdev) { pr_err("%s: no device\n", __func__); return; } dev = &pdev->dev; if (!&dev->kobj) { pr_err("%s: no &dev->kobj\n", __func__); return; } mdss_dsi_buf_alloc(&debug_tx_buf, ALIGN(DSI_BUF_SIZE, SZ_4K)); mdss_dsi_buf_alloc(&debug_rx_buf, ALIGN(DSI_BUF_SIZE, SZ_4K)); dev_info(dev, "%s: create folder %s\n", __func__, kobject_name(&dev->kobj)); root = debugfs_create_dir("mdss_dsi_panel", 0); if (!root) { dev_err(dev, "%s: dbgfs create dir failed\n", __func__); } else { if (!debugfs_create_file("read", S_IWUSR, root, mfd, &read_fops)) { dev_err(dev, "%s: failed to create dbgfs read file\n", __func__); return; } if (!debugfs_create_file("write", S_IWUSR, root, mfd, &write_fops)) { dev_err(dev, "%s: failed to create dbgfs write file\n", __func__); return; } if (!debugfs_create_file("result", S_IRUGO, root, mfd, &result_fops)) { dev_err(dev, "%s: failed to create dbgfs result file\n", __func__); return; } } }
void mdss_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl) { if (ctrl->shared_pdata.broadcast_enable) if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { pr_debug("%s: Broadcast mode enabled.\n", __func__); left_ctrl_pdata = ctrl; } if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { mdss_dsi0_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi0_hw; ctrl->ndx = DSI_CTRL_0; } else { mdss_dsi1_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi1_hw; ctrl->ndx = DSI_CTRL_1; } ctrl->panel_mode = ctrl->panel_data.panel_info.mipi.mode; ctrl_list[ctrl->ndx] = ctrl; /* keep it */ if (ctrl->shared_pdata.broadcast_enable) if (ctrl->ndx == DSI_CTRL_1) ctrl->flags |= DSI_FLAG_CLOCK_MASTER; if (mdss_register_irq(ctrl->dsi_hw)) pr_err("%s: mdss_register_irq failed.\n", __func__); pr_debug("%s: ndx=%d base=%p\n", __func__, ctrl->ndx, ctrl->ctrl_base); init_completion(&ctrl->dma_comp); init_completion(&ctrl->mdp_comp); init_completion(&ctrl->video_comp); init_completion(&ctrl->bta_comp); spin_lock_init(&ctrl->irq_lock); spin_lock_init(&ctrl->mdp_lock); mutex_init(&ctrl->mutex); mutex_init(&ctrl->cmd_mutex); #ifdef CONFIG_HUAWEI_KERNEL mutex_init(&ctrl->put_mutex); #endif mdss_dsi_buf_alloc(&ctrl->tx_buf, SZ_4K); mdss_dsi_buf_alloc(&ctrl->rx_buf, SZ_4K); ctrl->cmdlist_commit = mdss_dsi_cmdlist_commit; if (dsi_event.inited == 0) { kthread_run(dsi_event_thread, (void *)&dsi_event, "mdss_dsi_event"); dsi_event.inited = 1; } }
void mdss_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl) { if (ctrl->shared_pdata.broadcast_enable) if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { pr_debug("%s: Broadcast mode enabled.\n", __func__); left_ctrl_pdata = ctrl; } if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { mdss_dsi0_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi0_hw; ctrl->ndx = DSI_CTRL_0; } else { mdss_dsi1_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi1_hw; ctrl->ndx = DSI_CTRL_1; } ctrl_list[ctrl->ndx] = ctrl; /* keep it */ if (mdss_register_irq(ctrl->dsi_hw)) pr_err("%s: mdss_register_irq failed.\n", __func__); pr_debug("%s: ndx=%d base=%p\n", __func__, ctrl->ndx, ctrl->ctrl_base); #ifdef LGE_HRTIMER_OLED_PATCH hrtimer_init(&oled_hrtimer, HRTIMER_BASE_MONOTONIC, HRTIMER_MODE_REL_PINNED); #endif init_completion(&ctrl->dma_comp); init_completion(&ctrl->mdp_comp); init_completion(&ctrl->video_comp); init_completion(&ctrl->bta_comp); spin_lock_init(&ctrl->irq_lock); spin_lock_init(&ctrl->mdp_lock); mutex_init(&ctrl->mutex); mutex_init(&ctrl->cmd_mutex); mdss_dsi_buf_alloc(&ctrl->tx_buf, SZ_4K); mdss_dsi_buf_alloc(&ctrl->rx_buf, SZ_4K); ctrl->cmdlist_commit = mdss_dsi_cmdlist_commit; if (dsi_event.inited == 0) { kthread_run(dsi_event_thread, (void *)&dsi_event, "mdss_dsi_event"); dsi_event.inited = 1; } }
void mdss_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl) { if (ctrl->panel_data.panel_info.pdest == DISPLAY_1) { mdss_dsi0_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi0_hw; ctrl->ndx = DSI_CTRL_0; } else { mdss_dsi1_hw.ptr = (void *)(ctrl); ctrl->dsi_hw = &mdss_dsi1_hw; ctrl->ndx = DSI_CTRL_1; } ctrl->panel_mode = ctrl->panel_data.panel_info.mipi.mode; ctrl_list[ctrl->ndx] = ctrl; /* keep it */ if (mdss_register_irq(ctrl->dsi_hw)) pr_err("%s: mdss_register_irq failed.\n", __func__); pr_debug("%s: ndx=%d base=%p\n", __func__, ctrl->ndx, ctrl->ctrl_base); init_completion(&ctrl->dma_comp); init_completion(&ctrl->mdp_comp); init_completion(&ctrl->video_comp); init_completion(&ctrl->bta_comp); spin_lock_init(&ctrl->irq_lock); spin_lock_init(&ctrl->mdp_lock); mutex_init(&ctrl->mutex); mutex_init(&ctrl->cmd_mutex); mdss_dsi_buf_alloc(&ctrl->tx_buf, SZ_4K); mdss_dsi_buf_alloc(&ctrl->rx_buf, SZ_4K); mdss_dsi_buf_alloc(&ctrl->status_buf, SZ_4K); ctrl->cmdlist_commit = mdss_dsi_cmdlist_commit; if (dsi_event.inited == 0) { kthread_run(dsi_event_thread, (void *)&dsi_event, "mdss_dsi_event"); dsi_event.inited = 1; } }