Initial Linux-wireless contribution

Kalle Valo kvalo at qca.qualcomm.com
Mon Aug 5 06:14:34 EDT 2013


Hi Eugene,

Eugene Krasnikov <k.eugene.e at gmail.com> writes:

> I check wcnss_core and all we need to do is to modify environment
> struct (https://www.codeaurora.org/cgit/external/gigabyte/kernel/msm/tree/drivers/net/wireless/wcnss/wcnss_wlan.c?h=jb_2.1.3.7#n140)
> and add property named void *driver_priv that will store static struct
> ieee80211_hw *private_hw; in there.

I assume you mean this struct:

static struct {
       struct platform_device *pdev;
       void                   *pil;
       struct resource        *mmio_res;
       struct resource        *tx_irq_res;
       struct resource        *rx_irq_res;
       struct resource        *gpios_5wire;
       const struct dev_pm_ops *pm_ops;
       int          triggered;
       int              smd_channel_ready;
       int                      cold_boot_done;
       smd_channel_t            *smd_ch;
       unsigned char            wcnss_version[WCNSS_VERSION_LEN];
       unsigned int             serial_number;
       int                      thermal_mitigation;
       enum wcnss_hw_type       wcnss_hw_type;
       void                     (*tm_notify)(struct device *, int);
       struct wcnss_wlan_config wlan_config;
       struct delayed_work wcnss_work;
       struct work_struct wcnssctrl_version_work;
       struct work_struct wcnssctrl_nvbin_dnld_work;
       struct work_struct wcnssctrl_rx_work;
       struct wake_lock wcnss_wake_lock;
       void __iomem *msm_wcnss_base;
};

We cannot use struck like below for the platform struct, there's just
too much cruft in there. Remember that this the struct we need to send
upstream and is the interface between the wcn36xx driver and platfrom
code. So we need to keep it small and clean.

What we need in the platform data structure are the bare essentials
needed by wcn36xx, nothing else. Then we create a new file to
include/linux/platform_data/ and put the file there once wcn36xx goes
upstream. Then we need to come up with a way to deliver the platform
data to wcn36xx, maybe something like how wl12xx_get_platform_data()
does it. Not sure about that part yet.

> Now the most difficult part left: contact wcnss_core maintainers and
> ask them if they will accept patches!?

It's better that we first agree on details before submitting patches to
wcnss.

-- 
Kalle Valo



More information about the wcn36xx mailing list