On Thu, Jan 23, 2020 at 2:10 PM Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> wrote: > > On Thu, Jan 23, 2020 at 01:58:22PM +0100, Arnd Bergmann wrote: > > On Thu, Jan 23, 2020 at 12:18 PM Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> wrote: > > > > I don't see any callers of mhi_register_controller(). Did I just miss it or did > > you not post one? I'm particularly interested in where the configuration comes > > from, is this hardcoded in the driver, or parsed from firmware or from registers > > in the hardware itself? > > > > I have not included the controller driver in this patchset. But you can take a > look at the ath11k controller driver here: > https://git.linaro.org/people/manivannan.sadhasivam/linux.git/tree/drivers/net/wireless/ath/ath11k/mhi.c?h=ath11k-qca6390-mhi#n13 > > So the configuration comes from the static structures defined in the controller > driver. Earlier revision derived the configuration from devicetree but there are > many cases where this MHI bus is being used in non DT environments like x86. > So inorder to be platform agnostic, we chose static declaration method. > > In future we can add DT/ACPI support for the applicable parameters. What determines the configuration? Is this always something that is fixed in hardware, or can some of the properties be changed based on what firmware runs the device? If this is determined by the firmware, maybe the configuration would also need to be loaded from the file that contains the firmware, which in turn could be a blob in DT. Arnd