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