hwa742 123 drivers/video/fbdev/omap/hwa742.c } hwa742; hwa742 131 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_bits_per_cycle(8); hwa742 132 drivers/video/fbdev/omap/hwa742.c hwa742.extif->write_command(®, 1); hwa742 133 drivers/video/fbdev/omap/hwa742.c hwa742.extif->read_data(&data, 1); hwa742 140 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_bits_per_cycle(8); hwa742 141 drivers/video/fbdev/omap/hwa742.c hwa742.extif->write_command(®, 1); hwa742 142 drivers/video/fbdev/omap/hwa742.c hwa742.extif->write_data(&data, 1); hwa742 161 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_bits_per_cycle(8); hwa742 164 drivers/video/fbdev/omap/hwa742.c hwa742.extif->write_command(&cmd, 1); hwa742 166 drivers/video/fbdev/omap/hwa742.c hwa742.extif->write_data(tmp, 8); hwa742 172 drivers/video/fbdev/omap/hwa742.c hwa742.window_type = ((hwa742.window_type & 0xfc) | 0x01); hwa742 174 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "hwa742: enabled pixel doubling\n"); hwa742 177 drivers/video/fbdev/omap/hwa742.c hwa742.window_type = (hwa742.window_type & 0xfc); hwa742 179 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "hwa742: disabled pixel doubling\n"); hwa742 185 drivers/video/fbdev/omap/hwa742.c hwa742_write_reg(HWA742_WINDOW_TYPE, hwa742.window_type); hwa742 197 drivers/video/fbdev/omap/hwa742.c if (likely(hwa742.vsync_only || force_vsync)) { hwa742 198 drivers/video/fbdev/omap/hwa742.c hwa742.extif->enable_tearsync(1, 0); hwa742 202 drivers/video/fbdev/omap/hwa742.c if (width * hwa742.pix_tx_time < hwa742.line_upd_time) { hwa742 203 drivers/video/fbdev/omap/hwa742.c hwa742.extif->enable_tearsync(1, 0); hwa742 207 drivers/video/fbdev/omap/hwa742.c if ((width * hwa742.pix_tx_time / 1000) * height < hwa742 208 drivers/video/fbdev/omap/hwa742.c (y + height) * (hwa742.line_upd_time / 1000)) { hwa742 209 drivers/video/fbdev/omap/hwa742.c hwa742.extif->enable_tearsync(1, 0); hwa742 213 drivers/video/fbdev/omap/hwa742.c hwa742.extif->enable_tearsync(1, y + 1); hwa742 220 drivers/video/fbdev/omap/hwa742.c hwa742.extif->enable_tearsync(0, 0); hwa742 234 drivers/video/fbdev/omap/hwa742.c down(&hwa742.req_sema); hwa742 238 drivers/video/fbdev/omap/hwa742.c spin_lock_irqsave(&hwa742.req_lock, flags); hwa742 239 drivers/video/fbdev/omap/hwa742.c BUG_ON(list_empty(&hwa742.free_req_list)); hwa742 240 drivers/video/fbdev/omap/hwa742.c req = list_entry(hwa742.free_req_list.next, hwa742 243 drivers/video/fbdev/omap/hwa742.c spin_unlock_irqrestore(&hwa742.req_lock, flags); hwa742 255 drivers/video/fbdev/omap/hwa742.c spin_lock_irqsave(&hwa742.req_lock, flags); hwa742 257 drivers/video/fbdev/omap/hwa742.c list_move(&req->entry, &hwa742.free_req_list); hwa742 259 drivers/video/fbdev/omap/hwa742.c up(&hwa742.req_sema); hwa742 261 drivers/video/fbdev/omap/hwa742.c spin_unlock_irqrestore(&hwa742.req_lock, flags); hwa742 268 drivers/video/fbdev/omap/hwa742.c spin_lock_irqsave(&hwa742.req_lock, flags); hwa742 270 drivers/video/fbdev/omap/hwa742.c while (!list_empty(&hwa742.pending_req_list)) { hwa742 275 drivers/video/fbdev/omap/hwa742.c req = list_entry(hwa742.pending_req_list.next, hwa742 277 drivers/video/fbdev/omap/hwa742.c spin_unlock_irqrestore(&hwa742.req_lock, flags); hwa742 289 drivers/video/fbdev/omap/hwa742.c spin_lock_irqsave(&hwa742.req_lock, flags); hwa742 292 drivers/video/fbdev/omap/hwa742.c spin_unlock_irqrestore(&hwa742.req_lock, flags); hwa742 300 drivers/video/fbdev/omap/hwa742.c spin_lock_irqsave(&hwa742.req_lock, flags); hwa742 301 drivers/video/fbdev/omap/hwa742.c if (likely(!list_empty(&hwa742.pending_req_list))) hwa742 303 drivers/video/fbdev/omap/hwa742.c list_splice_init(head, hwa742.pending_req_list.prev); hwa742 304 drivers/video/fbdev/omap/hwa742.c spin_unlock_irqrestore(&hwa742.req_lock, flags); hwa742 339 drivers/video/fbdev/omap/hwa742.c int scr_width = hwa742.fbdev->panel->x_res; hwa742 340 drivers/video/fbdev/omap/hwa742.c int scr_height = hwa742.fbdev->panel->y_res; hwa742 343 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "x %d y %d w %d h %d scr_width %d " hwa742 368 drivers/video/fbdev/omap/hwa742.c if (hwa742.prev_flags != flags || hwa742 369 drivers/video/fbdev/omap/hwa742.c hwa742.prev_color_mode != color_mode) { hwa742 371 drivers/video/fbdev/omap/hwa742.c hwa742.prev_color_mode = color_mode; hwa742 372 drivers/video/fbdev/omap/hwa742.c hwa742.prev_flags = flags; hwa742 385 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->setup_plane(OMAPFB_PLANE_GFX, hwa742 389 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_bits_per_cycle(16); hwa742 391 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->enable_plane(OMAPFB_PLANE_GFX, 1); hwa742 392 drivers/video/fbdev/omap/hwa742.c hwa742.extif->transfer_area(w, h, request_complete, req); hwa742 399 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->enable_plane(OMAPFB_PLANE_GFX, 0); hwa742 440 drivers/video/fbdev/omap/hwa742.c if (xspan * height * 2 > hwa742.max_transmit_size) { hwa742 441 drivers/video/fbdev/omap/hwa742.c yspan = hwa742.max_transmit_size / (xspan * 2); hwa742 459 drivers/video/fbdev/omap/hwa742.c if (!hwa742.stop_auto_update) hwa742 460 drivers/video/fbdev/omap/hwa742.c mod_timer(&hwa742.auto_update_timer, hwa742 469 drivers/video/fbdev/omap/hwa742.c create_req_list(&hwa742.auto_update_window, &req_list); hwa742 487 drivers/video/fbdev/omap/hwa742.c if (hwa742.update_mode != OMAPFB_MANUAL_UPDATE) { hwa742 488 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "invalid update mode\n"); hwa742 495 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "invalid window flag\n"); hwa742 530 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->enable_plane(plane, enable); hwa742 562 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "update_mode %d\n", hwa742.update_mode); hwa742 563 drivers/video/fbdev/omap/hwa742.c if (hwa742.update_mode == OMAPFB_MANUAL_UPDATE) { hwa742 564 drivers/video/fbdev/omap/hwa742.c omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_READY); hwa742 574 drivers/video/fbdev/omap/hwa742.c if (mode == hwa742.update_mode) hwa742 577 drivers/video/fbdev/omap/hwa742.c dev_info(hwa742.fbdev->dev, "HWA742: setting update mode to %s\n", hwa742 581 drivers/video/fbdev/omap/hwa742.c switch (hwa742.update_mode) { hwa742 583 drivers/video/fbdev/omap/hwa742.c omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_DISABLED); hwa742 586 drivers/video/fbdev/omap/hwa742.c hwa742.stop_auto_update = 1; hwa742 587 drivers/video/fbdev/omap/hwa742.c del_timer_sync(&hwa742.auto_update_timer); hwa742 593 drivers/video/fbdev/omap/hwa742.c hwa742.update_mode = mode; hwa742 595 drivers/video/fbdev/omap/hwa742.c hwa742.stop_auto_update = 0; hwa742 599 drivers/video/fbdev/omap/hwa742.c omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_READY); hwa742 613 drivers/video/fbdev/omap/hwa742.c return hwa742.update_mode; hwa742 618 drivers/video/fbdev/omap/hwa742.c int bus_tick = hwa742.extif_clk_period * div; hwa742 636 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "HWA742 systim %lu ps extif_clk_period %u ps" hwa742 637 drivers/video/fbdev/omap/hwa742.c "extif_clk_div %d\n", systim, hwa742.extif_clk_period, div); hwa742 639 drivers/video/fbdev/omap/hwa742.c t = &hwa742.reg_timings; hwa742 657 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[reg]cson %d csoff %d reon %d reoff %d\n", hwa742 659 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[reg]weon %d weoff %d recyc %d wecyc %d\n", hwa742 662 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[reg]rdaccess %d cspulse %d\n", hwa742 665 drivers/video/fbdev/omap/hwa742.c return hwa742.extif->convert_timings(t); hwa742 683 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "HWA742 systim %lu ps extif_clk_period %u ps" hwa742 684 drivers/video/fbdev/omap/hwa742.c "extif_clk_div %d\n", systim, hwa742.extif_clk_period, div); hwa742 686 drivers/video/fbdev/omap/hwa742.c t = &hwa742.lut_timings; hwa742 708 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[lut]cson %d csoff %d reon %d reoff %d\n", hwa742 710 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[lut]weon %d weoff %d recyc %d wecyc %d\n", hwa742 713 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "[lut]rdaccess %d cspulse %d\n", hwa742 716 drivers/video/fbdev/omap/hwa742.c return hwa742.extif->convert_timings(t); hwa742 724 drivers/video/fbdev/omap/hwa742.c hwa742.extif->get_clk_info(&hwa742.extif_clk_period, &max_clk_div); hwa742 745 drivers/video/fbdev/omap/hwa742.c dev_err(hwa742.fbdev->dev, "can't setup timings\n"); hwa742 767 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, hwa742 770 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "sys_clk %ld pix_clk %ld\n", hwa742 800 drivers/video/fbdev/omap/hwa742.c hwa742.pix_tx_time = hwa742.reg_timings.we_cycle_time; hwa742 801 drivers/video/fbdev/omap/hwa742.c if (hwa742.extif->get_max_tx_rate != NULL) { hwa742 807 drivers/video/fbdev/omap/hwa742.c unsigned long max_tx_rate = hwa742.extif->get_max_tx_rate(); hwa742 809 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, "max_tx_rate %ld HZ\n", hwa742 812 drivers/video/fbdev/omap/hwa742.c if (hwa742.pix_tx_time < min_tx_time) hwa742 813 drivers/video/fbdev/omap/hwa742.c hwa742.pix_tx_time = min_tx_time; hwa742 817 drivers/video/fbdev/omap/hwa742.c hwa742.line_upd_time = (hdisp + hndp) * 1000000 / (pix_clk / 1000); hwa742 818 drivers/video/fbdev/omap/hwa742.c hwa742.line_upd_time *= 1000; hwa742 819 drivers/video/fbdev/omap/hwa742.c if (hdisp * hwa742.pix_tx_time > hwa742.line_upd_time) hwa742 872 drivers/video/fbdev/omap/hwa742.c hwa742.vsync_only = !use_hsvs; hwa742 874 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, hwa742 876 drivers/video/fbdev/omap/hwa742.c pix_clk, hwa742.pix_tx_time, hwa742.line_upd_time); hwa742 877 drivers/video/fbdev/omap/hwa742.c dev_dbg(hwa742.fbdev->dev, hwa742 881 drivers/video/fbdev/omap/hwa742.c return hwa742.extif->setup_tearsync(1, hs, vs, hwa742 887 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->get_caps(plane, caps); hwa742 890 drivers/video/fbdev/omap/hwa742.c if (hwa742.te_connected) hwa742 898 drivers/video/fbdev/omap/hwa742.c hwa742.update_mode_before_suspend = hwa742.update_mode; hwa742 902 drivers/video/fbdev/omap/hwa742.c clk_disable(hwa742.sys_ck); hwa742 907 drivers/video/fbdev/omap/hwa742.c clk_enable(hwa742.sys_ck); hwa742 918 drivers/video/fbdev/omap/hwa742.c hwa742_set_update_mode(hwa742.update_mode_before_suspend); hwa742 933 drivers/video/fbdev/omap/hwa742.c hwa742.fbdev = fbdev; hwa742 934 drivers/video/fbdev/omap/hwa742.c hwa742.extif = fbdev->ext_if; hwa742 935 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl = fbdev->int_ctrl; hwa742 939 drivers/video/fbdev/omap/hwa742.c hwa742.sys_ck = clk_get(NULL, "hwa_sys_ck"); hwa742 941 drivers/video/fbdev/omap/hwa742.c spin_lock_init(&hwa742.req_lock); hwa742 943 drivers/video/fbdev/omap/hwa742.c if ((r = hwa742.int_ctrl->init(fbdev, 1, req_vram)) < 0) hwa742 946 drivers/video/fbdev/omap/hwa742.c if ((r = hwa742.extif->init(fbdev)) < 0) hwa742 949 drivers/video/fbdev/omap/hwa742.c ext_clk = clk_get_rate(hwa742.sys_ck); hwa742 952 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_timings(&hwa742.reg_timings); hwa742 953 drivers/video/fbdev/omap/hwa742.c clk_enable(hwa742.sys_ck); hwa742 958 drivers/video/fbdev/omap/hwa742.c hwa742.extif->set_timings(&hwa742.reg_timings); hwa742 976 drivers/video/fbdev/omap/hwa742.c dev_err(hwa742.fbdev->dev, hwa742 980 drivers/video/fbdev/omap/hwa742.c hwa742.te_connected = 1; hwa742 982 drivers/video/fbdev/omap/hwa742.c hwa742.max_transmit_size = hwa742.extif->max_transmit_size; hwa742 984 drivers/video/fbdev/omap/hwa742.c hwa742.update_mode = OMAPFB_UPDATE_DISABLED; hwa742 986 drivers/video/fbdev/omap/hwa742.c hwa742.auto_update_window.x = 0; hwa742 987 drivers/video/fbdev/omap/hwa742.c hwa742.auto_update_window.y = 0; hwa742 988 drivers/video/fbdev/omap/hwa742.c hwa742.auto_update_window.width = fbdev->panel->x_res; hwa742 989 drivers/video/fbdev/omap/hwa742.c hwa742.auto_update_window.height = fbdev->panel->y_res; hwa742 990 drivers/video/fbdev/omap/hwa742.c hwa742.auto_update_window.format = 0; hwa742 992 drivers/video/fbdev/omap/hwa742.c timer_setup(&hwa742.auto_update_timer, hwa742_update_window_auto, 0); hwa742 994 drivers/video/fbdev/omap/hwa742.c hwa742.prev_color_mode = -1; hwa742 995 drivers/video/fbdev/omap/hwa742.c hwa742.prev_flags = 0; hwa742 997 drivers/video/fbdev/omap/hwa742.c hwa742.fbdev = fbdev; hwa742 999 drivers/video/fbdev/omap/hwa742.c INIT_LIST_HEAD(&hwa742.free_req_list); hwa742 1000 drivers/video/fbdev/omap/hwa742.c INIT_LIST_HEAD(&hwa742.pending_req_list); hwa742 1001 drivers/video/fbdev/omap/hwa742.c for (i = 0; i < ARRAY_SIZE(hwa742.req_pool); i++) hwa742 1002 drivers/video/fbdev/omap/hwa742.c list_add(&hwa742.req_pool[i].entry, &hwa742.free_req_list); hwa742 1004 drivers/video/fbdev/omap/hwa742.c sema_init(&hwa742.req_sema, i - IRQ_REQ_POOL_SIZE); hwa742 1012 drivers/video/fbdev/omap/hwa742.c clk_disable(hwa742.sys_ck); hwa742 1014 drivers/video/fbdev/omap/hwa742.c hwa742.extif->cleanup(); hwa742 1016 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->cleanup(); hwa742 1024 drivers/video/fbdev/omap/hwa742.c hwa742.extif->cleanup(); hwa742 1025 drivers/video/fbdev/omap/hwa742.c hwa742.int_ctrl->cleanup(); hwa742 1026 drivers/video/fbdev/omap/hwa742.c clk_disable(hwa742.sys_ck);