Initial Linux-wireless contribution
Kalle Valo
kvalo at qca.qualcomm.com
Tue Aug 6 04:28:38 EDT 2013
Eugene Krasnikov <k.eugene.e at gmail.com> writes:
> With this commit I made a draft version of platform abstraction layer
> https://github.com/KrasnikovEugene/wcn36xx/commit/becf7a7a7d67c2913b61091a14eee404bde516bc
>
> Interface is defined with struct wcn36xx_platform_data here
> https://github.com/KrasnikovEugene/wcn36xx/blob/pal/wcn36xx.h#L103
>
> Probe will be called from outside the driver. I'll publish that part later on.
>
> Could you please have a look and express your opinion about the
> concept?
So the struct is:
struct wcn36xx_platform_data {
struct device *dev;
/* IRQs */
int tx_irq;
int rx_irq;
void __iomem *mmio;
};
Why do we need dev there? That's not clear to me.
tx_irq and rx_irq look ok.
With mmio I'm not sure. I was thinking that we would provide 'struct
resource *wcnss_memory' instead so that we can do ioremap() in the probe
and iounmap() in the remove. I think it's easier to manage allocations
that way.
> Should we put SMD channel handling in there as well? Any thoughts are
> welcome.
I forgot SMD altogether and of course there's a problem :(
I don't see smd_named_open_on_edge() at all in upstream tree. But I do
see smd_open() and smd_close() in
arch/arm/mach-msm/include/mach/msm_smd.h. This might be tricky to solve.
Also the fact that the file is in arch/arm/mach-msm/include/mach/ might
make things difficult. We should be able to compile wcn36xx also on x86
but I'm not sure how that's possible now.
--
Kalle Valo
More information about the wcn36xx
mailing list