On Thu, 12 Aug 2021, Greg KH wrote: > On Thu, Aug 12, 2021 at 11:45:45AM +0200, Fabio M. De Francesco wrote: > > Hi Greg, > > > > On Monday, August 9, 2021 10:44:23 AM CEST Greg KH wrote: > > > On Mon, Aug 09, 2021 at 10:15:29AM +0200, Oliver Neukum wrote: > > > > On 09.08.21 09:58, Muni Sekhar wrote: > > > > > Hi all, > > > > > > > > > > PCIe memory mapped registers can be read via readb(), readw(), readl() > > > > > kernel API's. Similarly what are the kernel API to read the device > > > > > registers via USB bus > > > > > > > > [...] > > > > > > > > I hope this list stays friendly to newcomers and we will answer > > > > specific questions, but at this point I must advise you to first > > > > read an introductory book. > > > > > > Along these lines, take a look at the book, Linux Device Drivers, third > > > edition, which is free online, as it has a chapter about USB drivers and > > > how they work. That should help you out to understand the issues > > > involved with USB devices. > > > > > I've heard that your book, LDD 3rd edition, has become obsolete a long time > > ago and most sample code cannot anymore build. Reading what you wrote above > > seems to contradict what I've been told by others... I must admit that I've > > just had a print copy of it that I have not yet opened for reading, therefore > > maybe that I'm totally wrong in assuming the above. > > Look into it and see the differences, it's not hard to notice. > > And the code samples are all up to date online on github somewhere, > there's people keeping them alive if you want to track them down, > but really, just look at the in-kernel drivers for better examples > of real drivers. it's possibly worth mentioning that a chap named javier martinez has been doing a decent job of upgrading the examples from LDD3 to keep up with current kernel development: https://github.com/martinezjavier/ldd3 of course, those examples won't match the explanations in the book anymore, but still, worth perusing. rday