From owner-svn-src-all@FreeBSD.ORG Sun Feb 15 22:05:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 38004DC9; Sun, 15 Feb 2015 22:05:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07BCFDE9; Sun, 15 Feb 2015 22:05:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t1FM5Uti085069; Sun, 15 Feb 2015 22:05:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t1FM5UUu085067; Sun, 15 Feb 2015 22:05:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201502152205.t1FM5UUu085067@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 15 Feb 2015 22:05:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r278824 - head/sys/dev/usb/video X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Feb 2015 22:05:31 -0000 Author: hselasky Date: Sun Feb 15 22:05:30 2015 New Revision: 278824 URL: https://svnweb.freebsd.org/changeset/base/278824 Log: Bugfixes. Check if a framebuffer is present before using it. Dequeue element from correct head structure. No need to multiply framebuffer offset by two. It is already given in bytes. Modified: head/sys/dev/usb/video/udl.c Modified: head/sys/dev/usb/video/udl.c ============================================================================== --- head/sys/dev/usb/video/udl.c Sun Feb 15 21:59:05 2015 (r278823) +++ head/sys/dev/usb/video/udl.c Sun Feb 15 22:05:30 2015 (r278824) @@ -347,7 +347,7 @@ udl_attach(device_t dev) sc->sc_fb_info.fb_width = udl_get_fb_width(sc); sc->sc_fb_info.fb_height = udl_get_fb_height(sc); sc->sc_fb_info.fb_stride = sc->sc_fb_info.fb_width * 2; - sc->sc_fb_info.fb_pbase = (uintptr_t)sc->sc_fb_addr; + sc->sc_fb_info.fb_pbase = 0; sc->sc_fb_info.fb_vbase = (uintptr_t)sc->sc_fb_addr; sc->sc_fbdev = device_add_child(dev, "fbd", -1); @@ -475,6 +475,11 @@ udl_fb_synchronize(struct udl_softc *sc) { const uint32_t max = udl_get_fb_size(sc); + /* check if framebuffer is not ready */ + if (sc->sc_fb_addr == NULL || + sc->sc_fb_copy == NULL) + return (NULL); + while (sc->sc_sync_off < max) { uint32_t delta = max - sc->sc_sync_off; @@ -522,8 +527,9 @@ tr_setup: cb = udl_fb_synchronize(sc); if (cb == NULL) break; + } else { + TAILQ_REMOVE(&sc->sc_cmd_buf_pending, cb, entry); } - TAILQ_REMOVE(&sc->sc_cmd_buf_pending, cb, entry); TAILQ_INSERT_TAIL(phead, cb, entry); usbd_xfer_set_frame_data(xfer, i, cb->buf, cb->off); } @@ -1059,9 +1065,9 @@ udl_cmd_buf_copy_le16(struct udl_softc * udl_cmd_insert_int_1(cb, UDL_BULK_SOC); udl_cmd_insert_int_1(cb, UDL_BULK_CMD_FB_COPY | UDL_BULK_CMD_FB_WORD); - udl_cmd_insert_int_3(cb, 2 * dst); + udl_cmd_insert_int_3(cb, dst); udl_cmd_insert_int_1(cb, pixels); - udl_cmd_insert_int_3(cb, 2 * src); + udl_cmd_insert_int_3(cb, src); udl_cmd_buf_send(sc, cb); return (0);