/linux/drivers/video/fbdev/ |
H A D | goldfishfb.c | 15 #include <linux/fb.h> 44 struct fb_info fb; member 51 struct goldfish_fb *fb = dev_id; in goldfish_fb_interrupt() local 54 spin_lock_irqsave(&fb->lock, irq_flags); in goldfish_fb_interrupt() 55 status = readl(fb->reg_base + FB_INT_STATUS); in goldfish_fb_interrupt() 57 fb->base_update_count++; in goldfish_fb_interrupt() 58 wake_up(&fb->wait); in goldfish_fb_interrupt() 60 spin_unlock_irqrestore(&fb->lock, irq_flags); in goldfish_fb_interrupt() 75 struct goldfish_fb *fb = container_of(info, struct goldfish_fb, fb); in goldfish_fb_setcolreg() local 78 fb->cmap[regno] = convert_bitfield(transp, &fb->fb.var.transp) | in goldfish_fb_setcolreg() [all …]
|
H A D | stifb.c | 64 #include <linux/fb.h> 156 #define READ_BYTE(fb, reg) gsc_readb((fb)->info->fix.mmio_start + (reg)) argument 157 #define READ_WORD(fb, reg) gsc_readl((fb)->info->fix.mmio_start + (reg)) argument 163 # define WRITE_BYTE(value, fb, reg) gsc_writeb((value), (fb)->info->fix.mmio_start + (reg)) argument 164 # define WRITE_WORD(value, fb, reg) gsc_writel((value), (fb)->info->fix.mmio_start + (reg)) argument 169 # define WRITE_BYTE(value,fb,reg) do { if (debug_on) \ argument 171 __func__, reg, value, READ_BYTE(fb,reg)); \ 172 gsc_writeb((value), (fb)->info->fix.mmio_start + (reg)); } while (0) 173 # define WRITE_WORD(value,fb,reg) do { if (debug_on) \ argument 175 __func__, reg, value, READ_WORD(fb,reg)); \ [all …]
|
H A D | wm8505fb.c | 11 #include <linux/fb.h> 32 #define DRIVER_NAME "wm8505-fb" 35 struct wm8505fb_info, fb) 37 struct fb_info fb; member 54 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR); in wm8505fb_init_hw() 55 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR1); in wm8505fb_init_hw() 205 switch (fbi->fb.fix.visual) { in wm8505fb_setcolreg() 210 val = chan_to_field(red, &fbi->fb.var.red); in wm8505fb_setcolreg() 211 val |= chan_to_field(green, &fbi->fb.var.green); in wm8505fb_setcolreg() 212 val |= chan_to_field(blue, &fbi->fb.var.blue); in wm8505fb_setcolreg() [all …]
|
H A D | Kconfig | 6 menuconfig FB config 25 in the /dev directory, i.e. /dev/fb*. 28 buffer devices. Please read <file:Documentation/fb/framebuffer.rst> 50 depends on FB 55 depends on FB 62 depends on FB 66 depends on FB && SPARC 73 depends on FB && (ZORRO || PCI) 85 Please read the file <file:Documentation/fb/cirrusfb.rst>. 92 depends on FB && ((AMIGA && BROKEN) || PCI) [all …]
|
H A D | vt8500lcdfb.c | 13 #include <linux/fb.h> 37 struct vt8500lcd_info, fb) 152 switch (fbi->fb.fix.visual) { in vt8500lcd_setcolreg() 155 u32 *pal = fbi->fb.pseudo_palette; in vt8500lcd_setcolreg() 157 val = chan_to_field(red, &fbi->fb.var.red); in vt8500lcd_setcolreg() 158 val |= chan_to_field(green, &fbi->fb.var.green); in vt8500lcd_setcolreg() 159 val |= chan_to_field(blue, &fbi->fb.var.blue); in vt8500lcd_setcolreg() 290 strcpy(fbi->fb.fix.id, "VT8500 LCD"); in vt8500lcd_probe() 292 fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; in vt8500lcd_probe() 293 fbi->fb.fix.xpanstep = 0; in vt8500lcd_probe() [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
H A D | base.c | 35 nvkm_fb_tile_fini(struct nvkm_fb *fb, int region, struct nvkm_fb_tile *tile) in nvkm_fb_tile_fini() argument 37 fb->func->tile.fini(fb, region, tile); in nvkm_fb_tile_fini() 41 nvkm_fb_tile_init(struct nvkm_fb *fb, int region, u32 addr, u32 size, in nvkm_fb_tile_init() argument 44 fb->func->tile.init(fb, region, addr, size, pitch, flags, tile); in nvkm_fb_tile_init() 48 nvkm_fb_tile_prog(struct nvkm_fb *fb, int region, struct nvkm_fb_tile *tile) in nvkm_fb_tile_prog() argument 50 struct nvkm_device *device = fb->subdev.device; in nvkm_fb_tile_prog() 51 if (fb->func->tile.prog) { in nvkm_fb_tile_prog() 52 fb->func->tile.prog(fb, region, tile); in nvkm_fb_tile_prog() 63 struct nvkm_fb *fb = device->fb; in nvkm_fb_sysmem_flush_page_init() local 65 if (fb->func->sysmem.flush_page_init) in nvkm_fb_sysmem_flush_page_init() [all …]
|
H A D | gf100.c | 34 struct gf100_fb *fb = gf100_fb(base); in gf100_fb_intr() local 35 struct nvkm_subdev *subdev = &fb->base.subdev; in gf100_fb_intr() 47 struct gf100_fb *fb = gf100_fb(base); in gf100_fb_oneinit() local 48 struct nvkm_device *device = fb->base.subdev.device; in gf100_fb_oneinit() 49 int ret, size = 1 << (fb->base.page ? fb->base.page : 17); in gf100_fb_oneinit() 55 true, &fb->base.mmu_rd); in gf100_fb_oneinit() 60 true, &fb->base.mmu_wr); in gf100_fb_oneinit() 68 gf100_fb_init_page(struct nvkm_fb *fb) in gf100_fb_init_page() argument 70 struct nvkm_device *device = fb->subdev.device; in gf100_fb_init_page() 71 switch (fb->page) { in gf100_fb_init_page() [all …]
|
/linux/fs/fuse/ |
H A D | backing.c | 12 struct fuse_backing *fuse_backing_get(struct fuse_backing *fb) in fuse_backing_get() argument 14 if (fb && refcount_inc_not_zero(&fb->count)) in fuse_backing_get() 15 return fb; in fuse_backing_get() 19 static void fuse_backing_free(struct fuse_backing *fb) in fuse_backing_free() argument 21 pr_debug("%s: fb=0x%p\n", __func__, fb); in fuse_backing_free() 23 if (fb->file) in fuse_backing_free() 24 fput(fb->file); in fuse_backing_free() 25 put_cred(fb->cred); in fuse_backing_free() 26 kfree_rcu(fb, rcu); in fuse_backing_free() 29 void fuse_backing_put(struct fuse_backing *fb) in fuse_backing_put() argument [all …]
|
/linux/drivers/gpu/drm/ |
H A D | drm_framebuffer.c | 78 const struct drm_framebuffer *fb) in drm_framebuffer_check_src_coords() argument 82 fb_width = fb->width << 16; in drm_framebuffer_check_src_coords() 83 fb_height = fb->height << 16; in drm_framebuffer_check_src_coords() 85 /* Make sure source coordinates are inside the fb. */ in drm_framebuffer_check_src_coords() 90 drm_dbg_kms(fb->dev, "Invalid source coordinates " in drm_framebuffer_check_src_coords() 91 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n", in drm_framebuffer_check_src_coords() 96 fb->width, fb->height); in drm_framebuffer_check_src_coords() 105 * drm_mode_addfb - add an FB to the graphics configuration 110 * Add a new FB to the specified CRTC, given a user request. This is the 199 drm_dbg_kms(dev, "bad fb modifier %llu for plane %d\n", in framebuffer_check() [all …]
|
H A D | drm_gem_framebuffer_helper.c | 44 * @fb: Framebuffer 54 struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb, in drm_gem_fb_get_obj() argument 57 struct drm_device *dev = fb->dev; in drm_gem_fb_get_obj() 59 if (drm_WARN_ON_ONCE(dev, plane >= ARRAY_SIZE(fb->obj))) in drm_gem_fb_get_obj() 61 else if (drm_WARN_ON_ONCE(dev, !fb->obj[plane])) in drm_gem_fb_get_obj() 64 return fb->obj[plane]; in drm_gem_fb_get_obj() 70 struct drm_framebuffer *fb, in drm_gem_fb_init() argument 79 drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd); in drm_gem_fb_init() 82 fb->obj[i] = obj[i]; in drm_gem_fb_init() 84 ret = drm_framebuffer_init(dev, fb, funcs); in drm_gem_fb_init() [all …]
|
/linux/drivers/gpu/drm/msm/ |
H A D | msm_fb.c | 36 static int msm_framebuffer_dirtyfb(struct drm_framebuffer *fb, in msm_framebuffer_dirtyfb() argument 41 struct msm_framebuffer *msm_fb = to_msm_framebuffer(fb); in msm_framebuffer_dirtyfb() 43 /* If this fb is not used on any display requiring pixel data to be in msm_framebuffer_dirtyfb() 49 return drm_atomic_helper_dirtyfb(fb, file_priv, flags, color, in msm_framebuffer_dirtyfb() 60 void msm_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m) in msm_framebuffer_describe() argument 63 int i, n = fb->format->num_planes; in msm_framebuffer_describe() 65 seq_printf(m, "fb: %dx%d@%4.4s (%2d, ID:%d)\n", in msm_framebuffer_describe() 66 fb->width, fb->height, (char *)&fb->format->format, in msm_framebuffer_describe() 67 drm_framebuffer_read_refcount(fb), fb->base.id); in msm_framebuffer_describe() 71 i, fb->offsets[i], fb->pitches[i]); in msm_framebuffer_describe() [all …]
|
/linux/drivers/staging/fbtft/ |
H A D | Kconfig | 4 depends on FB && SPI 14 tristate "FB driver for the AGM1264K-FL LCD display" 19 tristate "FB driver for the BD663474 LCD Controller" 24 tristate "FB driver for the HX8340BN LCD Controller" 29 tristate "FB driver for the HX8347D LCD Controller" 34 tristate "FB driver for the HX8353D LCD Controller" 39 tristate "FB driver for the HX8357D LCD Controller" 44 tristate "FB driver for the ILI9163 LCD Controller" 49 tristate "FB driver for the ILI9320 LCD Controller" 54 tristate "FB driver for the ILI9325 LCD Controller" [all …]
|
/linux/drivers/gpu/drm/arm/display/komeda/ |
H A D | komeda_framebuffer.c | 16 static void komeda_fb_destroy(struct drm_framebuffer *fb) in komeda_fb_destroy() argument 18 struct komeda_fb *kfb = to_kfb(fb); in komeda_fb_destroy() 21 for (i = 0; i < fb->format->num_planes; i++) in komeda_fb_destroy() 22 drm_gem_object_put(fb->obj[i]); in komeda_fb_destroy() 24 drm_framebuffer_cleanup(fb); in komeda_fb_destroy() 28 static int komeda_fb_create_handle(struct drm_framebuffer *fb, in komeda_fb_create_handle() argument 31 return drm_gem_handle_create(file, fb->obj[0], handle); in komeda_fb_create_handle() 43 struct drm_framebuffer *fb = &kfb->base; in komeda_fb_afbc_size_check() local 44 const struct drm_format_info *info = fb->format; in komeda_fb_afbc_size_check() 55 switch (fb->modifier & AFBC_FORMAT_MOD_BLOCK_SIZE_MASK) { in komeda_fb_afbc_size_check() [all …]
|
/linux/drivers/gpu/drm/omapdrm/ |
H A D | omap_fb.c | 45 /* per-plane info for the fb: */ 61 static int omap_framebuffer_dirty(struct drm_framebuffer *fb, in omap_framebuffer_dirty() argument 69 drm_modeset_lock_all(fb->dev); in omap_framebuffer_dirty() 71 drm_for_each_crtc(crtc, fb->dev) in omap_framebuffer_dirty() 74 drm_modeset_unlock_all(fb->dev); in omap_framebuffer_dirty() 85 static u32 get_linear_addr(struct drm_framebuffer *fb, in get_linear_addr() argument 88 struct omap_framebuffer *omap_fb = to_omap_framebuffer(fb); in get_linear_addr() 92 offset = fb->offsets[n] in get_linear_addr() 94 + (y * fb->pitches[n] / (n == 0 ? 1 : format->vsub)); in get_linear_addr() 99 bool omap_framebuffer_supports_rotation(struct drm_framebuffer *fb) in omap_framebuffer_supports_rotation() argument [all …]
|
H A D | omap_fbdev.c | 7 #include <linux/fb.h> 46 struct drm_gem_object *bo = drm_gem_fb_get_obj(helper->fb, 0); in pan_worker() 94 struct drm_framebuffer *fb = helper->fb; in omap_fbdev_fb_destroy() local 95 struct drm_gem_object *bo = drm_gem_fb_get_obj(fb, 0); in omap_fbdev_fb_destroy() 103 drm_framebuffer_remove(fb); in omap_fbdev_fb_destroy() 133 if (helper->fb->funcs->dirty) in omap_fbdev_dirty() 134 return helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, clip, 1); in omap_fbdev_dirty() 146 /* these are not the fb's you're looking for */ in get_fb() 158 struct drm_framebuffer *fb = NULL; in omap_fbdev_driver_fbdev_probe() local 192 DBG("allocating %d bytes for fb %d", gsize.bytes, dev->primary->index); in omap_fbdev_driver_fbdev_probe() [all …]
|
/linux/drivers/media/platform/mediatek/vcodec/decoder/vdec/ |
H A D | vdec_vp9_if.c | 45 * @fb : frame buffer 49 struct vdec_fb *fb; member 78 * @fb : super frame reference frame buffer 83 struct vdec_fb fb; member 101 * @fb : capture buffer (AP-W, VPU-R) 144 struct vdec_fb fb; member 177 * @dec_fb : vdec_fb node to link fb to different fb_xxx_list 207 static bool vp9_is_sf_ref_fb(struct vdec_vp9_inst *inst, struct vdec_fb *fb) in vp9_is_sf_ref_fb() argument 213 if (fb == &vsi->sf_ref_fb[i].fb) in vp9_is_sf_ref_fb() 222 struct vdec_fb *fb = NULL; in vp9_rm_from_fb_use_list() local [all …]
|
H A D | vdec_vp8_if.c | 123 /* frame buffer (fb) list 124 * [available_fb_node_list] - decode fb are initialized to 0 and populated in 125 * [fb_use_list] - fb is set after decode and is moved to this list 126 * [fb_free_list] - fb is not needed for reference will be moved from 128 * once user remove fb from [fb_free_list], 130 * [fb_disp_list] - fb is set after decode and is moved to this list 131 * once user remove fb from [fb_disp_list] it is 286 mtk_vdec_debug(inst->ctx, "fb size: Y(%d), C(%d)", in get_pic_info() 295 mtk_vdec_debug(inst->ctx, "prev fb base dma=%llx", prev_y_dma); in vp8_dec_finish() 300 struct vdec_fb *fb = (struct vdec_fb *)node->fb; in vp8_dec_finish() local [all …]
|
/linux/drivers/gpu/drm/imx/dcss/ |
H A D | dcss-plane.c | 54 static inline bool dcss_plane_fb_is_linear(const struct drm_framebuffer *fb) in dcss_plane_fb_is_linear() argument 56 return ((fb->flags & DRM_MODE_FB_MODIFIERS) == 0) || in dcss_plane_fb_is_linear() 57 ((fb->flags & DRM_MODE_FB_MODIFIERS) != 0 && in dcss_plane_fb_is_linear() 58 fb->modifier == DRM_FORMAT_MOD_LINEAR); in dcss_plane_fb_is_linear() 148 struct drm_framebuffer *fb = new_plane_state->fb; in dcss_plane_atomic_check() local 156 if (!fb || !new_plane_state->crtc) in dcss_plane_atomic_check() 159 dma_obj = drm_fb_dma_get_gem_obj(fb, 0); in dcss_plane_atomic_check() 170 fb->format->format)) { in dcss_plane_atomic_check() 187 if (!dcss_plane_can_rotate(fb->format, in dcss_plane_atomic_check() 188 !!(fb->flags & DRM_MODE_FB_MODIFIERS), in dcss_plane_atomic_check() [all …]
|
/linux/drivers/gpu/drm/imx/ipuv3/ |
H A D | ipuv3-plane.c | 127 struct drm_framebuffer *fb = state->fb; in drm_plane_state_to_eba() local 132 dma_obj = drm_fb_dma_get_gem_obj(fb, plane); in drm_plane_state_to_eba() 135 return dma_obj->dma_addr + fb->offsets[plane] + fb->pitches[plane] * y + in drm_plane_state_to_eba() 136 fb->format->cpp[plane] * x; in drm_plane_state_to_eba() 142 struct drm_framebuffer *fb = state->fb; in drm_plane_state_to_ubo() local 148 dma_obj = drm_fb_dma_get_gem_obj(fb, 1); in drm_plane_state_to_ubo() 151 x /= fb->format->hsub; in drm_plane_state_to_ubo() 152 y /= fb->format->vsub; in drm_plane_state_to_ubo() 154 return dma_obj->dma_addr + fb->offsets[1] + fb->pitches[1] * y + in drm_plane_state_to_ubo() 155 fb->format->cpp[1] * x - eba; in drm_plane_state_to_ubo() [all …]
|
/linux/include/drm/ |
H A D | drm_framebuffer.h | 74 int (*create_handle)(struct drm_framebuffer *fb, 80 * Optional callback for the dirty fb IOCTL. 109 * Note that the fb is refcounted for the benefit of driver internals, 114 * hold a ref to the fb even though it has already been removed from 137 * @comm: Name of the process allocating the fb, used for fb dumping. 214 struct drm_framebuffer *fb, 219 void drm_framebuffer_remove(struct drm_framebuffer *fb); 220 void drm_framebuffer_cleanup(struct drm_framebuffer *fb); 221 void drm_framebuffer_unregister_private(struct drm_framebuffer *fb); 225 * @fb: DRM framebuffer [all …]
|
/linux/sound/core/ |
H A D | ump.c | 111 struct snd_ump_block *fb; in snd_ump_endpoint_free() local 114 fb = list_first_entry(&ump->block_list, struct snd_ump_block, in snd_ump_endpoint_free() 116 list_del(&fb->list); in snd_ump_endpoint_free() 117 if (fb->private_free) in snd_ump_endpoint_free() 118 fb->private_free(fb); in snd_ump_endpoint_free() 119 kfree(fb); in snd_ump_endpoint_free() 243 struct snd_ump_block *fb; in snd_ump_get_block() local 245 list_for_each_entry(fb, &ump->block_list, list) { in snd_ump_get_block() 246 if (fb->info.block_id == id) in snd_ump_get_block() 247 return fb; in snd_ump_get_block() [all …]
|
/linux/drivers/gpu/drm/xen/ |
H A D | xen_drm_front_kms.c | 38 static void fb_destroy(struct drm_framebuffer *fb) in fb_destroy() argument 40 struct xen_drm_front_drm_info *drm_info = fb->dev->dev_private; in fb_destroy() 43 if (drm_dev_enter(fb->dev, &idx)) { in fb_destroy() 45 xen_drm_front_fb_to_cookie(fb)); in fb_destroy() 48 drm_gem_fb_destroy(fb); in fb_destroy() 61 struct drm_framebuffer *fb; in fb_create() local 65 fb = drm_gem_fb_create_with_funcs(dev, filp, info, mode_cmd, &fb_funcs); in fb_create() 66 if (IS_ERR(fb)) in fb_create() 67 return fb; in fb_create() 69 gem_obj = fb->obj[0]; in fb_create() [all …]
|
/linux/drivers/gpu/drm/exynos/ |
H A D | exynos_drm_fbdev.c | 11 #include <linux/fb.h> 30 struct drm_gem_object *obj = drm_gem_fb_get_obj(helper->fb, 0); in exynos_drm_fb_mmap() 38 struct drm_framebuffer *fb = fb_helper->fb; in exynos_drm_fb_destroy() local 42 drm_framebuffer_remove(fb); in exynos_drm_fb_destroy() 63 struct drm_framebuffer *fb = helper->fb; in exynos_drm_fbdev_update() local 64 unsigned int size = fb->width * fb->height * fb->format->cpp[0]; in exynos_drm_fbdev_update() 70 "failed to allocate fb info.\n"); in exynos_drm_fbdev_update() 78 offset = fbi->var.xoffset * fb->format->cpp[0]; in exynos_drm_fbdev_update() 79 offset += fbi->var.yoffset * fb->pitches[0]; in exynos_drm_fbdev_update() 118 helper->fb = in exynos_drm_fbdev_driver_fbdev_probe() [all …]
|
H A D | exynos_drm_fb.c | 64 struct drm_framebuffer *fb; in exynos_drm_framebuffer_init() local 68 fb = kzalloc(sizeof(*fb), GFP_KERNEL); in exynos_drm_framebuffer_init() 69 if (!fb) in exynos_drm_framebuffer_init() 77 fb->obj[i] = &exynos_gem[i]->base; in exynos_drm_framebuffer_init() 80 drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd); in exynos_drm_framebuffer_init() 82 ret = drm_framebuffer_init(dev, fb, &exynos_drm_fb_funcs); in exynos_drm_framebuffer_init() 89 return fb; in exynos_drm_framebuffer_init() 92 kfree(fb); in exynos_drm_framebuffer_init() 102 struct drm_framebuffer *fb; in exynos_user_fb_create() local 128 fb = exynos_drm_framebuffer_init(dev, info, mode_cmd, exynos_gem, i); in exynos_user_fb_create() [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ |
H A D | nv10.c | 40 struct io_mapping *fb; in nv10_devinit_meminit() local 49 fb = fbmem_init(device); in nv10_devinit_meminit() 50 if (!fb) { in nv10_devinit_meminit() 51 nvkm_error(subdev, "failed to map fb\n"); in nv10_devinit_meminit() 63 fbmem_poke(fb, 0x1c, 0); in nv10_devinit_meminit() 65 fbmem_poke(fb, 0x1c, patt); in nv10_devinit_meminit() 66 fbmem_poke(fb, 0x3c, 0); in nv10_devinit_meminit() 68 if (fbmem_peek(fb, 0x1c) == patt) in nv10_devinit_meminit() 80 fbmem_poke(fb, off, patt); in nv10_devinit_meminit() 81 fbmem_poke(fb, 0, 0); in nv10_devinit_meminit() [all …]
|