@@ -85,7 +85,6 @@ struct omap_mbox_device {
85
85
u32 num_users ;
86
86
u32 num_fifos ;
87
87
u32 intr_type ;
88
- struct omap_mbox * * mboxes ;
89
88
};
90
89
91
90
struct omap_mbox {
@@ -356,25 +355,6 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
356
355
mbox_queue_free (mbox -> rxq );
357
356
}
358
357
359
- static struct omap_mbox * omap_mbox_device_find (struct omap_mbox_device * mdev ,
360
- const char * mbox_name )
361
- {
362
- struct omap_mbox * _mbox , * mbox = NULL ;
363
- struct omap_mbox * * mboxes = mdev -> mboxes ;
364
- int i ;
365
-
366
- if (!mboxes )
367
- return NULL ;
368
-
369
- for (i = 0 ; (_mbox = mboxes [i ]); i ++ ) {
370
- if (!strcmp (_mbox -> name , mbox_name )) {
371
- mbox = _mbox ;
372
- break ;
373
- }
374
- }
375
- return mbox ;
376
- }
377
-
378
358
static int omap_mbox_chan_startup (struct mbox_chan * chan )
379
359
{
380
360
struct omap_mbox * mbox = mbox_chan_to_omap_mbox (chan );
@@ -539,6 +519,7 @@ static struct mbox_chan *omap_mbox_of_xlate(struct mbox_controller *controller,
539
519
struct device_node * node ;
540
520
struct omap_mbox_device * mdev ;
541
521
struct omap_mbox * mbox ;
522
+ int i ;
542
523
543
524
mdev = dev_get_drvdata (controller -> dev );
544
525
if (WARN_ON (!mdev ))
@@ -551,16 +532,23 @@ static struct mbox_chan *omap_mbox_of_xlate(struct mbox_controller *controller,
551
532
return ERR_PTR (- ENODEV );
552
533
}
553
534
554
- mbox = omap_mbox_device_find (mdev , node -> name );
535
+ for (i = 0 ; i < controller -> num_chans ; i ++ ) {
536
+ mbox = controller -> chans [i ].con_priv ;
537
+ if (!strcmp (mbox -> name , node -> name )) {
538
+ of_node_put (node );
539
+ return & controller -> chans [i ];
540
+ }
541
+ }
542
+
555
543
of_node_put (node );
556
- return mbox ? mbox -> chan : ERR_PTR (- ENOENT );
544
+ return ERR_PTR (- ENOENT );
557
545
}
558
546
559
547
static int omap_mbox_probe (struct platform_device * pdev )
560
548
{
561
549
int ret ;
562
550
struct mbox_chan * chnls ;
563
- struct omap_mbox * * list , * mbox ;
551
+ struct omap_mbox * mbox ;
564
552
struct omap_mbox_device * mdev ;
565
553
struct omap_mbox_fifo * fifo ;
566
554
struct device_node * node = pdev -> dev .of_node ;
@@ -608,12 +596,6 @@ static int omap_mbox_probe(struct platform_device *pdev)
608
596
if (!mdev -> irq_ctx )
609
597
return - ENOMEM ;
610
598
611
- /* allocate one extra for marking end of list */
612
- list = devm_kcalloc (& pdev -> dev , info_count + 1 , sizeof (* list ),
613
- GFP_KERNEL );
614
- if (!list )
615
- return - ENOMEM ;
616
-
617
599
chnls = devm_kcalloc (& pdev -> dev , info_count + 1 , sizeof (* chnls ),
618
600
GFP_KERNEL );
619
601
if (!chnls )
@@ -675,15 +657,13 @@ static int omap_mbox_probe(struct platform_device *pdev)
675
657
return mbox -> irq ;
676
658
mbox -> chan = & chnls [i ];
677
659
chnls [i ].con_priv = mbox ;
678
- list [i ] = mbox ++ ;
679
660
}
680
661
681
662
mutex_init (& mdev -> cfg_lock );
682
663
mdev -> dev = & pdev -> dev ;
683
664
mdev -> num_users = num_users ;
684
665
mdev -> num_fifos = num_fifos ;
685
666
mdev -> intr_type = intr_type ;
686
- mdev -> mboxes = list ;
687
667
688
668
controller = devm_kzalloc (& pdev -> dev , sizeof (* controller ), GFP_KERNEL );
689
669
if (!controller )
0 commit comments