summaryrefslogtreecommitdiff
path: root/sys/dev/ic
AgeCommit message (Collapse)Author
2022-08-03Pull up following revision(s) (requested by riastradh in ticket #1495):martin
share/man/man4/tpm.4: revision 1.7 sys/dev/ic/tpm.c: revision 1.17 sys/dev/ic/tpmvar.h: revision 1.10 sys/dev/ic/tpm.c: revision 1.18 sys/dev/ic/tpm.c: revision 1.19 sys/dev/acpi/tpm_acpi.c: revision 1.14 sys/dev/ic/tpmreg.h: revision 1.10 sys/dev/ic/tpmreg.h: revision 1.11 sys/dev/ic/tpm.c: revision 1.21 sys/dev/ic/tpm.c: revision 1.22 sys/dev/ic/tpm.c: revision 1.23 sys/dev/ic/tpm.c: revision 1.24 sys/dev/ic/tpm.c: revision 1.25 sys/dev/ic/tpmreg.h: revision 1.7 sys/dev/ic/tpmreg.h: revision 1.8 sys/dev/ic/tpmreg.h: revision 1.9 sys/dev/ic/tpmvar.h: revision 1.8 sys/dev/ic/tpmvar.h: revision 1.9 dev/ic/tpm: Tidy up headers. - Add include guards. - Add necessary includes. - Sort includes. - Use _BYTE_ORDER, not BYTE_ORDER, for public header. dev/ic/tpm: Add missing line break in attach output. dev/ic/tpm: Take advantage of entropy source if available. If the tpm is deactivated, though, detach the entropy source so we don't continue to try polling it -- it can't be activated without a reboot anyway. Add note about enabling TPM and rnd(4) source. tpm(4): Handle TPM 2.0 random source too, and loop on short reads. Tested on ThinkPad T480. tpm(4): Preserve error if any on ending commands. This way we don't spuriously suppress an error, such as TPM_DEACTIVATED, in a loop where we rely on it. tpm@acpi: Require only one locality's worth of register space. We don't actually use the registers for the other localities, and some older TPMs only have the first locality exposed via ACPI. tpm(4): Fix disabling of rnd source if tpm is deactivated. Nothing prevents a second worker from being queued when the first one is about to do rnd_detach_source. Instead, just set a flag so future requests don't bother running a new thread; if there's a concurrent one that's already been scheduled on another CPU, well, too bad, we get a couple extra log messages but that's fine. A better way to do this would probably be to detect whether the tpm is deactivated at attach time, but that requires reading more of the tpm spec than I care to do when there are alternative ways to procrastinate like scrubbing the toilet. tpm(4): Fix suspend and rework I/O transaction lock. Use sc->sc_lock over individual I/O transactions, not open/close of the whole device. This way there is a bounded time before the tpm is unbusied even if userland is getting at it, so userland can't hold up suspend indefinitely. Of course, the tpm might be suspended and resumed in the middle of the user's session this way -- tough. This limits the response buffer to 1024 bytes -- which is already a bit hefty to have on the stack (but it's probably not very deep on the stack from userland so maybe not a big deal). If it turns out we need more, we can use kmem to allocate a buffer on the heap, with the caveat that it might fail. This is necessary so that suspend doesn't block indefinitely on uiomove in tpmread. tpm(4): Nix TPM_BE16/TPM_BE32. Just use sys/endian.h.
2022-05-17Pull up following revision(s) via patch (requested by msaitoh in ticket #1454):bouyer
sys/dev/ic/mfi.c: revisions 1.63, 1.66-77 sys/dev/ic/mfireg.h: revisions 1.11-1.20 via patch sys/dev/pci/mfi_pci.c: revision 1.21 sys/dev/pci/mfii.c: revisions 1.6-1.7, 1.10-1.15 share/man/man4/mfi.4: revision 1.13 Improve mfi(4) and mfii(4): - Set 'ld_sync' to NULL as part of 'again', to prevent use-after-free. - Add some code for the SKINNY variant to make Dell PERC H310 work. - Print the percentage correctly when the background initialization is running. - Clear mailbox to not to pass garbage data. - Use union mbox instead of unit8_t xxx[] to avoid unaligned access. - Set stripe size for BIOCVOL to show the size correctly in bioctl. - Add support for iBBU-09 to show BBU voltage, current and temperature correctly. - Fix typos in comments. - Sprinkle static. - Improve debug printf()s. - KNF. Remove extra semicolon. Whitespace fixes.
2021-07-03Pull up following revision(s) (requested by thorpej in ticket #1311):martin
sys/dev/ic/dp8390.c: revision 1.99 sys/dev/ic/dl10019.c: revision 1.17 sys/dev/ic/ax88190.c: revision 1.18 Make sure the media / mii members in struct ethercom are initialized so that the media-related ioctls work. Problem reported by Björn Johannesson on current-users@. XXX pullup-9
2021-06-21Pull up following revision(s) (requested by riastradh in ticket #1305):martin
sys/dev/ic/nvmevar.h: revision 1.22 sys/dev/ic/nvme.c: revision 1.56 sys/dev/ic/nvme.c: revision 1.57 sys/dev/pci/nvme_pci.c: revision 1.30 nvme(4): Add suspend/resume, derived from OpenBSD. nvme(4): Move disestablishment of admin q interrupt to nvme_detach. Nothing re-established this after suspend/resume, so attempting suspend/resume/suspend would crash, and presumably we would miss interrupts after resume. This keeps the establish/disestablish more symmetric in attach/detach.
2021-03-09Pull up following revision(s) (requested by tsutsui in ticket #1228):martin
sys/dev/ic/mb89352.c: revision 1.58 Fix a possible race condition in spc_msgin() in NO_MANUAL_XFER case. To avoid the race, check SSTS and INTS after XFR command as spc_pio_datain() does. Reported from isaki@, observed on nono emulator.
2020-12-30Pull up following revision(s) (requested by jmcneill in ticket #1167):martin
sys/dev/ic/ahcisata_core.c: revision 1.84 sys/dev/ic/ahcisata_core.c: revision 1.85 sys/dev/ic/ahcisata_core.c: revision 1.88 sys/dev/ic/ahcisata_core.c: revision 1.89 sys/arch/arm/nvidia/tegra_ahcisata.c: revision 1.13 sys/dev/ic/ahcisatavar.h: revision 1.26 sys/dev/ic/ahcisata_core.c: revision 1.90 sys/dev/ic/ahcisata_core.c: revision 1.91 sys/dev/ic/ahcisata_core.c: revision 1.92 sys/dev/ata/satareg.h: revision 1.6 ahci_exec_fis: wait for the correct amount of time when AT_WAIT is set Retry clearing WDCTL_RST a few times before giving up. Makes SATA work in Solidrun Honeycomb LX2K. AHCI 1.3.1 specification says that it is good practice for system software to 'zero-out' the memory allocated and referenced by PxCLB and PxFB. ahci_intr: use ffs in the port bitmask instead of looping over all 32 bits AHCI 1.3.1 section 5.5.3 "Processing Completed Commands" says that we should clear PxIS before IS.IPS. Add G3 and DevSleep definitions. This changes the mask used by SControl_IPM_NONE from 0x3 to 0x7. Make sure to ack IS after PxIS when polling and when using multiple MSI-X messages. Remove the AHCI_QUIRK_SKIP_RESET quirk now that the underlying issue is fixed.
2020-12-28Pull up following revision(s) (requested by tsutsui in ticket #1162):martin
sys/dev/ic/stivar.h: revision 1.11 sys/dev/ic/sti.c: revision 1.23 sys/dev/ic/sti.c: revision 1.24 sys/dev/ic/sti.c: revision 1.25 sys/arch/hp300/dev/sti_sgc.c: revision 1.4 Pull the latest OpenBSD sti(4) changes for bitmap framebuffer support. - bitmap and colormap ops based on old HP ngle X11 driver: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/dev/ic/sti.c#rev1.76 > Work-in-progress support for non-accelerated X11 on *some* sti(4) > frame buffers; based upon the old HP ngle X11 driver. > Currently limited to CRX (720/735/750), Timber (710, old 715), > Artist (712, 715) and EG (B-series), however the > colormap isn't set up correctly on Timber and EG yet. > > Joint work with Artem Falcon, now in good enough shape to be worked further > in the tree. - misc other cosmetic changes to reduce diffs No particular comments on port-hp300@ and port-hppa@: https://mail-index.netbsd.org/port-hp300/2020/12/19/msg000184.html https://mail-index.netbsd.org/port-hp300/2020/12/20/msg000185.html The MD hp300 attachment for SGC CRX (A1659-66001) will be committed separately. Add bitmap access ops support for SGC CRX (A1659-66001) framebuffer. Also modify existing 425e EVRX attachment to use updated MI sti(4) ops more efficiently. The Xorg server and mlterm-wscons (that support wsdisplay bitmap) work fine on SGC hp425t. No particular comments on port-hp300@ and port-hppa@: https://mail-index.netbsd.org/port-hp300/2020/12/19/msg000184.html https://mail-index.netbsd.org/port-hp300/2020/12/20/msg000185.html Special thanks to Miod Vallat again, for contributing the SGC CRX framebuffer with the SGC connector and flexible cable for HP9000/425t. He also contributed DIO-II "Hyperion" monochrome framebuffer and 1 plane grayscale SGC GRX (A1924-66001), and I've confirmed hyper(4) just works even with Xorg server. I will try GRX as the next project. Handle WSSCREEN_REVERSE properly. Based on OpenBSD's sti(4). Also remove WSSCREEN_UNDERLINE from capabilities that is not handled by sti(4) ROM routines. Tested on HP9000/425t with CRX. Ignore WSDISPLAYIO_PUTCMAP in WSDISPLAYIO_MODE_EMUL, i.e. text mode. The hardware palette settings are handled by the STI ROM in STI_TEXTMODE and changing cmap could cause mangled text colors at least on CRX on 425t. Updating CMAP in EMUL mode isn't expected anyway. Fixes "red or invisible text" after exiting mlterm-wscons on A1659 CRX.
2020-12-07Pull up following revision(s) (requested by kardel in ticket #1144):martin
sys/dev/ic/nvme.c: revision 1.53 PR kern/55839: handle multiple nvme_rescan()s correctly by doing the name-space identify only once per nsid. fixes issue where modloading triggers multiple rescans.
2020-09-27Pull up following revision(s) (requested by kardel in ticket #1094):martin
sys/dev/ic/ld_nvme.c: revision 1.24 sys/dev/ic/nvme.c: revision 1.50 PR kern/55674: move name space availability check from ld_nvme.c:ld_nvme_attach() to nvme.c:nvme_rescan(). this avoids allocation of ld(4) instances for every possible name space, even if it is not usable. it also reduces the device node flood generated from that strategy.
2020-09-16Pull up following revision(s) (requested by mlelstv in ticket #1085):martin
sys/dev/ic/mpt_netbsd.c: revision 1.37 max_devices is a 8bit value and zero is interpreted as 256. This value can be reported by an mpt device emulated by VMware ESXi.
2020-08-17Pull up following revision(s) (requested by mrg in ticket #1052):martin
sys/dev/ic/bwfm.c: revision 1.28 sys/dev/ic/bwfm.c: revision 1.29 sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.22 sys/dev/ic/bwfmreg.h: revision 1.7 sys/dev/ic/bwfmvar.h: revision 1.11 sys/dev/ic/bwfmvar.h: revision 1.12 (all via patch) Add include guards and appropriate includes to bwfmreg.h, bwfmvar.h. No functional change intended. Need <sys/kmem.h> for kmem_*. Currently accidentally side-loaded by <sys/pcq.h>. bwfm: Switch from pcq to pool_cache. pcq_get is required to be serialized, but it's far from clear that it is serialized here.
2020-08-11Pull up following revision(s) (requested by mrg in ticket #1045):martin
sys/kern/uipc_mbuf.c: revision 1.235 sys/dev/ic/dwc_gmac.c: revision 1.70 sys/dev/ic/dwc_gmac_reg.h: revision 1.20 sys/dev/ic/dwc_gmac.c: revision 1.66 sys/dev/ic/dwc_gmac.c: revision 1.67 sys/dev/ic/dwc_gmac.c: revision 1.68 awge: fix issue that caused rx packets to be corrupt with DIAGNOSTIC kernel It seems the hardware can only reliably do rx DMA to addresses that are dcache size aligned. This is hinted at by some GMAC data sheets but hard to find an authoritative source. on non-DIAGNOSTIC kernels we always implicitly get MCLBYTES-aligned mbuf data pointers, but with the reintroduction of POOL_REDZONE for DIAGNOSTIC we can get 8-byte alignment due to redzone padding. So align rx pointers to 64 bytes which should be good for both arm32 and aarch64. While here change some bus_dmamap_load() to bus_dmamap_load_mbuf() and add one missing bus_dmamap_sync(). Also fixes the code to not assume that MCLBYTES == AWGE_MAX_PACKET. User may override MCLSHIFT in kernel config. correct pointer arithmetics mcl_cache: align items to COHERENCY_UNIT Because we do cache incoherent DMA to/from mbufs we cannot safely share share cache lines with adjacent items that may be concurrently accessed. awge: drop redundant m_adj(). Handled via uipc_mbuf.c r1.235 instead. Mask all the MMC counter interrupts if the MMC module is present.
2020-08-09Pull up following revision(s) (requested by mrg in ticket #1042):martin
sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.19 sys/dev/sdmmc/ld_sdmmc.c: revision 1.38 sys/dev/sdmmc/sdmmcvar.h: revision 1.35 sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.5 sys/dev/ic/bwfm.c: revision 1.26 sys/dev/ic/bwfm.c: revision 1.27 sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.20 sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.21 sys/dev/sdmmc/sdmmc_io.c: revision 1.20 sys/dev/sdmmc/sdmmc_mem.c: revision 1.72 sys/dev/sdmmc/sdmmc.c: revision 1.40 sys/dev/sdmmc/sdmmc_ioreg.h: revision 1.6 sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.16 Don't pass empty mbufs to the network stack. Avoid changing signedness bit with << in sdmmc_ioreg.h Reported by <prlw1> If the controller doesn't support switch func (opcode 6) then skip setting this but continue with other settings. This allows us to use a card, albeit at a lower speed. Fix races in sdmmc tasks and teach ld@sdmmc to abort xfers on detach. - Teach sdmmc_add_task to queue it only if not already queued. - Remove now-redundant logic to avoid repeated queueing elsewhere. - Teach sdmmc_del_task to wait until task has completed. - Call sdmmc_del_task in various needful places. - Replace abuse of pcq by a lock and a tailq. (pcq is multi-producer, _single_-consumer, but there are potentially multiple consumers here and really only one producer.) - Teach ld_sdmmc to abort xfers on detach. (Mechanism is kinda kludgey but it'll do for now; any effort one is tempted to spend overhauling this should be spent overhauling sdmmc to support proper asynchronous commands.) - Make sure ld_sdmmc_discard either returns failure or eventually calls ldenddiscard. XXX Currently ld_sdmmc_detach aborts xfers _before_ ldbegindetach has has committed to detaching or not. This is currently necessary to avoid a deadlock because ldbegindetach waits for xfers to drain -- which strikes me as wrong; ldbegindetach shouldn't wait for anything, and should only make the decision to commit to detaching or not so the caller can decide whether to abort xfers before we actually wait for them in ldenddetach. XXX pullup -- although this changes some kernel symbols (sdmmc_add_task and sdmmc_del_task), it shouldn't affect any existing modules; the only module that uses sdmmc is ld_sdmmc.kmod, which is `.if 0' in the build so there shouldn't be any of them floating around. Make this work on big endian machines move some of the patching of callbacks and other data after ieee80211_ifattach() but before if_deferred_start_init(). may fix panic i saw in after restarting wpa_supplicant. from mlelstv. only ask for SDPCMD_INTSTATUS_HMB_SW_MASK and SDPCMD_INTSTATUS_CHIPACTIVE interrupts, not all of them. we only ack these ones. mostly fixes pinebookpro wifi hard hangs. still is problematic and can trigger interrupt storm that appears as a hard hang without NET_MPSAFE, and a follow up, less clearly right, change will reduce that to a soft hang of the interface that can be cleared with 'ifconfig bwfm0 down up', and even often recovers itself now. clear all interrupts, not just those we expect from the hostintmask. this removes the final hard hang i have seen in pinebookpro wifi, though one may still need to 'ifconfig bwfm0 down up' occasionally, so we still have bugs to fix here (the hang is usually associated with 'checksum error' from bwfm/sdio.) Sort #includes. Nix trailing whitespace. No functional change intended.
2020-05-18Pull up following revision(s) (requested by tsutsui in ticket #908):martin
sys/dev/ic/stivar.h: revision 1.10 sys/dev/ic/sti.c: revision 1.21 sys/arch/hp300/dev/sti_sgc.c: revision 1.3 Add bitmap access ops support for EVRX framebuffer on HP9000/425e. 8bpp Xorg wsfb server and mlterm-wscons (formerly mlterm-fb) work. No particular comment on port-hp300@ and port-hppa@: https://mail-index.netbsd.org/port-hp300/2020/05/02/msg000170.html Special thanks to Miod Vallat, for his advice about HP-UX implementation and binutils patches to disassemble old HP-UX a.out-hp300hpux binaries (and also contributing his 425e back in 2014).
2020-04-14Pull up following revision(s) (requested by msaitoh in ticket #832):martin
sys/dev/ic/spdmemvar.h: revision 1.15 sys/dev/ic/spdmemvar.h: revision 1.16 sys/dev/ic/spdmem.c: revision 1.32 sys/dev/ic/spdmem.c: revision 1.33 sys/dev/ic/spdmem.c: revision 1.34 sys/dev/ic/spdmem.c: revision 1.35 Print DDR3's row and column correctly. KNF. No functional change. - Define some new parameters of DDR3 SPD ROM. - Use fine timebase parameters for time calculation on DDR3. This change makes PC3-XXXX value more correctly on newer DDR3. Calculate DDR3's tRAS correctly. Fix unused area size found by pgoyette@.
2020-03-21Pull up following revision(s) (requested by skrll in ticket #800):martin
sys/dev/ic/dwc_mmc_var.h: revision 1.14 sys/dev/ic/dwc_mmc_reg.h: revision 1.10 sys/dev/ic/dwc_mmc.c: revision 1.23 sys/dev/ic/dwc_mmc.c: revision 1.24 sys/dev/ic/dwc_mmc.c: revision 1.25 sys/dev/ic/dwc_mmc.c: revision 1.26 Release the sc_intr_lock on error Trailing whitespace Add DWC_MMC_VERID_280A Remember / use sc_verid Disable thrctrl or now and note why
2020-03-01Pull up following revision(s) (requested by riastradh in ticket #744):martin
sys/dev/usb/uhci.c: revision 1.292 sys/dev/usb/uhci.c: revision 1.293 sys/dev/usb/usbdi.h: revision 1.99 sys/dev/usb/motg.c: revision 1.26 sys/dev/usb/motg.c: revision 1.27 sys/dev/usb/motg.c: revision 1.28 sys/dev/usb/motg.c: revision 1.29 sys/external/bsd/dwc2/dwc2.c: revision 1.70 sys/external/bsd/dwc2/dwc2.c: revision 1.71 sys/dev/usb/usb.c: revision 1.181 sys/arch/mips/adm5120/dev/ahci.c: revision 1.20 sys/dev/usb/usb.c: revision 1.182 sys/dev/usb/xhci.c: revision 1.116 sys/dev/usb/xhci.c: revision 1.117 sys/dev/usb/xhci.c: revision 1.118 sys/dev/usb/uhci.c: revision 1.289 sys/dev/usb/usbdivar.h: revision 1.121 sys/dev/usb/usbdi.c: revision 1.190 sys/dev/usb/usbdivar.h: revision 1.122 sys/dev/usb/usbdi.c: revision 1.191 sys/dev/usb/usbdi.c: revision 1.192 sys/external/bsd/dwc2/dwc2var.h: revision 1.7 sys/dev/usb/motg.c: revision 1.30 sys/dev/usb/motg.c: revision 1.31 sys/dev/usb/motg.c: revision 1.32 sys/dev/usb/motg.c: revision 1.33 sys/external/bsd/dwc2/dwc2.c: revision 1.67 sys/external/bsd/dwc2/dwc2.c: revision 1.68 sys/dev/usb/ehci.c: revision 1.270 sys/external/bsd/dwc2/dwc2.c: revision 1.69 sys/dev/usb/usbdi.h: revision 1.100 sys/dev/usb/ehci.c: revision 1.271 sys/arch/mips/adm5120/dev/ahci.c: revision 1.18 sys/dev/usb/usbdi.h: revision 1.101 sys/dev/usb/ehci.c: revision 1.272 sys/dev/ic/sl811hs.c: revision 1.103 sys/arch/mips/adm5120/dev/ahci.c: revision 1.19 sys/dev/usb/ehci.c: revision 1.273 sys/dev/usb/ohci.c: revision 1.293 sys/dev/usb/uhci.c: revision 1.290 sys/dev/usb/ohci.c: revision 1.294 sys/dev/usb/uhci.c: revision 1.291 sys/dev/usb/ohci.c: revision 1.295 Teach usb_rem_task to return whether removed from queue or not. New function usb_task_pending for diagnostic assertions. Usable only for negative diagnostic assertions: KASSERT(!usb_task_pending(dev, task)) If you can think of a better name for this than !usb_task_pending, I'm all ears. - Nothing guarantees xfer's timeout has completed. Wait for it when we free the xfer. - New xfer state variables ux_timeout_set and ux_timeout_reset. These are needed because: - The host controller interrupt cannot wait for the callout or task to finish running. - Nothing in the USBD API as is waits for the callout or task to finish running. - Callers expect to be able to resubmit USB xfers from xfer callbacks without waiting for anything to finish running. The variable ux_timeout_set can be used by a host controller to decide on submission whether to schedule the callout or to ask an already-scheduled callout or already-queued task to reschedule the callout, by setting the variable ux_timeout_reset to true. When the callout or task runs and sees that ux_timeout_reset is true, rather than queue the task or abort the xfer, it can instead just schedule the callout anew. - Fix steady state of timeouts in ehci. This is complicated because: 1. There are three ways that an xfer can be completed: (a) hardware interrupt completes xfer (b) software decision aborts xfer with USBD_CANCELLED (c) timeout aborts xfer with USBD_TIMEOUT 2. The timeout abort can't be done in callout because ehci_sync_hc, called unconditionally by ehci_abort_xfer to wait until the device has finished using any references to the xfer, may sleep. So we have to schedule a callout that, when run, will schedule a usb_task. 3. The hardware completion interrupt can't sleep waiting for a callout or task to finish -- can't use callout_halt or usb_rem_task_wait. So the callout and usb_task must be able to run _after_ the hardware completion interrupt, and recognize that they're late to the party. (Note, though, that usbd_free_xfer does wait for the callout and task to complete, so there's no danger they may use themselves after free.) 4. The xfer may resubmitted -- and the timeout may be rescheduled -- immediately after the hardware completion interrupt, _while_ the callout and/or usb_task may still be scheduled. Specifically, we may have the following sequence of events: (a) hardware completion interrupt (b) callout or usb_task fires (c) driver resubmits xfer (d) callout or usb_task acquires lock and looks around dazed and bewildered at the firehose of events like reading the news in 2019 The mechanism for sorting this out is that we have two bits of state: - xfer->ux_timeout_set informs the driver, when submitting an xfer and setting up its timeout, whether either the callout or usb_task is already scheduled or not. - xfer->ux_timeout_reset informs the callout or usb_task whether it should reschedule the callout, because the xfer got resubmitted, or not. - Factor out HCI-independent xfer completion logic. New API for HCI drivers to synchronize hardware completion interrupts, synchronous aborts, and asynchronous timeouts: - When submitting an xfer to hardware, call usbd_xfer_schedule_timeout(xfer). - On HCI completion interrupt for xfer completion: if (!usbd_xfer_trycomplete(xfer)) return; /* timed out or aborted, ignore it */ - In upm_abort methods, call usbd_xfer_abort(xfer). For HCI drivers that use this API (not needed in drivers that don't, or for xfers like root intr xfers that don't use it): - New ubm_abortx method serves role of former *hci_abort_xfer, but without any logic for wrangling timeouts/callouts/tasks -- caller in usbd_xfer_abort has already handled them. - New ubm_dying method, returns true if the device is in the process of detaching, used by the timeout logic. Converted and tested: - ehci - ohci Converted and compile-tested: - ahci (XXX did this ever work?) - dwc2 - motg (XXX missing usbd_xfer_schedule_timeout in motg_*_start?) - uhci - xhci Not changed: - slhci (sys/dev/ic/sl811hs.c) -- doesn't use a separate per-xfer callout for timeouts (XXX but maybe should?) - ugenhc (sys/rump/dev/lib/libugenhc/ugenhc.c) -- doesn't manage its own transfer timeouts - Fix steady state of root intr xfers. Why? - Avoid completing a root intr xfer multiple times in races. - Avoid potential use-after-free in poll_hub callouts (uhci, ahci). How? - Use sc->sc_intr_xfer or equivalent to store only a pending xfer that has not yet completed -- whether successfully, by timeout, or by synchronous abort. When any of those happens, set it to null under the lock, so the xfer is completed only once. - For hci drivers that use a callout to poll the root hub (uhci, ahci): . Pass the softc pointer, not the xfer, to the callout, so the callout is not even tempted to use xfer after free -- if the callout fires, but the xfer is synchronously aborted before the callout can do anything, the xfer might be freed by the time the callout starts to examine it. . Teach the callout to do nothing if it is callout_pending after it has fired. This way: 1. completion or synchronous abort can just callout_stop 2. start can just callout_schedule If the callout had already fired before (1), and doesn't acquire the bus lock until after (2), it may be tempted to abort the new root intr xfer just after submission, which would be wrong -- so instead we just have the callout do nothing if it notices it has been rescheduled, since it will fire again after the appropriate time has elapsed. - Initialize xfer->ux_status in uhci_root_intr_start. Otherwise, it will be USBD_NOT_STARTED, so usbd_ar_pipe will skip calling upm_abort. Candidate fix for PR kern/54963, same problem as reported at: href="https://mail-index.NetBSD.org/current-users/2020/02/13/msg037740.html - Set ux_isdone in uhci_poll_hub for DIAGNOSTIC. - Fix mistakes in previous sloppy change with root intr xfers. - Make sure ux_status is set to USBD_IN_PROGRESS when started. Otherwise, if it is still in flight when we abort the pipe, usbd_ar_pipe will skip calling upm_abort. - Initialize ux_status under the lock; in principle a completion interrupt (or a delay) could race with the initialization. - KASSERT that the xfer is in progress when we're about to complete it. Candidate fix for PR kern/54963 for other HCI drivers than uhci. ok nick ok phone (This is the change that nick evidently MEANT to ok when he ok'd the previous one!) - Fix build - Fix non-DIAGNOSTIC builds. - Fix wrong KASSERT in motg abort. This has been wrong since last summer when we did the transition to xfer->ux_status = USBD_CANCELLED earlier. XXX pullup-9 - Fix mistakes in timeout/abort/completion changes in motg(4). - Call usbd_xfer_schedule_timeout so we actually do time out. - Don't call usbd_xfer_trycomplete until all the data have been transferred -- it commits to completion, not timeout. - Use xfer->ux_status != USBD_IN_PROGRESS to test whether, after a partial write, an xfer has been interrupted or timed out and need not be continued. - Remove wrong assertion. - Fix mistake in use of usbd_xfer_schedule_timeout in motg. This code path is used both for xfers that are new, and xfers that are being done piece by piece and are partway done. For the latter case, skip usbd_xfer_schedule_timeout so we schedule it only once per xfer. - Simplify some branches and kassert some redundant assignments.
2020-02-25Pull up following revision(s) (requested by mrg in ticket #717):martin
sys/dev/fdt/dwcmmc_fdt.c 1.11 sys/dev/ic/bwfm.c 1.15-1.18 sys/dev/ic/bwfmreg.h 1.4-1.6 sys/dev/ic/bwfmvar.h 1.4,1.5 sys/dev/ic/dwc_mmc.c 1.21,1.22 sys/dev/ic/dwc_mmc_reg.h 1.8,1.9,1.12,1.13 sys/dev/pcmcia/pcmciareg.h 1.11 sys/dev/sdmmc/if_bwfm_sdio.c 1.4,1.6-1.12 sys/dev/sdmmc/if_bwfm_sdio.h 1.1,1.2 sys/dev/sdmmc/sdhc.c 1.105,1.106 sys/dev/sdmmc/sdmmc.c 1.37,1.39 sys/dev/sdmmc/sdmmc_cis.c 1.6,1.8 sys/dev/sdmmc/sdmmc_io.c 1.15-1.19 sys/dev/sdmmc/sdmmc_ioreg.h 1.4,1.5 sys/dev/sdmmc/sdmmc_mem.c 1.69-1.71 sys/dev/sdmmc/sdmmcdevs 1.5-1.8 sys/dev/sdmmc/sdmmcvar.h 1.31,1.33,1.34 sys/net/if_media.h 1.66 Add Broadcom devices - Fix typo - add PCMCIA_CISTPL_SDIO definition. - From OpenBSD: - move event handling to workqueue - check for save/restore capability - Tag work queue as MPsafe and increase length. - Juse use bpf_mtap(), the 802.11 encapsulation is handled by firmware. - From OpenBSD: - support block length per function - add functions to read/write regions - Decode (but not use) SDIO tuple in CIS. - Fix locking. - Add more SDIO defines (partially from version 3.0). - From OpenBSD: - All the missing pieces (firmware load, chip setup, protocol handling) TX queue and interrupt handling via sdmmc_task. - Fix locking. - Fix packet parsing. - Add parser for original firmware config files. - tagging work queue as MPSAFE was premature. Revert. - SD_IO_RW_EXTENDED is a data transfer command, so set ADTC flag instead of AC Use correct function to verify if a task has been queued. Avoids race that can corrupt the task queue. - More register definitions. - Add IFM_IEEE80211_VHT subtype, IFM_IEEE80211_11AC operating mode, and missing descriptions - If firmware is connected in HT or VHT mode, report it to SIOCGIFMEDIA - white space police. Skip setting power when the voltage doesn't change. Also increase some timeouts. - Add and use sdmmc_pause to avoid long-term busy waits. - Add sdio abort function. - Additional error messages. - Print parameters for SDIO devices. - Minor cosmetics. - Simplyfy sdmmc_io_set_blocklen function signature by dropping the extra softc pointer. Aligns with OpenBSD. - Missing commit for sdio abort function. - More code from OpenBSD - no need to splnet() when enqueing packets - explicit structure padding - make internal functions static - also prepare for GPIO interrupts. - Avoid warnings for tautological shifts as sole conditional. - Follow the Linux driver an use the FDT "compatible" property to build a filename for the nvram config file, fall back to the standard filename. E.g. [Caching 123 nodes and 1093 properties] compatible 73696e6f 766f6970 2c627069 2d6d322d "sinovoip,bpi-m2- 0010: 7a65726f 00...... ........ ........ zero" 0015: 616c6c77 696e6e65 722c7375 6e38692d "allwinner,sun8i- 0025: 68322d70 6c757300 ........ ........ h2-plus" interrupt-parent 00000001 ........ ........ ........ .... model 42616e61 6e612050 69204250 492d4d32 "Banana Pi BPI-M2 0010: 2d5a6572 6f00.... ........ ........ -Zero" name 00...... ........ ........ ........ "" serial-number 30326330 30303432 65636431 36376566 02c00042ecd167ef 0010: 00...... ........ ........ ........ . -rw-r--r-- 1 root wheel 875 Nov 2 12:06 brcmfmac43430-sdio.AP6212.txt lrwxr-xr-x 1 root wheel 29 Dec 30 16:19 brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt -> brcmfmac43430-sdio.AP6212.txt -rw-r--r-- 1 root wheel 874 Jun 30 2019 brcmfmac43430-sdio.raspberrypi,3-model-b.txt -rw-r--r-- 1 root wheel 1864 Jun 30 2019 brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt lrwxr-xr-x 1 root wheel 29 Dec 30 11:24 brcmfmac43455-sdio.raspberrypi,4-model-b-plus.txt -> brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt - Add product ID for Broadcom BCM43455 - Use correct firmware for BCM43456 - size check was backwards. - Be less noisy for some commands. - Fix DWC_MMC_INT_SDIO_INT bit - dwc_mmc fixes: - Rockchip uses a different SDIO int bit, so take this into consideration - Avoid unnecessary resets and always wait for resets to complete - kpause instead of delay while holding spinlock - Do not attempt autostop for SD_IO_RW_EXTENDED commands - Allow for sub-blklen byte counts for single block transfers - More SDIO stability and performance fixes
2020-02-11Pull up following revision(s) (requested by msaitoh in ticket #695):martin
sys/dev/ic/elinkxl.c: revision 1.137 Restore an register read for RX_FRAMES_OK which was removed in rev. 1.133. All statistics registers should be read to ACK the interrupt. Fixes PR#54920. XXX pullup-[89]
2020-01-31Pull up following revision(s) (requested by msaitoh in ticket #672):martin
sys/dev/ic/tulip.c: revision 1.198 sys/dev/pci/if_jme.c: revision 1.45 sys/dev/pci/agp.c: revision 1.86 sys/dev/pci/if_lii.c: revision 1.27 sys/dev/acpi/thinkpad_acpi.c: revision 1.47 sys/dev/scsipi/scsipi_base.c: revision 1.183 sys/dev/ic/aic6915reg.h: revision 1.6 Fix undefined behavior in thinkpad_mask_init(). Found by kUBSan. Use unsigned when initialize the transmit completion ring to avoid undefined behavior. Found by kUBSan. Avoid undefined behavior when setting multicast address. found by kUBSan. Use unsigned to avoid undefined behavior in agpattach(). Found by kUBSan. Avoid undefined behavior in jme_mii_write(). Found by kUBSan. Use unsigned to avoid undefined behavior in lii_setmulti(). Use unsigned to avoid undefined behavior in scsipi_{get,put}_tag(). Found by kUBSan.
2020-01-31Pull up following revision(s) (requested by msaitoh in ticket #671):martin
sys/dev/pci/if_bce.c: revision 1.53 sys/dev/pci/pccbbreg.h: revision 1.16 sys/dev/ic/rt2860.c: revision 1.34 sys/dev/pci/if_alc.c: revision 1.45 sys/dev/pci/if_mcx.c: revision 1.5 sys/dev/pci/if_pcn.c: revision 1.72 sys/dev/pci/if_ale.c: revision 1.37 sys/dev/pci/if_age.c: revision 1.65 sys/dev/ieee1394/fwohcireg.h: revision 1.20 sys/dev/ieee1394/fwohci.c: revision 1.143 sys/dev/ieee1394/firewire.c: revision 1.49 sys/dev/ic/am79900reg.h: revision 1.10 Use unsigned to avoid undefined behavior. Found by kUBSan.
2020-01-28Pull up following revision(s) (requested by msaitoh in ticket #667):martin
sys/dev/ic/rtl81x9var.h: revision 1.57 sys/dev/ic/rtl81x9.c: revision 1.107 sys/dev/ic/rtl81x9reg.h: revision 1.51 sys/dev/ic/rtl8169.c: revision 1.160 sys/dev/ic/rtl81x9reg.h: revision 1.52 sys/dev/ic/rtl8169.c: revision 1.161 Use unsigned in rtk_setmulti() to avoid undefined behavior. Found bk kUBSan. 8168H model didn't link up well. some models seems to require to enable TX/RX after configuration. RTKQ_TXRXEN_LATER quirk flag added. it may be able to unify with RTKQ_RXDV_GATED flag? Sort RTK_HWREV_* by value. Improve some chip revisions support: - Add 8168FP, 8411, 8168G, 8401E, 8105E, 8105E_SPIN1, 8106E and 8402 from {Free,Open}BSD. - Renumber RTK_HWREV_8103E from 0x24C00000 to 0x34c00000. 0x24C00000 is newly used as RTK_HWREV_8102EL_SPIN1. Same as {Free,Open}BSD.
2020-01-21Pull up following revision(s) (requested by simonb in ticket #630):martin
sys/dev/ic/ahcisatavar.h: revision 1.24 sys/dev/pci/ahcisata_pci.c: revision 1.57 sys/dev/ic/ahcisata_core.c: revision 1.81 Add new AHCI_QUIRK_BADNCQ quick for controllers that have issues with NCQ on (some) drives. Enable this quirk for ATI (AMD) SB600/SB700 controllers. Alternate fix for kern/54790 and kern/54855. ok jdolecek@, tested on my SB700 chipset and tsutsui's SB600 chipset.
2020-01-21Pull up following revision(s) (requested by mrg in ticket #616):martin
sys/dev/ic/anx_dp.c: revision 1.2 sys/arch/evbarm/conf/GENERIC64: revision 1.126 sys/dev/ic/anx_dp.h: revision 1.1 sys/arch/evbarm/conf/GENERIC64: revision 1.128 sys/dev/ic/anx_dp.h: revision 1.2 sys/dev/fdt/dwcmmc_fdt.c: revision 1.9 sys/dev/i2c/cwfg.c: revision 1.1 sys/conf/files: revision 1.1247 sys/dev/fdt/pwm_backlight.c: revision 1.5 sys/dev/fdt/pwm_backlight.c: revision 1.6 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.14 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.15 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.16 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.17 sys/dev/ic/dwc_mmc.c: revision 1.20 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.18 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.19 sys/dev/usb/usbdevs: revision 1.775 sys/arch/arm/rockchip/rk_dwhdmi.c: revision 1.4 sys/dev/fdt/simple_amplifier.c: revision 1.1 sys/dev/i2c/files.i2c: revision 1.105 sys/arch/evbarm/conf/GENERIC64: revision 1.117 sys/arch/evbarm/conf/GENERIC64: revision 1.118 sys/dev/i2c/files.i2c: revision 1.107 sys/dev/fdt/files.fdt: revision 1.49 sys/arch/arm/rockchip/rk_anxdp.c: revision 1.1 sys/dev/ic/dwc_mmc_var.h: revision 1.9 sys/dev/i2c/rkpmic.c: revision 1.4 sys/arch/arm/rockchip/rk_anxdp.c: revision 1.2 sys/dev/i2c/rkpmic.c: revision 1.5 sys/dev/i2c/rkpmic.c: revision 1.6 sys/arch/arm/rockchip/rk_vop.c: revision 1.4 sys/arch/arm/rockchip/rk_vop.c: revision 1.5 sys/dev/i2c/rkpmic.c: revision 1.8 sys/arch/arm/dts/rk3399-pinebook-pro.dts: revision 1.1 sys/dev/usb/ums.c: revision 1.96 (via patch) sys/arch/arm/rockchip/rk_pwm.c: revision 1.3 sys/arch/arm/dts/rk3399-pinebook-pro.dts: revision 1.2 sys/dev/i2c/es8316ac.c: revision 1.1 sys/dev/fdt/dwcmmc_fdt.c: revision 1.10 sys/dev/i2c/es8316ac.c: revision 1.2 sys/dev/fdt/fdt_panel.c: revision 1.1 sys/dev/ic/dwc_mmc.c: revision 1.18 sys/dev/fdt/fdt_panel.c: revision 1.2 sys/dev/ic/dwc_mmc.c: revision 1.19 sys/arch/arm/dts/rk3399-rockpro64.dts: revision 1.10 sys/dev/fdt/fdt_port.c: revision 1.5 sys/dev/ic/dwc_mmc_var.h: revision 1.10 sys/dev/fdt/fdt_port.c: revision 1.6 sys/arch/evbarm/conf/GENERIC64: revision 1.122 sys/dev/ic/dwc_mmc_var.h: revision 1.11 sys/dev/fdt/files.fdt: revision 1.50 sys/arch/evbarm/conf/GENERIC64: revision 1.123 sys/arch/arm/rockchip/rk_i2s.c: revision 1.2 sys/arch/arm/rockchip/files.rockchip: revision 1.23 sys/arch/evbarm/conf/GENERIC64: revision 1.124 sys/dev/ic/anx_dp.c: revision 1.1 rkpmic: add RTC support; register w/ todr(9) rkpmic: correct delay Add support for SDIO interrupts. fix copy/paste error in mux_pll_src_cpll_gpll_ppll_parents[] add RK3399 eDP clocks add RK3399 DisplayPort clocks style fix/KNF rk3399_cru: implement dclk_vop0_frac and dclk_vop1_frac Move drm_encoder from rkvop(4) to the SoC-layer output pipe drivers (rk_dwhdmi). rkvop: set stride using virtual framebuffer width instead of display mode rk3399_cru: Reparent dclk_vop[01] to gpll via dclk_vop[01]_frac. The previous source of dclk_vop[01] was vpll via dclk_vop[01]_div. vpll is apparently used directly as a pixel clock source for the HDMI PHY, and we don't want the other VOP's dclk changing out from under it because we can't handle finding a replacement clock source with the right rate yet. gpll happens to run at 594MHz, which works well as a basis for pixel clocks. Linux suggests that the source clock of the fractional divider needs to be more than twenty times greater than the resulting clock (or some intermediate clock?) for output stability. This may not be the case with 594MHz and the common pixel clocks I see used by displays in my area of the wild, but it works for now. add Analogix DisplayPort core driver add Rockchip (RK3399) glue for Analogix DisplayPort core add anxdp(4) Add another panel@fdt driver, this time for DRM-style panels. To do: migrate away from other panel driver. enable panel at fdt drivers paper over the rkpwm get_conf function that otherwise doesn't seem to let things work add template bits for optional eDP panel on RockPro64 Abort panel driver attach if required regulator is missing. Add clk provider Add Pinebook Pro dts, from Manjaro Linux. https://gitlab.manjaro.org/tsys/linux-pinebook-pro/blob/877ca0e7283596f37845de50dc36bff5b88b91e1/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts + rk3399-pinebook-pro.dts Attach mmcpwrseq resource earlier dwcmmc improvements: - Use mmcpwrseq resources if available - Only set 4- or 8-bit mode if specified in the dt properties - Add quirk for implementations with inverted power enable logic - Support switching signal voltage between 1.8V and 3.3V - Fix a clock divider issue on Rockchip SoCs Fix performance regression with previous Quiet chatty printfs No need to print all supported levels at attach, print the range and total number of steps Disable SPI for now (rkspi driver hangs at boot) Add driver for simple-audio-amplifier binding Add driver for Everest Semi ES8316 Low Power Audio CODEC add es8316, simpleamp Avoid sleeping while the audio intr lock is held. If the rockchip,system-power-controller property is present, try to power off with the PMIC Add HAILUCK keyboard (product 1e) Add a quirk for the HAILUCK USB keyboard / touchpad device with product 1e. The keyboard does not function properly unless the touchpad's intr endpoint is active. Add driver for CellWise CW2015 Fuel Gauge IC. add cwfg Emit PMFE_DISPLAY_{ON,OFF} events in response to DPMS requests. If the backlight node does not have an enable gpio, set the lowest duty cycle to turn the display off instead. Attach psci as early as possible. This allows other power controllers to register their own poweroff / reset callbacks with a higher preference. Add 2000 MHz to available armclkb rates Remove debug printfs
2020-01-08Pull up following revision(s) (requested by msaitoh in ticket #610):martin
sys/dev/ic/gem.c: revision 1.124 Fix error path in gem(4)'s TX checksum offload. - Avoid accessing free'd m0 on error. Use m_freem() instead of m_free(). Reported by maxv@. - Tested by martin@, macallan@ and jdc@.
2019-12-24Pull up following revision(s) (requested by jmcneill in ticket #576):martin
sys/dev/ic/ahcisata_core.c: revision 1.79 When resetting a drive, if the command list is running and CLO is not supported, attempt to stop the drive first and fail gracefully if that fails instead of triggering a KASSERT on DIAGNOSTIC kernels.
2019-12-18Pull up following revision(s) (requested by tsutsui in ticket #570):martin
sys/compat/netbsd32/netbsd32_compat_50_sysv.c: revision 1.3 sys/dev/raidframe/rf_compat50.h: revision 1.6 sys/arch/emips/emips/bus_space.c: revision 1.3 sys/compat/net/if.h: revision 1.5 sys/arch/emips/stand/common/bootinfo.c: revision 1.2 sys/compat/common/sysv_msg_50.c: revision 1.5 sys/compat/common/kern_time_30.c: revision 1.8 sys/arch/emips/stand/common/bootinfo.h: revision 1.2 sys/arch/ia64/include/bus.h: revision 1.4 sys/arch/ia64/ia64/bus_space.c: revision 1.2 sys/compat/common/sysv_shm_50.c: revision 1.5 sys/dev/ic/adw.h: revision 1.15 sys/compat/common/uipc_syscalls_50.c: revision 1.10 sys/arch/emips/ebus/flash_ebus.c: revision 1.22 sys/dev/ic/adv.h: revision 1.15 sys/dev/ic/adwmcode.c: revision 1.18 sys/dev/ic/advlib.c: revision 1.29 sys/arch/hpcarm/include/kloader.h: revision 1.3 sys/dev/usb/uberry.c: revision 1.16 sys/compat/common/sysv_sem_50.c: revision 1.5 sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.43 sys/dev/ic/advlib.h: revision 1.21 sys/dev/ic/adv.c: revision 1.50 sys/compat/netinet6/in6_var.h: revision 1.5 sys/arch/hpc/stand/hpcboot/arm/arm_sa1100_asm.asm: revision 1.2 sys/arch/emips/include/loadfile_machdep.h: revision 1.3 sys/arch/emips/stand/common/prom_iface.c: revision 1.7 sys/dev/ic/adw.c: revision 1.56 sys/dev/ic/adwmcode.h: revision 1.12 sys/dev/ic/advmcode.c: revision 1.10 sys/arch/emips/ebus/ace_ebus.c: revision 1.22 sys/compat/netbsd32/netbsd32_compat_60.c: revision 1.5 sys/dev/raidframe/rf_compat50.c: revision 1.13 sys/arch/x68k/dev/intiovar.h: revision 1.15 sys/dev/usb/uipad.c: revision 1.8 sys/arch/zaurus/include/kloader.h: revision 1.3 sys/arch/emips/stand/common/bootxx.c: revision 1.2 sys/dev/ic/adwlib.h: revision 1.23 sys/dev/ic/adwlib.c: revision 1.44 sys/compat/netbsd32/netbsd32_compat_16.c: revision 1.3 sys/arch/amigappc/include/intr.h: revision 1.27 sys/arch/x68k/dev/mfp.c: revision 1.27 sys/arch/arm/at91/at91dbgu.c: revision 1.17 sys/dev/ic/advmcode.h: revision 1.7 sys/compat/ultrix/ultrix_exec.h: revision 1.7 sys/compat/common/vfs_syscalls_50.c: revision 1.24 sys/arch/mips/cavium/octeon_dma.c: revision 1.3 sys/arch/hpc/stand/hpcboot/arm/arm_pxa2x0_asm.asm: revision 1.2 Remove clause 3 and 4 from TNF licenses. Ok'ed by martin@ in PR/54760. Remove clause 3 and 4 leftovers from TNF licenses in more sources. Confirmed by martin@ in PR/54760.
2019-12-17Pull up following revision(s) (requested by christos in ticket #569):martin
sys/dev/usb/if_umb.c: revision 1.10 sys/net/if.c: revision 1.466 sys/dev/ic/ath.c: revision 1.129 Protect network ioctls from non-authorized users. (Ilja Van Sprundel)
2019-11-25Pull up following revision(s) (requested by jmcneill in ticket #470):martin
sys/arch/arm/sunxi/sunxi_hdmiphy.c: revision 1.4 sys/arch/arm/sunxi/sun50i_a64_ccu.c: revision 1.16 sys/dev/ic/dw_hdmi.c: revision 1.5 sys/arch/arm/sunxi/sunxi_hdmiphy.h: revision 1.2 sys/arch/arm/sunxi/sun50i_a64_ccu.c: revision 1.17 sys/dev/ic/dw_hdmi.c: revision 1.6 sys/arch/arm/sunxi/sun50i_a64_ccu.c: revision 1.18 sys/arch/arm/sunxi/sun50i_a64_ccu.c: revision 1.19 sys/dev/ic/dw_hdmi.h: revision 1.5 sys/arch/arm/sunxi/sunxi_mixer.c: revision 1.8 sys/arch/arm/sunxi/sunxi_mixer.c: revision 1.9 sys/arch/arm/sunxi/sunxi_ccu.h: revision 1.22 sys/arch/arm/sunxi/sunxi_dwhdmi.c: revision 1.5 sys/arch/arm/sunxi/sunxi_dwhdmi.c: revision 1.6 sys/arch/arm/sunxi/sunxi_dwhdmi.c: revision 1.7 sys/arch/arm/sunxi/sunxi_dwhdmi.c: revision 1.8 sys/arch/arm/sunxi/sun50i_a64_ccu.c: revision 1.20 sys/arch/arm/sunxi/sunxi_mixer.c: revision 1.10 sys/arch/arm/dts/sun50i-a64-pinebook.dts: revision 1.17 sys/arch/arm/sunxi/sunxi_platform.c: revision 1.38 sys/dev/fdt/fdt_port.c: revision 1.3 sys/dev/fdt/fdt_port.c: revision 1.4 sys/arch/arm/sunxi/sunxi_ccu_fractional.c: revision 1.5 sys/arch/arm/sunxi/sunxi_lcdc.c: revision 1.7 sys/arch/arm/sunxi/sunxi_ccu_fractional.c: revision 1.6 sys/arch/arm/sunxi/sunxi_hdmiphy.c: revision 1.3 Fix CLK_BUS_HDMI bit Enable TMDS clock Store the flags passed to SUNXI_CCU_FRACTIONAL macro. Previously the macro dropped the flags argument entirely, and did not initialize the structure with it. Allow bus glue to setup DDC clocks Add TCON0 clock HDMI PHY and TX share the same clocks. Do not enable clocks until both reset resources have been deasserted. Explicitly set DDC clock dividers. Honour SUNXI_CCU_FRACTIONAL_SET_ENABLE in fractional mode Use fdtbus_get_reg to read "reg" property Need to initialize the PHY before HPD sense and DDC will work Set pixel clock on mode set Set TCON1 parent to PLL_VIDEO1(1X) Do not assume that an fb's pitch is width * 4 bytes. Use actual hw mode, not proposed mode. Set pre-divider M to 0 in fractional mode, as noted in user manual. Spotted by jak. Support non-zero fb start pixels. Set video PLLs to 297MHz Do not assume the cursor pitch is the same as the primary fb Enable HDMI and HDMI audio Try to avoid changing hardware settings when the "nomodeset" kernel arg is present.
2019-11-16Pull up following revision(s) (requested by jmcneill in ticket #427):martin
sys/dev/ic/dw_hdmi_phy.c: revision 1.2 sys/dev/ic/dw_hdmi.c: revision 1.4 sys/dev/fdt/ausoc.c: revision 1.5 sys/dev/ic/dw_hdmi.h: revision 1.2 sys/dev/ic/dw_hdmi.h: revision 1.3 sys/dev/ic/dw_hdmi.h: revision 1.4 sys/conf/files: revision 1.1242 sys/dev/fdt/fdtvar.h: revision 1.57 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.11 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.12 sys/arch/arm/rockchip/rk3399_cru.c: revision 1.13 sys/arch/evbarm/conf/GENERIC64: revision 1.110 sys/arch/arm/rockchip/rk_drm.c: revision 1.1 sys/arch/arm/rockchip/rk_drm.c: revision 1.2 sys/arch/evbarm/conf/GENERIC64: revision 1.112 sys/arch/arm/rockchip/rk_dwhdmi.c: revision 1.1 sys/dev/fdt/fdt_clock.c: revision 1.10 sys/arch/evbarm/conf/GENERIC64: revision 1.113 sys/arch/arm/rockchip/rk_dwhdmi.c: revision 1.2 sys/arch/arm/rockchip/rk_drm.h: revision 1.1 sys/arch/arm/rockchip/rk_dwhdmi.c: revision 1.3 sys/arch/arm/rockchip/rk_fb.c: revision 1.1 sys/arch/arm/dts/rk3399-rockpro64.dts: revision 1.9 sys/arch/arm/rockchip/rk_vop.c: revision 1.1 sys/arch/arm/rockchip/rk_vop.c: revision 1.2 sys/arch/arm/rockchip/rk_i2c.c: revision 1.6 sys/arch/arm/rockchip/rk_cru.h: revision 1.6 sys/arch/arm/rockchip/rk_cru.h: revision 1.7 sys/arch/arm/rockchip/rk_cru_composite.c: revision 1.4 sys/arch/arm/rockchip/rk_cru_composite.c: revision 1.5 sys/arch/arm/rockchip/files.rockchip: revision 1.21 sys/arch/arm/rockchip/rk_i2s.c: revision 1.1 sys/arch/arm/rockchip/files.rockchip: revision 1.22 sys/dev/ic/dw_hdmi.c: revision 1.2 sys/dev/ic/dw_hdmi_phy.c: revision 1.1 sys/dev/ic/dw_hdmi.c: revision 1.3 Support reads of more than 32 bytes in a single xfer. Add support for internal DesignWare HDMI PHYs Add fdtbus_clock_enable and fdtbus_clock_enable_index shortcuts Add HDMI and VOP clocks WIP display driver for Rockchip RK3399 Add (commented out) Rockchip display support Select the correct MPLL and PHY settings for the requested pixel clock Force DCLK_VOP0/1 dividers to 1 and select closest match when setting PLL rates. Fix typo in phy config table Fix a few swapped fields Remove debug output Enable Rockchip display support Set sysclk rate at set_format time, so the link set_format callback can read the new sysclk Add I2S audio input support. Add software volume controls. Add support for I2S clocks. Add driver for Rockchip I2S/PCM controller. Enable HDMI audio on ROCKPro64 Add rki2s Add audio support
2019-11-11Pull up following revision(s) (requested by nonaka in ticket #415):martin
sys/dev/ic/nvme.c: revision 1.47 nvme(4): Use the SET_FEATURES command to get the number of allocated queues.
2019-11-06Pull up following revision(s) (requested by msaitoh in ticket #403):martin
sys/arch/arm/broadcom/bcm53xx_eth.c: revision 1.39 sys/dev/pcmcia/if_xi.c: revision 1.91 sys/dev/ic/aic6915.c: revision 1.40 sys/dev/pci/if_tl.c: revision 1.117 sys/arch/arm/gemini/gemini_gmac.c: revision 1.18 sys/dev/ic/elinkxl.c: revision 1.133 sys/dev/pci/if_ste.c: revision 1.57 sys/dev/pci/if_alc.c: revision 1.43 sys/dev/pci/if_stge.c: revision 1.72 sys/dev/pci/if_ale.c: revision 1.34 sys/dev/pci/if_age.c: revision 1.62 sys/dev/pci/if_txp.c: revision 1.60 sys/dev/ic/i82557.c: revision 1.156 sys/dev/pci/if_vte.c: revision 1.27 sys/arch/powerpc/booke/dev/pq3etsec.c: revision 1.47 sys/arch/arm/gemini/if_gpn.c: revision 1.13 if_percpuq(9) and ether_input() automatically increment if_ipackets, so don't add number of RX frames from device's statistics counter to if_ipackets to avoid double count.
2019-10-28Pull up following revision(s) (requested by mlelstv in ticket #383):martin
sys/dev/ic/ld_nvme.c: revision 1.23 Don't attach an ld device if the format descriptor is unsupported/unused.
2019-10-23Pull up following revision(s) (requested by msaitoh in ticket #371):martin
sys/dev/ic/i82586.c: revision 1.86 sys/arch/arm/ep93xx/epe.c: revision 1.45 sys/dev/pcmcia/if_cnw.c: revision 1.66 sys/arch/mac68k/nubus/if_netdock_nubus.c: revision 1.31 sys/arch/arm/sunxi/sunxi_can.c: revision 1.2 sys/dev/qbus/if_il.c: revision 1.36 sys/dev/pcmcia/if_ray.c: revision 1.95 sys/dev/qbus/if_qt.c: revision 1.24 if_ipackets is incremented in can_input(), so don't increment it in sunxi_can_rx_intr to prevent double count. OK'd by bouyer@. if_percpuq(9) automatically increments if_ipackets, so don't increment it in the driver itself to prevent double count.
2019-10-23Pull up following revision(s) (requested by jdolecek in ticket #357):martin
sys/dev/ic/ahcisata_core.c: revision 1.76 Ensure cmdh_prdtl is 0 in ahci_do_reset_drive(). (I'm probably just being paranoid here.)
2019-10-16Pull up following revision(s) (requested by maxv in ticket #336):martin
sys/dev/isa/tpm_isa.c: revision 1.6 sys/dev/ic/tpm.c: revision 1.16 sys/dev/isa/tpm_isa.c: revision 1.7 sys/dev/acpi/tpm_acpi.c: revision 1.10 sys/dev/acpi/tpm_acpi.c: revision 1.11 sys/dev/ic/tpmreg.h: revision 1.5 sys/dev/ic/tpmreg.h: revision 1.6 sys/dev/acpi/tpm_acpi.c: revision 1.9 sys/dev/ic/tpmvar.h: revision 1.5 sys/dev/ic/tpmvar.h: revision 1.6 sys/dev/ic/tpmvar.h: revision 1.7 sys/dev/ic/tpm.c: revision 1.14 share/man/man4/tpm.4: revision 1.5 sys/dev/isa/tpm_isa.c: revision 1.5 sys/dev/ic/tpm.c: revision 1.15 Improvements in tpm(4): - Remove interrupt support, do polling only, avoids unnecessary trouble. - Simplify a few things. - Fix the suspend function, the SaveState command is 0x98, not 0x9C. - Make the driver MP-safe. - Sync the man page with reality. - Add suspend support for TPM 2.0 chips. Check the TPM response also for 1.2 chips. Unfortunately I cannot really test this change since ACPI suspend does not work on any of my laptops. - Provide a better abstraction for the TPM interface. Report it in the ioctl.
2019-09-26Pull up following revision(s) (requested by nonaka in ticket #248):martin
sys/dev/ic/nvme.c: revision 1.46 nvme(4): Don't attach the device, if namespace not found.
2019-09-23Pull up following revision(s) (requested by tsutsui in ticket #232):martin
sys/arch/evbppc/mpc85xx/wdc_obio.c: revision 1.7 sys/arch/dreamcast/dev/g1/wdc_g1.c: revision 1.4 sys/arch/dreamcast/dev/g1/wdc_g1.c: revision 1.5 sys/arch/mmeye/dev/wdc_mainbus.c: revision 1.7 sys/dev/ic/wdcvar.h: revision 1.99 sys/dev/ic/wdc.c: revision 1.292 sys/arch/mips/adm5120/dev/wdc_extio.c: revision 1.11 adjust several missed drivers for wdcprobe() changes of ATA NCQ branch for dreamcast g1 just drop the custom reset function, it doesn't seem to do anything useful over the generic variant PR kern/54538 by Izumi Tsutsui Restore interface to pass a MD reset function to MI wdcprobe(). Fixes silent hang on G1IDE on Dreamcast. PR kern/54538 Should be pulled up to netbsd-9 with the previous changes.
2019-09-22Pull up following revision(s) (requested by nonaka in ticket #218):martin
sys/dev/ic/nvme.c: revision 1.45 Don't set Phase Tag bit of Completion Queue entry at nvme_poll_done(). A new completion queue entry check incorrectly determined that there was a Completion Queue entry for a command that was not submitted. Fix PR kern/54275, PR kern/54503, PR kern/54532.
2019-09-22Pull up following revision(s) (requested by maxv in ticket #217):martin
sys/dev/ic/i82557.c: revision 1.155 Fix direction of the loop.
2019-09-01Pull up following revision(s) (requested by mrg in ticket #135):martin
distrib/sets/lists/comp/mi 1.2279 distrib/sets/lists/modules/mi 1.123 share/man/man9/Makefile 1.438 share/man/man9/usbnet.9 1.1-1.9 sys/dev/ic/rndisreg.h 1.3 sys/dev/usb/TODO 1.47-1.52 sys/dev/usb/TODO.usbmp 1.15,1.16 sys/dev/usb/files.usb 1.157-1.167 sys/dev/usb/if_aue.c 1.155-1.161 sys/dev/usb/if_auereg.h 1.30-1.32 sys/dev/usb/if_axe.c 1.103-1.119 sys/dev/usb/if_axen.c 1.51-1.53,1.55-1.67 sys/dev/usb/if_axenreg.h 1.15 sys/dev/usb/if_cdce.c 1.54-1.67 sys/dev/usb/if_cue.c 1.85,1.86 sys/dev/usb/if_cuereg.h 1.23 sys/dev/usb/if_kue.c 1.97-1.100 sys/dev/usb/if_kuereg.h 1.23,1.24 sys/dev/usb/if_mue.c 1.51-1.55 sys/dev/usb/if_muereg.h 1.6 sys/dev/usb/if_muevar.h 1.9 sys/dev/usb/if_smsc.c 1.46-1.61 sys/dev/usb/if_smscreg.h 1.6 sys/dev/usb/if_smscvar.h delete sys/dev/usb/if_udav.c 1.60-1.71 sys/dev/usb/if_udavreg.h 1.14,1.15 sys/dev/usb/if_upl.c 1.65,1.66 sys/dev/usb/if_ure.c 1.15-1.31 sys/dev/usb/if_urevar.h 1.4,1.5 sys/dev/usb/if_url.c 1.67-1.70 sys/dev/usb/if_urlreg.h 1.14 sys/dev/usb/if_urndis.c 1.22-1.33 sys/dev/usb/if_urtwn.c 1.72 sys/dev/usb/ohci.c 1.290 sys/dev/usb/uhub.c 1.143 sys/dev/usb/usb.c 1.180 sys/dev/usb/usb.h 1.118 sys/dev/usb/usb_mem.c 1.71 sys/dev/usb/usb_subr.c 1.238,1.239 sys/dev/usb/usbdevs 1.772 sys/dev/usb/usbdi.c 1.183,1.186 sys/dev/usb/usbdi.h 1.97 sys/dev/usb/usbdi_util.c 1.75 sys/dev/usb/usbhist.h 1.5,1.6 sys/dev/usb/usbnet.c 1.1-1.24 sys/dev/usb/usbnet.h 1.1-1.14 sys/dev/usb/usbroothub.c 1.9 sys/dev/usb/xhci.c 1.109,1.110 sys/modules/Makefile 1.223 sys/modules/usbnet/Makefile 1.1 usbnet(9): Add common framework for USB network devices. This bring various safety fixes to all updated drivers, and includes locking clean up, detach safety when being used or not, separate rx/tx locks to improve performance, porting to NET_MPSAFE, many edge/error case bugs in drivers fixed, as well as resovling PRs 54303 and 54308. These drivers are converted: axe(4), axen(4), aue(4), cdce(4), cue(4), kue(4), mue(4), smsc(4), udav(4), upl(4), ure(4), url(4), and urndis(4).
2019-07-29sys/dev/ic/mfi.c: Add missing break in switchgdt
(The entire switch is guarded by MFI_DEBUG and is known not to build.) Reported by Oskar.
2019-07-28Fix infinite loop in dwc_mmc_exec_command error pathjmcneill
2019-07-25 Avoid undefined behavior. Found by KUBSan.msaitoh
2019-07-25 Avoid undefined behavior. Found by KUBSan. Some of errors are still remaining.msaitoh
2019-07-21Fix panic due to inconsistent lock states of tty_lock in zsparam().rin
Tested on mac68k.
2019-07-21move DWCGMAC_MPSAFE into dwc_gmac_var.h and introduce anmrg
additional define that is 0 or FDT_INTR_MPSAFE that the frontends can use when passing to fdtbus_intr_establish(). with NET_MPSAFE enabled, this avoids hangs seen on rock64, as well as finishing the MPSAFE port for this driver. XXX: still don't know why the existing hangs occur.
2019-07-10 Identify Nuvoton NCT6798D correctly. It seems that the bit width of NCT6796Dmsaitoh
and newer devices' device ID is 13bit. The previous series was 12bits.
2019-07-09 Don't automatically set ec_capenable's ETHERCAP_VLAN_HWTAGGING bit inmsaitoh
vlan_config() to make it user-controllable. Instead, set the bit in xxx_attach().
2019-07-08 Add rnd(9) support.msaitoh