aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/tifm_7xx1.c
diff options
context:
space:
mode:
authorAlex Dubov <oakad@yahoo.com>2008-02-09 13:20:54 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-09 14:08:34 -0500
commitbaf8532a147d5b76681ce040e2c8f25a3f0e718d (patch)
tree69c228046709295c1152f2063321327789c3b9f4 /drivers/misc/tifm_7xx1.c
parent941edd030b9725f9f85bd62dfdb68cde3a50fb66 (diff)
memstick: initial commit for Sony MemoryStick support
Sony MemoryStick cards are used in many products manufactured by Sony. They are available both as storage and as IO expansion cards. Currently, only MemoryStick Pro storage cards are supported via TI FlashMedia MemoryStick interface. [mboton@gmail.com: biuld fix] [akpm@linux-foundation.org: build fix] Signed-off-by: Alex Dubov <oakad@yahoo.com> Signed-off-by: Miguel Boton <mboton@gmail.co> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/tifm_7xx1.c')
-rw-r--r--drivers/misc/tifm_7xx1.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index 54380da343a..63a089b2954 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -302,6 +302,21 @@ static int tifm_7xx1_resume(struct pci_dev *dev)
302 302
303#endif /* CONFIG_PM */ 303#endif /* CONFIG_PM */
304 304
305static int tifm_7xx1_dummy_has_ms_pif(struct tifm_adapter *fm,
306 struct tifm_dev *sock)
307{
308 return 0;
309}
310
311static int tifm_7xx1_has_ms_pif(struct tifm_adapter *fm, struct tifm_dev *sock)
312{
313 if (((fm->num_sockets == 4) && (sock->socket_id == 2))
314 || ((fm->num_sockets == 2) && (sock->socket_id == 0)))
315 return 1;
316
317 return 0;
318}
319
305static int tifm_7xx1_probe(struct pci_dev *dev, 320static int tifm_7xx1_probe(struct pci_dev *dev,
306 const struct pci_device_id *dev_id) 321 const struct pci_device_id *dev_id)
307{ 322{
@@ -336,6 +351,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
336 351
337 INIT_WORK(&fm->media_switcher, tifm_7xx1_switch_media); 352 INIT_WORK(&fm->media_switcher, tifm_7xx1_switch_media);
338 fm->eject = tifm_7xx1_eject; 353 fm->eject = tifm_7xx1_eject;
354 fm->has_ms_pif = tifm_7xx1_has_ms_pif;
339 pci_set_drvdata(dev, fm); 355 pci_set_drvdata(dev, fm);
340 356
341 fm->addr = ioremap(pci_resource_start(dev, 0), 357 fm->addr = ioremap(pci_resource_start(dev, 0),
@@ -377,6 +393,7 @@ static void tifm_7xx1_remove(struct pci_dev *dev)
377 int cnt; 393 int cnt;
378 394
379 fm->eject = tifm_7xx1_dummy_eject; 395 fm->eject = tifm_7xx1_dummy_eject;
396 fm->has_ms_pif = tifm_7xx1_dummy_has_ms_pif;
380 writel(TIFM_IRQ_SETALL, fm->addr + FM_CLEAR_INTERRUPT_ENABLE); 397 writel(TIFM_IRQ_SETALL, fm->addr + FM_CLEAR_INTERRUPT_ENABLE);
381 mmiowb(); 398 mmiowb();
382 free_irq(dev->irq, fm); 399 free_irq(dev->irq, fm);