Lines Matching refs:hwa742

136 } hwa742;  variable
144 hwa742.extif->set_bits_per_cycle(8); in hwa742_read_reg()
145 hwa742.extif->write_command(&reg, 1); in hwa742_read_reg()
146 hwa742.extif->read_data(&data, 1); in hwa742_read_reg()
153 hwa742.extif->set_bits_per_cycle(8); in hwa742_write_reg()
154 hwa742.extif->write_command(&reg, 1); in hwa742_write_reg()
155 hwa742.extif->write_data(&data, 1); in hwa742_write_reg()
174 hwa742.extif->set_bits_per_cycle(8); in set_window_regs()
177 hwa742.extif->write_command(&cmd, 1); in set_window_regs()
179 hwa742.extif->write_data(tmp, 8); in set_window_regs()
185 hwa742.window_type = ((hwa742.window_type & 0xfc) | 0x01); in set_format_regs()
187 dev_dbg(hwa742.fbdev->dev, "hwa742: enabled pixel doubling\n"); in set_format_regs()
190 hwa742.window_type = (hwa742.window_type & 0xfc); in set_format_regs()
192 dev_dbg(hwa742.fbdev->dev, "hwa742: disabled pixel doubling\n"); in set_format_regs()
198 hwa742_write_reg(HWA742_WINDOW_TYPE, hwa742.window_type); in set_format_regs()
210 if (likely(hwa742.vsync_only || force_vsync)) { in enable_tearsync()
211 hwa742.extif->enable_tearsync(1, 0); in enable_tearsync()
215 if (width * hwa742.pix_tx_time < hwa742.line_upd_time) { in enable_tearsync()
216 hwa742.extif->enable_tearsync(1, 0); in enable_tearsync()
220 if ((width * hwa742.pix_tx_time / 1000) * height < in enable_tearsync()
221 (y + height) * (hwa742.line_upd_time / 1000)) { in enable_tearsync()
222 hwa742.extif->enable_tearsync(1, 0); in enable_tearsync()
226 hwa742.extif->enable_tearsync(1, y + 1); in enable_tearsync()
233 hwa742.extif->enable_tearsync(0, 0); in disable_tearsync()
247 down(&hwa742.req_sema); in alloc_req()
251 spin_lock_irqsave(&hwa742.req_lock, flags); in alloc_req()
252 BUG_ON(list_empty(&hwa742.free_req_list)); in alloc_req()
253 req = list_entry(hwa742.free_req_list.next, in alloc_req()
256 spin_unlock_irqrestore(&hwa742.req_lock, flags); in alloc_req()
268 spin_lock_irqsave(&hwa742.req_lock, flags); in free_req()
270 list_move(&req->entry, &hwa742.free_req_list); in free_req()
272 up(&hwa742.req_sema); in free_req()
274 spin_unlock_irqrestore(&hwa742.req_lock, flags); in free_req()
281 spin_lock_irqsave(&hwa742.req_lock, flags); in process_pending_requests()
283 while (!list_empty(&hwa742.pending_req_list)) { in process_pending_requests()
288 req = list_entry(hwa742.pending_req_list.next, in process_pending_requests()
290 spin_unlock_irqrestore(&hwa742.req_lock, flags); in process_pending_requests()
302 spin_lock_irqsave(&hwa742.req_lock, flags); in process_pending_requests()
305 spin_unlock_irqrestore(&hwa742.req_lock, flags); in process_pending_requests()
313 spin_lock_irqsave(&hwa742.req_lock, flags); in submit_req_list()
314 if (likely(!list_empty(&hwa742.pending_req_list))) in submit_req_list()
316 list_splice_init(head, hwa742.pending_req_list.prev); in submit_req_list()
317 spin_unlock_irqrestore(&hwa742.req_lock, flags); in submit_req_list()
352 int scr_width = hwa742.fbdev->panel->x_res; in send_frame_handler()
353 int scr_height = hwa742.fbdev->panel->y_res; in send_frame_handler()
356 dev_dbg(hwa742.fbdev->dev, "x %d y %d w %d h %d scr_width %d " in send_frame_handler()
381 if (hwa742.prev_flags != flags || in send_frame_handler()
382 hwa742.prev_color_mode != color_mode) { in send_frame_handler()
384 hwa742.prev_color_mode = color_mode; in send_frame_handler()
385 hwa742.prev_flags = flags; in send_frame_handler()
398 hwa742.int_ctrl->setup_plane(OMAPFB_PLANE_GFX, in send_frame_handler()
402 hwa742.extif->set_bits_per_cycle(16); in send_frame_handler()
404 hwa742.int_ctrl->enable_plane(OMAPFB_PLANE_GFX, 1); in send_frame_handler()
405 hwa742.extif->transfer_area(w, h, request_complete, req); in send_frame_handler()
412 hwa742.int_ctrl->enable_plane(OMAPFB_PLANE_GFX, 0); in send_frame_complete()
453 if (xspan * height * 2 > hwa742.max_transmit_size) { in create_req_list()
454 yspan = hwa742.max_transmit_size / (xspan * 2); in create_req_list()
472 if (!hwa742.stop_auto_update) in auto_update_complete()
473 mod_timer(&hwa742.auto_update_timer, in auto_update_complete()
482 create_req_list(&hwa742.auto_update_window, &req_list); in hwa742_update_window_auto()
500 if (hwa742.update_mode != OMAPFB_MANUAL_UPDATE) { in hwa742_update_window_async()
501 dev_dbg(hwa742.fbdev->dev, "invalid update mode\n"); in hwa742_update_window_async()
508 dev_dbg(hwa742.fbdev->dev, "invalid window flag\n"); in hwa742_update_window_async()
543 hwa742.int_ctrl->enable_plane(plane, enable); in hwa742_enable_plane()
575 dev_dbg(hwa742.fbdev->dev, "update_mode %d\n", hwa742.update_mode); in hwa742_bind_client()
576 if (hwa742.update_mode == OMAPFB_MANUAL_UPDATE) { in hwa742_bind_client()
577 omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_READY); in hwa742_bind_client()
587 if (mode == hwa742.update_mode) in hwa742_set_update_mode()
590 dev_info(hwa742.fbdev->dev, "HWA742: setting update mode to %s\n", in hwa742_set_update_mode()
594 switch (hwa742.update_mode) { in hwa742_set_update_mode()
596 omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_DISABLED); in hwa742_set_update_mode()
599 hwa742.stop_auto_update = 1; in hwa742_set_update_mode()
600 del_timer_sync(&hwa742.auto_update_timer); in hwa742_set_update_mode()
606 hwa742.update_mode = mode; in hwa742_set_update_mode()
608 hwa742.stop_auto_update = 0; in hwa742_set_update_mode()
612 omapfb_notify_clients(hwa742.fbdev, OMAPFB_EVENT_READY); in hwa742_set_update_mode()
626 return hwa742.update_mode; in hwa742_get_update_mode()
631 int bus_tick = hwa742.extif_clk_period * div; in round_to_extif_ticks()
649 dev_dbg(hwa742.fbdev->dev, "HWA742 systim %lu ps extif_clk_period %u ps" in calc_reg_timing()
650 "extif_clk_div %d\n", systim, hwa742.extif_clk_period, div); in calc_reg_timing()
652 t = &hwa742.reg_timings; in calc_reg_timing()
670 dev_dbg(hwa742.fbdev->dev, "[reg]cson %d csoff %d reon %d reoff %d\n", in calc_reg_timing()
672 dev_dbg(hwa742.fbdev->dev, "[reg]weon %d weoff %d recyc %d wecyc %d\n", in calc_reg_timing()
675 dev_dbg(hwa742.fbdev->dev, "[reg]rdaccess %d cspulse %d\n", in calc_reg_timing()
678 return hwa742.extif->convert_timings(t); in calc_reg_timing()
696 dev_dbg(hwa742.fbdev->dev, "HWA742 systim %lu ps extif_clk_period %u ps" in calc_lut_timing()
697 "extif_clk_div %d\n", systim, hwa742.extif_clk_period, div); in calc_lut_timing()
699 t = &hwa742.lut_timings; in calc_lut_timing()
721 dev_dbg(hwa742.fbdev->dev, "[lut]cson %d csoff %d reon %d reoff %d\n", in calc_lut_timing()
723 dev_dbg(hwa742.fbdev->dev, "[lut]weon %d weoff %d recyc %d wecyc %d\n", in calc_lut_timing()
726 dev_dbg(hwa742.fbdev->dev, "[lut]rdaccess %d cspulse %d\n", in calc_lut_timing()
729 return hwa742.extif->convert_timings(t); in calc_lut_timing()
737 hwa742.extif->get_clk_info(&hwa742.extif_clk_period, &max_clk_div); in calc_extif_timings()
758 dev_err(hwa742.fbdev->dev, "can't setup timings\n"); in calc_extif_timings()
780 dev_dbg(hwa742.fbdev->dev, in calc_hwa742_clk_rates()
783 dev_dbg(hwa742.fbdev->dev, "sys_clk %ld pix_clk %ld\n", in calc_hwa742_clk_rates()
813 hwa742.pix_tx_time = hwa742.reg_timings.we_cycle_time; in setup_tearsync()
814 if (hwa742.extif->get_max_tx_rate != NULL) { in setup_tearsync()
820 unsigned long max_tx_rate = hwa742.extif->get_max_tx_rate(); in setup_tearsync()
822 dev_dbg(hwa742.fbdev->dev, "max_tx_rate %ld HZ\n", in setup_tearsync()
825 if (hwa742.pix_tx_time < min_tx_time) in setup_tearsync()
826 hwa742.pix_tx_time = min_tx_time; in setup_tearsync()
830 hwa742.line_upd_time = (hdisp + hndp) * 1000000 / (pix_clk / 1000); in setup_tearsync()
831 hwa742.line_upd_time *= 1000; in setup_tearsync()
832 if (hdisp * hwa742.pix_tx_time > hwa742.line_upd_time) in setup_tearsync()
885 hwa742.vsync_only = !use_hsvs; in setup_tearsync()
887 dev_dbg(hwa742.fbdev->dev, in setup_tearsync()
889 pix_clk, hwa742.pix_tx_time, hwa742.line_upd_time); in setup_tearsync()
890 dev_dbg(hwa742.fbdev->dev, in setup_tearsync()
894 return hwa742.extif->setup_tearsync(1, hs, vs, in setup_tearsync()
900 hwa742.int_ctrl->get_caps(plane, caps); in hwa742_get_caps()
903 if (hwa742.te_connected) in hwa742_get_caps()
911 hwa742.update_mode_before_suspend = hwa742.update_mode; in hwa742_suspend()
915 clk_disable(hwa742.sys_ck); in hwa742_suspend()
920 clk_enable(hwa742.sys_ck); in hwa742_resume()
931 hwa742_set_update_mode(hwa742.update_mode_before_suspend); in hwa742_resume()
946 hwa742.fbdev = fbdev; in hwa742_init()
947 hwa742.extif = fbdev->ext_if; in hwa742_init()
948 hwa742.int_ctrl = fbdev->int_ctrl; in hwa742_init()
952 hwa742.sys_ck = clk_get(NULL, "hwa_sys_ck"); in hwa742_init()
954 spin_lock_init(&hwa742.req_lock); in hwa742_init()
956 if ((r = hwa742.int_ctrl->init(fbdev, 1, req_vram)) < 0) in hwa742_init()
959 if ((r = hwa742.extif->init(fbdev)) < 0) in hwa742_init()
962 ext_clk = clk_get_rate(hwa742.sys_ck); in hwa742_init()
965 hwa742.extif->set_timings(&hwa742.reg_timings); in hwa742_init()
966 clk_enable(hwa742.sys_ck); in hwa742_init()
971 hwa742.extif->set_timings(&hwa742.reg_timings); in hwa742_init()
989 dev_err(hwa742.fbdev->dev, in hwa742_init()
993 hwa742.te_connected = 1; in hwa742_init()
995 hwa742.max_transmit_size = hwa742.extif->max_transmit_size; in hwa742_init()
997 hwa742.update_mode = OMAPFB_UPDATE_DISABLED; in hwa742_init()
999 hwa742.auto_update_window.x = 0; in hwa742_init()
1000 hwa742.auto_update_window.y = 0; in hwa742_init()
1001 hwa742.auto_update_window.width = fbdev->panel->x_res; in hwa742_init()
1002 hwa742.auto_update_window.height = fbdev->panel->y_res; in hwa742_init()
1003 hwa742.auto_update_window.format = 0; in hwa742_init()
1005 init_timer(&hwa742.auto_update_timer); in hwa742_init()
1006 hwa742.auto_update_timer.function = hwa742_update_window_auto; in hwa742_init()
1007 hwa742.auto_update_timer.data = 0; in hwa742_init()
1009 hwa742.prev_color_mode = -1; in hwa742_init()
1010 hwa742.prev_flags = 0; in hwa742_init()
1012 hwa742.fbdev = fbdev; in hwa742_init()
1014 INIT_LIST_HEAD(&hwa742.free_req_list); in hwa742_init()
1015 INIT_LIST_HEAD(&hwa742.pending_req_list); in hwa742_init()
1016 for (i = 0; i < ARRAY_SIZE(hwa742.req_pool); i++) in hwa742_init()
1017 list_add(&hwa742.req_pool[i].entry, &hwa742.free_req_list); in hwa742_init()
1019 sema_init(&hwa742.req_sema, i - IRQ_REQ_POOL_SIZE); in hwa742_init()
1027 clk_disable(hwa742.sys_ck); in hwa742_init()
1029 hwa742.extif->cleanup(); in hwa742_init()
1031 hwa742.int_ctrl->cleanup(); in hwa742_init()
1039 hwa742.extif->cleanup(); in hwa742_cleanup()
1040 hwa742.int_ctrl->cleanup(); in hwa742_cleanup()
1041 clk_disable(hwa742.sys_ck); in hwa742_cleanup()