Messages in this thread | | | From | Kai-Heng Feng <> | Date | Fri, 15 Sep 2017 21:46:31 -0700 | Subject | Re: [PATCH] firmware: add firmware to new device's devres list for second time cache |
| |
On Tue, Aug 22, 2017 at 12:52 AM, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: > Currently, firmware will only be chached if assign_firmware_buf() gets > called. > > When a device loses its power or a USB device gets plugged to another > port under suspend, request_firmware() can still find cached firmware, > but firmware name no longer associates with the new device's devres. > So next time the system suspend, those firmware won't be cached. > > Hence, we should add the firmware name to the devres when the firmware > is found in cache, to make the firmware cacheable next time. > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > drivers/base/firmware_class.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c > index bfbe1e154128..a99de34e3fdc 100644 > --- a/drivers/base/firmware_class.c > +++ b/drivers/base/firmware_class.c > @@ -1177,6 +1177,10 @@ _request_firmware_prepare(struct firmware **firmware_p, const char *name, > > ret = fw_lookup_and_allocate_buf(name, &fw_cache, &buf, dbuf, size); > > + /* device might be a new one, add it to devres list */ > + if (ret == 0 || ret == 1) > + fw_add_devm_name(device, name); > + > /* > * bind with 'buf' now to avoid warning in failure path > * of requesting firmware. > -- > 2.14.1 >
*A gentle ping here*
| |