Re: [PATCH] usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Nov 02, 2019 at 06:39:45PM +0000, Peter Robinson wrote:
> On Sat, Nov 2, 2019 at 5:43 PM Thierry Reding <thierry.reding@xxxxxxxxx> wrote:
> >
> > On Sat, Nov 02, 2019 at 05:26:06PM +0000, Peter Robinson wrote:
> > > Set the MODULE_FIRMWARE for tegra186, it's registered for 124/210 and
> > > ensures the firmware is available at the appropriate time such as in
> > > the initrd, else if the firmware is unavailable the driver fails with
> > > the following errors:
> >
> > So the MODULE_FIRMWARE macro alone does not ensure that the firmware is
> > in the correct location, right? Rather, it's the tools that construct
> > the initial ramdisk that make use of the information added by the
> > MODULE_FIRMWARE macro to determine whether or not the firmware needs to
> > be included in the initial ramdisk or not.
> 
> It works for tegra124 and tegra210, the patches for tegra194 have it
> as well, I have no idea why it was left out for the tegra186. On
> Fedora the 124/210 firmwares get pulled into the initrd when the
> xhci_tegra and deps do but the 186 doesn't, if you "rmmod xhci_tegra;
> modprobe xhci_tegra" once booted it works fine.

Sorry if I wasn't being clear. I'm not debating the correctness of the
patch, it obviously was just left out and probably not noticed because
nobody that tested this either wasn't building this into the kernel or
manually added the firmware to the initial ramdisk.

I was just trying to point out that merely adding MODULE_FIRMWARE does
not cause the firmware to be installed in the initial ramdisk. You still
need some tool looking at the information added by MODULE_FIRMWARE and
then copying the corresponding image to the initial ramdisk at its
creation.

Thierry

> > > tegra-xusb 3530000.usb: Direct firmware load for nvidia/tegra186/xusb.bin failed with error -2
> > > tegra-xusb 3530000.usb: failed to request firmware: -2
> > > tegra-xusb 3530000.usb: failed to load firmware: -2
> > > tegra-xusb: probe of 3530000.usb failed with error -2
> > >
> > > Fixes: 5f9be5f3f899 ("usb: host: xhci-tegra: Add Tegra186 XUSB support")
> > > Fixes: 488a04d4bb2f ("arm64: tegra: Enable XUSB host controller on Jetson TX2")
> > > Signed-off-by: Peter Robinson <pbrobinson@xxxxxxxxx>
> > > ---
> > >  drivers/usb/host/xhci-tegra.c | 1 +
> > >  1 file changed, 1 insertion(+)
> >
> > The commit message is slightly misleading, but I guess it's ultimately
> > correct if you run standard tools to generate the initial ramdisk, so:
> >
> > Acked-by: Thierry Reding <treding@xxxxxxxxxx>
> >
> > > diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
> > > index 2ff7c911fbd0..d25aba8fa219 100644
> > > --- a/drivers/usb/host/xhci-tegra.c
> > > +++ b/drivers/usb/host/xhci-tegra.c
> > > @@ -1433,6 +1433,7 @@ static const struct tegra_xusb_soc tegra186_soc = {
> > >       .scale_ss_clock = false,
> > >       .has_ipfs = false,
> > >  };
> > > +MODULE_FIRMWARE("nvidia/tegra186/xusb.bin");
> > >
> > >  static const struct of_device_id tegra_xusb_of_match[] = {
> > >       { .compatible = "nvidia,tegra124-xusb", .data = &tegra124_soc },
> > > --
> > > 2.23.0
> > >

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux