CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: mrg Date: Mon Apr 12 09:22:21 UTC 2021 Modified Files: src/sys/dev/ieee1394: firewire.h Log Message: convert union member from [0] array to [3] array, so that attempts to access these members later will work. does not affect size of the structure or layout in any other way. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ieee1394/firewire.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.h diff -u src/sys/dev/ieee1394/firewire.h:1.6 src/sys/dev/ieee1394/firewire.h:1.7 --- src/sys/dev/ieee1394/firewire.h:1.6 Sun Nov 14 15:47:20 2010 +++ src/sys/dev/ieee1394/firewire.h Mon Apr 12 09:22:21 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.h,v 1.6 2010/11/14 15:47:20 uebayasi Exp $ */ +/* $NetBSD: firewire.h,v 1.7 2021/04/12 09:22:21 mrg Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -142,7 +142,7 @@ struct fw_asyhdr { struct fw_pkt { union { - uint32_t ld[0]; + uint32_t ld[3]; struct { COMMON_HDR(, , tcode, ); } common;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: thorpej Date: Wed Jan 29 06:19:39 UTC 2020 Modified Files: src/sys/dev/ieee1394: if_fwip.c Log Message: Adopt . To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/dev/ieee1394/if_fwip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/if_fwip.c diff -u src/sys/dev/ieee1394/if_fwip.c:1.29 src/sys/dev/ieee1394/if_fwip.c:1.30 --- src/sys/dev/ieee1394/if_fwip.c:1.29 Thu Nov 15 10:23:55 2018 +++ src/sys/dev/ieee1394/if_fwip.c Wed Jan 29 06:19:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_fwip.c,v 1.29 2018/11/15 10:23:55 maxv Exp $ */ +/* $NetBSD: if_fwip.c,v 1.30 2020/01/29 06:19:39 thorpej Exp $ */ /*- * Copyright (c) 2004 * Doug Rabson @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_fwip.c,v 1.29 2018/11/15 10:23:55 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_fwip.c,v 1.30 2020/01/29 06:19:39 thorpej Exp $"); #include #include @@ -270,7 +270,7 @@ fwip_start(struct ifnet *ifp) IF_DEQUEUE(>if_snd, m); if (m != NULL) m_freem(m); - ifp->if_oerrors++; + if_statinc(ifp, if_oerrors); } while (m != NULL); return; @@ -511,7 +511,7 @@ fwip_output_callback(struct fw_xfer *xfe /* XXX error check */ FWIPDEBUG(ifp, "resp = %d\n", xfer->resp); if (xfer->resp != 0) - ifp->if_oerrors++; + if_statinc(ifp, if_oerrors); m_freem(xfer->mbuf); fw_xfer_unload(xfer); @@ -625,7 +625,7 @@ fwip_async_output(struct fwip_softc *sc, fd = fw_noderesolve_eui64(fc, ); if (!fd) { /* error */ - ifp->if_oerrors++; + if_statinc(ifp, if_oerrors); /* XXX set error code */ fwip_output_callback(xfer); continue; @@ -668,12 +668,12 @@ fwip_async_output(struct fwip_softc *sc, } if (error) { /* error */ - ifp->if_oerrors++; + if_statinc(ifp, if_oerrors); /* XXX set error code */ fwip_output_callback(xfer); continue; } else { - ifp->if_opackets++; + if_statinc(ifp, if_opackets); i++; } } @@ -726,7 +726,7 @@ fwip_stream_input(struct fw_xferq *xferq if (sxfer->resp != 0 || fp->mode.stream.len < 2 * sizeof(uint32_t)) { m_freem(m); - ifp->if_ierrors++; + if_statinc(ifp, if_ierrors); continue; } m->m_len = m->m_pkthdr.len = fp->mode.stream.len @@ -753,7 +753,7 @@ fwip_stream_input(struct fw_xferq *xferq FWIPDEBUG(ifp, "Unrecognised GASP header %#08x %#08x\n", ntohl(p[1]), ntohl(p[2])); m_freem(m); - ifp->if_ierrors++; + if_statinc(ifp, if_ierrors); continue; } @@ -788,7 +788,7 @@ fwip_stream_input(struct fw_xferq *xferq m_adj(m, 3*sizeof(uint32_t)); m_set_rcvif(m, ifp); ieee1394_input(ifp, m, src); - ifp->if_ipackets++; + if_statinc(ifp, if_ipackets); } if (STAILQ_FIRST(>stfree) != NULL) sc->sc_fd.fc->irx_enable(sc->sc_fd.fc, sc->sc_dma_ch); @@ -857,7 +857,7 @@ fwip_unicast_input(struct fw_xfer *xfer) */ if (rtcode != FWRCODE_COMPLETE) { m_freem(m); - ifp->if_ierrors++; + if_statinc(ifp, if_ierrors); return; } @@ -893,5 +893,5 @@ fwip_unicast_input(struct fw_xfer *xfer) m->m_len = m->m_pkthdr.len = fp->mode.wreqb.len; m_set_rcvif(m, ifp); ieee1394_input(ifp, m, fp->mode.wreqb.src); - ifp->if_ipackets++; + if_statinc(ifp, if_ipackets); }
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: jakllsch Date: Thu Dec 13 16:38:26 UTC 2018 Modified Files: src/sys/dev/ieee1394: fwdma.c Log Message: Fix fwdma_free() for when bus_dmamap_unload() clobbers the dmamap. Prevents KASSERTs on detaches of sbp(4) and fwohci(4) on amd64. We should pass the dmamem segs around seperately, not in loaded dmamap... To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/dev/ieee1394/fwdma.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdma.c diff -u src/sys/dev/ieee1394/fwdma.c:1.16 src/sys/dev/ieee1394/fwdma.c:1.17 --- src/sys/dev/ieee1394/fwdma.c:1.16 Sun May 23 18:56:58 2010 +++ src/sys/dev/ieee1394/fwdma.c Thu Dec 13 16:38:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdma.c,v 1.16 2010/05/23 18:56:58 christos Exp $ */ +/* $NetBSD: fwdma.c,v 1.17 2018/12/13 16:38:26 jakllsch Exp $ */ /*- * Copyright (c) 2003 * Hidetoshi Shimokawa. All rights reserved. @@ -35,7 +35,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: fwdma.c,v 1.16 2010/05/23 18:56:58 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwdma.c,v 1.17 2018/12/13 16:38:26 jakllsch Exp $"); #if defined(__FreeBSD__) __FBSDID("$FreeBSD: src/sys/dev/firewire/fwdma.c,v 1.9 2007/06/06 14:31:36 simokawa Exp $"); #endif @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD: src/sys/dev/firewire #include #include #include +#include #include #include @@ -108,11 +109,21 @@ fwdma_malloc(device_t dev, bus_dma_tag_t void fwdma_free(bus_dma_tag_t dmat, bus_dmamap_t dmamap, void *vaddr) { + bus_dma_segment_t *segs; + /* XXX we shouldn't pass around the segs in the dmamap */ + const bus_size_t mapsize = dmamap->dm_mapsize; + const int nsegs = dmamap->dm_nsegs; + const size_t segssz = sizeof(bus_dma_segment_t) * nsegs; + segs = kmem_alloc(segssz, KM_SLEEP); + memcpy(segs, dmamap->dm_segs, segssz); + bus_dmamap_unload(dmat, dmamap); - bus_dmamem_unmap(dmat, vaddr, dmamap->dm_mapsize); - bus_dmamem_free(dmat, dmamap->dm_segs, dmamap->dm_nsegs); + bus_dmamem_unmap(dmat, vaddr, mapsize); + bus_dmamem_free(dmat, segs, nsegs); bus_dmamap_destroy(dmat, dmamap); + + kmem_free(segs, segssz); }
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: sevan Date: Sat Mar 31 14:50:45 UTC 2018 Modified Files: src/sys/dev/ieee1394: fwohcireg.h Log Message: Listed UniNorth device is in fact the UniNorth 2 interface, rename. https://pci-ids.ucw.cz/read/PC/106b/0031 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ieee1394/fwohcireg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohcireg.h diff -u src/sys/dev/ieee1394/fwohcireg.h:1.18 src/sys/dev/ieee1394/fwohcireg.h:1.19 --- src/sys/dev/ieee1394/fwohcireg.h:1.18 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/fwohcireg.h Sat Mar 31 14:50:45 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohcireg.h,v 1.18 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: fwohcireg.h,v 1.19 2018/03/31 14:50:45 sevan Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -77,7 +77,7 @@ #define FW_DEVICE_R5C551 (0x0551 << 16) #define FW_DEVICE_R5C552 (0x0552 << 16) #define FW_DEVICE_PANGEA (0x0030 << 16) -#define FW_DEVICE_UNINORTH (0x0031 << 16) +#define FW_DEVICE_UNINORTH2 (0x0031 << 16) #define FW_DEVICE_AIC5800 (0x5800 << 16) #define FW_DEVICE_FW322 (0x5811 << 16) #define FW_DEVICE_7007 (0x7007 << 16)
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: maxv Date: Sun Jun 25 12:39:27 UTC 2017 Modified Files: src/sys/dev/ieee1394: fwdev.c Log Message: memory leak, found by Mootja; it seems that we should check the return value of 'fw_bindadd' in several other places, but whatever To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/ieee1394/fwdev.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.31 src/sys/dev/ieee1394/fwdev.c:1.32 --- src/sys/dev/ieee1394/fwdev.c:1.31 Sun Nov 20 22:47:39 2016 +++ src/sys/dev/ieee1394/fwdev.c Sun Jun 25 12:39:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdev.c,v 1.31 2016/11/20 22:47:39 riastradh Exp $ */ +/* $NetBSD: fwdev.c,v 1.32 2017/06/25 12:39:27 maxv Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: fwdev.c,v 1.31 2016/11/20 22:47:39 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwdev.c,v 1.32 2017/06/25 12:39:27 maxv Exp $"); #include #include @@ -614,6 +614,8 @@ out: /* XXX */ PAGE_SIZE, PAGE_SIZE, 5, fc, (void *)fwb, fw_hand); STAILQ_INSERT_TAIL(>binds, fwb, chlist); + } else { + free(fwb, M_FW); } break;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Mon Nov 21 01:19:35 UTC 2016 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: Let's try initializing the pointers *before* dereferencing them! Oops. To generate a diff of this commit: cvs rdiff -u -r1.140 -r1.141 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.140 src/sys/dev/ieee1394/fwohci.c:1.141 --- src/sys/dev/ieee1394/fwohci.c:1.140 Sun Nov 20 22:56:13 2016 +++ src/sys/dev/ieee1394/fwohci.c Mon Nov 21 01:19:35 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.140 2016/11/20 22:56:13 riastradh Exp $ */ +/* $NetBSD: fwohci.c,v 1.141 2016/11/21 01:19:35 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include -__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.140 2016/11/20 22:56:13 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.141 2016/11/21 01:19:35 riastradh Exp $"); #include #include @@ -428,8 +428,6 @@ fwohci_attach(struct fwohci_softc *sc) if (i == 0) return ENXIO; - fw_init_isodma(>fc); - for (i = 0; i < sc->fc.nisodma; i++) { sc->fc.it[i] = >it[i].xferq; sc->fc.ir[i] = >ir[i].xferq; @@ -441,6 +439,8 @@ fwohci_attach(struct fwohci_softc *sc) sc->ir[i].off = OHCI_IROFF(i); } + fw_init_isodma(>fc); + sc->fc.config_rom = fwdma_alloc_setup(sc->fc.dev, sc->fc.dmat, CROMSIZE, >crom_dma, CROMSIZE, BUS_DMA_NOWAIT); if (sc->fc.config_rom == NULL) {
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Sun Nov 20 22:56:13 UTC 2016 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: KASSERT(mutex_owner(...)) ---> KASSERT(mutex_owned(...)) If this is not correct, then there's something bogus in this code anyway, so better to fail early. Final part of PR kern/47114. To generate a diff of this commit: cvs rdiff -u -r1.139 -r1.140 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.139 src/sys/dev/ieee1394/fwohci.c:1.140 --- src/sys/dev/ieee1394/fwohci.c:1.139 Sun Nov 20 22:47:39 2016 +++ src/sys/dev/ieee1394/fwohci.c Sun Nov 20 22:56:13 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.139 2016/11/20 22:47:39 riastradh Exp $ */ +/* $NetBSD: fwohci.c,v 1.140 2016/11/20 22:56:13 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include -__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.139 2016/11/20 22:47:39 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.140 2016/11/20 22:56:13 riastradh Exp $"); #include #include @@ -2508,7 +2508,7 @@ fwohci_txbufdb(struct fwohci_softc *sc, unsigned short chtag; int idb; - KASSERT(mutex_owner(>fc.fc_mtx)); + KASSERT(mutex_owned(>fc.fc_mtx)); dbch = >it[dmach]; chtag = sc->it[dmach].xferq.flag & 0xff;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Sun Nov 20 22:47:39 UTC 2016 Modified Files: src/sys/dev/ieee1394: firewire.c firewirereg.h fwdev.c fwohci.c Log Message: Kill some more tsleep. And no, surrounding tsleep by mutex_exit/mutex_enter does not fix problems even if the LOCKDEBUG panic symptom goes away... To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/ieee1394/firewirereg.h cvs rdiff -u -r1.30 -r1.31 src/sys/dev/ieee1394/fwdev.c cvs rdiff -u -r1.138 -r1.139 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.46 src/sys/dev/ieee1394/firewire.c:1.47 --- src/sys/dev/ieee1394/firewire.c:1.46 Sun Nov 20 22:36:45 2016 +++ src/sys/dev/ieee1394/firewire.c Sun Nov 20 22:47:39 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.46 2016/11/20 22:36:45 riastradh Exp $ */ +/* $NetBSD: firewire.c,v 1.47 2016/11/20 22:47:39 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.46 2016/11/20 22:36:45 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.47 2016/11/20 22:47:39 riastradh Exp $"); #include #include @@ -682,6 +682,20 @@ fw_init_isodma(struct firewire_comm *fc) fc->ir[i]->maxq = FWMAXQUEUE; fc->it[i]->maxq = FWMAXQUEUE; + + cv_init(>ir[i]->cv, "fw_read"); + cv_init(>it[i]->cv, "fw_write"); + } +} + +void +fw_destroy_isodma(struct firewire_comm *fc) +{ + unsigned i; + + for (i = 0; i < fc->nisodma; i++) { + cv_destroy(>ir[i]->cv); + cv_destroy(>it[i]->cv); } } Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.19 src/sys/dev/ieee1394/firewirereg.h:1.20 --- src/sys/dev/ieee1394/firewirereg.h:1.19 Sun Nov 20 22:36:45 2016 +++ src/sys/dev/ieee1394/firewirereg.h Sun Nov 20 22:47:39 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.19 2016/11/20 22:36:45 riastradh Exp $ */ +/* $NetBSD: firewirereg.h,v 1.20 2016/11/20 22:47:39 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -200,6 +200,7 @@ struct fw_xferq { STAILQ_HEAD(, fw_bulkxfer) stfree; STAILQ_HEAD(, fw_bulkxfer) stdma; struct fw_bulkxfer *stproc; + kcondvar_t cv; struct selinfo rsel; void *sc; void (*hand) (struct fw_xferq *); @@ -284,6 +285,7 @@ void fw_drain_txq(struct firewire_comm * void fw_busreset(struct firewire_comm *, uint32_t); void fw_init(struct firewire_comm *); void fw_init_isodma(struct firewire_comm *); +void fw_destroy_isodma(struct firewire_comm *); void fw_destroy(struct firewire_comm *); struct fw_bind *fw_bindlookup(struct firewire_comm *, uint16_t, uint32_t); int fw_bindadd(struct firewire_comm *, struct fw_bind *); Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.30 src/sys/dev/ieee1394/fwdev.c:1.31 --- src/sys/dev/ieee1394/fwdev.c:1.30 Fri Jul 25 08:10:37 2014 +++ src/sys/dev/ieee1394/fwdev.c Sun Nov 20 22:47:39 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdev.c,v 1.30 2014/07/25 08:10:37 dholland Exp $ */ +/* $NetBSD: fwdev.c,v 1.31 2016/11/20 22:47:39 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: fwdev.c,v 1.30 2014/07/25 08:10:37 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwdev.c,v 1.31 2016/11/20 22:47:39 riastradh Exp $"); #include #include @@ -104,6 +104,7 @@ struct fw_drv1 { struct fw_isobufreq bufreq; STAILQ_HEAD(, fw_bind) binds; STAILQ_HEAD(, fw_xfer) rq; + kcondvar_t cv; }; static int fwdev_allocbuf(struct firewire_comm *, struct fw_xferq *, @@ -145,6 +146,7 @@ fw_open(dev_t dev, int flags, int fmt, s d->fc = sc->fc; STAILQ_INIT(>binds); STAILQ_INIT(>rq); + cv_init(>cv, "fwra"); return err; } @@ -217,6 +219,7 @@ fw_close(dev_t dev, int flags, int fmt, ~(FWXFERQ_OPEN | FWXFERQ_MODEMASK | FWXFERQ_CHTAGMASK); d->it = NULL; } + cv_destroy(>cv); free(sc->si_drv1, M_FW); sc->si_drv1 = NULL; @@ -265,9 +268,7 @@ readloop: if (slept == 0) { slept = 1; ir->flag |= FWXFERQ_WAKEUP; - mutex_exit(>fc_mtx); - err = tsleep(ir, FWPRI, "fw_read", hz); - mutex_enter(>fc_mtx); + err = cv_timedwait_sig(>cv, >fc_mtx, hz); ir->flag &= ~FWXFERQ_WAKEUP; if (err == 0) goto readloop; @@ -343,9 +344,7 @@ isoloop: if (err) goto out; #endif - mutex_exit(>fc_mtx); - err = tsleep(it, FWPRI, "fw_write", hz); - mutex_enter(>fc_mtx); + err = cv_timedwait_sig(>cv, >fc_mtx, hz); if (err) goto out; goto isoloop; @@ -824,11 +823,11 @@
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Sun Nov 20 22:36:45 UTC 2016 Modified Files: src/sys/dev/ieee1394: firewire.c firewirereg.h fwohci.c Log Message: Defer initialization of isodma channels until we know how many. Should fix a bug I introduced four years ago in: https://mail-index.netbsd.org/source-changes/2012/08/04/msg036211.html To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ieee1394/firewirereg.h cvs rdiff -u -r1.137 -r1.138 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.45 src/sys/dev/ieee1394/firewire.c:1.46 --- src/sys/dev/ieee1394/firewire.c:1.45 Sat Oct 18 08:33:28 2014 +++ src/sys/dev/ieee1394/firewire.c Sun Nov 20 22:36:45 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.45 2014/10/18 08:33:28 snj Exp $ */ +/* $NetBSD: firewire.c,v 1.46 2016/11/20 22:36:45 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.45 2014/10/18 08:33:28 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: firewire.c,v 1.46 2016/11/20 22:36:45 riastradh Exp $"); #include #include @@ -622,33 +622,11 @@ fw_init(struct firewire_comm *fc) mutex_init(>atq->q_mtx, MUTEX_DEFAULT, IPL_VM); mutex_init(>ats->q_mtx, MUTEX_DEFAULT, IPL_VM); - for (i = 0; i < fc->nisodma; i++) { - fc->it[i]->queued = 0; - fc->ir[i]->queued = 0; - - fc->it[i]->start = NULL; - fc->ir[i]->start = NULL; - - fc->it[i]->buf = NULL; - fc->ir[i]->buf = NULL; - - fc->it[i]->flag = FWXFERQ_STREAM; - fc->ir[i]->flag = FWXFERQ_STREAM; - - STAILQ_INIT(>it[i]->q); - STAILQ_INIT(>ir[i]->q); - } - fc->arq->maxq = FWMAXQUEUE; fc->ars->maxq = FWMAXQUEUE; fc->atq->maxq = FWMAXQUEUE; fc->ats->maxq = FWMAXQUEUE; - for (i = 0; i < fc->nisodma; i++) { - fc->ir[i]->maxq = FWMAXQUEUE; - fc->it[i]->maxq = FWMAXQUEUE; - } - CSRARC(fc, TOPO_MAP) = 0x3f1 << 16; CSRARC(fc, TOPO_MAP + 4) = 1; CSRARC(fc, SPED_MAP) = 0x3f1 << 16; @@ -677,6 +655,36 @@ fw_init(struct firewire_comm *fc) fc->crom_src_buf = NULL; } +/* + * Called by HCI driver when it has determined the number of + * isochronous DMA channels. + */ +void +fw_init_isodma(struct firewire_comm *fc) +{ + unsigned i; + + for (i = 0; i < fc->nisodma; i++) { + fc->it[i]->queued = 0; + fc->ir[i]->queued = 0; + + fc->it[i]->start = NULL; + fc->ir[i]->start = NULL; + + fc->it[i]->buf = NULL; + fc->ir[i]->buf = NULL; + + fc->it[i]->flag = FWXFERQ_STREAM; + fc->ir[i]->flag = FWXFERQ_STREAM; + + STAILQ_INIT(>it[i]->q); + STAILQ_INIT(>ir[i]->q); + + fc->ir[i]->maxq = FWMAXQUEUE; + fc->it[i]->maxq = FWMAXQUEUE; + } +} + void fw_destroy(struct firewire_comm *fc) { Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.18 src/sys/dev/ieee1394/firewirereg.h:1.19 --- src/sys/dev/ieee1394/firewirereg.h:1.18 Sat Aug 4 03:55:43 2012 +++ src/sys/dev/ieee1394/firewirereg.h Sun Nov 20 22:36:45 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.18 2012/08/04 03:55:43 riastradh Exp $ */ +/* $NetBSD: firewirereg.h,v 1.19 2016/11/20 22:36:45 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -283,6 +283,7 @@ int fw_xferwait(struct fw_xfer *); void fw_drain_txq(struct firewire_comm *); void fw_busreset(struct firewire_comm *, uint32_t); void fw_init(struct firewire_comm *); +void fw_init_isodma(struct firewire_comm *); void fw_destroy(struct firewire_comm *); struct fw_bind *fw_bindlookup(struct firewire_comm *, uint16_t, uint32_t); int fw_bindadd(struct firewire_comm *, struct fw_bind *); Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.137 src/sys/dev/ieee1394/fwohci.c:1.138 --- src/sys/dev/ieee1394/fwohci.c:1.137 Tue Feb 25 18:30:09 2014 +++ src/sys/dev/ieee1394/fwohci.c Sun Nov 20 22:36:45 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.137 2014/02/25 18:30:09 pooka Exp $ */ +/* $NetBSD: fwohci.c,v 1.138 2016/11/20 22:36:45 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include -__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.137 2014/02/25 18:30:09 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwohci.c,v 1.138 2016/11/20 22:36:45 riastradh Exp $"); #include #include @@ -428,6 +428,8 @@ fwohci_attach(struct fwohci_softc *sc) if (i == 0) return ENXIO; + fw_init_isodma(>fc); + for (i = 0; i < sc->fc.nisodma; i++) { sc->fc.it[i] = >it[i].xferq; sc->fc.ir[i] = >ir[i].xferq;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: joerg Date: Fri Nov 21 23:37:25 UTC 2014 Modified Files: src/sys/dev/ieee1394: fwcrom.c Log Message: No reason not to make the string const. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/dev/ieee1394/fwcrom.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.16 src/sys/dev/ieee1394/fwcrom.c:1.17 --- src/sys/dev/ieee1394/fwcrom.c:1.16 Sun Sep 21 18:03:47 2014 +++ src/sys/dev/ieee1394/fwcrom.c Fri Nov 21 23:37:25 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.16 2014/09/21 18:03:47 christos Exp $ */ +/* $NetBSD: fwcrom.c,v 1.17 2014/11/21 23:37:25 joerg Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.16 2014/09/21 18:03:47 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.17 2014/11/21 23:37:25 joerg Exp $); #include sys/param.h #ifdef _KERNEL @@ -172,7 +172,7 @@ crom_parse_text(struct crom_context *cc, struct csrtext *textleaf; uint32_t *bp; int i, qlen; - static char *nullstr = (char *)(null); + static const char nullstr[] = (null); if (cc-depth 0) return;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: christos Date: Sun Sep 21 17:10:01 UTC 2014 Modified Files: src/sys/dev/ieee1394: fwcrom.c Log Message: fix cut-n-paste, use arrays instead of separate variables to avoid code duplication. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ieee1394/fwcrom.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.14 src/sys/dev/ieee1394/fwcrom.c:1.15 --- src/sys/dev/ieee1394/fwcrom.c:1.14 Thu Mar 27 22:16:47 2014 +++ src/sys/dev/ieee1394/fwcrom.c Sun Sep 21 13:10:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.14 2014/03/28 02:16:47 christos Exp $ */ +/* $NetBSD: fwcrom.c,v 1.15 2014/09/21 17:10:00 christos Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.14 2014/03/28 02:16:47 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.15 2014/09/21 17:10:00 christos Exp $); #include sys/param.h #ifdef _KERNEL @@ -48,11 +48,11 @@ __KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1 #include dev/ieee1394/firewire.h #include dev/ieee1394/iec13213.h -#define MAX_ROM (1024 - sizeof(uint32_t) * 5) +#define MAX_ROM (1024 - sizeof(uint[2]2_t) * 5) #define CROM_END(cc) ((char *)(cc)-stack[0].dir + MAX_ROM - 1) void -crom_init_context(struct crom_context *cc, uint32_t *p) +crom_init_context(struct crom_context *cc, uint[2]2_t *p) { struct csrhdr *hdr; @@ -139,7 +139,7 @@ crom_search_key(struct crom_context *cc, } int -crom_has_specver(uint32_t *p, uint32_t spec, uint32_t ver) +crom_has_specver(uint[2]2_t *p, uint[2]2_t spec, uint[2]2_t ver) { struct csrreg *reg; struct crom_context c, *cc; @@ -170,7 +170,7 @@ crom_parse_text(struct crom_context *cc, { struct csrreg *reg; struct csrtext *textleaf; - uint32_t *bp; + uint[2]2_t *bp; int i, qlen; static char *nullstr = (char *)(null); @@ -198,7 +198,7 @@ crom_parse_text(struct crom_context *cc, /* XXX should check spec and type */ - bp = (uint32_t *)buf; + bp = (uint[2]2_t *)buf; qlen = textleaf-crc_len - 2; if (len qlen * 4) qlen = len/4; @@ -212,10 +212,10 @@ crom_parse_text(struct crom_context *cc, } uint16_t -crom_crc(uint32_t *ptr, int len) +crom_crc(uint[2]2_t *ptr, int len) { int i, shift; - uint32_t data, sum, crc = 0; + uint[2]2_t data, sum, crc = 0; for (i = 0; i len; i++) { data = ptr[i]; @@ -230,7 +230,7 @@ crom_crc(uint32_t *ptr, int len) #if !defined(_KERNEL) !defined(_BOOT) static void -crom_desc_specver(uint32_t spec, uint32_t ver, char *buf, int len) +crom_desc_specver(uint[2]2_t spec, uint[2]2_t ver, char *buf, int len) { const char *s = NULL; @@ -308,7 +308,7 @@ crom_desc(struct crom_context *cc, char /* XXX fall through */ case CSRTYPE_D: dir = (struct csrdirectory *) (reg + reg-val); - crc = crom_crc((uint32_t *)dir-entry, dir-crc_len); + crc = crom_crc((uint[2]2_t *)dir-entry, dir-crc_len); l += snprintf(buf + l, len - l, len=%d crc=0x%04x , dir-crc_len, crc); @@ -396,7 +396,7 @@ crom_desc(struct crom_context *cc, char #if defined(_KERNEL) || defined(_BOOT) || defined(TEST) int -crom_add_quad(struct crom_chunk *chunk, uint32_t entry) +crom_add_quad(struct crom_chunk *chunk, uint[2]2_t entry) { int index; @@ -415,7 +415,7 @@ crom_add_entry(struct crom_chunk *chunk, { union { struct csrreg reg; - uint32_t i; + uint[2]2_t i; } foo; foo.reg.key = key; @@ -450,7 +450,7 @@ crom_add_simple_text(struct crom_src *sr struct crom_chunk *chunk, const char *buf) { struct csrtext *tl; - uint32_t *p; + uint[2]2_t *p; int len, i; char t[MAX_TEXT]; @@ -461,38 +461,38 @@ crom_add_simple_text(struct crom_src *sr } tl = (struct csrtext *) chunk-data; - tl-crc_len = howmany(sizeof(struct csrtext) + len, sizeof(uint32_t)); + tl-crc_len = howmany(sizeof(struct csrtext) + len, sizeof(uint[2]2_t)); tl-spec_id = 0; tl-spec_type = 0; tl-lang_id = 0; - memset(t, 0, roundup2(len, sizeof(uint32_t))); + memset(t, 0, roundup2(len, sizeof(uint[2]2_t))); memcpy(t, buf, len); - p = (uint32_t *)t; - for (i = 0; i howmany(len, sizeof(uint32_t)); i++) + p = (uint[2]2_t *)t; + for (i = 0; i howmany(len, sizeof(uint[2]2_t)); i++) tl-text[i] = ntohl(*p++); return crom_add_chunk(src, parent, chunk, CROM_TEXTLEAF); } static int -crom_copy(uint32_t *src, uint32_t *dst, int *offset, int len, int maxlen) +crom_copy(uint[2]2_t *src, uint[2]2_t *dst, int *offset, int len, int maxlen) { if (*offset + len maxlen) { printf(Config. ROM is too large for the buffer\n); return -1; } - memcpy((char *)(dst + *offset), src, len * sizeof(uint32_t)); + memcpy((char *)(dst + *offset), src, len * sizeof(uint[2]2_t)); *offset += len; return 0; } int -crom_load(struct crom_src *src,
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: christos Date: Sun Sep 21 18:03:47 UTC 2014 Modified Files: src/sys/dev/ieee1394: fwcrom.c Log Message: ran sed too agressively. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ieee1394/fwcrom.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.15 src/sys/dev/ieee1394/fwcrom.c:1.16 --- src/sys/dev/ieee1394/fwcrom.c:1.15 Sun Sep 21 13:10:00 2014 +++ src/sys/dev/ieee1394/fwcrom.c Sun Sep 21 14:03:47 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.15 2014/09/21 17:10:00 christos Exp $ */ +/* $NetBSD: fwcrom.c,v 1.16 2014/09/21 18:03:47 christos Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.15 2014/09/21 17:10:00 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.16 2014/09/21 18:03:47 christos Exp $); #include sys/param.h #ifdef _KERNEL @@ -48,11 +48,11 @@ __KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1 #include dev/ieee1394/firewire.h #include dev/ieee1394/iec13213.h -#define MAX_ROM (1024 - sizeof(uint[2]2_t) * 5) +#define MAX_ROM (1024 - sizeof(uint32_t) * 5) #define CROM_END(cc) ((char *)(cc)-stack[0].dir + MAX_ROM - 1) void -crom_init_context(struct crom_context *cc, uint[2]2_t *p) +crom_init_context(struct crom_context *cc, uint32_t *p) { struct csrhdr *hdr; @@ -139,7 +139,7 @@ crom_search_key(struct crom_context *cc, } int -crom_has_specver(uint[2]2_t *p, uint[2]2_t spec, uint[2]2_t ver) +crom_has_specver(uint32_t *p, uint32_t spec, uint32_t ver) { struct csrreg *reg; struct crom_context c, *cc; @@ -170,7 +170,7 @@ crom_parse_text(struct crom_context *cc, { struct csrreg *reg; struct csrtext *textleaf; - uint[2]2_t *bp; + uint32_t *bp; int i, qlen; static char *nullstr = (char *)(null); @@ -198,7 +198,7 @@ crom_parse_text(struct crom_context *cc, /* XXX should check spec and type */ - bp = (uint[2]2_t *)buf; + bp = (uint32_t *)buf; qlen = textleaf-crc_len - 2; if (len qlen * 4) qlen = len/4; @@ -212,10 +212,10 @@ crom_parse_text(struct crom_context *cc, } uint16_t -crom_crc(uint[2]2_t *ptr, int len) +crom_crc(uint32_t *ptr, int len) { int i, shift; - uint[2]2_t data, sum, crc = 0; + uint32_t data, sum, crc = 0; for (i = 0; i len; i++) { data = ptr[i]; @@ -230,7 +230,7 @@ crom_crc(uint[2]2_t *ptr, int len) #if !defined(_KERNEL) !defined(_BOOT) static void -crom_desc_specver(uint[2]2_t spec, uint[2]2_t ver, char *buf, int len) +crom_desc_specver(uint32_t spec, uint32_t ver, char *buf, int len) { const char *s = NULL; @@ -308,7 +308,7 @@ crom_desc(struct crom_context *cc, char /* XXX fall through */ case CSRTYPE_D: dir = (struct csrdirectory *) (reg + reg-val); - crc = crom_crc((uint[2]2_t *)dir-entry, dir-crc_len); + crc = crom_crc((uint32_t *)dir-entry, dir-crc_len); l += snprintf(buf + l, len - l, len=%d crc=0x%04x , dir-crc_len, crc); @@ -396,7 +396,7 @@ crom_desc(struct crom_context *cc, char #if defined(_KERNEL) || defined(_BOOT) || defined(TEST) int -crom_add_quad(struct crom_chunk *chunk, uint[2]2_t entry) +crom_add_quad(struct crom_chunk *chunk, uint32_t entry) { int index; @@ -415,7 +415,7 @@ crom_add_entry(struct crom_chunk *chunk, { union { struct csrreg reg; - uint[2]2_t i; + uint32_t i; } foo; foo.reg.key = key; @@ -450,7 +450,7 @@ crom_add_simple_text(struct crom_src *sr struct crom_chunk *chunk, const char *buf) { struct csrtext *tl; - uint[2]2_t *p; + uint32_t *p; int len, i; char t[MAX_TEXT]; @@ -461,38 +461,38 @@ crom_add_simple_text(struct crom_src *sr } tl = (struct csrtext *) chunk-data; - tl-crc_len = howmany(sizeof(struct csrtext) + len, sizeof(uint[2]2_t)); + tl-crc_len = howmany(sizeof(struct csrtext) + len, sizeof(uint32_t)); tl-spec_id = 0; tl-spec_type = 0; tl-lang_id = 0; - memset(t, 0, roundup2(len, sizeof(uint[2]2_t))); + memset(t, 0, roundup2(len, sizeof(uint32_t))); memcpy(t, buf, len); - p = (uint[2]2_t *)t; - for (i = 0; i howmany(len, sizeof(uint[2]2_t)); i++) + p = (uint32_t *)t; + for (i = 0; i howmany(len, sizeof(uint32_t)); i++) tl-text[i] = ntohl(*p++); return crom_add_chunk(src, parent, chunk, CROM_TEXTLEAF); } static int -crom_copy(uint[2]2_t *src, uint[2]2_t *dst, int *offset, int len, int maxlen) +crom_copy(uint32_t *src, uint32_t *dst, int *offset, int len, int maxlen) { if (*offset + len maxlen) { printf(Config. ROM is too large for the buffer\n); return -1; } - memcpy((char *)(dst + *offset), src, len * sizeof(uint[2]2_t)); + memcpy((char *)(dst + *offset), src, len * sizeof(uint32_t)); *offset += len; return 0; } int -crom_load(struct crom_src *src, uint[2]2_t *buf, int maxlen) +crom_load(struct crom_src
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: christos Date: Fri Mar 28 02:16:47 UTC 2014 Modified Files: src/sys/dev/ieee1394: fwcrom.c Log Message: Deal with snprintf more gracefully. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/dev/ieee1394/fwcrom.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.13 src/sys/dev/ieee1394/fwcrom.c:1.14 --- src/sys/dev/ieee1394/fwcrom.c:1.13 Thu Aug 26 03:36:53 2010 +++ src/sys/dev/ieee1394/fwcrom.c Thu Mar 27 22:16:47 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.13 2010/08/26 07:36:53 cegger Exp $ */ +/* $NetBSD: fwcrom.c,v 1.14 2014/03/28 02:16:47 christos Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.13 2010/08/26 07:36:53 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.14 2014/03/28 02:16:47 christos Exp $); #include sys/param.h #ifdef _KERNEL @@ -283,44 +283,45 @@ crom_desc_specver(uint32_t spec, uint32_ } const char * -crom_desc(struct crom_context *cc, char *buf, int len) +crom_desc(struct crom_context *cc, char *buf, size_t len) { struct csrreg *reg; struct csrdirectory *dir; const char *desc; uint16_t crc; + size_t l = 0; reg = crom_get(cc); switch (reg-key CSRTYPE_MASK) { case CSRTYPE_I: #if 0 - len -= snprintf(buf, len, 0x%x, reg-val); - buf += strlen(buf); + l += snprintf(buf + l, len - l, 0x%x, reg-val); #else *buf = '\0'; #endif break; case CSRTYPE_C: - len -= - snprintf(buf, len, offset=0x%04x(%d), reg-val, reg-val); - buf += strlen(buf); + l += snprintf(buf + l, len - l, offset=0x%04x(%d), + reg-val, reg-val); break; case CSRTYPE_L: /* XXX fall through */ case CSRTYPE_D: dir = (struct csrdirectory *) (reg + reg-val); crc = crom_crc((uint32_t *)dir-entry, dir-crc_len); - len -= snprintf(buf, len, len=%d crc=0x%04x , + l += snprintf(buf + l, len - l, len=%d crc=0x%04x , dir-crc_len, crc); - buf += strlen(buf); + if (l len) + l = len; if (crc == dir-crc) - len -= snprintf(buf, len, (OK) ); + l += snprintf(buf + l, len - l, (OK) ); else - len -= snprintf(buf, len, (NG, 0x%x) , + l += snprintf(buf + l, len - l, (NG, 0x%x) , dir-crc); - buf += strlen(buf); } + if (l len) + l = len; switch (reg-key) { case CSRKEY_VENDOR: /* 0x03 */ desc = module_vendor_ID; @@ -374,7 +375,7 @@ crom_desc(struct crom_context *cc, char case CROM_TEXTLEAF: /* 0x81 */ case CROM_TEXTLEAF2: /* 0x82 */ desc = text_leaf; - crom_parse_text(cc, buf + strlen(buf), len); + crom_parse_text(cc, buf + l, len - l); break; case CROM_NODEID: /* 0x8d */ desc = node_unique_ID;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: htodd Date: Fri Mar 28 04:09:19 UTC 2014 Modified Files: src/sys/dev/ieee1394: iec13213.h Log Message: Fix build. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ieee1394/iec13213.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/iec13213.h diff -u src/sys/dev/ieee1394/iec13213.h:1.5 src/sys/dev/ieee1394/iec13213.h:1.6 --- src/sys/dev/ieee1394/iec13213.h:1.5 Thu Aug 26 07:36:53 2010 +++ src/sys/dev/ieee1394/iec13213.h Fri Mar 28 04:09:19 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: iec13213.h,v 1.5 2010/08/26 07:36:53 cegger Exp $ */ +/* $NetBSD: iec13213.h,v 1.6 2014/03/28 04:09:19 htodd Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -224,7 +224,7 @@ struct csrreg *crom_search_key(struct cr int crom_has_specver(uint32_t *, uint32_t, uint32_t); #ifndef _KERNEL -const char *crom_desc(struct crom_context *, char *, int); +const char *crom_desc(struct crom_context *, char *, size_t); #endif /* For CROM build */
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: christos Date: Wed Oct 16 17:40:55 UTC 2013 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: add missing ifdefs To generate a diff of this commit: cvs rdiff -u -r1.135 -r1.136 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.135 src/sys/dev/ieee1394/fwohci.c:1.136 --- src/sys/dev/ieee1394/fwohci.c:1.135 Thu Sep 12 16:16:51 2013 +++ src/sys/dev/ieee1394/fwohci.c Wed Oct 16 13:40:55 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.135 2013/09/12 20:16:51 martin Exp $ */ +/* $NetBSD: fwohci.c,v 1.136 2013/10/16 17:40:55 christos Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.135 2013/09/12 20:16:51 martin Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.136 2013/10/16 17:40:55 christos Exp $); #include sys/param.h #include sys/atomic.h @@ -2645,9 +2645,9 @@ fwohci_arcv_swap(struct fw_pkt *fp, int { struct fw_pkt *fp0; uint32_t ld0; - int slen, hlen; + int hlen; #if BYTE_ORDER == BIG_ENDIAN - int i; + int slen, i; #endif ld0 = FWOHCI_DMA_READ(fp-mode.ld[0]); @@ -2662,7 +2662,9 @@ fwohci_arcv_swap(struct fw_pkt *fp, int case FWTCODE_WREQQ: case FWTCODE_RRESQ: case FWOHCITCODE_PHY: +#if BYTE_ORDER == BIG_ENDIAN slen = 12; +#endif break; case FWTCODE_RREQB: @@ -2670,7 +2672,9 @@ fwohci_arcv_swap(struct fw_pkt *fp, int case FWTCODE_LREQ: case FWTCODE_RRESB: case FWTCODE_LRES: +#if BYTE_ORDER == BIG_ENDIAN slen = 16; +#endif break; default:
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: martin Date: Sun Sep 15 13:52:23 UTC 2013 Modified Files: src/sys/dev/ieee1394: sbp.c Log Message: Remove unused variables To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/dev/ieee1394/sbp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/sbp.c diff -u src/sys/dev/ieee1394/sbp.c:1.34 src/sys/dev/ieee1394/sbp.c:1.35 --- src/sys/dev/ieee1394/sbp.c:1.34 Sun Apr 29 20:27:31 2012 +++ src/sys/dev/ieee1394/sbp.c Sun Sep 15 13:52:23 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: sbp.c,v 1.34 2012/04/29 20:27:31 dsl Exp $ */ +/* $NetBSD: sbp.c,v 1.35 2013/09/15 13:52:23 martin Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sbp.c,v 1.34 2012/04/29 20:27:31 dsl Exp $); +__KERNEL_RCSID(0, $NetBSD: sbp.c,v 1.35 2013/09/15 13:52:23 martin Exp $); #include sys/param.h @@ -1112,7 +1112,6 @@ static void sbp_mgm_callback(struct fw_xfer *xfer) { struct sbp_dev *sdev; - int resp; sdev = (struct sbp_dev *)xfer-sc; @@ -1120,7 +1119,6 @@ SBP_DEBUG(1) printf(%s: sbp_mgm_callback: %s\n, device_xname(sdev-target-sbp-sc_fd.dev), sdev-bustgtlun); END_DEBUG - resp = xfer-resp; sbp_xfer_free(xfer); return; } @@ -2140,12 +2138,10 @@ END_DEBUG static void sbp_target_reset(struct sbp_dev *sdev, int method) { - struct sbp_softc *sc; struct sbp_target *target = sdev-target; struct sbp_dev *tsdev; int i; - sc = target-sbp; for (i = 0; i target-num_lun; i++) { tsdev = target-luns[i]; if (tsdev == NULL) @@ -2408,7 +2404,6 @@ sbp_dequeue_ocb(struct sbp_dev *sdev, st struct sbp_ocb *ocb; struct sbp_ocb *next; int order = 0; - int flags; SBP_DEBUG(1) printf(%s:%s:%s: 0x%08x src %d\n, device_xname(sc-sc_fd.dev), @@ -2418,7 +2413,6 @@ END_DEBUG mutex_enter(sc-sc_mtx); for (ocb = STAILQ_FIRST(sdev-ocbs); ocb != NULL; ocb = next) { next = STAILQ_NEXT(ocb, ocb); - flags = ocb-flags; if (OCB_MATCH(ocb, sbp_status)) { /* found */ SBP_ORB_DMA_SYNC(sdev-dma, ocb-index,
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: martin Date: Thu Sep 12 20:16:51 UTC 2013 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: Make it compilable with gcc 4.8.1 To generate a diff of this commit: cvs rdiff -u -r1.134 -r1.135 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.134 src/sys/dev/ieee1394/fwohci.c:1.135 --- src/sys/dev/ieee1394/fwohci.c:1.134 Sun Apr 7 07:42:20 2013 +++ src/sys/dev/ieee1394/fwohci.c Thu Sep 12 20:16:51 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.134 2013/04/07 07:42:20 kiyohara Exp $ */ +/* $NetBSD: fwohci.c,v 1.135 2013/09/12 20:16:51 martin Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.134 2013/04/07 07:42:20 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.135 2013/09/12 20:16:51 martin Exp $); #include sys/param.h #include sys/atomic.h @@ -919,13 +919,10 @@ fwohci_itxbuf_enable(struct firewire_com struct fw_xferq *it; uint32_t stat; int cycle_match, cycle_now, ldesc, err = 0; - unsigned short tag, ich; dbch = sc-it[dmach]; it = dbch-xferq; - tag = (it-flag 6) 3; - ich = it-flag 0x3f; if ((dbch-flags FWOHCI_DBCH_INIT) == 0) { dbch-ndb = it-bnpacket * it-bnchunk; dbch-ndesc = 3; @@ -2194,7 +2191,10 @@ fwohci_tbuf_update(struct fwohci_softc * struct fwohcidb *db; struct fw_bulkxfer *chunk; struct fw_xferq *it; - uint32_t stat, count; + uint32_t stat; +#if 0 + uint32_t count; +#endif int w = 0, ldesc; it = fc-it[dmach]; @@ -2209,8 +2209,12 @@ fwohci_tbuf_update(struct fwohci_softc * FWOHCI_DMA_READ(db[ldesc].db.desc.res) OHCI_STATUS_SHIFT; db = ((struct fwohcidb_tr *)(chunk-start))-db; /* timestamp */ +#if 0 count = FWOHCI_DMA_READ(db[ldesc].db.desc.res) OHCI_COUNT_MASK; +#else + (void)FWOHCI_DMA_READ(db[ldesc].db.desc.res); +#endif if (stat == 0) break; STAILQ_REMOVE_HEAD(it-stdma, link); @@ -2344,8 +2348,12 @@ static void dump_db(struct fwohci_softc *sc, uint32_t ch) { struct fwohci_dbch *dbch; - struct fwohcidb_tr *cp = NULL, *pp, *np = NULL; - struct fwohcidb *curr = NULL, *prev, *next = NULL; + struct fwohcidb_tr *cp = NULL, *pp; + struct fwohcidb *curr = NULL; +#if 0 + struct fwohcidb_tr *np = NULL; + struct fwohcidb *prev, *next = NULL; +#endif int idb, jdb; uint32_t cmd; @@ -2368,21 +2376,27 @@ dump_db(struct fwohci_softc *sc, uint32_ return; } pp = dbch-top; +#if 0 prev = pp-db; +#endif for (idb = 0; idb dbch-ndb; idb++) { cp = STAILQ_NEXT(pp, link); if (cp == NULL) { curr = NULL; goto outdb; } +#if 0 np = STAILQ_NEXT(cp, link); +#endif for (jdb = 0; jdb dbch-ndesc; jdb++) if ((cmd 0xfff0) == cp-bus_addr) { curr = cp-db; +#if 0 if (np != NULL) next = np-db; else next = NULL; +#endif goto outdb; } pp = STAILQ_NEXT(pp, link); @@ -2390,7 +2404,9 @@ dump_db(struct fwohci_softc *sc, uint32_ curr = NULL; goto outdb; } +#if 0 prev = pp-db; +#endif } outdb: if (curr != NULL) { @@ -2486,7 +2502,7 @@ print_db(struct fwohcidb_tr *db_tr, stru static void fwohci_txbufdb(struct fwohci_softc *sc, int dmach, struct fw_bulkxfer *bulkxfer) { - struct fwohcidb_tr *db_tr, *fdb_tr; + struct fwohcidb_tr *db_tr /*, *fdb_tr */; struct fwohci_dbch *dbch; struct fwohcidb *db; struct fw_pkt *fp; @@ -2500,8 +2516,8 @@ fwohci_txbufdb(struct fwohci_softc *sc, chtag = sc-it[dmach].xferq.flag 0xff; db_tr = (struct fwohcidb_tr *)(bulkxfer-start); - fdb_tr = (struct fwohcidb_tr *)(bulkxfer-end); /* + fdb_tr = (struct fwohcidb_tr *)(bulkxfer-end); aprint_normal(sc-fc.dev, DB %08x %08x %08x\n, bulkxfer, db_tr-bus_addr, fdb_tr-bus_addr); */ for (idb = 0; idb dbch-xferq.bnpacket; idb++) {
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Sun Apr 7 07:42:20 UTC 2013 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: Add '\n' to tail of printing string. To generate a diff of this commit: cvs rdiff -u -r1.133 -r1.134 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.133 src/sys/dev/ieee1394/fwohci.c:1.134 --- src/sys/dev/ieee1394/fwohci.c:1.133 Sat Aug 4 03:55:43 2012 +++ src/sys/dev/ieee1394/fwohci.c Sun Apr 7 07:42:20 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.133 2012/08/04 03:55:43 riastradh Exp $ */ +/* $NetBSD: fwohci.c,v 1.134 2013/04/07 07:42:20 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.133 2012/08/04 03:55:43 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.134 2013/04/07 07:42:20 kiyohara Exp $); #include sys/param.h #include sys/atomic.h @@ -448,7 +448,7 @@ fwohci_attach(struct fwohci_softc *sc) sc-fc.config_rom = fwdma_alloc_setup(sc-fc.dev, sc-fc.dmat, CROMSIZE, sc-crom_dma, CROMSIZE, BUS_DMA_NOWAIT); if (sc-fc.config_rom == NULL) { - aprint_error_dev(sc-fc.dev, config_rom alloc failed.); + aprint_error_dev(sc-fc.dev, config_rom alloc failed.\n); return ENOMEM; }
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Sun Aug 5 02:36:16 UTC 2012 Modified Files: src/sys/dev/ieee1394: firewire.c Log Message: Restore config pending stuff, adjusted to avoid the race. Leave a note about what this code probably should look like for anyone who comes rummaging around with the intent to really fix it. I would do that myself if I had time and resources to test this at the moment, and more comfort with our firewire stack, but I don't. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/dev/ieee1394/firewire.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.40 src/sys/dev/ieee1394/firewire.c:1.41 --- src/sys/dev/ieee1394/firewire.c:1.40 Sat Aug 4 03:55:43 2012 +++ src/sys/dev/ieee1394/firewire.c Sun Aug 5 02:36:16 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.40 2012/08/04 03:55:43 riastradh Exp $ */ +/* $NetBSD: firewire.c,v 1.41 2012/08/05 02:36:16 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.40 2012/08/04 03:55:43 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.41 2012/08/05 02:36:16 riastradh Exp $); #include sys/param.h #include sys/bus.h @@ -255,6 +255,9 @@ firewireattach(device_t parent, device_t callout_schedule(fc-timeout_callout, hz); + /* Tell config we will have started a thread to scan the bus. */ + config_pending_incr(); + /* create thread */ if (kthread_create(PRI_NONE, KTHREAD_MPSAFE, NULL, fw_bus_probe_thread, fc, fc-probe_thread, fw%dprobe, device_unit(fc-bdev))) @@ -1943,6 +1946,22 @@ fw_bus_probe_thread(void *arg) { struct firewire_comm *fc = (struct firewire_comm *)arg; + /* + * Tell config we've scanned the bus. + * + * XXX This is not right -- we haven't actually scanned it. We + * probably ought to call this after the first bus exploration. + * + * bool once = false; + * ... + * fw_attach_dev(fc); + * if (!once) { + * config_pending_decr(); + * once = true; + * } + */ + config_pending_decr(); + mutex_enter(fc-wait_lock); while (fc-status != FWBUSDETACH) { if (fc-status == FWBUSEXPLORE) {
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: riastradh Date: Sun Aug 5 02:47:52 UTC 2012 Modified Files: src/sys/dev/ieee1394: firewire.c Log Message: ...and be sure to config_pending_decr if kthread_create fails. This error branch looks suspect, though. Shouldn't we bail at this point rather than blithely try to proceed? To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/dev/ieee1394/firewire.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.41 src/sys/dev/ieee1394/firewire.c:1.42 --- src/sys/dev/ieee1394/firewire.c:1.41 Sun Aug 5 02:36:16 2012 +++ src/sys/dev/ieee1394/firewire.c Sun Aug 5 02:47:52 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.41 2012/08/05 02:36:16 riastradh Exp $ */ +/* $NetBSD: firewire.c,v 1.42 2012/08/05 02:47:52 riastradh Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.41 2012/08/05 02:36:16 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.42 2012/08/05 02:47:52 riastradh Exp $); #include sys/param.h #include sys/bus.h @@ -260,8 +260,10 @@ firewireattach(device_t parent, device_t /* create thread */ if (kthread_create(PRI_NONE, KTHREAD_MPSAFE, NULL, fw_bus_probe_thread, - fc, fc-probe_thread, fw%dprobe, device_unit(fc-bdev))) + fc, fc-probe_thread, fw%dprobe, device_unit(fc-bdev))) { aprint_error_dev(self, kthread_create failed\n); + config_pending_decr(); + } devlist = malloc(sizeof(struct firewire_dev_list), M_DEVBUF, M_NOWAIT); if (devlist == NULL) {
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: dsl Date: Sun Apr 29 18:31:41 UTC 2012 Modified Files: src/sys/dev/ieee1394: firewire.c firewirereg.h fwdev.c fwmem.c fwohcivar.h if_fwip.c Log Message: Change to consistently use M_FW for all malloc/free. It probably doesn't matter any more, but the code doesn't appear to have matched its mallocs and frees - so the stats would have been awol. To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/ieee1394/firewirereg.h \ src/sys/dev/ieee1394/fwmem.c cvs rdiff -u -r1.26 -r1.27 src/sys/dev/ieee1394/fwdev.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ieee1394/fwohcivar.h cvs rdiff -u -r1.24 -r1.25 src/sys/dev/ieee1394/if_fwip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.38 src/sys/dev/ieee1394/firewire.c:1.39 --- src/sys/dev/ieee1394/firewire.c:1.38 Tue Sep 7 07:26:54 2010 +++ src/sys/dev/ieee1394/firewire.c Sun Apr 29 18:31:40 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.38 2010/09/07 07:26:54 cegger Exp $ */ +/* $NetBSD: firewire.c,v 1.39 2012/04/29 18:31:40 dsl Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.38 2010/09/07 07:26:54 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.39 2012/04/29 18:31:40 dsl Exp $); #include sys/param.h #include sys/bus.h @@ -128,7 +128,6 @@ err: } MALLOC_DEFINE(M_FW, ieee1394, IEEE1394); -MALLOC_DEFINE(M_FWXFER, fw_xfer, XFER/IEEE1394); #define FW_MAXASYRTY 4 @@ -1139,7 +1138,7 @@ fw_rcv(struct fw_rcv_buf *rb) cannot respond(bus reset)!\n); return; } - rb-xfer = fw_xfer_alloc(M_FWXFER); + rb-xfer = fw_xfer_alloc(M_FW); if (rb-xfer == NULL) return; rb-xfer-send.spd = rb-spd; @@ -1543,7 +1542,7 @@ fw_phy_config(struct firewire_comm *fc, fc-status = FWBUSPHYCONF; - xfer = fw_xfer_alloc(M_FWXFER); + xfer = fw_xfer_alloc(M_FW); if (xfer == NULL) return; xfer-fc = fc; @@ -2250,7 +2249,7 @@ fw_try_bmr(void *arg) struct fw_pkt *fp; int err = 0; - xfer = fw_xfer_alloc_buf(M_FWXFER, 8, 4); + xfer = fw_xfer_alloc_buf(M_FW, 8, 4); if (xfer == NULL) return; xfer-send.spd = 0; Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.16 src/sys/dev/ieee1394/firewirereg.h:1.17 --- src/sys/dev/ieee1394/firewirereg.h:1.16 Sun Apr 24 18:52:26 2011 +++ src/sys/dev/ieee1394/firewirereg.h Sun Apr 29 18:31:40 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.16 2011/04/24 18:52:26 rmind Exp $ */ +/* $NetBSD: firewirereg.h,v 1.17 2012/04/29 18:31:40 dsl Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -323,6 +323,5 @@ extern int firewire_phydma_enable; #include sys/mallocvar.h MALLOC_DECLARE(M_FW); -MALLOC_DECLARE(M_FWXFER); #endif /* _FIREWIREREG_H_ */ Index: src/sys/dev/ieee1394/fwmem.c diff -u src/sys/dev/ieee1394/fwmem.c:1.16 src/sys/dev/ieee1394/fwmem.c:1.17 --- src/sys/dev/ieee1394/fwmem.c:1.16 Sun Jul 31 13:51:53 2011 +++ src/sys/dev/ieee1394/fwmem.c Sun Apr 29 18:31:40 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: fwmem.c,v 1.16 2011/07/31 13:51:53 uebayasi Exp $ */ +/* $NetBSD: fwmem.c,v 1.17 2012/04/29 18:31:40 dsl Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwmem.c,v 1.16 2011/07/31 13:51:53 uebayasi Exp $); +__KERNEL_RCSID(0, $NetBSD: fwmem.c,v 1.17 2012/04/29 18:31:40 dsl Exp $); #include sys/param.h #include sys/device.h @@ -155,8 +155,6 @@ sysctl_fwmem_verify_speed(SYSCTLFN_ARGS) return sysctl_fwmem_verify(SYSCTLFN_CALL(rnode), 0, FWSPD_S400); } -MALLOC_DEFINE(M_FWMEM, fwmem, fwmem/IEEE1394); - #define MAXLEN (512 fwmem_speed) struct fwmem_softc { @@ -187,7 +185,7 @@ fwmem_open(dev_t dev, int flags, int fmt } else { sc-si_drv1 = (void *)-1; sc-si_drv1 = malloc(sizeof(struct fwmem_softc), - M_FWMEM, M_WAITOK); + M_FW, M_WAITOK); if (sc-si_drv1 == NULL) return ENOMEM; fms = (struct fwmem_softc *)sc-si_drv1; @@ -195,7 +193,7 @@ fwmem_open(dev_t dev, int flags, int fmt fms-sc = sc; fms-refcount = 1; STAILQ_INIT(fms-xferlist); - xfer = fw_xfer_alloc(M_FWMEM); + xfer = fw_xfer_alloc(M_FW); STAILQ_INSERT_TAIL(fms-xferlist, xfer, link); } if (fwmem_debug) @@ -457,7 +455,7 @@ fwmem_xfer_req(struct fw_device *fwdev, { struct fw_xfer *xfer; - xfer = fw_xfer_alloc(M_FWMEM); + xfer = fw_xfer_alloc(M_FW); if (xfer == NULL) return NULL; Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.26
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: rmind Date: Sun Apr 24 18:52:26 UTC 2011 Modified Files: src/sys/dev/ieee1394: firewirereg.h Log Message: Inclusion for malloc decls (missed in previous commit). To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.15 src/sys/dev/ieee1394/firewirereg.h:1.16 --- src/sys/dev/ieee1394/firewirereg.h:1.15 Sun Nov 14 15:47:20 2010 +++ src/sys/dev/ieee1394/firewirereg.h Sun Apr 24 18:52:26 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.15 2010/11/14 15:47:20 uebayasi Exp $ */ +/* $NetBSD: firewirereg.h,v 1.16 2011/04/24 18:52:26 rmind Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -320,6 +320,8 @@ #define BIO_READ B_READ #define BIO_WRITE B_WRITE +#include sys/mallocvar.h + MALLOC_DECLARE(M_FW); MALLOC_DECLARE(M_FWXFER);
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: uebayasi Date: Sun Nov 14 15:47:20 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.h firewirereg.h Log Message: Include dependencies directly. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ieee1394/firewire.h cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.h diff -u src/sys/dev/ieee1394/firewire.h:1.5 src/sys/dev/ieee1394/firewire.h:1.6 --- src/sys/dev/ieee1394/firewire.h:1.5 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/firewire.h Sun Nov 14 15:47:20 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.h,v 1.5 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: firewire.h,v 1.6 2010/11/14 15:47:20 uebayasi Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -39,6 +39,8 @@ #ifndef _FIREWIRE_H_ #define _FIREWIRE_H_ +#include sys/ioccom.h + #define DEV_DEF 0 #define DEV_DV 2 Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.14 src/sys/dev/ieee1394/firewirereg.h:1.15 --- src/sys/dev/ieee1394/firewirereg.h:1.14 Tue Sep 7 07:26:54 2010 +++ src/sys/dev/ieee1394/firewirereg.h Sun Nov 14 15:47:20 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.14 2010/09/07 07:26:54 cegger Exp $ */ +/* $NetBSD: firewirereg.h,v 1.15 2010/11/14 15:47:20 uebayasi Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -38,6 +38,7 @@ #ifndef _FIREWIREREG_H_ #define _FIREWIREREG_H_ +#include sys/selinfo.h #include sys/uio.h #define PROJECT_STR The NetBSD Project
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Tue Sep 7 07:19:46 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: convert tsleep to kpause To generate a diff of this commit: cvs rdiff -u -r1.129 -r1.130 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.129 src/sys/dev/ieee1394/fwohci.c:1.130 --- src/sys/dev/ieee1394/fwohci.c:1.129 Sun Aug 29 21:15:26 2010 +++ src/sys/dev/ieee1394/fwohci.c Tue Sep 7 07:19:45 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.129 2010/08/29 21:15:26 cegger Exp $ */ +/* $NetBSD: fwohci.c,v 1.130 2010/09/07 07:19:45 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.129 2010/08/29 21:15:26 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.130 2010/09/07 07:19:45 cegger Exp $); #include sys/param.h #include sys/atomic.h @@ -882,13 +882,12 @@ fwohci_irx_disable(struct firewire_comm *fc, int dmach) { struct fwohci_softc *sc = (struct fwohci_softc *)fc; - int sleepch; OWRITE(sc, OHCI_IRCTLCLR(dmach), OHCI_CNTL_DMA_RUN); OWRITE(sc, OHCI_IR_MASKCLR, 1 dmach); OWRITE(sc, OHCI_IR_STATCLR, 1 dmach); /* XXX we cannot free buffers until the DMA really stops */ - tsleep((void *)sleepch, FWPRI, fwirxd, hz); + kpause(fwirxd, true, hz, NULL); fwohci_db_free(sc, sc-ir[dmach]); sc-ir[dmach].xferq.flag = ~FWXFERQ_RUNNING; return 0; @@ -1016,14 +1015,13 @@ fwohci_itx_disable(struct firewire_comm *fc, int dmach) { struct fwohci_softc *sc = (struct fwohci_softc *)fc; - int sleepch; OWRITE(sc, OHCI_ITCTLCLR(dmach), OHCI_CNTL_DMA_RUN | OHCI_CNTL_CYCMATCH_S); OWRITE(sc, OHCI_IT_MASKCLR, 1 dmach); OWRITE(sc, OHCI_IT_STATCLR, 1 dmach); /* XXX we cannot free buffers until the DMA really stops */ - tsleep((void *)sleepch, FWPRI, fwitxd, hz); + kpause(fwitxd, true, hz, NULL); fwohci_db_free(sc, sc-it[dmach]); sc-it[dmach].xferq.flag = ~FWXFERQ_RUNNING; return 0;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Tue Sep 7 07:26:54 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c firewirereg.h Log Message: do not assume all fw devices speak sbp. teach the fw attach code to deal with different fw device classes. this allows other fw drivers than sbp to attach To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.37 src/sys/dev/ieee1394/firewire.c:1.38 --- src/sys/dev/ieee1394/firewire.c:1.37 Thu Aug 26 08:56:15 2010 +++ src/sys/dev/ieee1394/firewire.c Tue Sep 7 07:26:54 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.37 2010/08/26 08:56:15 cegger Exp $ */ +/* $NetBSD: firewire.c,v 1.38 2010/09/07 07:26:54 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.37 2010/08/26 08:56:15 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.38 2010/09/07 07:26:54 cegger Exp $); #include sys/param.h #include sys/bus.h @@ -1959,6 +1959,45 @@ /* NOTREACHED */ } +static const char * +fw_get_devclass(struct fw_device *fwdev) +{ + struct crom_context cc; + struct csrreg *reg; + + crom_init_context(cc, fwdev-csrrom); + reg = crom_search_key(cc, CSRKEY_VER); + if (reg == NULL) + return null; + + switch (reg-val) { + case CSR_PROTAVC: + return av/c; + case CSR_PROTCAL: + return cal; + case CSR_PROTEHS: + return ehs; + case CSR_PROTHAVI: + return havi; + case CSR_PROTCAM104: + return cam104; + case CSR_PROTCAM120: + return cam120; + case CSR_PROTCAM130: + return cam130; + case CSR_PROTDPP: + return printer; + case CSR_PROTIICP: + return iicp; + case CSRVAL_T10SBP2: + return sbp; + default: + if (firewire_debug) + printf(%s: reg-val 0x%x\n, +__func__, reg-val); + return sbp; + } +} /* * To attach sub-devices layer onto IEEE1394 bus. @@ -1973,7 +2012,7 @@ struct fw_attach_args fwa; int locs[IEEE1394IFCF_NLOCS]; - fwa.name = sbp; + fwa.name = null; fwa.fc = fc; mutex_enter(fc-fc_mtx); @@ -1993,16 +2032,17 @@ locs[IEEE1394IFCF_EUIHI] = fwdev-eui.hi; locs[IEEE1394IFCF_EUILO] = fwdev-eui.lo; + fwa.name = fw_get_devclass(fwdev); fwa.fwdev = fwdev; - fwdev-sbp = config_found_sm_loc(sc-dev, ieee1394if, + fwdev-dev = config_found_sm_loc(sc-dev, ieee1394if, locs, fwa, firewire_print, config_stdsubmatch); - if (fwdev-sbp == NULL) { + if (fwdev-dev == NULL) { free(devlist, M_DEVBUF); break; } devlist-fwdev = fwdev; - devlist-dev = fwdev-sbp; + devlist-dev = fwdev-dev; mutex_enter(fc-fc_mtx); if (SLIST_EMPTY(sc-devlist)) @@ -2064,7 +2104,7 @@ link); free(devlist, M_DEVBUF); - if (config_detach(fwdev-sbp, DETACH_FORCE) != 0) + if (config_detach(fwdev-dev, DETACH_FORCE) != 0) return; STAILQ_REMOVE(fc-devices, fwdev, fw_device, link); Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.13 src/sys/dev/ieee1394/firewirereg.h:1.14 --- src/sys/dev/ieee1394/firewirereg.h:1.13 Sun May 23 18:56:58 2010 +++ src/sys/dev/ieee1394/firewirereg.h Tue Sep 7 07:26:54 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.13 2010/05/23 18:56:58 christos Exp $ */ +/* $NetBSD: firewirereg.h,v 1.14 2010/09/07 07:26:54 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -63,7 +63,7 @@ #define FWDEVATTACHED 2 #define FWDEVINVAL 3 STAILQ_ENTRY(fw_device) link; - device_t sbp; + device_t dev; }; struct firewire_softc {
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Sun Aug 29 21:14:16 UTC 2010 Modified Files: src/sys/dev/ieee1394: sbp.h Log Message: Confilict - Conflict To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ieee1394/sbp.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/sbp.h diff -u src/sys/dev/ieee1394/sbp.h:1.5 src/sys/dev/ieee1394/sbp.h:1.6 --- src/sys/dev/ieee1394/sbp.h:1.5 Thu Apr 29 06:51:26 2010 +++ src/sys/dev/ieee1394/sbp.h Sun Aug 29 21:14:16 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sbp.h,v 1.5 2010/04/29 06:51:26 kiyohara Exp $ */ +/* $NetBSD: sbp.h,v 1.6 2010/08/29 21:14:16 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -147,7 +147,7 @@ /* 6: Busy retry limit exceeded: ack_busy_B */ /* 7-A: Reserved for future standardization */ /* B: Tardy retry limit exceeded */ -/* C: Confilict error */ +/* C: Conflict error */ /* D: Data error */ /* E: Type error */ /* F: Address error */
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Sun Aug 29 21:15:26 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: fix grammar in error message To generate a diff of this commit: cvs rdiff -u -r1.128 -r1.129 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.128 src/sys/dev/ieee1394/fwohci.c:1.129 --- src/sys/dev/ieee1394/fwohci.c:1.128 Sun May 23 18:56:58 2010 +++ src/sys/dev/ieee1394/fwohci.c Sun Aug 29 21:15:26 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.128 2010/05/23 18:56:58 christos Exp $ */ +/* $NetBSD: fwohci.c,v 1.129 2010/08/29 21:15:26 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.128 2010/05/23 18:56:58 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.129 2010/08/29 21:15:26 cegger Exp $); #include sys/param.h #include sys/atomic.h @@ -2104,7 +2104,7 @@ #endif OWRITE(sc, FWOHCI_INTMASKCLR, OHCI_INT_CYC_LOST); aprint_error_dev(fc-dev, too many cycle lost, - no cycle master presents?\n); + no cycle master present?\n); } } if (stat OHCI_INT_DMA_ATRQ)
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Thu Aug 26 07:36:53 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwcrom.c iec13213.h Log Message: - print expected crc when it does not match - add and print secondary text leaf. This prints the model name of my webcam. - add csr keys that are printed as 'unknown' otherwise To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ieee1394/fwcrom.c cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ieee1394/iec13213.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.12 src/sys/dev/ieee1394/fwcrom.c:1.13 --- src/sys/dev/ieee1394/fwcrom.c:1.12 Sat Apr 24 21:34:29 2010 +++ src/sys/dev/ieee1394/fwcrom.c Thu Aug 26 07:36:53 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.12 2010/04/24 21:34:29 cegger Exp $ */ +/* $NetBSD: fwcrom.c,v 1.13 2010/08/26 07:36:53 cegger Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.12 2010/04/24 21:34:29 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.13 2010/08/26 07:36:53 cegger Exp $); #include sys/param.h #ifdef _KERNEL @@ -178,10 +178,16 @@ return; reg = crom_get(cc); - if (reg-key != CROM_TEXTLEAF || - (char *)(reg + reg-val) CROM_END(cc)) { - strncpy(buf, nullstr, len); - return; + switch (reg-key) { + case CROM_TEXTLEAF: + case CROM_TEXTLEAF2: + break; + default: + if ((char *)(reg + reg-val) CROM_END(cc)) { + strncpy(buf, nullstr, len); + return; + } + break; } textleaf = (struct csrtext *)(reg + reg-val); @@ -288,7 +294,7 @@ switch (reg-key CSRTYPE_MASK) { case CSRTYPE_I: #if 0 - len -= snprintf(buf, len, %d, reg-val); + len -= snprintf(buf, len, 0x%x, reg-val); buf += strlen(buf); #else *buf = '\0'; @@ -304,33 +310,43 @@ case CSRTYPE_D: dir = (struct csrdirectory *) (reg + reg-val); crc = crom_crc((uint32_t *)dir-entry, dir-crc_len); - len -= snprintf(buf, len, len=%d crc=0x%04x(%s) , - dir-crc_len, dir-crc, (crc == dir-crc) ? OK : NG); + len -= snprintf(buf, len, len=%d crc=0x%04x , + dir-crc_len, crc); + buf += strlen(buf); + + if (crc == dir-crc) + len -= snprintf(buf, len, (OK) ); + else + len -= snprintf(buf, len, (NG, 0x%x) , + dir-crc); buf += strlen(buf); } switch (reg-key) { - case 0x03: + case CSRKEY_VENDOR: /* 0x03 */ desc = module_vendor_ID; break; - case 0x04: + case CSRKEY_HW: /* 0x04 */ desc = hardware_version; break; - case 0x0c: + case CSRKEY_NCAP: /* 0x0c */ desc = node_capabilities; break; - case 0x12: + case CSRKEY_SPEC: /* 0x12 */ desc = unit_spec_ID; break; - case 0x13: + case CSRKEY_VER: /* 0x13 */ desc = unit_sw_version; crom_desc_specver(0, reg-val, buf, len); break; - case 0x14: + case CSRKEY_DINFO: /* 0x14 */ desc = logical_unit_number; break; - case 0x17: + case CSRKEY_MODEL: /* 0x17 */ desc = model_ID; break; + case CSRKEY_REV: /* 0x21 */ + desc = revision_ID; + break; case 0x38: desc = command_set_spec_ID; break; @@ -349,13 +365,20 @@ case 0x3d: desc = reconnect_timeout; break; + case 0x40: + desc = command_regs_base; + break; case 0x54: desc = management_agent; break; - case 0x81: + case CROM_TEXTLEAF: /* 0x81 */ + case CROM_TEXTLEAF2: /* 0x82 */ desc = text_leaf; crom_parse_text(cc, buf + strlen(buf), len); break; + case CROM_NODEID: /* 0x8d */ + desc = node_unique_ID; + break; case 0xd1: desc = unit_directory; break; Index: src/sys/dev/ieee1394/iec13213.h diff -u src/sys/dev/ieee1394/iec13213.h:1.4 src/sys/dev/ieee1394/iec13213.h:1.5 --- src/sys/dev/ieee1394/iec13213.h:1.4 Mon Mar 29 03:05:28 2010 +++ src/sys/dev/ieee1394/iec13213.h Thu Aug 26 07:36:53 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: iec13213.h,v 1.4 2010/03/29 03:05:28 kiyohara Exp $ */ +/* $NetBSD: iec13213.h,v 1.5 2010/08/26 07:36:53 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -105,8 +105,10 @@ #define CROM_UDIR (CSRTYPE_D | CSRKEY_UNIT) /* 0x81 Unit directory */ #define CROM_TEXTLEAF (CSRTYPE_L | CSRKEY_DESC) /* 0x81 Text leaf */ +#define CROM_TEXTLEAF2 (CSRTYPE_L | CSRKEY_BDINFO)/* 0x82 Text leaf2 */ #define CROM_LUN (CSRTYPE_I | CSRKEY_DINFO) /* 0x14 Logical unit num. */ #define CROM_MGM (CSRTYPE_C | CSRKEY_DINFO) /* 0x54 Management agent */ +#define CROM_NODEID 0x8d /* only valid for IEEE 1394-1995 digital camera */ #define CSRVAL_VENDOR_PRIVATE 0xacde48 #define CSRVAL_1394TA 0x00a02d
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Thu Aug 26 08:56:16 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c Log Message: fix crash when detaching/re-attaching a cable where three firewire devices are on the bus. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/dev/ieee1394/firewire.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.36 src/sys/dev/ieee1394/firewire.c:1.37 --- src/sys/dev/ieee1394/firewire.c:1.36 Sat Aug 14 18:28:59 2010 +++ src/sys/dev/ieee1394/firewire.c Thu Aug 26 08:56:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.36 2010/08/14 18:28:59 jym Exp $ */ +/* $NetBSD: firewire.c,v 1.37 2010/08/26 08:56:15 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.36 2010/08/14 18:28:59 jym Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.37 2010/08/26 08:56:15 cegger Exp $); #include sys/param.h #include sys/bus.h @@ -2053,6 +2053,10 @@ SLIST_FOREACH(devlist, sc-devlist, link) if (devlist-fwdev == fwdev) break; + + if (devlist == NULL) +continue; + if (devlist-fwdev != fwdev) panic(already detached);
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Mon Aug 16 06:05:07 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwdev.c Log Message: do not hold mutexes when calling tsleep(9). Fixes LOCKDEBUG panics To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/dev/ieee1394/fwdev.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.22 src/sys/dev/ieee1394/fwdev.c:1.23 --- src/sys/dev/ieee1394/fwdev.c:1.22 Sun May 23 18:56:58 2010 +++ src/sys/dev/ieee1394/fwdev.c Mon Aug 16 06:05:07 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdev.c,v 1.22 2010/05/23 18:56:58 christos Exp $ */ +/* $NetBSD: fwdev.c,v 1.23 2010/08/16 06:05:07 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.22 2010/05/23 18:56:58 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.23 2010/08/16 06:05:07 cegger Exp $); #include sys/param.h #include sys/device.h @@ -248,7 +248,9 @@ if (slept == 0) { slept = 1; ir-flag |= FWXFERQ_WAKEUP; + mutex_exit(fc-fc_mtx); err = tsleep(ir, FWPRI, fw_read, hz); + mutex_enter(fc-fc_mtx); ir-flag = ~FWXFERQ_WAKEUP; if (err == 0) goto readloop; @@ -324,7 +326,9 @@ if (err) goto out; #endif + mutex_exit(fc-fc_mtx); err = tsleep(it, FWPRI, fw_write, hz); + mutex_enter(fc-fc_mtx); if (err) goto out; goto isoloop;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: christos Date: Sun May 23 02:24:40 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c firewirereg.h Log Message: don't allocate rom scratch memory from an interrupt context: fwohci0: BUS reset panic: kernel diagnostic assertion !cpu_intr_p() failed: file ../../../../ker n/subr_kmem.c, line 195 fatal breakpoint trap in supervisor mode trap type 1 code 0 rip 8022db1d cs 8 rflags 246 cr2 0 cpl 6 rsp fff f80fafb08 breakpoint() at netbsd:breakpoint+0x5 panic() at netbsd:panic+0x2ba kern_assert() at netbsd:kern_assert+0x2d kmem_alloc() at netbsd:kmem_alloc+0x18a kmem_zalloc() at netbsd:kmem_zalloc+0xf fw_busreset() at netbsd:fw_busreset+0x23b fwohci_intr() at netbsd:fwohci_intr+0xa56 ... To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.11 -r1.12 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.33 src/sys/dev/ieee1394/firewire.c:1.34 --- src/sys/dev/ieee1394/firewire.c:1.33 Sat May 15 06:42:51 2010 +++ src/sys/dev/ieee1394/firewire.c Sat May 22 22:24:40 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.33 2010/05/15 10:42:51 kiyohara Exp $ */ +/* $NetBSD: firewire.c,v 1.34 2010/05/23 02:24:40 christos Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.33 2010/05/15 10:42:51 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.34 2010/05/23 02:24:40 christos Exp $); #include sys/param.h #include sys/bus.h @@ -548,7 +548,6 @@ struct firewire_dev_list *devlist; struct firewire_dev_comm *fdc; struct crom_src *src; - uint32_t *newrom; if (fc-status == FWBUSMGRELECT) callout_stop(fc-bmr_callout); @@ -583,15 +582,13 @@ * Configuration ROM. */ #define FW_MAX_GENERATION 0xF - newrom = kmem_zalloc(CROMSIZE, KM_NOSLEEP); src = fc-crom_src_buf-src; - crom_load(src, newrom, CROMSIZE); - if (memcmp(newrom, fc-config_rom, CROMSIZE) != 0) { + crom_load(src, fc-new_rom, CROMSIZE); + if (memcmp(fc-new_rom, fc-config_rom, CROMSIZE) != 0) { if (src-businfo.generation++ FW_MAX_GENERATION) src-businfo.generation = FW_GENERATION_CHANGEABLE; - memcpy((void *)fc-config_rom, newrom, CROMSIZE); + memcpy(fc-config_rom, fc-new_rom, CROMSIZE); } - kmem_free(newrom, CROMSIZE); } /* Call once after reboot */ Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.11 src/sys/dev/ieee1394/firewirereg.h:1.12 --- src/sys/dev/ieee1394/firewirereg.h:1.11 Sun Mar 28 23:05:27 2010 +++ src/sys/dev/ieee1394/firewirereg.h Sat May 22 22:24:40 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.11 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: firewirereg.h,v 1.12 2010/05/23 02:24:40 christos Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -141,6 +141,7 @@ uint32_t csr_arc[CSRSIZE/4]; #define CROMSIZE 0x400 uint32_t *config_rom; + uint32_t *new_rom; struct crom_src_buf *crom_src_buf; struct crom_src *crom_src; struct crom_chunk *crom_root;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Fri May 14 12:10:07 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwdev.c Log Message: Use kmem(9) instead of malloc(9). To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/dev/ieee1394/fwdev.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.20 src/sys/dev/ieee1394/fwdev.c:1.21 --- src/sys/dev/ieee1394/fwdev.c:1.20 Mon May 10 12:17:32 2010 +++ src/sys/dev/ieee1394/fwdev.c Fri May 14 12:10:07 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdev.c,v 1.20 2010/05/10 12:17:32 kiyohara Exp $ */ +/* $NetBSD: fwdev.c,v 1.21 2010/05/14 12:10:07 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.20 2010/05/10 12:17:32 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.21 2010/05/14 12:10:07 kiyohara Exp $); #include sys/param.h #include sys/device.h @@ -654,7 +654,7 @@ err = copyout(ptr, crom_buf-ptr, len); if (fwdev == NULL) /* myself */ - free(ptr, M_FW); + kmem_free(ptr, CROMSIZE); break; default:
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Fri May 14 12:25:19 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c Log Message: May be easy to understand 'pay_len 0' more than 'paylaod != NULL'. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/ieee1394/firewire.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.31 src/sys/dev/ieee1394/firewire.c:1.32 --- src/sys/dev/ieee1394/firewire.c:1.31 Mon May 10 12:17:32 2010 +++ src/sys/dev/ieee1394/firewire.c Fri May 14 12:25:19 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.31 2010/05/10 12:17:32 kiyohara Exp $ */ +/* $NetBSD: firewire.c,v 1.32 2010/05/14 12:25:19 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.31 2010/05/10 12:17:32 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.32 2010/05/14 12:25:19 kiyohara Exp $); #include sys/param.h #include sys/bus.h @@ -920,9 +920,9 @@ return; } fw_xfer_unload(xfer); - if (xfer-send.payload != NULL) + if (xfer-send.pay_len 0) kmem_free(xfer-send.payload, xfer-send.pay_len); - if (xfer-recv.payload != NULL) + if (xfer-recv.pay_len 0) kmem_free(xfer-recv.payload, xfer-recv.pay_len); cv_destroy(xfer-cv); kmem_free(xfer, sizeof(struct fw_xfer));
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Mon May 10 12:17:33 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c fwdev.c fwdma.c fwmem.c fwohci.c if_fwip.c sbp.c Log Message: Use kmem(9) instead of malloc(9). To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/dev/ieee1394/firewire.c \ src/sys/dev/ieee1394/sbp.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/ieee1394/fwdev.c cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ieee1394/fwdma.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ieee1394/fwmem.c cvs rdiff -u -r1.125 -r1.126 src/sys/dev/ieee1394/fwohci.c cvs rdiff -u -r1.22 -r1.23 src/sys/dev/ieee1394/if_fwip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.30 src/sys/dev/ieee1394/firewire.c:1.31 --- src/sys/dev/ieee1394/firewire.c:1.30 Tue Apr 6 10:45:15 2010 +++ src/sys/dev/ieee1394/firewire.c Mon May 10 12:17:32 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.30 2010/04/06 10:45:15 reinoud Exp $ */ +/* $NetBSD: firewire.c,v 1.31 2010/05/10 12:17:32 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.30 2010/04/06 10:45:15 reinoud Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.31 2010/05/10 12:17:32 kiyohara Exp $); #include sys/param.h #include sys/bus.h @@ -48,7 +48,7 @@ #include sys/errno.h #include sys/kernel.h #include sys/kthread.h -#include sys/malloc.h +#include sys/kmem.h #include sys/queue.h #include sys/sysctl.h #include sys/systm.h @@ -217,28 +217,24 @@ if (fc-nisodma FWMAXNDMA) fc-nisodma = FWMAXNDMA; - fc-crom_src_buf = - (struct crom_src_buf *)malloc(sizeof(struct crom_src_buf), - M_FW, M_NOWAIT | M_ZERO); + fc-crom_src_buf = kmem_zalloc(sizeof(struct crom_src_buf), KM_NOSLEEP); if (fc-crom_src_buf == NULL) { - aprint_error_dev(fc-bdev, Malloc Failure crom src buff\n); + aprint_error_dev(fc-bdev, + kmem alloc failure crom src buff\n); return; } fc-topology_map = - (struct fw_topology_map *)malloc(sizeof(struct fw_topology_map), - M_FW, M_NOWAIT | M_ZERO); + kmem_zalloc(sizeof(struct fw_topology_map), KM_NOSLEEP); if (fc-topology_map == NULL) { aprint_error_dev(fc-dev, Malloc Failure topology map\n); - free(fc-crom_src_buf, M_FW); + kmem_free(fc-crom_src_buf, sizeof(struct crom_src_buf)); return; } - fc-speed_map = - (struct fw_speed_map *)malloc(sizeof(struct fw_speed_map), - M_FW, M_NOWAIT | M_ZERO); + fc-speed_map = kmem_zalloc(sizeof(struct fw_speed_map), KM_NOSLEEP); if (fc-speed_map == NULL) { aprint_error_dev(fc-dev, Malloc Failure speed map\n); - free(fc-crom_src_buf, M_FW); - free(fc-topology_map, M_FW); + kmem_free(fc-crom_src_buf, sizeof(struct crom_src_buf)); + kmem_free(fc-topology_map, sizeof(struct fw_topology_map)); return; } @@ -262,7 +258,7 @@ aprint_error_dev(self, kthread_create failed\n); config_pending_incr(); - devlist = malloc(sizeof(struct firewire_dev_list), M_DEVBUF, M_NOWAIT); + devlist = kmem_alloc(sizeof(struct firewire_dev_list), KM_NOSLEEP); if (devlist == NULL) { aprint_error_dev(self, device list allocation failed\n); return; @@ -273,7 +269,7 @@ faa.fwdev = NULL; devlist-dev = config_found(sc-dev, faa, firewire_print); if (devlist-dev == NULL) - free(devlist, M_DEVBUF); + kmem_free(devlist, sizeof(struct firewire_dev_list)); else SLIST_INSERT_HEAD(sc-devlist, devlist, link); @@ -315,7 +311,7 @@ if ((err = config_detach(devlist-dev, flags)) != 0) return err; SLIST_REMOVE(sc-devlist, devlist, firewire_dev_list, link); - free(devlist, M_DEVBUF); + kmem_free(devlist, sizeof(struct firewire_dev_list)); } callout_stop(fc-timeout_callout); @@ -326,11 +322,11 @@ for (fwdev = STAILQ_FIRST(fc-devices); fwdev != NULL; fwdev = fwdev_next) { fwdev_next = STAILQ_NEXT(fwdev, link); - free(fwdev, M_FW); + kmem_free(fwdev, sizeof(struct fw_device)); } - free(fc-topology_map, M_FW); - free(fc-speed_map, M_FW); - free(fc-crom_src_buf, M_FW); + kmem_free(fc-topology_map, sizeof(struct fw_topology_map)); + kmem_free(fc-speed_map, sizeof(struct fw_speed_map)); + kmem_free(fc-crom_src_buf, sizeof(struct crom_src_buf)); cv_destroy(fc-fc_cv); mutex_destroy(fc-wait_lock); @@ -586,7 +582,7 @@ * Configuration ROM. */ #define FW_MAX_GENERATION 0xF - newrom = malloc(CROMSIZE, M_FW, M_NOWAIT | M_ZERO); + newrom = kmem_zalloc(CROMSIZE, KM_NOSLEEP); src = fc-crom_src_buf-src; crom_load(src, newrom, CROMSIZE); if (memcmp(newrom, fc-config_rom, CROMSIZE) != 0) { @@ -594,7 +590,7 @@ src-businfo.generation = FW_GENERATION_CHANGEABLE; memcpy((void *)fc-config_rom, newrom, CROMSIZE); } - free(newrom, M_FW); +
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Thu Apr 29 06:51:26 UTC 2010 Modified Files: src/sys/dev/ieee1394: sbp.c sbp.h Log Message: + Use structs scsipi_inquiry_data/scsi_sense_data instead of scsi3_inquiry_data/ scsi3_sense_data. + s/switch()/switch ()/. + Change args for printf(). (FUNCNAME ...) - (%s ...\n, __func__, ...) + Indent. + Remove unnecessary cast. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/dev/ieee1394/sbp.c cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ieee1394/sbp.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/sbp.c diff -u src/sys/dev/ieee1394/sbp.c:1.29 src/sys/dev/ieee1394/sbp.c:1.30 --- src/sys/dev/ieee1394/sbp.c:1.29 Mon Mar 29 03:05:28 2010 +++ src/sys/dev/ieee1394/sbp.c Thu Apr 29 06:51:26 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sbp.c,v 1.29 2010/03/29 03:05:28 kiyohara Exp $ */ +/* $NetBSD: sbp.c,v 1.30 2010/04/29 06:51:26 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sbp.c,v 1.29 2010/03/29 03:05:28 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: sbp.c,v 1.30 2010/04/29 06:51:26 kiyohara Exp $); #include sys/param.h @@ -92,10 +92,10 @@ * 48-64(16): bus_id, node_id */ #define SBP_BIND_HI 0x1 -#define SBP_DEV2ADDR(u, l) \ - (((u_int64_t)SBP_BIND_HI 32) \ - | (((u) 0x3fff) 10) \ - | (((l) 0xff) 2)) +#define SBP_DEV2ADDR(u, l) \ + (((uint64_t)SBP_BIND_HI 32) |\ + (((u) 0x3fff) 10) |\ + (((l) 0xff) 2)) #define SBP_ADDR2UNIT(a) (((a) 10) 0x3fff) #define SBP_ADDR2LUN(a) (((a) 2) 0xff) #define SBP_INITIATOR 7 @@ -937,7 +937,7 @@ int i; SBP_DEBUG(1) - printf(sbp_probe_target %d\n, target-target_id); + printf(%s %d\n, __func__, target-target_id); END_DEBUG sbp_alloc_lun(target); @@ -1484,7 +1484,7 @@ ocb-flags = OCB_ACT_MGM; ocb-sdev = sdev; - memset((void *)ocb-orb, 0, sizeof(ocb-orb)); + memset(ocb-orb, 0, sizeof(ocb-orb)); ocb-orb[6] = htonl((nid 16) | SBP_BIND_HI); ocb-orb[7] = htonl(SBP_DEV2ADDR(dv_unit, sdev-lun_id)); @@ -1579,8 +1579,7 @@ sbp_scsi_status(struct sbp_status *sbp_status, struct sbp_ocb *ocb) { struct sbp_cmd_status *sbp_cmd_status; - scsi3_sense_data_t sense = - (scsi3_sense_data_t)ocb-xs-sense.scsi_sense; + struct scsi_sense_data *sense = ocb-xs-sense.scsi_sense; sbp_cmd_status = (struct sbp_cmd_status *)sbp_status-data; @@ -1608,7 +1607,7 @@ else sense-response_code = SSD_RCODE_DEFERRED; if (sbp_cmd_status-valid) - sense-response_code |= SSD_RESPONSE_CODE_VALID; + sense-response_code |= SSD_RCODE_VALID; sense-flags = sbp_cmd_status-s_key; if (sbp_cmd_status-mark) sense-flags |= SSD_FILEMARK; @@ -1617,25 +1616,25 @@ if (sbp_cmd_status-ill_len) sense-flags |= SSD_ILI; - memcpy(sense-information, sbp_cmd_status-info, 4); + memcpy(sense-info, sbp_cmd_status-info, 4); if (sbp_status-len = 1) /* XXX not scsi status. shouldn't be happened */ - sense-asl = 0; + sense-extra_len = 0; else if (sbp_status-len = 4) /* add_sense_code(_qual), info, cmd_spec_info */ - sense-asl = 6; + sense-extra_len = 6; else /* fru, sense_key_spec */ - sense-asl = 10; + sense-extra_len = 10; memcpy(sense-csi, sbp_cmd_status-cdb, 4); sense-asc = sbp_cmd_status-s_code; sense-ascq = sbp_cmd_status-s_qlfr; - sense-fruc = sbp_cmd_status-fru; + sense-fru = sbp_cmd_status-fru; - memcpy(sense-sks, sbp_cmd_status-s_keydep, 3); + memcpy(sense-sks.sks_bytes, sbp_cmd_status-s_keydep, 3); ocb-xs-error = XS_SENSE; ocb-xs-xs_status = sbp_cmd_status-status; /* @@ -1663,7 +1662,8 @@ { struct scsipi_xfer *xs = ocb-xs; struct sbp_dev *sdev; - scsi3_inquiry_data_t inq = (scsi3_inquiry_data_t)xs-data; + struct scsipi_inquiry_data *inq = + (struct scsipi_inquiry_data *)xs-data; sdev = ocb-sdev; @@ -1709,9 +1709,9 @@ * XXX CAM also checks SCP_QUEUE_DQUE flag in the control mode page. */ if (sbp_tags 0) - inq-flags[1] |= SID_CmdQue; + inq-flags3 |= SID_CmdQue; else if (sbp_tags 0) - inq-flags[1] = ~SID_CmdQue; + inq-flags3 = ~SID_CmdQue; } @@ -1818,7 +1818,7 @@ END_DEBUG printf(%s:%s\n, device_xname(sc-sc_fd.dev), sdev-bustgtlun); status = sbp_status-status; - switch(sbp_status-resp) { + switch (sbp_status-resp) { case SBP_REQ_CMP: if (status MAX_ORB_STATUS0) printf(%s\n, orb_status0[MAX_ORB_STATUS0]); @@ -1853,17 +1853,17 @@ if (ocb == NULL) goto done; - switch(ntohl(ocb-orb[4]) ORB_FMT_MSK) { + switch (ntohl(ocb-orb[4]) ORB_FMT_MSK) { case ORB_FMT_NOP: break; case ORB_FMT_VED: break; case ORB_FMT_STD: - switch(ocb-flags) { + switch (ocb-flags) { case OCB_ACT_MGM: orb_fun = ntohl(ocb-orb[4]) ORB_FUN_MSK; reset_agent = 0; - switch(orb_fun) { +
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Thu Apr 29 06:53:13 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: + Fix typo. + Call aprint_error_dev() instead of aprint_error(). To generate a diff of this commit: cvs rdiff -u -r1.124 -r1.125 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.124 src/sys/dev/ieee1394/fwohci.c:1.125 --- src/sys/dev/ieee1394/fwohci.c:1.124 Mon Apr 19 07:00:58 2010 +++ src/sys/dev/ieee1394/fwohci.c Thu Apr 29 06:53:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.124 2010/04/19 07:00:58 kiyohara Exp $ */ +/* $NetBSD: fwohci.c,v 1.125 2010/04/29 06:53:13 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.124 2010/04/19 07:00:58 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.125 2010/04/29 06:53:13 kiyohara Exp $); #include sys/param.h #include sys/atomic.h @@ -2010,7 +2010,7 @@ /* allow from all nodes */ OWRITE(sc, OHCI_PREQHI, 0x7fff); OWRITE(sc, OHCI_PREQLO, 0x); - /* 0 to 4GB regison */ + /* 0 to 4GB region */ OWRITE(sc, OHCI_PREQUPPER, 0x1); } /* Set ATRetries register */ @@ -2027,7 +2027,7 @@ aprint_normal_dev(fc-dev, node_id=0x%08x, gen=%d, , node_id, (plen 16) 0xff); if (!(node_id OHCI_NODE_VALID)) { - aprint_error(Bus reset failure\n); + aprint_error_dev(fc-dev, Bus reset failure\n); goto sidout; }
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Thu Apr 29 06:53:49 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwdev.c Log Message: Remove unnecessary cast. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ieee1394/fwdev.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdev.c diff -u src/sys/dev/ieee1394/fwdev.c:1.18 src/sys/dev/ieee1394/fwdev.c:1.19 --- src/sys/dev/ieee1394/fwdev.c:1.18 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/fwdev.c Thu Apr 29 06:53:48 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdev.c,v 1.18 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: fwdev.c,v 1.19 2010/04/29 06:53:48 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.18 2010/03/29 03:05:27 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwdev.c,v 1.19 2010/04/29 06:53:48 kiyohara Exp $); #include sys/param.h #include sys/device.h @@ -511,10 +511,10 @@ break; } - memcpy((void *)xfer-send.hdr, fp, tinfo-hdr_len); + memcpy(xfer-send.hdr, fp, tinfo-hdr_len); if (pay_len 0) - memcpy((void *)xfer-send.payload, - (char *)fp + tinfo-hdr_len, pay_len); + memcpy(xfer-send.payload, (char *)fp + tinfo-hdr_len, + pay_len); xfer-send.spd = asyreq-req.sped; xfer-hand = fw_xferwake;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Thu Apr 29 06:56:00 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwdma.c Log Message: Call malloc(M_ZERO) instead of malloc() and memset(). To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/dev/ieee1394/fwdma.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwdma.c diff -u src/sys/dev/ieee1394/fwdma.c:1.13 src/sys/dev/ieee1394/fwdma.c:1.14 --- src/sys/dev/ieee1394/fwdma.c:1.13 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/fwdma.c Thu Apr 29 06:56:00 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwdma.c,v 1.13 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: fwdma.c,v 1.14 2010/04/29 06:56:00 kiyohara Exp $ */ /*- * Copyright (c) 2003 * Hidetoshi Shimokawa. All rights reserved. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwdma.c,v 1.13 2010/03/29 03:05:27 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwdma.c,v 1.14 2010/04/29 06:56:00 kiyohara Exp $); #if defined(__FreeBSD__) __FBSDID($FreeBSD: src/sys/dev/firewire/fwdma.c,v 1.9 2007/06/06 14:31:36 simokawa Exp $); #endif @@ -141,7 +141,8 @@ struct fwdma_alloc_multi *am; struct fwdma_seg *seg; bus_size_t ssize; - int nseg, size; + size_t size; + int nseg; if (esize PAGE_SIZE) { /* round up to PAGE_SIZE */ @@ -154,12 +155,11 @@ } size = sizeof(struct fwdma_alloc_multi) + sizeof(struct fwdma_seg) * nseg; - am = (struct fwdma_alloc_multi *)malloc(size, M_FW, M_WAITOK); + am = (struct fwdma_alloc_multi *)malloc(size, M_FW, M_WAITOK | M_ZERO); if (am == NULL) { aprint_error_dev(fc-dev, malloc failed\n); return NULL; } - memset(am, 0, size); am-ssize = ssize; am-esize = esize; am-nseg = 0;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Sat Apr 24 21:34:29 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwcrom.c Log Message: ANSIfy, KNF To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/dev/ieee1394/fwcrom.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwcrom.c diff -u src/sys/dev/ieee1394/fwcrom.c:1.11 src/sys/dev/ieee1394/fwcrom.c:1.12 --- src/sys/dev/ieee1394/fwcrom.c:1.11 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/fwcrom.c Sat Apr 24 21:34:29 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcrom.c,v 1.11 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: fwcrom.c,v 1.12 2010/04/24 21:34:29 cegger Exp $ */ /*- * Copyright (c) 2002-2003 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.11 2010/03/29 03:05:27 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwcrom.c,v 1.12 2010/04/24 21:34:29 cegger Exp $); #include sys/param.h #ifdef _KERNEL @@ -524,7 +524,8 @@ #ifdef TEST int -main () { +main(void) +{ struct crom_src src; struct crom_chunk root, unit1, unit2, unit3; struct crom_chunk text1, text2, text3, text4, text5, text6, text7;
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Mon Apr 19 07:00:58 UTC 2010 Modified Files: src/sys/dev/ieee1394: fwohci.c Log Message: Fix a bug. STAILQ is not NULL termination. To generate a diff of this commit: cvs rdiff -u -r1.123 -r1.124 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.123 src/sys/dev/ieee1394/fwohci.c:1.124 --- src/sys/dev/ieee1394/fwohci.c:1.123 Mon Mar 29 07:34:02 2010 +++ src/sys/dev/ieee1394/fwohci.c Mon Apr 19 07:00:58 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.123 2010/03/29 07:34:02 kiyohara Exp $ */ +/* $NetBSD: fwohci.c,v 1.124 2010/04/19 07:00:58 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.123 2010/03/29 07:34:02 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.124 2010/04/19 07:00:58 kiyohara Exp $); #include sys/param.h #include sys/atomic.h @@ -1689,12 +1689,12 @@ static void fwohci_db_free(struct fwohci_softc *sc, struct fwohci_dbch *dbch) { - struct fwohcidb_tr *db_tr; + struct fwohcidb_tr *db_tr, *last; if ((dbch-flags FWOHCI_DBCH_INIT) == 0) return; - for (db_tr = STAILQ_FIRST(dbch-db_trq); db_tr != NULL; + for (last = db_tr = STAILQ_FIRST(dbch-db_trq); db_tr != last; db_tr = STAILQ_NEXT(db_tr, link)) { bus_dmamap_destroy(sc-fc.dmat, db_tr-dma_map); if ((dbch-xferq.flag FWXFERQ_EXTBUF) == 0
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: reinoud Date: Tue Apr 6 10:45:15 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c Log Message: KASSERT(FALSE) to enter the debugger on this check. When DDB is not defined but KGDB is, this would result in cpu_Debugger() dont being defined! Please be kind to developers that use KGDB instead of DDB! :) To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/dev/ieee1394/firewire.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.29 src/sys/dev/ieee1394/firewire.c:1.30 --- src/sys/dev/ieee1394/firewire.c:1.29 Mon Mar 29 07:34:02 2010 +++ src/sys/dev/ieee1394/firewire.c Tue Apr 6 10:45:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.29 2010/03/29 07:34:02 kiyohara Exp $ */ +/* $NetBSD: firewire.c,v 1.30 2010/04/06 10:45:15 reinoud Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.29 2010/03/29 07:34:02 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.30 2010/04/06 10:45:15 reinoud Exp $); #include sys/param.h #include sys/bus.h @@ -1489,7 +1489,7 @@ xfer-tl, xfer-flag); fw_dump_hdr(xfer-send.hdr, send); fw_dump_hdr(xfer-recv.hdr, recv); - cpu_Debugger(); + KASSERT(FALSE); return; } #endif
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Mon Mar 29 07:34:02 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c fwohci.c Log Message: Remove more my debugging code. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.122 -r1.123 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.28 src/sys/dev/ieee1394/firewire.c:1.29 --- src/sys/dev/ieee1394/firewire.c:1.28 Mon Mar 29 03:42:15 2010 +++ src/sys/dev/ieee1394/firewire.c Mon Mar 29 07:34:02 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.28 2010/03/29 03:42:15 kiyohara Exp $ */ +/* $NetBSD: firewire.c,v 1.29 2010/03/29 07:34:02 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.28 2010/03/29 03:42:15 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.29 2010/03/29 07:34:02 kiyohara Exp $); #include sys/param.h #include sys/bus.h @@ -1047,9 +1047,6 @@ /* * Generic packet receiving process. */ -#if 0 -int dbgflg = 0; -#endif void fw_rcv(struct fw_rcv_buf *rb) { @@ -1088,9 +1085,6 @@ fp-mode.hdr.tlrt 3, fp-mode.rresq.data); #if 0 -dbgflg=8; -#endif -#if 0 printf(try ad-hoc work around!!\n); rb-xfer = fw_tl2xfer(rb-fc, fp-mode.hdr.src, (fp-mode.hdr.tlrt 2) ^ 3); Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.122 src/sys/dev/ieee1394/fwohci.c:1.123 --- src/sys/dev/ieee1394/fwohci.c:1.122 Mon Mar 29 03:42:15 2010 +++ src/sys/dev/ieee1394/fwohci.c Mon Mar 29 07:34:02 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.122 2010/03/29 03:42:15 kiyohara Exp $ */ +/* $NetBSD: fwohci.c,v 1.123 2010/03/29 07:34:02 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.122 2010/03/29 03:42:15 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.123 2010/03/29 07:34:02 kiyohara Exp $); #include sys/param.h #include sys/atomic.h @@ -2723,9 +2723,6 @@ uint8_t *ld; int nvec, resCount, len, plen, hlen, offset; const int psize = dbch-xferq.psize; -#if 0 -static int prev_resCounts[16], i; -#endif #if DIAGNOSTIC if (dbch-off != OHCI_ARQOFF @@ -2742,10 +2739,6 @@ resCount = FWOHCI_DMA_READ(db_tr-db[0].db.desc.res) OHCI_COUNT_MASK; while (status OHCI_CNTL_DMA_ACTIVE) { #if 0 -prev_resCounts[i] = resCount; -i = (i + 1) 0xf; -#endif -#if 0 if (dbch-off == OHCI_ARQOFF) aprint_normal_dev(sc-fc.dev, buf 0x%08x, status 0x%04x, resCount 0x%04x\n, @@ -2918,32 +2911,6 @@ #endif break; } -#if 0 -{ -extern int dbgflg; -if (dbgflg) { - if (dbgflg == 8) { - int j; - - printf(%s: i=%d, resCount=%d, __func__, i, prev_resCounts[0]); - for (j = 1; j 16; j++) - printf(, %d, prev_resCounts[j]); - printf(\n); - } - printf(%s:, __func__); - if (dbch-off == OHCI_ARQOFF) - printf( ARQ:); - else - printf( ARS:); - printf( plen=%d, offset=%d, buf_offset=%d,, plen, offset, dbch-buf_offset); - printf( idx=%d, resCount=%d,, db_tr-idx, resCount); - if (dbch-pdb_tr != NULL) - printf( pdb=%p, dbch-pdb_tr-db[0].db); - printf( db=%p\n, db_tr-db[0].db); - dbgflg--; -} -} -#endif if (dbch-pdb_tr != NULL) { if (dbch-buf_offset 0) bus_dmamap_sync(sc-fc.dmat,
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: kiyohara Date: Mon Mar 29 03:42:15 UTC 2010 Modified Files: src/sys/dev/ieee1394: firewire.c fwohci.c Log Message: Remove debugging process. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/dev/ieee1394/firewire.c cvs rdiff -u -r1.121 -r1.122 src/sys/dev/ieee1394/fwohci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewire.c diff -u src/sys/dev/ieee1394/firewire.c:1.27 src/sys/dev/ieee1394/firewire.c:1.28 --- src/sys/dev/ieee1394/firewire.c:1.27 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/firewire.c Mon Mar 29 03:42:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: firewire.c,v 1.27 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: firewire.c,v 1.28 2010/03/29 03:42:15 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.27 2010/03/29 03:05:27 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: firewire.c,v 1.28 2010/03/29 03:42:15 kiyohara Exp $); #include sys/param.h #include sys/bus.h @@ -1727,21 +1727,10 @@ node = dfwdev-dst; /* First quad */ -#if 0 -printf(%s: speed=0x%x(0x%x)\n, __func__, dfwdev-speed, fc-speed_map-speed[fc-nodeid][node]); -if (dfwdev-speed == 0) - dfwdev-speed = fc-speed_map-speed[fc-nodeid][node]; -else if (dfwdev-speed == 2) - dfwdev-speed = 1; -else - dfwdev-speed = 0; -printf(%s: Re: speed=0x%x\n, __func__, dfwdev-speed); -#endif err = fw_explore_read_quads(dfwdev, CSRROMOFF, csr, 1); if (err) { aprint_error_dev(fc-bdev, node%d: explore_read_quads failure\n, node); -printf(err=%d\n, err); dfwdev-status = FWDEVINVAL; return -1; } Index: src/sys/dev/ieee1394/fwohci.c diff -u src/sys/dev/ieee1394/fwohci.c:1.121 src/sys/dev/ieee1394/fwohci.c:1.122 --- src/sys/dev/ieee1394/fwohci.c:1.121 Mon Mar 29 03:05:27 2010 +++ src/sys/dev/ieee1394/fwohci.c Mon Mar 29 03:42:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci.c,v 1.121 2010/03/29 03:05:27 kiyohara Exp $ */ +/* $NetBSD: fwohci.c,v 1.122 2010/03/29 03:42:15 kiyohara Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa @@ -37,7 +37,7 @@ * */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.121 2010/03/29 03:05:27 kiyohara Exp $); +__KERNEL_RCSID(0, $NetBSD: fwohci.c,v 1.122 2010/03/29 03:42:15 kiyohara Exp $); #include sys/param.h #include sys/atomic.h @@ -2998,25 +2998,7 @@ } fwdma_sync_multiseg(dbch-am, db_tr-idx, db_tr-idx, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); -#if 0 -{ -uint32_t _status; - -fwdma_sync_multiseg(dbch-am, db_tr-idx, db_tr-idx, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); -_status = FWOHCI_DMA_READ(db_tr-db[0].db.desc.res) OHCI_STATUS_SHIFT; -if (status != _status) -printf(Ooops status ? 0x%x : 0x%x, %p\n, status, _status, db_tr-db); -fwdma_sync_multiseg(dbch-am, db_tr-idx, db_tr-idx, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); -_status = FWOHCI_DMA_READ(((struct fwohcidb *)MIPS_PHYS_TO_KSEG1(MIPS_KSEG0_TO_PHYS(db_tr-db)))[0].db.desc.res) OHCI_STATUS_SHIFT; -if (status != _status) -printf(Ops status ? 0x%x : 0x%x\n, status, _status); -} -#endif mutex_exit(dbch-xferq.q_mtx); -#if 0 -prev_resCounts[i] = resCount; -i = (i + 1) 0xf; -#endif return; err:
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: dyoung Date: Sun Dec 6 22:56:56 UTC 2009 Modified Files: src/sys/dev/ieee1394: if_fwip.c Log Message: Simplify device-activation hook. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/dev/ieee1394/if_fwip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/if_fwip.c diff -u src/sys/dev/ieee1394/if_fwip.c:1.19 src/sys/dev/ieee1394/if_fwip.c:1.20 --- src/sys/dev/ieee1394/if_fwip.c:1.19 Tue May 12 12:16:55 2009 +++ src/sys/dev/ieee1394/if_fwip.c Sun Dec 6 22:56:56 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_fwip.c,v 1.19 2009/05/12 12:16:55 cegger Exp $ */ +/* $NetBSD: if_fwip.c,v 1.20 2009/12/06 22:56:56 dyoung Exp $ */ /*- * Copyright (c) 2004 * Doug Rabson @@ -38,7 +38,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_fwip.c,v 1.19 2009/05/12 12:16:55 cegger Exp $); +__KERNEL_RCSID(0, $NetBSD: if_fwip.c,v 1.20 2009/12/06 22:56:56 dyoung Exp $); #ifdef HAVE_KERNEL_OPTION_HEADERS #include opt_device_polling.h @@ -395,29 +395,20 @@ return 0; } -#if defined(__NetBSD__) int fwipactivate(device_t self, enum devact act) { struct fwip_softc *fwip = device_private(self); - int s, error = 0; - s = splfwnet(); switch (act) { - case DVACT_ACTIVATE: - error = EOPNOTSUPP; - break; - case DVACT_DEACTIVATE: if_deactivate(fwip-fw_softc.fwip_ifp); - break; + return 0; + default: + return EOPNOTSUPP; } - splx(s); - - return (error); } -#endif IF_INIT(fwip) { IF_INIT_START(fwip, fwip, ifp);
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: cegger Date: Sat Jun 20 09:40:52 UTC 2009 Modified Files: src/sys/dev/ieee1394: firewirereg.h Log Message: buildfix: don't redefine MIN and MAX. They are defined in sys/param.h. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.8 src/sys/dev/ieee1394/firewirereg.h:1.9 --- src/sys/dev/ieee1394/firewirereg.h:1.8 Sat Mar 29 16:22:53 2008 +++ src/sys/dev/ieee1394/firewirereg.h Sat Jun 20 09:40:52 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.8 2008/03/29 16:22:53 kiyohara Exp $ */ +/* $NetBSD: firewirereg.h,v 1.9 2009/06/20 09:40:52 cegger Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -334,8 +334,6 @@ #define bio_resid b_resid #define BIO_READ B_READ #define BIO_WRITE B_WRITE -#define MIN(a,b) (((a)(b))?(a):(b)) -#define MAX(a,b) (((a)(b))?(a):(b)) #endif MALLOC_DECLARE(M_FW);
CVS commit: src/sys/dev/ieee1394
Module Name:src Committed By: dyoung Date: Sat Jun 20 20:18:33 UTC 2009 Modified Files: src/sys/dev/ieee1394: firewirereg.h Log Message: unifdef -U__DragonFlyBSD__ -U__FreeBSD__ -D__NetBSD__. XXX Compiles, but untested. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/dev/ieee1394/firewirereg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ieee1394/firewirereg.h diff -u src/sys/dev/ieee1394/firewirereg.h:1.9 src/sys/dev/ieee1394/firewirereg.h:1.10 --- src/sys/dev/ieee1394/firewirereg.h:1.9 Sat Jun 20 09:40:52 2009 +++ src/sys/dev/ieee1394/firewirereg.h Sat Jun 20 20:18:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: firewirereg.h,v 1.9 2009/06/20 09:40:52 cegger Exp $ */ +/* $NetBSD: firewirereg.h,v 1.10 2009/06/20 20:18:32 dyoung Exp $ */ /*- * Copyright (c) 2003 Hidetoshi Shimokawa * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa @@ -63,24 +63,17 @@ }; struct firewire_softc { -#if defined(__FreeBSD__) __FreeBSD_version = 50 - fw_dev_t dev; - device_t sbp_dev; -#elif defined(__NetBSD__) device_t dev; SLIST_HEAD(, firewire_dev_list) devlist; void *si_drv1; int si_iosize_max; -#endif struct firewire_comm *fc; }; -#if defined(__NetBSD__) struct firewire_dev_list { SLIST_ENTRY(firewire_dev_list) link; device_t dev; struct fw_device *fwdev; }; -#endif #define FW_MAX_DMACH 0x20 #define FW_MAX_DEVCH FW_MAX_DMACH @@ -297,26 +290,14 @@ void fw_drain_txq (struct firewire_comm *); int fwdev_makedev (struct firewire_softc *); int fwdev_destroydev (struct firewire_softc *); -#if defined(__FreeBSD__) __FreeBSD_version = 50 -void fwdev_clone (void *, struct ucred *, char *, int, fw_dev_t *); -#endif int fw_open_isodma(struct firewire_comm *, int); extern int firewire_debug; -#if defined(__FreeBSD__) -extern devclass_t firewire_devclass; -#elif defined(__NetBSD__) extern struct cfdriver ieee1394if_cd; -#endif extern int firewire_phydma_enable; -#ifdef __DragonFly__ -#define FWPRI PCATCH -#else #define FWPRI ((PZERO+8)|PCATCH) -#endif -#if defined(__DragonFly__) || __FreeBSD_version 50 || defined(__NetBSD__) /* compatibility shim for 4.X */ #define bio buf #define bio_bcount b_bcount @@ -326,15 +307,10 @@ #define bio_dev b_dev #define bio_error b_error #define bio_flags b_flags -#if defined(__FreeBSD__) -#define bio_offset b_offset -#elif defined(__NetBSD__) #define bio_offset b_blkno -#endif #define bio_resid b_resid #define BIO_READ B_READ #define BIO_WRITE B_WRITE -#endif MALLOC_DECLARE(M_FW); MALLOC_DECLARE(M_FWXFER);