Lines Matching refs:info

54 static inline void lcd_write_control(struct fb_info *info, u8 control)
56 writel((u32)control << 24, info->screen_base);
59 static inline u8 lcd_read_control(struct fb_info *info)
61 return readl(info->screen_base) >> 24;
64 static inline void lcd_write_data(struct fb_info *info, u8 data)
66 writel((u32)data << 24, info->screen_base + LCD_DATA_REG_OFFSET);
69 static inline u8 lcd_read_data(struct fb_info *info)
71 return readl(info->screen_base + LCD_DATA_REG_OFFSET) >> 24;
74 static int lcd_busy_wait(struct fb_info *info)
80 val = lcd_read_control(info);
97 static void lcd_clear(struct fb_info *info)
104 lcd_write_control(info, LCD_PRERESET);
109 lcd_write_control(info, LCD_CLEAR);
113 lcd_write_control(info, LCD_RESET);
125 static ssize_t cobalt_lcdfb_read(struct fb_info *info, char __user *buf,
143 retval = lcd_busy_wait(info);
147 lcd_write_control(info, LCD_TEXT_POS(pos));
149 retval = lcd_busy_wait(info);
153 src[len] = lcd_read_data(info);
171 static ssize_t cobalt_lcdfb_write(struct fb_info *info, const char __user *buf,
192 retval = lcd_busy_wait(info);
196 lcd_write_control(info, LCD_TEXT_POS(pos));
198 retval = lcd_busy_wait(info);
202 lcd_write_data(info, dst[len]);
217 static int cobalt_lcdfb_blank(int blank_mode, struct fb_info *info)
221 retval = lcd_busy_wait(info);
227 lcd_write_control(info, LCD_ON);
230 lcd_write_control(info, LCD_OFF);
237 static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
249 retval = lcd_busy_wait(info);
253 lcd_write_control(info,
254 LCD_TEXT_POS(info->fix.line_length * y + x));
260 retval = lcd_busy_wait(info);
265 lcd_write_control(info, LCD_CURSOR_ON);
267 lcd_write_control(info, LCD_CURSOR_OFF);
282 struct fb_info *info;
286 info = framebuffer_alloc(0, &dev->dev);
287 if (!info)
292 framebuffer_release(info);
296 info->screen_size = resource_size(res);
297 info->screen_base = devm_ioremap(&dev->dev, res->start,
298 info->screen_size);
299 if (!info->screen_base) {
300 framebuffer_release(info);
304 info->fbops = &cobalt_lcd_fbops;
305 info->fix = cobalt_lcdfb_fix;
306 info->fix.smem_start = res->start;
307 info->fix.smem_len = info->screen_size;
308 info->pseudo_palette = NULL;
309 info->par = NULL;
310 info->flags = FBINFO_DEFAULT;
312 retval = register_framebuffer(info);
314 framebuffer_release(info);
318 platform_set_drvdata(dev, info);
320 lcd_clear(info);
322 fb_info(info, "Cobalt server LCD frame buffer device\n");
329 struct fb_info *info;
331 info = platform_get_drvdata(dev);
332 if (info) {
333 unregister_framebuffer(info);
334 framebuffer_release(info);