return 0;
  
  setup_exit:
 +      pm_runtime_put(&sdd->pdev->dev);
        /* setup() returns with device de-selected */
+       writel(S3C64XX_SPI_SLAVE_SIG_INACT, sdd->regs + S3C64XX_SPI_SLAVE_SEL);
        disable_cs(sdd, spi);
  
        gpio_free(cs->line);
               S3C64XX_SPI_INT_TX_OVERRUN_EN | S3C64XX_SPI_INT_TX_UNDERRUN_EN,
               sdd->regs + S3C64XX_SPI_INT_EN);
  
 +      pm_runtime_set_active(&pdev->dev);
        pm_runtime_enable(&pdev->dev);
  
-       if (spi_register_master(master)) {
-               dev_err(&pdev->dev, "cannot register SPI master\n");
-               ret = -EBUSY;
+       ret = devm_spi_register_master(&pdev->dev, master);
+       if (ret != 0) {
+               dev_err(&pdev->dev, "cannot register SPI master: %d\n", ret);
                goto err3;
        }