Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Andy Grosswrites: >> > >> This doesn't compile for me: >> > >> >> > > >> > > I thought I mentioned this in the mail, sorry for missing that. >> > >> > Maybe you did and I just forgot, I have a tendency to do that :) >> > >> > > There is a patch for this issue in linux-next already [1] which is >> > > part of [2], which was part of the pull request to arm-soc for >> > > inclusion in v4.9. >> > > >> > > [1] https://patchwork.kernel.org/patch/9272457/ >> > > [2] >> > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 >> > >> > So the commit in question is: >> > >> > soc: qcom: smd: Correct compile stub prototypes >> > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 >> > >> >> Correct >> >> > But that's not obviously in my tree yet, but I should have it after >> > 4.9-rc1 is released. I think it's easiest that I wait for that before >> > applying these. Do you agree? >> > >> >> Would be nice to have it land sooner rather than later, but I'm okay >> with this. > > We could just treat the tag as immutable. You can merge the tag in and > arm-soc > can as well. it'll just get nop'd the second time it is taken. The only > downside is if arm-soc doesn't take my merge request. I take it that you are talking about this tag: git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git qcom-drivers-for-4.9 I did a test pull and there are only 8 commits so in theory that could work. But my trees go via Dave Miller's net-next so I can't control when they hit Linus' tree. It might be that Linus pulls the net-next tree before arm-soc and arm-soc commits coming from net-next might confuse people. I'm just afraid that the hassle would outweight the benefit. > Or we can wait till -rc1 To keep things simple I prefer this option. Of course it means waiting few more extra weeks, but when working with new subsystems that can happen. The crystall ball[1] says that 4.9-rc1 would be released on 2016-10-16 so it's not that far away. [1] http://phb-crystal-ball.org/ -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Andy Gross writes: >> > >> This doesn't compile for me: >> > >> >> > > >> > > I thought I mentioned this in the mail, sorry for missing that. >> > >> > Maybe you did and I just forgot, I have a tendency to do that :) >> > >> > > There is a patch for this issue in linux-next already [1] which is >> > > part of [2], which was part of the pull request to arm-soc for >> > > inclusion in v4.9. >> > > >> > > [1] https://patchwork.kernel.org/patch/9272457/ >> > > [2] >> > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 >> > >> > So the commit in question is: >> > >> > soc: qcom: smd: Correct compile stub prototypes >> > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 >> > >> >> Correct >> >> > But that's not obviously in my tree yet, but I should have it after >> > 4.9-rc1 is released. I think it's easiest that I wait for that before >> > applying these. Do you agree? >> > >> >> Would be nice to have it land sooner rather than later, but I'm okay >> with this. > > We could just treat the tag as immutable. You can merge the tag in and > arm-soc > can as well. it'll just get nop'd the second time it is taken. The only > downside is if arm-soc doesn't take my merge request. I take it that you are talking about this tag: git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git qcom-drivers-for-4.9 I did a test pull and there are only 8 commits so in theory that could work. But my trees go via Dave Miller's net-next so I can't control when they hit Linus' tree. It might be that Linus pulls the net-next tree before arm-soc and arm-soc commits coming from net-next might confuse people. I'm just afraid that the hassle would outweight the benefit. > Or we can wait till -rc1 To keep things simple I prefer this option. Of course it means waiting few more extra weeks, but when working with new subsystems that can happen. The crystall ball[1] says that 4.9-rc1 would be released on 2016-10-16 so it's not that far away. [1] http://phb-crystal-ball.org/ -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu, Sep 08, 2016 at 09:21:59PM -0700, Bjorn Andersson wrote: > On Thu 08 Sep 10:35 PDT 2016, Kalle Valo wrote: > > > Bjorn Anderssonwrites: > > > > > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: > > >> Bjorn Andersson writes: > > >> > > >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > > >>> channel, as such it should be a SMD client. This patch makes this > > >>> transition, now that we have the necessary frameworks available. > > >>> > > >>> Signed-off-by: Bjorn Andersson > > >>> --- > > >>> > > >>> Changes since v3: > > >>> - Made msg_header const in wcn36xx_smd_rsp_process() > > >>> > > >>> Changes since v2: > > >>> - Correct the call to the new ieee80211_scan_completed() > > >>> > > >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > > >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 > > >>> -- > > >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > > >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > > >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > > >>> 5 files changed, 86 insertions(+), 66 deletions(-) > > >> > > >> This doesn't compile for me: > > >> > > > > > > I thought I mentioned this in the mail, sorry for missing that. > > > > Maybe you did and I just forgot, I have a tendency to do that :) > > > > > There is a patch for this issue in linux-next already [1] which is > > > part of [2], which was part of the pull request to arm-soc for > > > inclusion in v4.9. > > > > > > [1] https://patchwork.kernel.org/patch/9272457/ > > > [2] > > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 > > > > So the commit in question is: > > > > soc: qcom: smd: Correct compile stub prototypes > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 > > > > Correct > > > But that's not obviously in my tree yet, but I should have it after > > 4.9-rc1 is released. I think it's easiest that I wait for that before > > applying these. Do you agree? > > > > Would be nice to have it land sooner rather than later, but I'm okay > with this. We could just treat the tag as immutable. You can merge the tag in and arm-soc can as well. it'll just get nop'd the second time it is taken. The only downside is if arm-soc doesn't take my merge request. Or we can wait till -rc1 Regards, Andy
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu, Sep 08, 2016 at 09:21:59PM -0700, Bjorn Andersson wrote: > On Thu 08 Sep 10:35 PDT 2016, Kalle Valo wrote: > > > Bjorn Andersson writes: > > > > > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: > > >> Bjorn Andersson writes: > > >> > > >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > > >>> channel, as such it should be a SMD client. This patch makes this > > >>> transition, now that we have the necessary frameworks available. > > >>> > > >>> Signed-off-by: Bjorn Andersson > > >>> --- > > >>> > > >>> Changes since v3: > > >>> - Made msg_header const in wcn36xx_smd_rsp_process() > > >>> > > >>> Changes since v2: > > >>> - Correct the call to the new ieee80211_scan_completed() > > >>> > > >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > > >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 > > >>> -- > > >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > > >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > > >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > > >>> 5 files changed, 86 insertions(+), 66 deletions(-) > > >> > > >> This doesn't compile for me: > > >> > > > > > > I thought I mentioned this in the mail, sorry for missing that. > > > > Maybe you did and I just forgot, I have a tendency to do that :) > > > > > There is a patch for this issue in linux-next already [1] which is > > > part of [2], which was part of the pull request to arm-soc for > > > inclusion in v4.9. > > > > > > [1] https://patchwork.kernel.org/patch/9272457/ > > > [2] > > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 > > > > So the commit in question is: > > > > soc: qcom: smd: Correct compile stub prototypes > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 > > > > Correct > > > But that's not obviously in my tree yet, but I should have it after > > 4.9-rc1 is released. I think it's easiest that I wait for that before > > applying these. Do you agree? > > > > Would be nice to have it land sooner rather than later, but I'm okay > with this. We could just treat the tag as immutable. You can merge the tag in and arm-soc can as well. it'll just get nop'd the second time it is taken. The only downside is if arm-soc doesn't take my merge request. Or we can wait till -rc1 Regards, Andy
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu 08 Sep 10:35 PDT 2016, Kalle Valo wrote: > Bjorn Anderssonwrites: > > > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: > >> Bjorn Andersson writes: > >> > >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > >>> channel, as such it should be a SMD client. This patch makes this > >>> transition, now that we have the necessary frameworks available. > >>> > >>> Signed-off-by: Bjorn Andersson > >>> --- > >>> > >>> Changes since v3: > >>> - Made msg_header const in wcn36xx_smd_rsp_process() > >>> > >>> Changes since v2: > >>> - Correct the call to the new ieee80211_scan_completed() > >>> > >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 > >>> -- > >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > >>> 5 files changed, 86 insertions(+), 66 deletions(-) > >> > >> This doesn't compile for me: > >> > > > > I thought I mentioned this in the mail, sorry for missing that. > > Maybe you did and I just forgot, I have a tendency to do that :) > > > There is a patch for this issue in linux-next already [1] which is > > part of [2], which was part of the pull request to arm-soc for > > inclusion in v4.9. > > > > [1] https://patchwork.kernel.org/patch/9272457/ > > [2] > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 > > So the commit in question is: > > soc: qcom: smd: Correct compile stub prototypes > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 > Correct > But that's not obviously in my tree yet, but I should have it after > 4.9-rc1 is released. I think it's easiest that I wait for that before > applying these. Do you agree? > Would be nice to have it land sooner rather than later, but I'm okay with this. Regards, Bjorn
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu 08 Sep 10:35 PDT 2016, Kalle Valo wrote: > Bjorn Andersson writes: > > > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: > >> Bjorn Andersson writes: > >> > >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > >>> channel, as such it should be a SMD client. This patch makes this > >>> transition, now that we have the necessary frameworks available. > >>> > >>> Signed-off-by: Bjorn Andersson > >>> --- > >>> > >>> Changes since v3: > >>> - Made msg_header const in wcn36xx_smd_rsp_process() > >>> > >>> Changes since v2: > >>> - Correct the call to the new ieee80211_scan_completed() > >>> > >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 > >>> -- > >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > >>> 5 files changed, 86 insertions(+), 66 deletions(-) > >> > >> This doesn't compile for me: > >> > > > > I thought I mentioned this in the mail, sorry for missing that. > > Maybe you did and I just forgot, I have a tendency to do that :) > > > There is a patch for this issue in linux-next already [1] which is > > part of [2], which was part of the pull request to arm-soc for > > inclusion in v4.9. > > > > [1] https://patchwork.kernel.org/patch/9272457/ > > [2] > > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 > > So the commit in question is: > > soc: qcom: smd: Correct compile stub prototypes > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 > Correct > But that's not obviously in my tree yet, but I should have it after > 4.9-rc1 is released. I think it's easiest that I wait for that before > applying these. Do you agree? > Would be nice to have it land sooner rather than later, but I'm okay with this. Regards, Bjorn
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Anderssonwrites: > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: >> Bjorn Andersson writes: >> >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD >>> channel, as such it should be a SMD client. This patch makes this >>> transition, now that we have the necessary frameworks available. >>> >>> Signed-off-by: Bjorn Andersson >>> --- >>> >>> Changes since v3: >>> - Made msg_header const in wcn36xx_smd_rsp_process() >>> >>> Changes since v2: >>> - Correct the call to the new ieee80211_scan_completed() >>> >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 >>> -- >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- >>> 5 files changed, 86 insertions(+), 66 deletions(-) >> >> This doesn't compile for me: >> > > I thought I mentioned this in the mail, sorry for missing that. Maybe you did and I just forgot, I have a tendency to do that :) > There is a patch for this issue in linux-next already [1] which is > part of [2], which was part of the pull request to arm-soc for > inclusion in v4.9. > > [1] https://patchwork.kernel.org/patch/9272457/ > [2] > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 So the commit in question is: soc: qcom: smd: Correct compile stub prototypes https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 But that's not obviously in my tree yet, but I should have it after 4.9-rc1 is released. I think it's easiest that I wait for that before applying these. Do you agree? -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Andersson writes: > On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: >> Bjorn Andersson writes: >> >>> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD >>> channel, as such it should be a SMD client. This patch makes this >>> transition, now that we have the necessary frameworks available. >>> >>> Signed-off-by: Bjorn Andersson >>> --- >>> >>> Changes since v3: >>> - Made msg_header const in wcn36xx_smd_rsp_process() >>> >>> Changes since v2: >>> - Correct the call to the new ieee80211_scan_completed() >>> >>> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- >>> drivers/net/wireless/ath/wcn36xx/main.c| 79 >>> -- >>> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- >>> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ >>> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- >>> 5 files changed, 86 insertions(+), 66 deletions(-) >> >> This doesn't compile for me: >> > > I thought I mentioned this in the mail, sorry for missing that. Maybe you did and I just forgot, I have a tendency to do that :) > There is a patch for this issue in linux-next already [1] which is > part of [2], which was part of the pull request to arm-soc for > inclusion in v4.9. > > [1] https://patchwork.kernel.org/patch/9272457/ > [2] > https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 So the commit in question is: soc: qcom: smd: Correct compile stub prototypes https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/commit/?h=qcom-drivers-for-4.9=3a1281848830fcb3202cfd7ffe62d19641471d05 But that's not obviously in my tree yet, but I should have it after 4.9-rc1 is released. I think it's easiest that I wait for that before applying these. Do you agree? -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valowrote: > Bjorn Andersson writes: > >> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD >> channel, as such it should be a SMD client. This patch makes this >> transition, now that we have the necessary frameworks available. >> >> Signed-off-by: Bjorn Andersson >> --- >> >> Changes since v3: >> - Made msg_header const in wcn36xx_smd_rsp_process() >> >> Changes since v2: >> - Correct the call to the new ieee80211_scan_completed() >> >> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- >> drivers/net/wireless/ath/wcn36xx/main.c| 79 >> -- >> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- >> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ >> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- >> 5 files changed, 86 insertions(+), 66 deletions(-) > > This doesn't compile for me: > I thought I mentioned this in the mail, sorry for missing that. There is a patch for this issue in linux-next already [1] which is part of [2], which was part of the pull request to arm-soc for inclusion in v4.9. [1] https://patchwork.kernel.org/patch/9272457/ [2] https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 Regards, Bjorn
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
On Thu, Sep 8, 2016 at 5:16 AM, Kalle Valo wrote: > Bjorn Andersson writes: > >> The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD >> channel, as such it should be a SMD client. This patch makes this >> transition, now that we have the necessary frameworks available. >> >> Signed-off-by: Bjorn Andersson >> --- >> >> Changes since v3: >> - Made msg_header const in wcn36xx_smd_rsp_process() >> >> Changes since v2: >> - Correct the call to the new ieee80211_scan_completed() >> >> drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- >> drivers/net/wireless/ath/wcn36xx/main.c| 79 >> -- >> drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- >> drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ >> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- >> 5 files changed, 86 insertions(+), 66 deletions(-) > > This doesn't compile for me: > I thought I mentioned this in the mail, sorry for missing that. There is a patch for this issue in linux-next already [1] which is part of [2], which was part of the pull request to arm-soc for inclusion in v4.9. [1] https://patchwork.kernel.org/patch/9272457/ [2] https://git.kernel.org/cgit/linux/kernel/git/agross/linux.git/tag/?h=qcom-drivers-for-4.9 Regards, Bjorn
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Anderssonwrites: > The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > channel, as such it should be a SMD client. This patch makes this > transition, now that we have the necessary frameworks available. > > Signed-off-by: Bjorn Andersson > --- > > Changes since v3: > - Made msg_header const in wcn36xx_smd_rsp_process() > > Changes since v2: > - Correct the call to the new ieee80211_scan_completed() > > drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > drivers/net/wireless/ath/wcn36xx/main.c| 79 > -- > drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > 5 files changed, 86 insertions(+), 66 deletions(-) This doesn't compile for me: CC [M] drivers/net/wireless/ath/wcn36xx/main.o CC [M] drivers/net/wireless/ath/wcn36xx/dxe.o CC [M] drivers/net/wireless/ath/wcn36xx/txrx.o CC [M] drivers/net/wireless/ath/wcn36xx/smd.o CC [M] drivers/net/wireless/ath/wcn36xx/pmc.o CC [M] drivers/net/wireless/ath/wcn36xx/debug.o LD [M] drivers/net/wireless/ath/wcn36xx/wcn36xx.o drivers/net/wireless/ath/wcn36xx/smd.o: In function `qcom_smd_get_drvdata': /home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:87: multiple definition of `qcom_smd_get_drvdata' drivers/net/wireless/ath/wcn36xx/main.o:/home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:87: first defined here drivers/net/wireless/ath/wcn36xx/smd.o: In function `qcom_smd_set_drvdata': /home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:94: multiple definition of `qcom_smd_set_drvdata' drivers/net/wireless/ath/wcn36xx/main.o:/home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:94: first defined here make[5]: *** [drivers/net/wireless/ath/wcn36xx/wcn36xx.o] Error 1 I fixed it with the diff below. Please let me know if it looks ok to you, the patch is not applied yet so it's easy to make changes. The full commit in my pending branch: https://git.kernel.org/cgit/linux/kernel/git/kvalo/ath.git/commit/?h=pending=dba68ea7a404a9959d0ab44bc13c844187db6d6a --- a/include/linux/soc/qcom/smd.h +++ b/include/linux/soc/qcom/smd.h @@ -83,14 +83,14 @@ qcom_smd_open_channel(struct qcom_smd_channel *channel, return NULL; } -void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel) +static inline void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel) { /* This shouldn't be possible */ WARN_ON(1); return NULL; } -void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data) +static inline void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data) { /* This shouldn't be possible */ WARN_ON(1); -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Andersson writes: > The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > channel, as such it should be a SMD client. This patch makes this > transition, now that we have the necessary frameworks available. > > Signed-off-by: Bjorn Andersson > --- > > Changes since v3: > - Made msg_header const in wcn36xx_smd_rsp_process() > > Changes since v2: > - Correct the call to the new ieee80211_scan_completed() > > drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > drivers/net/wireless/ath/wcn36xx/main.c| 79 > -- > drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > 5 files changed, 86 insertions(+), 66 deletions(-) This doesn't compile for me: CC [M] drivers/net/wireless/ath/wcn36xx/main.o CC [M] drivers/net/wireless/ath/wcn36xx/dxe.o CC [M] drivers/net/wireless/ath/wcn36xx/txrx.o CC [M] drivers/net/wireless/ath/wcn36xx/smd.o CC [M] drivers/net/wireless/ath/wcn36xx/pmc.o CC [M] drivers/net/wireless/ath/wcn36xx/debug.o LD [M] drivers/net/wireless/ath/wcn36xx/wcn36xx.o drivers/net/wireless/ath/wcn36xx/smd.o: In function `qcom_smd_get_drvdata': /home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:87: multiple definition of `qcom_smd_get_drvdata' drivers/net/wireless/ath/wcn36xx/main.o:/home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:87: first defined here drivers/net/wireless/ath/wcn36xx/smd.o: In function `qcom_smd_set_drvdata': /home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:94: multiple definition of `qcom_smd_set_drvdata' drivers/net/wireless/ath/wcn36xx/main.o:/home/kvalo/ath10k/src/ath/./include/linux/soc/qcom/smd.h:94: first defined here make[5]: *** [drivers/net/wireless/ath/wcn36xx/wcn36xx.o] Error 1 I fixed it with the diff below. Please let me know if it looks ok to you, the patch is not applied yet so it's easy to make changes. The full commit in my pending branch: https://git.kernel.org/cgit/linux/kernel/git/kvalo/ath.git/commit/?h=pending=dba68ea7a404a9959d0ab44bc13c844187db6d6a --- a/include/linux/soc/qcom/smd.h +++ b/include/linux/soc/qcom/smd.h @@ -83,14 +83,14 @@ qcom_smd_open_channel(struct qcom_smd_channel *channel, return NULL; } -void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel) +static inline void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel) { /* This shouldn't be possible */ WARN_ON(1); return NULL; } -void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data) +static inline void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data) { /* This shouldn't be possible */ WARN_ON(1); -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Anderssonwrites: > The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > channel, as such it should be a SMD client. This patch makes this > transition, now that we have the necessary frameworks available. > > Signed-off-by: Bjorn Andersson > --- > > Changes since v3: > - Made msg_header const in wcn36xx_smd_rsp_process() > > Changes since v2: > - Correct the call to the new ieee80211_scan_completed() > > drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > drivers/net/wireless/ath/wcn36xx/main.c| 79 > -- > drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > 5 files changed, 86 insertions(+), 66 deletions(-) So I don't actually need to enable COMPILE_TEST anymore? Nice, thanks. -- Kalle Valo
Re: [PATCH v4 2/4] wcn36xx: Transition driver to SMD client
Bjorn Andersson writes: > The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD > channel, as such it should be a SMD client. This patch makes this > transition, now that we have the necessary frameworks available. > > Signed-off-by: Bjorn Andersson > --- > > Changes since v3: > - Made msg_header const in wcn36xx_smd_rsp_process() > > Changes since v2: > - Correct the call to the new ieee80211_scan_completed() > > drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- > drivers/net/wireless/ath/wcn36xx/main.c| 79 > -- > drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- > drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ > drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- > 5 files changed, 86 insertions(+), 66 deletions(-) So I don't actually need to enable COMPILE_TEST anymore? Nice, thanks. -- Kalle Valo
[PATCH v4 2/4] wcn36xx: Transition driver to SMD client
The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD channel, as such it should be a SMD client. This patch makes this transition, now that we have the necessary frameworks available. Signed-off-by: Bjorn Andersson--- Changes since v3: - Made msg_header const in wcn36xx_smd_rsp_process() Changes since v2: - Correct the call to the new ieee80211_scan_completed() drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- drivers/net/wireless/ath/wcn36xx/main.c| 79 -- drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- 5 files changed, 86 insertions(+), 66 deletions(-) diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c index 231fd022f0f5..87dfdaf9044c 100644 --- a/drivers/net/wireless/ath/wcn36xx/dxe.c +++ b/drivers/net/wireless/ath/wcn36xx/dxe.c @@ -23,6 +23,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include +#include #include "wcn36xx.h" #include "txrx.h" @@ -151,9 +152,12 @@ int wcn36xx_dxe_alloc_ctl_blks(struct wcn36xx *wcn) goto out_err; /* Initialize SMSM state Clear TX Enable RING EMPTY STATE */ - ret = wcn->ctrl_ops->smsm_change_state( - WCN36XX_SMSM_WLAN_TX_ENABLE, - WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY); + ret = qcom_smem_state_update_bits(wcn->tx_enable_state, + WCN36XX_SMSM_WLAN_TX_ENABLE | + WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY, + WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY); + if (ret) + goto out_err; return 0; @@ -678,9 +682,9 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn, * notify chip about new frame through SMSM bus. */ if (is_low && vif_priv->pw_state == WCN36XX_BMPS) { - wcn->ctrl_ops->smsm_change_state( - 0, - WCN36XX_SMSM_WLAN_TX_ENABLE); + qcom_smem_state_update_bits(wcn->tx_rings_empty_state, + WCN36XX_SMSM_WLAN_TX_ENABLE, + WCN36XX_SMSM_WLAN_TX_ENABLE); } else { /* indicate End Of Packet and generate interrupt on descriptor * done. diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c index e1d59da2ad20..3c2522b07c90 100644 --- a/drivers/net/wireless/ath/wcn36xx/main.c +++ b/drivers/net/wireless/ath/wcn36xx/main.c @@ -21,6 +21,10 @@ #include #include #include +#include +#include +#include +#include #include "wcn36xx.h" unsigned int wcn36xx_dbg_mask; @@ -1058,8 +1062,7 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn, int ret; /* Set TX IRQ */ - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, - "wcnss_wlantx_irq"); + res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "tx"); if (!res) { wcn36xx_err("failed to get tx_irq\n"); return -ENOENT; @@ -1067,14 +1070,29 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn, wcn->tx_irq = res->start; /* Set RX IRQ */ - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, - "wcnss_wlanrx_irq"); + res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "rx"); if (!res) { wcn36xx_err("failed to get rx_irq\n"); return -ENOENT; } wcn->rx_irq = res->start; + /* Acquire SMSM tx enable handle */ + wcn->tx_enable_state = qcom_smem_state_get(>dev, + "tx-enable", >tx_enable_state_bit); + if (IS_ERR(wcn->tx_enable_state)) { + wcn36xx_err("failed to get tx-enable state\n"); + return PTR_ERR(wcn->tx_enable_state); + } + + /* Acquire SMSM tx rings empty handle */ + wcn->tx_rings_empty_state = qcom_smem_state_get(>dev, + "tx-rings-empty", >tx_rings_empty_state_bit); + if (IS_ERR(wcn->tx_rings_empty_state)) { + wcn36xx_err("failed to get tx-rings-empty state\n"); + return PTR_ERR(wcn->tx_rings_empty_state); + } + mmio_node = of_parse_phandle(pdev->dev.parent->of_node, "qcom,mmio", 0); if (!mmio_node) { wcn36xx_err("failed to acquire qcom,mmio reference\n"); @@ -1115,11 +1133,14 @@ static int wcn36xx_probe(struct platform_device *pdev) { struct ieee80211_hw *hw; struct wcn36xx *wcn; + void *wcnss; int ret; - u8 addr[ETH_ALEN]; + const u8 *addr; wcn36xx_dbg(WCN36XX_DBG_MAC, "platform probe\n"); +
[PATCH v4 2/4] wcn36xx: Transition driver to SMD client
The wcn36xx wifi driver follows the life cycle of the WLAN_CTRL SMD channel, as such it should be a SMD client. This patch makes this transition, now that we have the necessary frameworks available. Signed-off-by: Bjorn Andersson --- Changes since v3: - Made msg_header const in wcn36xx_smd_rsp_process() Changes since v2: - Correct the call to the new ieee80211_scan_completed() drivers/net/wireless/ath/wcn36xx/dxe.c | 16 +++--- drivers/net/wireless/ath/wcn36xx/main.c| 79 -- drivers/net/wireless/ath/wcn36xx/smd.c | 31 +--- drivers/net/wireless/ath/wcn36xx/smd.h | 5 ++ drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 21 +++- 5 files changed, 86 insertions(+), 66 deletions(-) diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c index 231fd022f0f5..87dfdaf9044c 100644 --- a/drivers/net/wireless/ath/wcn36xx/dxe.c +++ b/drivers/net/wireless/ath/wcn36xx/dxe.c @@ -23,6 +23,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include +#include #include "wcn36xx.h" #include "txrx.h" @@ -151,9 +152,12 @@ int wcn36xx_dxe_alloc_ctl_blks(struct wcn36xx *wcn) goto out_err; /* Initialize SMSM state Clear TX Enable RING EMPTY STATE */ - ret = wcn->ctrl_ops->smsm_change_state( - WCN36XX_SMSM_WLAN_TX_ENABLE, - WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY); + ret = qcom_smem_state_update_bits(wcn->tx_enable_state, + WCN36XX_SMSM_WLAN_TX_ENABLE | + WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY, + WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY); + if (ret) + goto out_err; return 0; @@ -678,9 +682,9 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn, * notify chip about new frame through SMSM bus. */ if (is_low && vif_priv->pw_state == WCN36XX_BMPS) { - wcn->ctrl_ops->smsm_change_state( - 0, - WCN36XX_SMSM_WLAN_TX_ENABLE); + qcom_smem_state_update_bits(wcn->tx_rings_empty_state, + WCN36XX_SMSM_WLAN_TX_ENABLE, + WCN36XX_SMSM_WLAN_TX_ENABLE); } else { /* indicate End Of Packet and generate interrupt on descriptor * done. diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c index e1d59da2ad20..3c2522b07c90 100644 --- a/drivers/net/wireless/ath/wcn36xx/main.c +++ b/drivers/net/wireless/ath/wcn36xx/main.c @@ -21,6 +21,10 @@ #include #include #include +#include +#include +#include +#include #include "wcn36xx.h" unsigned int wcn36xx_dbg_mask; @@ -1058,8 +1062,7 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn, int ret; /* Set TX IRQ */ - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, - "wcnss_wlantx_irq"); + res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "tx"); if (!res) { wcn36xx_err("failed to get tx_irq\n"); return -ENOENT; @@ -1067,14 +1070,29 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn, wcn->tx_irq = res->start; /* Set RX IRQ */ - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, - "wcnss_wlanrx_irq"); + res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "rx"); if (!res) { wcn36xx_err("failed to get rx_irq\n"); return -ENOENT; } wcn->rx_irq = res->start; + /* Acquire SMSM tx enable handle */ + wcn->tx_enable_state = qcom_smem_state_get(>dev, + "tx-enable", >tx_enable_state_bit); + if (IS_ERR(wcn->tx_enable_state)) { + wcn36xx_err("failed to get tx-enable state\n"); + return PTR_ERR(wcn->tx_enable_state); + } + + /* Acquire SMSM tx rings empty handle */ + wcn->tx_rings_empty_state = qcom_smem_state_get(>dev, + "tx-rings-empty", >tx_rings_empty_state_bit); + if (IS_ERR(wcn->tx_rings_empty_state)) { + wcn36xx_err("failed to get tx-rings-empty state\n"); + return PTR_ERR(wcn->tx_rings_empty_state); + } + mmio_node = of_parse_phandle(pdev->dev.parent->of_node, "qcom,mmio", 0); if (!mmio_node) { wcn36xx_err("failed to acquire qcom,mmio reference\n"); @@ -1115,11 +1133,14 @@ static int wcn36xx_probe(struct platform_device *pdev) { struct ieee80211_hw *hw; struct wcn36xx *wcn; + void *wcnss; int ret; - u8 addr[ETH_ALEN]; + const u8 *addr; wcn36xx_dbg(WCN36XX_DBG_MAC, "platform probe\n"); + wcnss =