All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] ath9k: allow to receive probe request when offchannel
@ 2015-06-10  5:03 ` Janusz Dziedzic
  0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2015-06-10  5:03 UTC (permalink / raw)
  To: linux-wireless; +Cc: ath9k-devel, nbd, c_manoha, Janusz Dziedzic

This fix problem that p2p group negotiation didn't work
correctly when chanctx used, because we didn't receive
probe requests when offchannel and use_chanctx=1

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
@Felix, Sujith could you review? I am not sure I put this in correct place.

 drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index 2066650..6301d44 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
 static void ath_offchannel_channel_change(struct ath_softc *sc)
 {
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+	u32 rfilt;
 
 	ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
 		__func__, offchannel_state_string(sc->offchannel.state));
@@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
 		ath_scan_complete(sc, false);
 		break;
 	case ATH_OFFCHANNEL_ROC_START:
+		/* Allow to receive probe requests */
+		rfilt = ath_calcrxfilter(sc);
+		rfilt |= ATH9K_RX_FILTER_PROBEREQ;
+		ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
+
 		if (sc->cur_chan != &sc->offchannel.chan)
 			break;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [ath9k-devel] [RFC] ath9k: allow to receive probe request when offchannel
@ 2015-06-10  5:03 ` Janusz Dziedzic
  0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2015-06-10  5:03 UTC (permalink / raw)
  To: ath9k-devel

This fix problem that p2p group negotiation didn't work
correctly when chanctx used, because we didn't receive
probe requests when offchannel and use_chanctx=1

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
@Felix, Sujith could you review? I am not sure I put this in correct place.

 drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index 2066650..6301d44 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
 static void ath_offchannel_channel_change(struct ath_softc *sc)
 {
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+	u32 rfilt;
 
 	ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
 		__func__, offchannel_state_string(sc->offchannel.state));
@@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
 		ath_scan_complete(sc, false);
 		break;
 	case ATH_OFFCHANNEL_ROC_START:
+		/* Allow to receive probe requests */
+		rfilt = ath_calcrxfilter(sc);
+		rfilt |= ATH9K_RX_FILTER_PROBEREQ;
+		ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
+
 		if (sc->cur_chan != &sc->offchannel.chan)
 			break;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [RFC] ath9k: allow to receive probe request when offchannel
  2015-06-10  5:03 ` [ath9k-devel] " Janusz Dziedzic
@ 2015-06-15 11:39   ` Janusz Dziedzic
  -1 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2015-06-15 11:39 UTC (permalink / raw)
  To: linux-wireless
  Cc: ath9k-devel, Felix Fietkau, Janusz Dziedzic, Sujith Manoharan

adding Sujith correct mail

On 10 June 2015 at 07:03, Janusz Dziedzic <janusz.dziedzic@tieto.com> wrote:
> This fix problem that p2p group negotiation didn't work
> correctly when chanctx used, because we didn't receive
> probe requests when offchannel and use_chanctx=1
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
> ---
> @Felix, Sujith could you review? I am not sure I put this in correct place.
>
>  drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
> index 2066650..6301d44 100644
> --- a/drivers/net/wireless/ath/ath9k/channel.c
> +++ b/drivers/net/wireless/ath/ath9k/channel.c
> @@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
>  static void ath_offchannel_channel_change(struct ath_softc *sc)
>  {
>         struct ath_common *common = ath9k_hw_common(sc->sc_ah);
> +       u32 rfilt;
>
>         ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
>                 __func__, offchannel_state_string(sc->offchannel.state));
> @@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
>                 ath_scan_complete(sc, false);
>                 break;
>         case ATH_OFFCHANNEL_ROC_START:
> +               /* Allow to receive probe requests */
> +               rfilt = ath_calcrxfilter(sc);
> +               rfilt |= ATH9K_RX_FILTER_PROBEREQ;
> +               ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
> +
>                 if (sc->cur_chan != &sc->offchannel.chan)
>                         break;
>
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ath9k-devel] [RFC] ath9k: allow to receive probe request when offchannel
@ 2015-06-15 11:39   ` Janusz Dziedzic
  0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2015-06-15 11:39 UTC (permalink / raw)
  To: ath9k-devel

adding Sujith correct mail

On 10 June 2015 at 07:03, Janusz Dziedzic <janusz.dziedzic@tieto.com> wrote:
> This fix problem that p2p group negotiation didn't work
> correctly when chanctx used, because we didn't receive
> probe requests when offchannel and use_chanctx=1
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
> ---
> @Felix, Sujith could you review? I am not sure I put this in correct place.
>
>  drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
> index 2066650..6301d44 100644
> --- a/drivers/net/wireless/ath/ath9k/channel.c
> +++ b/drivers/net/wireless/ath/ath9k/channel.c
> @@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
>  static void ath_offchannel_channel_change(struct ath_softc *sc)
>  {
>         struct ath_common *common = ath9k_hw_common(sc->sc_ah);
> +       u32 rfilt;
>
>         ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
>                 __func__, offchannel_state_string(sc->offchannel.state));
> @@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
>                 ath_scan_complete(sc, false);
>                 break;
>         case ATH_OFFCHANNEL_ROC_START:
> +               /* Allow to receive probe requests */
> +               rfilt = ath_calcrxfilter(sc);
> +               rfilt |= ATH9K_RX_FILTER_PROBEREQ;
> +               ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
> +
>                 if (sc->cur_chan != &sc->offchannel.chan)
>                         break;
>
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC] ath9k: allow to receive probe request when offchannel
  2015-06-10  5:03 ` [ath9k-devel] " Janusz Dziedzic
@ 2015-06-15 11:46   ` Felix Fietkau
  -1 siblings, 0 replies; 8+ messages in thread
From: Felix Fietkau @ 2015-06-15 11:46 UTC (permalink / raw)
  To: Janusz Dziedzic, linux-wireless; +Cc: ath9k-devel, c_manoha

On 2015-06-10 07:03, Janusz Dziedzic wrote:
> This fix problem that p2p group negotiation didn't work
> correctly when chanctx used, because we didn't receive
> probe requests when offchannel and use_chanctx=1
> 
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
> ---
> @Felix, Sujith could you review? I am not sure I put this in correct place.
> 
>  drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
> index 2066650..6301d44 100644
> --- a/drivers/net/wireless/ath/ath9k/channel.c
> +++ b/drivers/net/wireless/ath/ath9k/channel.c
> @@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
>  static void ath_offchannel_channel_change(struct ath_softc *sc)
>  {
>  	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
> +	u32 rfilt;
>  
>  	ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
>  		__func__, offchannel_state_string(sc->offchannel.state));
> @@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
>  		ath_scan_complete(sc, false);
>  		break;
>  	case ATH_OFFCHANNEL_ROC_START:
> +		/* Allow to receive probe requests */
> +		rfilt = ath_calcrxfilter(sc);
> +		rfilt |= ATH9K_RX_FILTER_PROBEREQ;
I think ath_calcrxfilter should set this, otherwise it might be
overwritten, e.g. on BB watchdog reset.

- Felix

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ath9k-devel] [RFC] ath9k: allow to receive probe request when offchannel
@ 2015-06-15 11:46   ` Felix Fietkau
  0 siblings, 0 replies; 8+ messages in thread
From: Felix Fietkau @ 2015-06-15 11:46 UTC (permalink / raw)
  To: ath9k-devel

On 2015-06-10 07:03, Janusz Dziedzic wrote:
> This fix problem that p2p group negotiation didn't work
> correctly when chanctx used, because we didn't receive
> probe requests when offchannel and use_chanctx=1
> 
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
> ---
> @Felix, Sujith could you review? I am not sure I put this in correct place.
> 
>  drivers/net/wireless/ath/ath9k/channel.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
> index 2066650..6301d44 100644
> --- a/drivers/net/wireless/ath/ath9k/channel.c
> +++ b/drivers/net/wireless/ath/ath9k/channel.c
> @@ -1157,6 +1157,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
>  static void ath_offchannel_channel_change(struct ath_softc *sc)
>  {
>  	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
> +	u32 rfilt;
>  
>  	ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
>  		__func__, offchannel_state_string(sc->offchannel.state));
> @@ -1179,6 +1180,11 @@ static void ath_offchannel_channel_change(struct ath_softc *sc)
>  		ath_scan_complete(sc, false);
>  		break;
>  	case ATH_OFFCHANNEL_ROC_START:
> +		/* Allow to receive probe requests */
> +		rfilt = ath_calcrxfilter(sc);
> +		rfilt |= ATH9K_RX_FILTER_PROBEREQ;
I think ath_calcrxfilter should set this, otherwise it might be
overwritten, e.g. on BB watchdog reset.

- Felix

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC] ath9k: allow to receive probe request when offchannel
  2015-06-15 11:39   ` [ath9k-devel] " Janusz Dziedzic
@ 2015-06-15 12:25     ` Sujith Manoharan
  -1 siblings, 0 replies; 8+ messages in thread
From: Sujith Manoharan @ 2015-06-15 12:25 UTC (permalink / raw)
  To: Janusz Dziedzic; +Cc: linux-wireless, ath9k-devel, Felix Fietkau

Janusz Dziedzic wrote:
> >         case ATH_OFFCHANNEL_ROC_START:
> > +               /* Allow to receive probe requests */
> > +               rfilt = ath_calcrxfilter(sc);
> > +               rfilt |= ATH9K_RX_FILTER_PROBEREQ;
> > +               ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
> > +

ath9k_set_offchannel_state() would be a better place to do this,
since setting up various bits in the HW for offchannel operation
is done there. Also, it would make sure that the HW state is
retained when a chip reset is done for some reason.

Sujith

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ath9k-devel] [RFC] ath9k: allow to receive probe request when offchannel
@ 2015-06-15 12:25     ` Sujith Manoharan
  0 siblings, 0 replies; 8+ messages in thread
From: Sujith Manoharan @ 2015-06-15 12:25 UTC (permalink / raw)
  To: ath9k-devel

Janusz Dziedzic wrote:
> >         case ATH_OFFCHANNEL_ROC_START:
> > +               /* Allow to receive probe requests */
> > +               rfilt = ath_calcrxfilter(sc);
> > +               rfilt |= ATH9K_RX_FILTER_PROBEREQ;
> > +               ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
> > +

ath9k_set_offchannel_state() would be a better place to do this,
since setting up various bits in the HW for offchannel operation
is done there. Also, it would make sure that the HW state is
retained when a chip reset is done for some reason.

Sujith

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-06-15 12:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-10  5:03 [RFC] ath9k: allow to receive probe request when offchannel Janusz Dziedzic
2015-06-10  5:03 ` [ath9k-devel] " Janusz Dziedzic
2015-06-15 11:39 ` Janusz Dziedzic
2015-06-15 11:39   ` [ath9k-devel] " Janusz Dziedzic
2015-06-15 12:25   ` Sujith Manoharan
2015-06-15 12:25     ` [ath9k-devel] " Sujith Manoharan
2015-06-15 11:46 ` Felix Fietkau
2015-06-15 11:46   ` [ath9k-devel] " Felix Fietkau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.