Source
258
258
mbox->controller.chans = mbox->chan;
259
259
mbox->controller.num_chans = MBOX_CHAN_MAX;
260
260
mbox->controller.ops = &hi3660_mbox_ops;
261
261
mbox->controller.of_xlate = hi3660_mbox_xlate;
262
262
263
263
/* Initialize mailbox channel data */
264
264
chan = mbox->chan;
265
265
for (ch = 0; ch < MBOX_CHAN_MAX; ch++)
266
266
chan[ch].con_priv = (void *)ch;
267
267
268
-
err = mbox_controller_register(&mbox->controller);
268
+
err = devm_mbox_controller_register(dev, &mbox->controller);
269
269
if (err) {
270
270
dev_err(dev, "Failed to register mailbox %d\n", err);
271
271
return err;
272
272
}
273
273
274
274
platform_set_drvdata(pdev, mbox);
275
275
dev_info(dev, "Mailbox enabled\n");
276
276
return 0;
277
277
}
278
278
279
-
static int hi3660_mbox_remove(struct platform_device *pdev)
280
-
{
281
-
struct hi3660_mbox *mbox = platform_get_drvdata(pdev);
282
-
283
-
mbox_controller_unregister(&mbox->controller);
284
-
return 0;
285
-
}
286
-
287
279
static struct platform_driver hi3660_mbox_driver = {
288
280
.probe = hi3660_mbox_probe,
289
-
.remove = hi3660_mbox_remove,
290
281
.driver = {
291
282
.name = "hi3660-mbox",
292
283
.of_match_table = hi3660_mbox_of_match,
293
284
},
294
285
};
295
286
296
287
static int __init hi3660_mbox_init(void)
297
288
{
298
289
return platform_driver_register(&hi3660_mbox_driver);
299
290
}