Commit 5b703683b6cc3cb97bbe6b1b14898b273eb59279

Authored by Pavel Machek
Committed by Dominik Brodowski
1 parent d5bb2923cf

pcmcia vs. MECR on pxa25x/sa1111

After 2.6.34 changes, __pxa2xx_drv_pcmcia_probe() was replaced by
sa1111_pcmcia_add(). That unfortunately means that configure_sockets()
is not called, leading to MECR not being set properly, leading to
strange crashes.

Tested on pxa255+sa1111, I do not have lubbock board nearby. Perhaps
cleaner solution exists?

Signed-off-by: Pavel Machek <pma@sysgo.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

Showing 3 changed files with 3 additions and 1 deletions Side-by-side Diff

drivers/pcmcia/pxa2xx_base.c
... ... @@ -215,7 +215,7 @@
215 215 }
216 216 #endif
217 217  
218   -static void pxa2xx_configure_sockets(struct device *dev)
  218 +void pxa2xx_configure_sockets(struct device *dev)
219 219 {
220 220 struct pcmcia_low_level *ops = dev->platform_data;
221 221 /*
drivers/pcmcia/pxa2xx_base.h
1 1 int pxa2xx_drv_pcmcia_add_one(struct soc_pcmcia_socket *skt);
2 2 void pxa2xx_drv_pcmcia_ops(struct pcmcia_low_level *ops);
  3 +void pxa2xx_configure_sockets(struct device *dev);
drivers/pcmcia/pxa2xx_lubbock.c
... ... @@ -226,6 +226,7 @@
226 226 lubbock_set_misc_wr((1 << 15) | (1 << 14), 0);
227 227  
228 228 pxa2xx_drv_pcmcia_ops(&lubbock_pcmcia_ops);
  229 + pxa2xx_configure_sockets(&sadev->dev);
229 230 ret = sa1111_pcmcia_add(sadev, &lubbock_pcmcia_ops,
230 231 pxa2xx_drv_pcmcia_add_one);
231 232 }