On Wed, 2018-12-19 at 14:35 -0500, Anthony Jenkins wrote: > On 12/19/18 10:41 AM, Anthony Jenkins wrote: > > > > [snip] > > > > I'm not feeling too confident about the condition of the FreeBSD > > ig4 > > driver; the PCI attach code was calling pci_alloc_msi() wrong, > > passing > > a pointer to the rid (0) instead of a pointer to a count variable, > > and > > not passing bus_alloc_resource_any() an IRQ rid > 0 if it has an > > MSI. > > I'd be happy(er) if ig4 created a /dev/iic0 node - I figured > > iicbus(4) > > took care of all that... > > > > https://github.com/ScoobiFreeBSD/freebsd-intel-lpss > > > Found it! I didn't declare ig4_iic to include the ig4_lpss as a > sub-device. Now it at least /looks/ like I'm getting I2C devices > found > on both my DesignWare I2C busses. > > diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c > index 6bbe417..34c1adb 100644 > --- a/sys/dev/ichiic/ig4_iic.c > +++ b/sys/dev/ichiic/ig4_iic.c > _at__at_ -802,3 +802,4 _at__at_ ig4iic_dump(ig4iic_softc_t *sc) > > DRIVER_MODULE(iicbus, ig4iic_acpi, iicbus_driver, iicbus_devclass, > NULL, NULL); > DRIVER_MODULE(iicbus, ig4iic_pci, iicbus_driver, iicbus_devclass, > NULL, NULL); > +DRIVER_MODULE(iicbus, ig4iic_lpss, iicbus_driver, iicbus_devclass, > NULL, NULL); That new DRIVER_MODULE() statement should be in your new driver, not in ig4_iic.c. Those other two statements should also be moved into their corresponding source code files. At least, that's the precedent followed by all the i2c controller drivers except ig4_iic: the DRIVER_MODULE() statement that establishes the connection between iicbus and the controller lives right alongside the DRIVER_MODULE() statement that establishes the connection between the controller and the bus it sits on. See, for example: sys/dev/glxiic/glxiic.c sys/dev/iicbus/iicoc.c -- IanReceived on Wed Dec 19 2018 - 19:01:47 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:19 UTC