Subversion Repositories Kolibri OS

Rev

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);