• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/msm/

Lines Matching defs:mfd

103 static int msm_fb_register(struct msm_fb_data_type *mfd);
108 static int msm_fb_stop_sw_refresher(struct msm_fb_data_type *mfd);
109 int msm_fb_resume_sw_refresher(struct msm_fb_data_type *mfd);
115 static int msm_fb_suspend_sub(struct msm_fb_data_type *mfd);
116 static int msm_fb_resume_sub(struct msm_fb_data_type *mfd);
151 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
153 if (!mfd->cursor_update)
156 return mfd->cursor_update(info, cursor);
167 struct msm_fb_data_type *mfd = dev_get_drvdata(led_cdev->dev->parent);
175 bl_lvl = (2 * value * mfd->panel_info.bl_max + MAX_BACKLIGHT_BRIGHTNESS)
181 msm_fb_set_backlight(mfd, bl_lvl, 1);
217 struct msm_fb_data_type *mfd;
243 mfd = (struct msm_fb_data_type *)platform_get_drvdata(pdev);
245 if (!mfd)
248 if (mfd->key != MFD_KEY)
254 mfd->panel_info.frame_count = 0;
255 mfd->bl_level = mfd->panel_info.bl_max;
257 if (mfd->panel_info.type == LCDC_PANEL)
258 mfd->allow_set_offset =
262 mfd->allow_set_offset = 0;
264 rc = msm_fb_register(mfd);
269 msm_fb_config_backlight(mfd);
286 struct msm_fb_data_type *mfd;
290 mfd = (struct msm_fb_data_type *)platform_get_drvdata(pdev);
292 if (!mfd)
295 if (mfd->key != MFD_KEY)
298 if (msm_fb_suspend_sub(mfd))
299 printk(KERN_ERR "msm_fb_remove: can't stop the device %d\n", mfd->index);
301 if (mfd->channel_irq != 0)
302 free_irq(mfd->channel_irq, (void *)mfd);
304 if (mfd->vsync_width_boundary)
305 vfree(mfd->vsync_width_boundary);
307 if (mfd->vsync_resync_timer.function)
308 del_timer(&mfd->vsync_resync_timer);
310 if (mfd->refresh_timer.function)
311 del_timer(&mfd->refresh_timer);
313 if (mfd->dma_hrtimer.function)
314 hrtimer_cancel(&mfd->dma_hrtimer);
317 unregister_framebuffer(mfd->fbi);
321 backlight_device_unregister(mfd->fbi->bl_dev);
330 if (mfd->sub_dir)
331 debugfs_remove(mfd->sub_dir);
340 struct msm_fb_data_type *mfd;
345 mfd = (struct msm_fb_data_type *)platform_get_drvdata(pdev);
347 if ((!mfd) || (mfd->key != MFD_KEY))
351 fb_set_suspend(mfd->fbi, 1);
353 ret = msm_fb_suspend_sub(mfd);
356 fb_set_suspend(mfd->fbi, 0);
368 static int msm_fb_suspend_sub(struct msm_fb_data_type *mfd)
372 if ((!mfd) || (mfd->key != MFD_KEY))
378 mfd->suspend.sw_refreshing_enable = mfd->sw_refreshing_enable;
379 mfd->suspend.op_enable = mfd->op_enable;
380 mfd->suspend.panel_power_on = mfd->panel_power_on;
382 if (mfd->op_enable) {
384 msm_fb_blank_sub(FB_BLANK_POWERDOWN, mfd->fbi,
385 mfd->suspend.op_enable);
391 mfd->op_enable = FALSE;
402 if ((mfd->dest == DISPLAY_LCD)) {
403 if (mfd->panel_info.lcd.vsync_enable) {
404 if (mfd->panel_info.lcd.hw_vsync_mode) {
405 if (mfd->channel_irq != 0)
406 disable_irq(mfd->channel_irq);
410 vh_pending = mfd->vsync_handler_pending;
425 struct msm_fb_data_type *mfd;
429 mfd = (struct msm_fb_data_type *)platform_get_drvdata(pdev);
431 if ((!mfd) || (mfd->key != MFD_KEY))
435 ret = msm_fb_resume_sub(mfd);
437 fb_set_suspend(mfd->fbi, 1);
446 static int msm_fb_resume_sub(struct msm_fb_data_type *mfd)
450 if ((!mfd) || (mfd->key != MFD_KEY))
454 if (mfd->channel_irq != 0)
455 enable_irq(mfd->channel_irq);
458 mfd->sw_refreshing_enable = mfd->suspend.sw_refreshing_enable;
459 mfd->op_enable = mfd->suspend.op_enable;
461 if (mfd->suspend.panel_power_on) {
463 msm_fb_blank_sub(FB_BLANK_UNBLANK, mfd->fbi,
464 mfd->op_enable);
489 struct msm_fb_data_type *mfd = container_of(h, struct msm_fb_data_type,
491 msm_fb_suspend_sub(mfd);
496 struct msm_fb_data_type *mfd = container_of(h, struct msm_fb_data_type,
498 msm_fb_resume_sub(mfd);
502 void msm_fb_set_backlight(struct msm_fb_data_type *mfd, __u32 bkl_lvl, u32 save)
506 pdata = (struct msm_fb_panel_data *)mfd->pdev->dev.platform_data;
509 down(&mfd->sem);
510 if ((bkl_lvl != mfd->bl_level) || (!save)) {
513 old_lvl = mfd->bl_level;
514 mfd->bl_level = bkl_lvl;
515 pdata->set_backlight(mfd);
518 mfd->bl_level = old_lvl;
520 up(&mfd->sem);
527 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
534 pdata = (struct msm_fb_panel_data *)mfd->pdev->dev.platform_data;
542 if (!mfd->panel_power_on) {
544 ret = pdata->on(mfd->pdev);
546 mfd->panel_power_on = TRUE;
548 msm_fb_set_backlight(mfd,
549 mfd->bl_level, 0);
553 if (!mfd->hw_refresh)
555 if ((ret = msm_fb_resume_sw_refresher(mfd)) != 0)
570 if (mfd->panel_power_on) {
573 mfd->op_enable = FALSE;
574 curr_pwr_state = mfd->panel_power_on;
575 mfd->panel_power_on = FALSE;
578 ret = pdata->off(mfd->pdev);
580 mfd->panel_power_on = curr_pwr_state;
582 msm_fb_set_backlight(mfd, 0, 0);
583 mfd->op_enable = TRUE;
594 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
597 if (!mfd->hw_refresh && (info->var.yoffset == 0) &&
598 !mfd->sw_currently_refreshing) {
614 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
617 if (!mfd->hw_refresh && (info->var.yoffset == 0) &&
618 !mfd->sw_currently_refreshing) {
633 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
636 if (!mfd->hw_refresh && (info->var.yoffset == 0) &&
637 !mfd->sw_currently_refreshing) {
652 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
653 return msm_fb_blank_sub(blank_mode, info, mfd->op_enable);
658 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
660 if (!mfd->lut_update)
663 mfd->lut_update(info, cmap);
678 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
700 if (mfd->mdp_fb_page_protection == MDP_FB_PAGE_PROTECTION_WRITECOMBINE)
702 else if (mfd->mdp_fb_page_protection ==
705 else if (mfd->mdp_fb_page_protection ==
708 else if (mfd->mdp_fb_page_protection ==
744 static int msm_fb_register(struct msm_fb_data_type *mfd)
748 struct msm_panel_info *panel_info = &mfd->panel_info;
749 struct fb_info *fbi = mfd->fbi;
778 mfd->op_enable = FALSE;
780 switch (mfd->fb_imgType) {
863 mfd->index);
872 if (mfd->index == 0)
877 fix->smem_len = fix->line_length * panel_info->yres * mfd->fb_page;
879 mfd->var_xres = panel_info->xres;
880 mfd->var_yres = panel_info->yres;
882 var->pixclock = mfd->panel_info.clk_rate;
883 mfd->var_pixclock = var->pixclock;
888 var->yres_virtual = panel_info->yres * mfd->fb_page;
893 id = (int *)&mfd->panel;
910 mfd->ref_cnt = 0;
911 mfd->sw_currently_refreshing = FALSE;
912 mfd->sw_refreshing_enable = TRUE;
913 mfd->panel_power_on = FALSE;
915 mfd->pan_waiting = FALSE;
916 init_completion(&mfd->pan_comp);
917 init_completion(&mfd->refresher_comp);
918 init_MUTEX(&mfd->sem);
935 mfd->op_enable = TRUE;
936 mfd->panel_power_on = FALSE;
939 if (mfd->cursor_update) {
940 mfd->cursor_buf = dma_alloc_coherent(NULL,
942 (dma_addr_t *) &mfd->cursor_buf_phys,
944 if (!mfd->cursor_buf)
945 mfd->cursor_update = 0;
948 if (mfd->lut_update) {
956 if (mfd->lut_update)
959 if (mfd->cursor_buf)
962 mfd->cursor_buf,
963 (dma_addr_t) mfd->cursor_buf_phys);
965 mfd->op_enable = FALSE;
975 mfd->index, fbi->var.xres, fbi->var.yres, fbi->fix.smem_len);
983 mfd->early_suspend.suspend = msmfb_early_suspend;
984 mfd->early_suspend.resume = msmfb_early_resume;
985 mfd->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 2;
986 register_early_suspend(&mfd->early_suspend);
997 sub_name[0] = (char)(mfd->index + 0x30);
1004 mfd->sub_dir = sub_dir;
1008 (u32 *) &mfd->op_enable);
1010 (u32 *) &mfd->
1013 (u32 *) &mfd->ref_cnt);
1015 (u32 *) &mfd->fb_imgType);
1018 (u32 *) &mfd->
1022 (u32 *) &mfd->
1026 (u32 *) &mfd->panel_info.
1029 (u32 *) &mfd->panel_info.
1032 (u32 *) &mfd->panel_info.
1035 (u32 *) &mfd->panel_info.
1038 (u32 *) &mfd->panel_info.
1041 (u32 *) &mfd->panel_info.
1044 (u32 *) &mfd->panel_info.
1047 (u32 *) &mfd->panel_info.
1050 (u32 *) &mfd->panel_info.
1054 switch (mfd->dest) {
1058 (u32 *)&mfd->panel_info.lcd.vsync_enable);
1061 (u32 *) &mfd->panel_info.lcd. refx100);
1064 (u32 *) &mfd->panel_info.lcd.v_back_porch);
1067 (u32 *) &mfd->panel_info.lcd.v_front_porch);
1070 (u32 *) &mfd->panel_info.lcd.v_pulse_width);
1073 (u32 *) &mfd->panel_info.lcd.hw_vsync_mode);
1076 &mfd->panel_info.lcd.vsync_notifier_period);
1082 (u32 *) &mfd->panel_info.lcdc.h_back_porch);
1085 (u32 *) &mfd->panel_info.lcdc.h_front_porch);
1088 (u32 *) &mfd->panel_info.lcdc.h_pulse_width);
1091 (u32 *) &mfd->panel_info.lcdc.v_back_porch);
1094 (u32 *) &mfd->panel_info.lcdc.v_front_porch);
1097 (u32 *) &mfd->panel_info.lcdc.v_pulse_width);
1100 (u32 *) &mfd->panel_info.lcdc.border_clr);
1103 (u32 *) &mfd->panel_info.lcdc.underflow_clr);
1106 (u32 *) &mfd->panel_info.lcdc.hsync_skew);
1121 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1123 if (!mfd->ref_cnt) {
1126 if (msm_fb_blank_sub(FB_BLANK_UNBLANK, info, mfd->op_enable)) {
1132 mfd->ref_cnt++;
1138 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1141 if (!mfd->ref_cnt) {
1143 mfd->index);
1147 mfd->ref_cnt--;
1149 if (!mfd->ref_cnt) {
1152 mfd->op_enable)) != 0) {
1168 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1170 if ((!mfd->op_enable) || (!mfd->panel_power_on))
1230 if (mfd->allow_set_offset) {
1249 mfd->ibuf.visible_swapped = TRUE;
1259 mfd->ibuf.visible_swapped = FALSE;
1265 mfd->dma_fnc(mfd);
1277 ++mfd->panel_info.frame_count;
1283 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1339 if ((var->xres > mfd->panel_info.xres) ||
1340 (var->yres > mfd->panel_info.yres))
1354 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1359 old_imgType = mfd->fb_imgType;
1363 mfd->fb_imgType = MDP_BGR_565;
1365 mfd->fb_imgType = MDP_RGB_565;
1370 mfd->fb_imgType = MDP_RGB_888;
1373 mfd->fb_imgType = MDP_ARGB_8888;
1382 if ((mfd->var_pixclock != var->pixclock) ||
1383 (mfd->hw_refresh && ((mfd->fb_imgType != old_imgType) ||
1384 (mfd->var_pixclock != var->pixclock) ||
1385 (mfd->var_xres != var->xres) ||
1386 (mfd->var_yres != var->yres)))) {
1387 mfd->var_xres = var->xres;
1388 mfd->var_yres = var->yres;
1389 mfd->var_pixclock = var->pixclock;
1394 msm_fb_blank_sub(FB_BLANK_POWERDOWN, info, mfd->op_enable);
1395 msm_fb_blank_sub(FB_BLANK_UNBLANK, info, mfd->op_enable);
1401 static int msm_fb_stop_sw_refresher(struct msm_fb_data_type *mfd)
1403 if (mfd->hw_refresh)
1406 if (mfd->sw_currently_refreshing) {
1407 down(&mfd->sem);
1408 mfd->sw_currently_refreshing = FALSE;
1409 up(&mfd->sem);
1412 wait_for_completion_killable(&mfd->refresher_comp);
1418 int msm_fb_resume_sw_refresher(struct msm_fb_data_type *mfd)
1422 if (mfd->hw_refresh)
1425 down(&mfd->sem);
1426 if ((!mfd->sw_currently_refreshing) && (mfd->sw_refreshing_enable)) {
1428 mfd->sw_currently_refreshing = TRUE;
1432 up(&mfd->sem);
1435 mdp_refresh_screen((unsigned long)mfd);
1558 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1559 switch (mfd->mdp_fb_page_protection) {
1632 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
1633 switch (mfd->mdp_fb_page_protection) {
2011 struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
2022 if (!mfd->op_enable)
2150 if (!mfd->panel_power_on)
2153 mfd->sw_refreshing_enable = FALSE;
2154 ret = msm_fb_stop_sw_refresher(mfd);
2158 if (!mfd->panel_power_on)
2161 mfd->sw_refreshing_enable = TRUE;
2162 ret = msm_fb_resume_sw_refresher(mfd);
2184 if (!mfd->do_histogram)
2192 ret = mfd->do_histogram(info, &hist);
2198 = mfd->mdp_fb_page_protection;
2221 mfd->mdp_fb_page_protection =
2256 struct msm_fb_data_type *mfd = NULL;
2297 mfd = (struct msm_fb_data_type *)fbi->par;
2298 mfd->key = MFD_KEY;
2299 mfd->fbi = fbi;
2300 mfd->panel.type = type;
2301 mfd->panel.id = id;
2302 mfd->fb_page = fb_num;
2303 mfd->index = fbi_list_index;
2304 mfd->mdp_fb_page_protection = MDP_FB_PAGE_PROTECTION_WRITECOMBINE;
2307 mfd->pdev = this_dev;
2309 mfd_list[mfd_list_index++] = mfd;
2315 platform_set_drvdata(this_dev, mfd);