Rev 6283 | Rev 6320 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6283 | Rev 6296 | ||
---|---|---|---|
Line 86... | Line 86... | ||
86 | stride = ALIGN(stride, 64); |
86 | stride = ALIGN(stride, 64); |
87 | size = stride * ALIGN(mode->vdisplay, 2); |
87 | size = stride * ALIGN(mode->vdisplay, 2); |
88 | } |
88 | } |
89 | 89 | ||
Line 90... | Line 90... | ||
90 | dbgprintf("size %x stride %x\n", size, stride); |
90 | DRM_DEBUG_KMS("size %x stride %x\n", size, stride); |
Line 91... | Line 91... | ||
91 | 91 | ||
92 | if(intel_fb == NULL || size > intel_fb->obj->base.size) |
92 | if(intel_fb == NULL || size > intel_fb->obj->base.size) |
93 | { |
93 | { |
94 | struct drm_mode_fb_cmd2 mode_cmd = {}; |
94 | struct drm_mode_fb_cmd2 mode_cmd = {}; |
Line 146... | Line 146... | ||
146 | obj->fence_dirty = true; |
146 | obj->fence_dirty = true; |
147 | obj->stride = stride; |
147 | obj->stride = stride; |
148 | }; |
148 | }; |
149 | 149 | ||
Line -... | Line 150... | ||
- | 150 | if (obj->base.name == 0) |
|
- | 151 | { |
|
- | 152 | int ret; |
|
- | 153 | ||
- | 154 | mutex_lock(&dev->object_name_lock); |
|
- | 155 | idr_preload(GFP_KERNEL); |
|
- | 156 | ret = idr_alloc(&dev->object_name_idr, &obj->base, 1, 0, GFP_NOWAIT); |
|
- | 157 | idr_preload_end(); |
|
- | 158 | mutex_unlock(&dev->object_name_lock); |
|
- | 159 | obj->base.name = ret; |
|
- | 160 | obj->base.handle_count++; |
|
- | 161 | DRM_DEBUG_KMS("%s allocate fb name %d\n", __FUNCTION__, obj->base.name ); |
|
- | 162 | } |
|
- | 163 | ||
150 | fb->width = mode->hdisplay; |
164 | fb->width = mode->hdisplay; |
151 | fb->height = mode->vdisplay; |
165 | fb->height = mode->vdisplay; |
Line 152... | Line 166... | ||
152 | 166 | ||
153 | fb->pitches[0] = |
167 | fb->pitches[0] = |
Line 559... | Line 573... | ||
559 | DRM_DEBUG_KMS("No active connectors!\n"); |
573 | DRM_DEBUG_KMS("No active connectors!\n"); |
560 | return -1; |
574 | return -1; |
561 | }; |
575 | }; |
562 | 576 | ||
Line 563... | Line -... | ||
563 | /* |
- | |
564 | mutex_lock(&dev->object_name_lock); |
- | |
565 | idr_preload(GFP_KERNEL); |
- | |
566 | if (!main_fb_obj->base.name) { |
- | |
567 | ret = idr_alloc(&dev->object_name_idr, &main_fb_obj->base, 1, 0, GFP_NOWAIT); |
- | |
568 | - | ||
569 | main_fb_obj->base.name = ret; |
- | |
570 | main_fb_obj->base.handle_count++; |
- | |
571 | DRM_DEBUG_KMS("%s allocate fb name %d\n", __FUNCTION__, main_fb_obj->base.name ); |
- | |
572 | } |
- | |
573 | idr_preload_end(); |
- | |
574 | mutex_unlock(&dev->object_name_lock); |
- | |
575 | */ |
- | |
576 | dummy_fb_page = AllocPage(); |
577 | dummy_fb_page = AllocPage(); |
Line 577... | Line 578... | ||
577 | 578 | ||
578 | os_display = GetDisplay(); |
579 | os_display = GetDisplay(); |
579 | os_display->ddev = dev; |
580 | os_display->ddev = dev; |
Line 818... | Line 819... | ||
818 | fb->crtc = crtc->base.base.id; |
819 | fb->crtc = crtc->base.base.id; |
819 | fb->pipe = crtc->pipe; |
820 | fb->pipe = crtc->pipe; |
820 | } |
821 | } |
821 | safe_sti(ifl); |
822 | safe_sti(ifl); |
822 | return 0; |
823 | |
- | 824 | return 0; |
|
823 | } |
825 | } |
824 | 826 | ||
Line 825... | Line -... | ||
825 | - | ||
826 | int kolibri_framebuffer_init(struct intel_framebuffer *intel_fb) |
827 | int kolibri_framebuffer_init(struct intel_framebuffer *intel_fb) |
827 | { |
828 | { |
828 | struct kos_framebuffer *kfb; |
829 | struct kos_framebuffer *kfb; |
829 | addr_t dummy_table; |
830 | addr_t dummy_table; |
830 | addr_t *pt_addr = NULL; |
831 | addr_t *pt_addr = NULL; |
831 | int pde; |
832 | int pde; |
832 | ENTER(); |
833 | |
833 | kfb = kzalloc(sizeof(struct kos_framebuffer),0); |
834 | kfb = kzalloc(sizeof(struct kos_framebuffer),0); |
834 | kfb->private = intel_fb; |
835 | kfb->private = intel_fb; |
Line 835... | Line 836... | ||
835 | 836 | ||
836 | for(pde = 0; pde < 8; pde++) |
837 | for(pde = 0; pde < 8; pde++) |
Line 843... | Line 844... | ||
843 | kunmap((struct page*)dummy_table); |
844 | kunmap((struct page*)dummy_table); |
844 | }; |
845 | }; |
845 | 846 | ||
Line 846... | Line 847... | ||
846 | intel_fb->private = kfb; |
847 | intel_fb->private = kfb; |
847 | LEAVE(); |
848 | |
848 | return 0; |
849 | return 0; |
849 | #if 0 |
850 | #if 0 |
850 | struct sg_page_iter sg_iter; |
851 | struct sg_page_iter sg_iter; |
851 | num_pages = obj->base.size/4096; |
852 | num_pages = obj->base.size/4096; |
852 | printf("num_pages %d\n",num_pages); |
853 | printf("num_pages %d\n",num_pages); |