hpt37x_init_one(9)
π NAME π
okay so bestie, this is hpt37x_init_one β it literally initialises an HPT37X/302. that's the whole vibe. main character energy for your HPT37x chip fr fr.
(this lil page lives in the Kernel API Manual, in case you were wondering π)
β¨ SYNOPSIS β¨
int hpt37x_init_one (struct pci_dev *dev , const struct pci_device_id *id );
πΈ ARGUMENTS πΈ
devβ the PCI device. like, the actual hardware we're doing a vibe check on πidβ the entry in the match table. it's giving "which chip are you, bestie?" energy π₯
π¦ DESCRIPTION π¦
so we're initialising an HPT37x device. no cap, there are some interesting complications here π
firstly: the chip might report 366 and still be one of several variants. literally a "who am I really" moment π
secondly: all the timings depend on the clock for the chip, and we have to detect it and look it up. ngl, we must clock the clock π
here's the known chip mapping, bestie β this is the tea β it may be missing a couple of later releases, so don't come for me if your fave isn't here π
- HPT366 β PCI
4 (HPT366), Rev0, Notes: Other driver - HPT366 β PCI
4 (HPT366), Rev1, Notes: Other driver - HPT368 β PCI
4 (HPT366), Rev2, Notes: Other driver - HPT370 β PCI
4 (HPT366), Rev3, Notes: UDMA100 - HPT370A β PCI
4 (HPT366), Rev4, Notes: UDMA100 - HPT372 β PCI
4 (HPT366), Rev5, Notes: UDMA133 (1) - HPT372N β PCI
4 (HPT366), Rev6, Notes: Other driver - HPT372A β PCI
5 (HPT372), Rev1, Notes: UDMA133 (1) - HPT372N β PCI
5 (HPT372), Rev2, Notes: Other driver - HPT302 β PCI
6 (HPT302), Rev1, Notes: UDMA133 - HPT302N β PCI
6 (HPT302), Rev2, Notes: Other driver - HPT371 β PCI
7 (HPT371), Rev*, Notes: UDMA133 - HPT374 β PCI
8 (HPT374), Rev*, Notes: UDMA133 4 channel - HPT372N β PCI
9 (HPT372N), Rev*, Notes: Other driver
(1) UDMA133 support depends on the bus clock. periodt. don't forget it π
π SEE ALSO π
the kernel file ./drivers/ata/pata_hpt37x.c β go read it, it ate π
and the whole friend group of functions, all iconic, all (9):
hpt37x_find_mode(9)hpt370_filter(9)hpt370a_filter(9)hpt372_filter(9)hpt37x_cable_detect(9)hpt374_fn1_cable_detect(9)hpt37x_pre_reset(9)hpt37x_set_piomode(9)hpt37x_set_dmamode(9)hpt370_bmdma_stop(9)hpt37x_bmdma_stop(9)hpt37x_clock_slot(9)hpt37x_calibrate_dpll(9)
aaaand that's the page, bestie π«Ά straight outta ./drivers/ata, dated October 2026 β slay, go init that chip πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms