Merge tag 'drm-intel-next-2019-03-20' of git://anongit.freedesktop.org/drm/drm-intel...
[platform/kernel/linux-starfive.git] / drivers / mailbox / mailbox-test.c
index 58bfafc..4e4ac4b 100644 (file)
@@ -31,7 +31,6 @@
                                 (MBOX_MAX_MSG_LEN / MBOX_BYTES_PER_LINE))
 
 static bool mbox_data_ready;
-static struct dentry *root_debugfs_dir;
 
 struct mbox_test_device {
        struct device           *dev;
@@ -45,6 +44,7 @@ struct mbox_test_device {
        spinlock_t              lock;
        wait_queue_head_t       waitq;
        struct fasync_struct    *async_queue;
+       struct dentry           *root_debugfs_dir;
 };
 
 static ssize_t mbox_test_signal_write(struct file *filp,
@@ -262,16 +262,16 @@ static int mbox_test_add_debugfs(struct platform_device *pdev,
        if (!debugfs_initialized())
                return 0;
 
-       root_debugfs_dir = debugfs_create_dir("mailbox", NULL);
-       if (!root_debugfs_dir) {
+       tdev->root_debugfs_dir = debugfs_create_dir(dev_name(&pdev->dev), NULL);
+       if (!tdev->root_debugfs_dir) {
                dev_err(&pdev->dev, "Failed to create Mailbox debugfs\n");
                return -EINVAL;
        }
 
-       debugfs_create_file("message", 0600, root_debugfs_dir,
+       debugfs_create_file("message", 0600, tdev->root_debugfs_dir,
                            tdev, &mbox_test_message_ops);
 
-       debugfs_create_file("signal", 0200, root_debugfs_dir,
+       debugfs_create_file("signal", 0200, tdev->root_debugfs_dir,
                            tdev, &mbox_test_signal_ops);
 
        return 0;
@@ -363,22 +363,24 @@ static int mbox_test_probe(struct platform_device *pdev)
 
        /* It's okay for MMIO to be NULL */
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       size = resource_size(res);
        tdev->tx_mmio = devm_ioremap_resource(&pdev->dev, res);
-       if (PTR_ERR(tdev->tx_mmio) == -EBUSY)
+       if (PTR_ERR(tdev->tx_mmio) == -EBUSY) {
                /* if reserved area in SRAM, try just ioremap */
+               size = resource_size(res);
                tdev->tx_mmio = devm_ioremap(&pdev->dev, res->start, size);
-       else if (IS_ERR(tdev->tx_mmio))
+       } else if (IS_ERR(tdev->tx_mmio)) {
                tdev->tx_mmio = NULL;
+       }
 
        /* If specified, second reg entry is Rx MMIO */
        res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-       size = resource_size(res);
        tdev->rx_mmio = devm_ioremap_resource(&pdev->dev, res);
-       if (PTR_ERR(tdev->rx_mmio) == -EBUSY)
+       if (PTR_ERR(tdev->rx_mmio) == -EBUSY) {
+               size = resource_size(res);
                tdev->rx_mmio = devm_ioremap(&pdev->dev, res->start, size);
-       else if (IS_ERR(tdev->rx_mmio))
+       } else if (IS_ERR(tdev->rx_mmio)) {
                tdev->rx_mmio = tdev->tx_mmio;
+       }
 
        tdev->tx_channel = mbox_test_request_channel(pdev, "tx");
        tdev->rx_channel = mbox_test_request_channel(pdev, "rx");
@@ -416,7 +418,7 @@ static int mbox_test_remove(struct platform_device *pdev)
 {
        struct mbox_test_device *tdev = platform_get_drvdata(pdev);
 
-       debugfs_remove_recursive(root_debugfs_dir);
+       debugfs_remove_recursive(tdev->root_debugfs_dir);
 
        if (tdev->tx_channel)
                mbox_free_channel(tdev->tx_channel);