From: Valo, Kalle <kvalo@qca.qualcomm.com>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH v2 0/7] ath9k: EEPROM swapping improvements
Date: Thu, 15 Dec 2016 08:34:37 +0000 [thread overview]
Message-ID: <871sx9wpyb.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <20161002222913.12223-1-martin.blumenstingl@googlemail.com> (Martin Blumenstingl's message of "Mon, 3 Oct 2016 00:29:06 +0200")
Martin Blumenstingl <martin.blumenstingl@googlemail.com> writes:
> There are two types of swapping the EEPROM data in the ath9k driver.
> Before this series one type of swapping could not be used without the
> other.
>
> The first type of swapping looks at the "magic bytes" at the start of
> the EEPROM data and performs swab16 on the EEPROM contents if needed.
> The second type of swapping is EEPROM format specific and swaps
> specific fields within the EEPROM itself (swab16, swab32 - depends on
> the EEPROM format).
>
> With this series the second part now looks at the EEPMISC register
> inside the EEPROM, which uses a bit to indicate if the EEPROM data
> is Big Endian (this is also done by the FreeBSD kernel).
> This has a nice advantage: currently there are some out-of-tree hacks
> (in OpenWrt and LEDE) where the EEPROM has a Big Endian header on a
> Big Endian system (= no swab16 is performed) but the EEPROM itself
> indicates that it's data is Little Endian. Until now the out-of-tree
> code simply did a swab16 before passing the data to ath9k, so ath9k
> first did the swab16 - this also enabled the format specific swapping.
> These out-of-tree hacks are still working with the new logic, but it
> is recommended to remove them. This implementation is based on a
> discussion with Arnd Bergmann who raised concerns about the
> robustness and portability of the swapping logic in the original OF
> support patch review, see [0].
>
> After a second round of patches (= v1 of this series) neither Arnd
> Bergmann nor I were really happy with the complexity of the EEPROM
> swapping logic. Based on a discussion (see [1] and [2]) we decided
> that ath9k should use a defined format (specifying the endianness
> of the data - I went with __le16 and __le32) when accessing the
> EEPROM fields. A benefit of this is that we enable the EEPMISC based
> swapping logic by default, just like the FreeBSD driver, see [3]. On
> the devices which I have tested (see below) ath9k now works without
> having to specify the "endian_check" field in ath9k_platform_data (or
> a similar logic which could provide this via devicetree) as ath9k now
> detects the endianness automatically. Only EEPROMs which are mangled
> by some out-of-tree code still need the endian_check flag (or one can
> simply remove that mangling from the out-of-tree code).
>
> Testing:
> - tested by myself on AR9287 with Big Endian EEPROM
> - tested by myself on AR9227 with Little Endian EEPROM
> - tested by myself on AR9381 (using the ar9003_eeprom implementation,
> which did not suffer from this whole problem)
> - how do we proceed with testing? maybe we could keep this in a
> feature-branch and add these patches to LEDE once we have an ACK to
> get more people to test this
>
> This series depends on my other series (v7):
> "add devicetree support to ath9k" - see [4]
>
> Changes since v1:
> - reworked description in the cover-letter to describe the reasons
> behind the new patch 7
> - reworked patch "Set the "big endian" bit of the AR9003 EEPROM
> templates" as ar9003_eeprom.c sets all values as Little Endian, thus
> the Big Endian bit should never be set (the new patch makes this
> clear)
> - dropped "ath9k: Make EEPROM endianness swapping configurable via
> devicetree" as it is not needed anymore with the new logic from
> patch 7
> - added patches 4 and 5 as small cleanup (this made it easier to
> implement the le{16,32}_to_cpu() changes where needed)
>
>
> [0] http://www.spinics.net/lists/linux-wireless/msg152634.html
> [1] https://marc.info/?l=linux-wireless&m=147250597503174&w=2
> [2] https://marc.info/?l=linux-wireless&m=147254388611344&w=2
> [3] https://github.com/freebsd/freebsd/blob/50719b56d9ce8d7d4beb53b16e9edb2e9a4a7a18/sys/dev/ath/ath_hal/ah_eeprom_9287.c#L351
> [4] https://marc.info/?l=linux-wireless&m=147544488619822&w=2
>
> Martin Blumenstingl (7):
> ath9k: Add a #define for the EEPROM "eepmisc" endianness bit
> ath9k: indicate that the AR9003 EEPROM template values are little
> endian
> ath9k: Add an eeprom_ops callback for retrieving the eepmisc value
> ath9k: replace eeprom_param EEP_MINOR_REV with get_eeprom_rev
> ath9k: consistently use get_eeprom_rev(ah)
> ath9k: Make the EEPROM swapping check use the eepmisc register
> ath9k: define all EEPROM fields in Little Endian format
Applied to ath-next on ath.git, thanks.
(My automatic "accepted" email failed, so had to send this manually.)
--
Kalle Valo
WARNING: multiple messages have this Message-ID (diff)
From: "Valo, Kalle" <kvalo@qca.qualcomm.com>
To: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: ath9k-devel <ath9k-devel@qca.qualcomm.com>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
"ath9k-devel@lists.ath9k.org" <ath9k-devel@lists.ath9k.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"arnd@arndb.de" <arnd@arndb.de>,
"chunkeey@googlemail.com" <chunkeey@googlemail.com>,
"nbd@nbd.name" <nbd@nbd.name>
Subject: Re: [PATCH v2 0/7] ath9k: EEPROM swapping improvements
Date: Thu, 15 Dec 2016 08:34:37 +0000 [thread overview]
Message-ID: <871sx9wpyb.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <20161002222913.12223-1-martin.blumenstingl@googlemail.com> (Martin Blumenstingl's message of "Mon, 3 Oct 2016 00:29:06 +0200")
Martin Blumenstingl <martin.blumenstingl@googlemail.com> writes:
> There are two types of swapping the EEPROM data in the ath9k driver.
> Before this series one type of swapping could not be used without the
> other.
>
> The first type of swapping looks at the "magic bytes" at the start of
> the EEPROM data and performs swab16 on the EEPROM contents if needed.
> The second type of swapping is EEPROM format specific and swaps
> specific fields within the EEPROM itself (swab16, swab32 - depends on
> the EEPROM format).
>
> With this series the second part now looks at the EEPMISC register
> inside the EEPROM, which uses a bit to indicate if the EEPROM data
> is Big Endian (this is also done by the FreeBSD kernel).
> This has a nice advantage: currently there are some out-of-tree hacks
> (in OpenWrt and LEDE) where the EEPROM has a Big Endian header on a
> Big Endian system (=3D no swab16 is performed) but the EEPROM itself
> indicates that it's data is Little Endian. Until now the out-of-tree
> code simply did a swab16 before passing the data to ath9k, so ath9k
> first did the swab16 - this also enabled the format specific swapping.
> These out-of-tree hacks are still working with the new logic, but it
> is recommended to remove them. This implementation is based on a
> discussion with Arnd Bergmann who raised concerns about the
> robustness and portability of the swapping logic in the original OF
> support patch review, see [0].
>
> After a second round of patches (=3D v1 of this series) neither Arnd
> Bergmann nor I were really happy with the complexity of the EEPROM
> swapping logic. Based on a discussion (see [1] and [2]) we decided
> that ath9k should use a defined format (specifying the endianness
> of the data - I went with __le16 and __le32) when accessing the
> EEPROM fields. A benefit of this is that we enable the EEPMISC based
> swapping logic by default, just like the FreeBSD driver, see [3]. On
> the devices which I have tested (see below) ath9k now works without
> having to specify the "endian_check" field in ath9k_platform_data (or
> a similar logic which could provide this via devicetree) as ath9k now
> detects the endianness automatically. Only EEPROMs which are mangled
> by some out-of-tree code still need the endian_check flag (or one can
> simply remove that mangling from the out-of-tree code).
>
> Testing:
> - tested by myself on AR9287 with Big Endian EEPROM
> - tested by myself on AR9227 with Little Endian EEPROM
> - tested by myself on AR9381 (using the ar9003_eeprom implementation,
> which did not suffer from this whole problem)
> - how do we proceed with testing? maybe we could keep this in a
> feature-branch and add these patches to LEDE once we have an ACK to
> get more people to test this
>
> This series depends on my other series (v7):
> "add devicetree support to ath9k" - see [4]
>
> Changes since v1:
> - reworked description in the cover-letter to describe the reasons
> behind the new patch 7
> - reworked patch "Set the "big endian" bit of the AR9003 EEPROM
> templates" as ar9003_eeprom.c sets all values as Little Endian, thus
> the Big Endian bit should never be set (the new patch makes this
> clear)
> - dropped "ath9k: Make EEPROM endianness swapping configurable via
> devicetree" as it is not needed anymore with the new logic from
> patch 7
> - added patches 4 and 5 as small cleanup (this made it easier to
> implement the le{16,32}_to_cpu() changes where needed)
>
>
> [0] http://www.spinics.net/lists/linux-wireless/msg152634.html
> [1] https://marc.info/?l=3Dlinux-wireless&m=3D147250597503174&w=3D2
> [2] https://marc.info/?l=3Dlinux-wireless&m=3D147254388611344&w=3D2
> [3] https://github.com/freebsd/freebsd/blob/50719b56d9ce8d7d4beb53b16e9ed=
b2e9a4a7a18/sys/dev/ath/ath_hal/ah_eeprom_9287.c#L351
> [4] https://marc.info/?l=3Dlinux-wireless&m=3D147544488619822&w=3D2
>
> Martin Blumenstingl (7):
> ath9k: Add a #define for the EEPROM "eepmisc" endianness bit
> ath9k: indicate that the AR9003 EEPROM template values are little
> endian
> ath9k: Add an eeprom_ops callback for retrieving the eepmisc value
> ath9k: replace eeprom_param EEP_MINOR_REV with get_eeprom_rev
> ath9k: consistently use get_eeprom_rev(ah)
> ath9k: Make the EEPROM swapping check use the eepmisc register
> ath9k: define all EEPROM fields in Little Endian format
Applied to ath-next on ath.git, thanks.
(My automatic "accepted" email failed, so had to send this manually.)
--=20
Kalle Valo=
WARNING: multiple messages have this Message-ID (diff)
From: "Valo, Kalle" <kvalo-A+ZNKFmMK5xy9aJCnZT0Uw@public.gmane.org>
To: Martin Blumenstingl
<martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
Cc: ath9k-devel <ath9k-devel-A+ZNKFmMK5xy9aJCnZT0Uw@public.gmane.org>,
"linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"ath9k-devel-xDcbHBWguxHbcTqmT+pZeQ@public.gmane.org"
<ath9k-devel-xDcbHBWguxHbcTqmT+pZeQ@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"arnd-r2nGTMty4D4@public.gmane.org"
<arnd-r2nGTMty4D4@public.gmane.org>,
"chunkeey-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org"
<chunkeey-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>,
"nbd-Vt+b4OUoWG0@public.gmane.org"
<nbd-Vt+b4OUoWG0@public.gmane.org>
Subject: Re: [PATCH v2 0/7] ath9k: EEPROM swapping improvements
Date: Thu, 15 Dec 2016 08:34:37 +0000 [thread overview]
Message-ID: <871sx9wpyb.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <20161002222913.12223-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> (Martin Blumenstingl's message of "Mon, 3 Oct 2016 00:29:06 +0200")
Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> writes:
> There are two types of swapping the EEPROM data in the ath9k driver.
> Before this series one type of swapping could not be used without the
> other.
>
> The first type of swapping looks at the "magic bytes" at the start of
> the EEPROM data and performs swab16 on the EEPROM contents if needed.
> The second type of swapping is EEPROM format specific and swaps
> specific fields within the EEPROM itself (swab16, swab32 - depends on
> the EEPROM format).
>
> With this series the second part now looks at the EEPMISC register
> inside the EEPROM, which uses a bit to indicate if the EEPROM data
> is Big Endian (this is also done by the FreeBSD kernel).
> This has a nice advantage: currently there are some out-of-tree hacks
> (in OpenWrt and LEDE) where the EEPROM has a Big Endian header on a
> Big Endian system (= no swab16 is performed) but the EEPROM itself
> indicates that it's data is Little Endian. Until now the out-of-tree
> code simply did a swab16 before passing the data to ath9k, so ath9k
> first did the swab16 - this also enabled the format specific swapping.
> These out-of-tree hacks are still working with the new logic, but it
> is recommended to remove them. This implementation is based on a
> discussion with Arnd Bergmann who raised concerns about the
> robustness and portability of the swapping logic in the original OF
> support patch review, see [0].
>
> After a second round of patches (= v1 of this series) neither Arnd
> Bergmann nor I were really happy with the complexity of the EEPROM
> swapping logic. Based on a discussion (see [1] and [2]) we decided
> that ath9k should use a defined format (specifying the endianness
> of the data - I went with __le16 and __le32) when accessing the
> EEPROM fields. A benefit of this is that we enable the EEPMISC based
> swapping logic by default, just like the FreeBSD driver, see [3]. On
> the devices which I have tested (see below) ath9k now works without
> having to specify the "endian_check" field in ath9k_platform_data (or
> a similar logic which could provide this via devicetree) as ath9k now
> detects the endianness automatically. Only EEPROMs which are mangled
> by some out-of-tree code still need the endian_check flag (or one can
> simply remove that mangling from the out-of-tree code).
>
> Testing:
> - tested by myself on AR9287 with Big Endian EEPROM
> - tested by myself on AR9227 with Little Endian EEPROM
> - tested by myself on AR9381 (using the ar9003_eeprom implementation,
> which did not suffer from this whole problem)
> - how do we proceed with testing? maybe we could keep this in a
> feature-branch and add these patches to LEDE once we have an ACK to
> get more people to test this
>
> This series depends on my other series (v7):
> "add devicetree support to ath9k" - see [4]
>
> Changes since v1:
> - reworked description in the cover-letter to describe the reasons
> behind the new patch 7
> - reworked patch "Set the "big endian" bit of the AR9003 EEPROM
> templates" as ar9003_eeprom.c sets all values as Little Endian, thus
> the Big Endian bit should never be set (the new patch makes this
> clear)
> - dropped "ath9k: Make EEPROM endianness swapping configurable via
> devicetree" as it is not needed anymore with the new logic from
> patch 7
> - added patches 4 and 5 as small cleanup (this made it easier to
> implement the le{16,32}_to_cpu() changes where needed)
>
>
> [0] http://www.spinics.net/lists/linux-wireless/msg152634.html
> [1] https://marc.info/?l=linux-wireless&m=147250597503174&w=2
> [2] https://marc.info/?l=linux-wireless&m=147254388611344&w=2
> [3] https://github.com/freebsd/freebsd/blob/50719b56d9ce8d7d4beb53b16e9edb2e9a4a7a18/sys/dev/ath/ath_hal/ah_eeprom_9287.c#L351
> [4] https://marc.info/?l=linux-wireless&m=147544488619822&w=2
>
> Martin Blumenstingl (7):
> ath9k: Add a #define for the EEPROM "eepmisc" endianness bit
> ath9k: indicate that the AR9003 EEPROM template values are little
> endian
> ath9k: Add an eeprom_ops callback for retrieving the eepmisc value
> ath9k: replace eeprom_param EEP_MINOR_REV with get_eeprom_rev
> ath9k: consistently use get_eeprom_rev(ah)
> ath9k: Make the EEPROM swapping check use the eepmisc register
> ath9k: define all EEPROM fields in Little Endian format
Applied to ath-next on ath.git, thanks.
(My automatic "accepted" email failed, so had to send this manually.)
--
Kalle Valo--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-12-15 8:34 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-21 14:49 [ath9k-devel] [PATCH 0/5] ath9k: EEPROM swapping improvements Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` [ath9k-devel] [PATCH 1/5] ath9k: Add a #define for the EEPROM "eepmisc" endianness bit Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-22 11:42 ` [ath9k-devel] " Arnd Bergmann
2016-08-22 11:42 ` Arnd Bergmann
2016-08-22 11:42 ` Arnd Bergmann
2016-08-21 14:49 ` [ath9k-devel] [PATCH 2/5] ath9k: Set the "big endian" bit of the AR9003 EEPROM templates Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-22 11:47 ` [ath9k-devel] " Arnd Bergmann
2016-08-22 11:47 ` Arnd Bergmann
2016-08-22 11:47 ` Arnd Bergmann
2016-08-22 11:56 ` [ath9k-devel] " Martin Blumenstingl
2016-08-22 11:56 ` Martin Blumenstingl
2016-08-22 11:56 ` Martin Blumenstingl
2016-08-22 15:31 ` [ath9k-devel] " Arnd Bergmann
2016-08-22 15:31 ` Arnd Bergmann
2016-08-22 15:31 ` Arnd Bergmann
2016-08-22 20:31 ` [ath9k-devel] " Martin Blumenstingl
2016-08-22 20:31 ` Martin Blumenstingl
2016-08-22 20:31 ` Martin Blumenstingl
2016-08-21 14:49 ` [ath9k-devel] [PATCH 3/5] ath9k: Add an eeprom_ops callback for retrieving the eepmisc value Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` [ath9k-devel] [PATCH 4/5] ath9k: Make the EEPROM swapping check use the eepmisc register Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` [ath9k-devel] [PATCH 5/5] ath9k: Make EEPROM endianness swapping configurable via devicetree Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-21 14:49 ` Martin Blumenstingl
2016-08-22 11:52 ` [ath9k-devel] " Arnd Bergmann
2016-08-22 11:52 ` Arnd Bergmann
2016-08-22 11:52 ` Arnd Bergmann
2016-08-28 21:10 ` [ath9k-devel] " Martin Blumenstingl
2016-08-28 21:10 ` Martin Blumenstingl
2016-08-28 21:10 ` Martin Blumenstingl
2016-08-29 12:10 ` [ath9k-devel] " Arnd Bergmann
2016-08-29 12:10 ` Arnd Bergmann
2016-08-29 12:10 ` Arnd Bergmann
2016-08-29 19:45 ` [ath9k-devel] " Martin Blumenstingl
2016-08-29 19:45 ` Martin Blumenstingl
2016-08-29 19:45 ` Martin Blumenstingl
2016-08-29 21:25 ` [ath9k-devel] " Arnd Bergmann
2016-08-29 21:25 ` Arnd Bergmann
2016-08-29 21:25 ` Arnd Bergmann
2016-08-29 22:07 ` [ath9k-devel] " Martin Blumenstingl
2016-08-29 22:07 ` Martin Blumenstingl
2016-08-29 22:07 ` Martin Blumenstingl
2016-08-30 7:57 ` [ath9k-devel] " Arnd Bergmann
2016-08-30 7:57 ` Arnd Bergmann
2016-08-30 7:57 ` Arnd Bergmann
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 0/7] ath9k: EEPROM swapping improvements Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 1/7] ath9k: Add a #define for the EEPROM "eepmisc" endianness bit Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 2/7] ath9k: indicate that the AR9003 EEPROM template values are little endian Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 3/7] ath9k: Add an eeprom_ops callback for retrieving the eepmisc value Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 4/7] ath9k: replace eeprom_param EEP_MINOR_REV with get_eeprom_rev Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 5/7] ath9k: consistently use get_eeprom_rev(ah) Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 6/7] ath9k: Make the EEPROM swapping check use the eepmisc register Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` [ath9k-devel] [PATCH v2 7/7] ath9k: define all EEPROM fields in Little Endian format Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-02 22:29 ` Martin Blumenstingl
2016-10-12 13:18 ` [ath9k-devel] [PATCH v2 0/7] ath9k: EEPROM swapping improvements Kalle Valo
2016-10-12 13:18 ` Kalle Valo
2016-10-12 13:18 ` Kalle Valo
2016-11-25 15:06 ` [ath9k-devel] " Valo, Kalle
2016-11-25 15:06 ` Valo, Kalle
2016-11-25 15:06 ` Valo, Kalle
2016-11-25 23:49 ` [ath9k-devel] " Martin Blumenstingl
2016-11-25 23:49 ` Martin Blumenstingl
2016-11-25 23:49 ` Martin Blumenstingl
2016-12-12 20:05 ` [ath9k-devel] " Martin Blumenstingl
2016-12-12 20:05 ` Martin Blumenstingl
2016-12-12 20:05 ` Martin Blumenstingl
2016-12-13 12:03 ` [ath9k-devel] " Valo, Kalle
2016-12-13 12:03 ` Valo, Kalle
2016-12-13 12:03 ` Valo, Kalle
2016-12-14 6:45 ` [ath9k-devel] " Adrian Chadd
2016-12-14 6:45 ` Adrian Chadd
2016-12-14 6:45 ` Adrian Chadd
2016-12-17 14:40 ` [ath9k-devel] " Martin Blumenstingl
2016-12-17 14:40 ` Martin Blumenstingl
2016-12-17 14:40 ` Martin Blumenstingl
2016-12-15 8:34 ` Valo, Kalle [this message]
2016-12-15 8:34 ` Valo, Kalle
2016-12-15 8:34 ` Valo, Kalle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871sx9wpyb.fsf@kamboji.qca.qualcomm.com \
--to=kvalo@qca.qualcomm.com \
--cc=ath9k-devel@lists.ath9k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.