* Re: [PATCH 8/9] ath10k: use request_firmware_nowarn to load firmware [not found] ` <20180417153307.3693-9-andresx7@gmail.com> @ 2018-04-20 10:19 ` Kalle Valo 0 siblings, 0 replies; 6+ messages in thread From: Kalle Valo @ 2018-04-20 10:19 UTC (permalink / raw) To: Andres Rodriguez Cc: linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, arend.vanspriel, linux-wireless, ath10k (adding linux-wireless and ath10k lists) Andres Rodriguez <andresx7@gmail.com> writes: > This reduces the unnecessary spew when trying to load optional firmware: > "Direct firmware load for ... failed with error -2" > > Signed-off-by: Andres Rodriguez <andresx7@gmail.com> > --- > drivers/net/wireless/ath/ath10k/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Acked-by: Kalle Valo <kvalo@codeaurora.org> But I think it would be good to change also request_firmware_direct() in ath10k/testmode.c to request_firmware_nowarn(). -- Kalle Valo ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20180417153307.3693-10-andresx7@gmail.com>]
* Re: [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings [not found] ` <20180417153307.3693-10-andresx7@gmail.com> @ 2018-04-20 10:26 ` Kalle Valo 2018-04-20 19:33 ` Andres Rodriguez 2018-04-21 8:04 ` Arend van Spriel 0 siblings, 2 replies; 6+ messages in thread From: Kalle Valo @ 2018-04-20 10:26 UTC (permalink / raw) To: Andres Rodriguez Cc: linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, arend.vanspriel, linux-wireless Andres Rodriguez <andresx7@gmail.com> writes: > This reduces the unnecessary spew when trying to load optional firmware: > "Direct firmware load for ... failed with error -2" > > Signed-off-by: Andres Rodriguez <andresx7@gmail.com> > --- > drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) With wireless patches always CC linux-wireless list, please. Adding it now. > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c > index 091b52979e03..26db3ebd52dc 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c > @@ -503,8 +503,9 @@ static void brcmf_fw_request_code_done(const struct firmware *fw, void *ctx) > goto done; > > fwctx->code = fw; > - ret = request_firmware_nowait(THIS_MODULE, true, fwctx->nvram_name, > - fwctx->dev, GFP_KERNEL, fwctx, > + ret = request_firmware_nowait(THIS_MODULE, true, false, A perfect example why enums should be in function calls instead of booleans, that "true, false" tells nothing to me and it would be time consuming to check from headers files what it means. If you had proper enums, for example "FIRMWARE_MODE_FOO, FIRMWARE_STATE_BAR", it would be immediately obvious for the reader what the parameters are. Of course the first boolean was already there before, but maybe change the new boolean to an enum? > + fwctx->nvram_name, fwctx->dev, > + GFP_KERNEL, fwctx, > brcmf_fw_request_nvram_done); > > /* pass NULL to nvram callback for bcm47xx fallback */ > @@ -547,7 +548,7 @@ int brcmf_fw_get_firmwares_pcie(struct device *dev, u16 flags, > fwctx->domain_nr = domain_nr; > fwctx->bus_nr = bus_nr; > > - return request_firmware_nowait(THIS_MODULE, true, code, dev, > + return request_firmware_nowait2(THIS_MODULE, true, false, code, dev, > GFP_KERNEL, fwctx, > brcmf_fw_request_code_done); > } Also the number two in the function name is not really telling anything. I think that something like request_firmware_nowait_nowarn() would be better, even if it's so ugly. -- Kalle Valo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings 2018-04-20 10:26 ` [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings Kalle Valo @ 2018-04-20 19:33 ` Andres Rodriguez 2018-04-21 7:19 ` Kalle Valo 2018-04-21 8:04 ` Arend van Spriel 1 sibling, 1 reply; 6+ messages in thread From: Andres Rodriguez @ 2018-04-20 19:33 UTC (permalink / raw) To: Kalle Valo Cc: andresx7, linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, arend.vanspriel, linux-wireless On 2018-04-20 06:26 AM, Kalle Valo wrote: > Andres Rodriguez <andresx7@gmail.com> writes: > >> This reduces the unnecessary spew when trying to load optional firmware: >> "Direct firmware load for ... failed with error -2" >> >> Signed-off-by: Andres Rodriguez <andresx7@gmail.com> >> --- >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) > > With wireless patches always CC linux-wireless list, please. Adding it > now. > >> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> index 091b52979e03..26db3ebd52dc 100644 >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> @@ -503,8 +503,9 @@ static void brcmf_fw_request_code_done(const struct firmware *fw, void *ctx) >> goto done; >> >> fwctx->code = fw; >> - ret = request_firmware_nowait(THIS_MODULE, true, fwctx->nvram_name, >> - fwctx->dev, GFP_KERNEL, fwctx, >> + ret = request_firmware_nowait(THIS_MODULE, true, false, > > A perfect example why enums should be in function calls instead of > booleans, that "true, false" tells nothing to me and it would be time > consuming to check from headers files what it means. If you had proper > enums, for example "FIRMWARE_MODE_FOO, FIRMWARE_STATE_BAR", it would be > immediately obvious for the reader what the parameters are. Of course > the first boolean was already there before, but maybe change the new > boolean to an enum > Anyone else got any feedback before I re-spin the _nowait() API. I'm on board for the boolean->enum change. >> + fwctx->nvram_name, fwctx->dev, >> + GFP_KERNEL, fwctx, >> brcmf_fw_request_nvram_done); >> >> /* pass NULL to nvram callback for bcm47xx fallback */ >> @@ -547,7 +548,7 @@ int brcmf_fw_get_firmwares_pcie(struct device *dev, u16 flags, >> fwctx->domain_nr = domain_nr; >> fwctx->bus_nr = bus_nr; >> >> - return request_firmware_nowait(THIS_MODULE, true, code, dev, >> + return request_firmware_nowait2(THIS_MODULE, true, false, code, dev, >> GFP_KERNEL, fwctx, >> brcmf_fw_request_code_done); >> } > > Also the number two in the function name is not really telling anything. > I think that something like request_firmware_nowait_nowarn() would be > better, even if it's so ugly. > The 2 is meant to signify that this is an new version of the api with different parameters. I don't think we need to codify into the name what the new parameters mean (mostly because when a 2 version of an api is implemented, usage of the original version tends to be discouraged). If we go for something like _nowait_nowarn(), then we would need to drop the warn parameter altogether. Another alternative, drop both bool warn and bool uevent and expose take in enum fw_opt directly. Any thought on exposing the enum directly Luis for _nowait(). I know you mentioned this was for some reason decided against for the rest of the API. Regards, Andres ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings 2018-04-20 19:33 ` Andres Rodriguez @ 2018-04-21 7:19 ` Kalle Valo 0 siblings, 0 replies; 6+ messages in thread From: Kalle Valo @ 2018-04-21 7:19 UTC (permalink / raw) To: Andres Rodriguez Cc: linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, arend.vanspriel, linux-wireless Andres Rodriguez <andresx7@gmail.com> writes: >>> + fwctx->nvram_name, fwctx->dev, >>> + GFP_KERNEL, fwctx, >>> brcmf_fw_request_nvram_done); >>> /* pass NULL to nvram callback for bcm47xx fallback */ >>> @@ -547,7 +548,7 @@ int brcmf_fw_get_firmwares_pcie(struct device *dev, u16 flags, >>> fwctx->domain_nr = domain_nr; >>> fwctx->bus_nr = bus_nr; >>> - return request_firmware_nowait(THIS_MODULE, true, code, dev, >>> + return request_firmware_nowait2(THIS_MODULE, true, false, code, dev, >>> GFP_KERNEL, fwctx, >>> brcmf_fw_request_code_done); >>> } >> >> Also the number two in the function name is not really telling anything. >> I think that something like request_firmware_nowait_nowarn() would be >> better, even if it's so ugly. >> > > The 2 is meant to signify that this is an new version of the api with > different parameters. Ah, I missed that. I didn't have time to review your patches in detail, just looked at the wireless patches. > I don't think we need to codify into the name what the new parameters > mean (mostly because when a 2 version of an api is implemented, usage > of the original version tends to be discouraged). Yeah, makes sense now. -- Kalle Valo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings 2018-04-20 10:26 ` [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings Kalle Valo 2018-04-20 19:33 ` Andres Rodriguez @ 2018-04-21 8:04 ` Arend van Spriel 2018-04-23 13:54 ` Kalle Valo 1 sibling, 1 reply; 6+ messages in thread From: Arend van Spriel @ 2018-04-21 8:04 UTC (permalink / raw) To: Kalle Valo, Andres Rodriguez Cc: linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, linux-wireless On 4/20/2018 12:26 PM, Kalle Valo wrote: > Andres Rodriguez <andresx7@gmail.com> writes: > >> This reduces the unnecessary spew when trying to load optional firmware: >> "Direct firmware load for ... failed with error -2" So what happened with the request_firmware_nowarn() api (discussed in another thread). Did it get lost with your kidney stones ;-) ? It seems we start having the same discussion about the asynchronous variant as well here which is a bit counter productive. Let's get back to the issue of the message above. So when is the message unnecessary. To me there are actually to cases in which the message can confuse people searching the log for hints on a issue they have with a device. 1) when the driver requests a sequence of files and only needs one, and 2) when the driver request can be handled by fallback. Why not only issue the error message when the device driver uses request_firmware_direct() or when there is no fallback. Also this patch does not seem to be made against latest code as I did a major rework that went in v4.17-rc1. >> Signed-off-by: Andres Rodriguez <andresx7@gmail.com> >> --- >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) > > With wireless patches always CC linux-wireless list, please. Adding it > now. > >> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> index 091b52979e03..26db3ebd52dc 100644 >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >> @@ -503,8 +503,9 @@ static void brcmf_fw_request_code_done(const struct firmware *fw, void *ctx) >> goto done; >> >> fwctx->code = fw; >> - ret = request_firmware_nowait(THIS_MODULE, true, fwctx->nvram_name, >> - fwctx->dev, GFP_KERNEL, fwctx, >> + ret = request_firmware_nowait(THIS_MODULE, true, false, > > A perfect example why enums should be in function calls instead of > booleans, that "true, false" tells nothing to me and it would be time > consuming to check from headers files what it means. If you had proper > enums, for example "FIRMWARE_MODE_FOO, FIRMWARE_STATE_BAR", it would be > immediately obvious for the reader what the parameters are. Of course > the first boolean was already there before, but maybe change the new > boolean to an enum? I can not fully agree here. While being a bit more descriptive even with enums wrong enum values can be used due to copy-paste errors for instance. Also when reviewing code, sometime looking up function prototypes and type definitions are part of the fun. Tools like ctags or elixir website make it pretty easy. Now regarding this part of the patch the driver is requesting nvram file, which is not always optional. For SDIO devices it is required and for PCIe it is optional so firmware.c module is instructed about this with a flag. So here that flag should be used to pass the proper boolean/call the appropriate function. Actually in the latest code the nvram is request synchronously. >> + fwctx->nvram_name, fwctx->dev, >> + GFP_KERNEL, fwctx, >> brcmf_fw_request_nvram_done); >> >> /* pass NULL to nvram callback for bcm47xx fallback */ >> @@ -547,7 +548,7 @@ int brcmf_fw_get_firmwares_pcie(struct device *dev, u16 flags, >> fwctx->domain_nr = domain_nr; >> fwctx->bus_nr = bus_nr; >> >> - return request_firmware_nowait(THIS_MODULE, true, code, dev, >> + return request_firmware_nowait2(THIS_MODULE, true, false, code, dev, >> GFP_KERNEL, fwctx, >> brcmf_fw_request_code_done); >> } > > Also the number two in the function name is not really telling anything. > I think that something like request_firmware_nowait_nowarn() would be > better, even if it's so ugly. This is requesting the actual firmware that is run by the cpu on the chip so it is not optional. Again, the firmware.c module has been reworked quite a bit in v4.17-rc1 so this patch is outdated. Regards, Arend ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings 2018-04-21 8:04 ` Arend van Spriel @ 2018-04-23 13:54 ` Kalle Valo 0 siblings, 0 replies; 6+ messages in thread From: Kalle Valo @ 2018-04-23 13:54 UTC (permalink / raw) To: Arend van Spriel Cc: Andres Rodriguez, linux-kernel, gregkh, mcgrof, alexdeucher, ckoenig.leichtzumerken, linux-wireless Arend van Spriel <arend.vanspriel@broadcom.com> writes: > On 4/20/2018 12:26 PM, Kalle Valo wrote: >> Andres Rodriguez <andresx7@gmail.com> writes: >>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >>> index 091b52979e03..26db3ebd52dc 100644 >>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c >>> @@ -503,8 +503,9 @@ static void brcmf_fw_request_code_done(const struct firmware *fw, void *ctx) >>> goto done; >>> >>> fwctx->code = fw; >>> - ret = request_firmware_nowait(THIS_MODULE, true, fwctx->nvram_name, >>> - fwctx->dev, GFP_KERNEL, fwctx, >>> + ret = request_firmware_nowait(THIS_MODULE, true, false, >> >> A perfect example why enums should be in function calls instead of >> booleans, that "true, false" tells nothing to me and it would be time >> consuming to check from headers files what it means. If you had proper >> enums, for example "FIRMWARE_MODE_FOO, FIRMWARE_STATE_BAR", it would be >> immediately obvious for the reader what the parameters are. Of course >> the first boolean was already there before, but maybe change the new >> boolean to an enum? > > I can not fully agree here. While being a bit more descriptive even > with enums wrong enum values can be used due to copy-paste errors for > instance. Well, you can also copy paste booleans wrong. I would claim that it's even easier to copy paste booleans wrong than enums. > Also when reviewing code, sometime looking up function prototypes and > type definitions are part of the fun. Tools like ctags or elixir > website make it pretty easy. Hehe :) But when reviewing patches ctags doesn't really help. But yeah, booleans vs enums in function parameters is just a matter of taste. I prefer enums but I'm sure there are people who prefer booleans. -- Kalle Valo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-04-23 13:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20180417153307.3693-1-andresx7@gmail.com>
[not found] ` <20180417153307.3693-9-andresx7@gmail.com>
2018-04-20 10:19 ` [PATCH 8/9] ath10k: use request_firmware_nowarn to load firmware Kalle Valo
[not found] ` <20180417153307.3693-10-andresx7@gmail.com>
2018-04-20 10:26 ` [PATCH 9/9] brcmfmac: use request_firmware_nowait2 to load firmware without warnings Kalle Valo
2018-04-20 19:33 ` Andres Rodriguez
2018-04-21 7:19 ` Kalle Valo
2018-04-21 8:04 ` Arend van Spriel
2018-04-23 13:54 ` Kalle Valo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).