From owner-p4-projects@FreeBSD.ORG Sat Aug 14 00:25:50 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BCF9410656A6; Sat, 14 Aug 2010 00:25:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 672511065696 for ; Sat, 14 Aug 2010 00:25:49 +0000 (UTC) (envelope-from jceel@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 39E628FC0C for ; Sat, 14 Aug 2010 00:25:49 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7E0Pn0g011495 for ; Sat, 14 Aug 2010 00:25:49 GMT (envelope-from jceel@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7E0Pn22011492 for perforce@freebsd.org; Sat, 14 Aug 2010 00:25:49 GMT (envelope-from jceel@freebsd.org) Date: Sat, 14 Aug 2010 00:25:49 GMT Message-Id: <201008140025.o7E0Pn22011492@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jceel@freebsd.org using -f From: Jakub Wojciech Klama To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182377 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Aug 2010 00:25:50 -0000 http://p4web.freebsd.org/@@182377?ac=10 Change 182377 by jceel@jceel on 2010/08/14 00:25:05 Update gpdma_cdev to new channel allocation mechanism. Affected files ... .. //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_cdev.c#3 edit .. //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_cdev.h#2 edit Differences ... ==== //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_cdev.c#3 (text+ko) ==== @@ -284,32 +284,33 @@ dcs_unlock(dcs); } -int -gpdma_make_cdev(struct gpdma_engine *gpdma, struct resource *rv, struct cdev **cdev) +void +gpdma_cdev_init(struct resource **res, int nch, void *arg) { struct gpdma_cdev_softc *dcs; + struct cdev *cdev; + int i; - if (rv == NULL) - return (ENXIO); + if (res == NULL) + return; - *cdev = make_dev(&gpdma_cdevsw, - 0, - UID_ROOT, - GID_WHEEL, - 0600, - "%s.%d", - device_get_nameunit(gpdma->de_dev), - (int)rman_get_start(rv)); + for (i = 0; i < nch; i++) { + cdev = make_dev(&gpdma_cdevsw, + 0, + UID_ROOT, + GID_WHEEL, + 0600, + "%s.%d", + device_get_nameunit(rman_get_device(res[i])), + (int)rman_get_start(res[i])); - dcs = malloc(sizeof(*dcs), M_GPDMA, M_WAITOK); - mtx_init(&dcs->dcs_mtx, "dcsmtx", "gpdma", MTX_DEF); - dcs->dcs_engine = gpdma; - dcs->dcs_state = DCS_CLOSED; - dcs->dcs_res = rv; - dcs->dcs_xfer = gpdma_alloc_transfer(rv); + dcs = malloc(sizeof(*dcs), M_GPDMA, M_WAITOK); + mtx_init(&dcs->dcs_mtx, "dcsmtx", "gpdma", MTX_DEF); + dcs->dcs_state = DCS_CLOSED; + dcs->dcs_res = res[i]; + dcs->dcs_xfer = gpdma_alloc_transfer(res[i]); - (*cdev)->si_drv1 = dcs; - - return (0); + cdev->si_drv1 = dcs; + } } ==== //depot/projects/soc2010/jceel_dma/sys/dev/gpdma/gpdma_cdev.h#2 (text+ko) ==== @@ -28,6 +28,7 @@ #ifndef _SYS_DEV_GPDMA_GPDMA_CDEV_H #define _SYS_DEV_GPDMA_GPDMA_CDEV_H +#include #include enum gpdma_cdev_buftype { @@ -61,7 +62,7 @@ #define GPDMA_IOCTL_GETCAPS _IOR('g', 1, struct gpdma_cdev_caps) #ifdef _KERNEL -int gpdma_make_cdev(struct gpdma_engine *, struct resource *, struct cdev **); +void gpdma_cdev_init(struct resource **, int, void *); #endif /* _KERNEL */ #endif /* _SYS_DEV_GPDMA_GPDMA_CDEV_H */