Hi Daniel
On Fri, Jan 20, 2017 at 12:42:44AM +0100, Daniel Golle wrote:
> +int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev)
> +{
> + struct hw_mode_spec *spec = &rt2x00dev->spec;
> + struct clk *clk = clk_get(rt2x00dev->dev, NULL);
> +
> + if (IS_ERR(clk))
> + return PTR_ERR(clk);
> +
> + if (clk_get_rate(clk) == 20000000)
> + spec->clk_is_20mhz = 1;
> +
> + return 0;
> +}
> +
> int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
> {
> int retval;
> @@ -7864,6 +7903,15 @@ int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
> rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
>
> /*
> + * Probe SoC clock.
> + */
> + if (rt2x00_is_soc(rt2x00dev)) {
> + retval = rt2800_probe_clk(rt2x00dev);
> + if (retval)
> + return retval;
> + }
<snip>
> @@ -415,6 +416,7 @@ struct hw_mode_spec {
> const struct channel_info *channels_info;
>
> struct ieee80211_sta_ht_cap ht;
> + int clk_is_20mhz;
I dislike adding this variable to structure that is intended to describe
wireless capabilities. Additionally we do not actually "probe" the
clock but just read it value from rt2x00dev->dev, this can be handled
better. I'll post different patch reading clk and on top of if this
patch and "add support for RT5350 WiSoC" .
Regards
Stanislaw