All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>
Cc: xypron.glpk@gmx.de, agraf@csgraf.de, sjg@chromium.org,
	u-boot@lists.denx.de
Subject: Re: [resent RFC 06/22] sata: call device_probe() after scanning
Date: Mon, 4 Oct 2021 21:45:35 +0300	[thread overview]
Message-ID: <YVtLz+bqkFXO2J7x@enceladus> (raw)
In-Reply-To: <20211004034430.41355-7-takahiro.akashi@linaro.org>

On Mon, Oct 04, 2021 at 12:44:14PM +0900, AKASHI Takahiro wrote:
> Every time a sata bus/port is scanned and a new device is detected,
> we want to call device_probe() as it will give us a chance to run additional
> post-processings for some purposes.
> 
> In particular, support for creating partitions on a device will be added.
> 
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
>  drivers/ata/dwc_ahsata.c | 10 ++++++++++
>  drivers/ata/fsl_sata.c   | 11 +++++++++++
>  drivers/ata/sata_mv.c    |  9 +++++++++
>  drivers/ata/sata_sil.c   | 12 ++++++++++++
>  4 files changed, 42 insertions(+)
> 
> diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
> index 6d42548087b3..6a51c70d1170 100644
> --- a/drivers/ata/dwc_ahsata.c
> +++ b/drivers/ata/dwc_ahsata.c
> @@ -1026,6 +1026,16 @@ int dwc_ahsata_scan(struct udevice *dev)
>  		return ret;
>  	}
>  
> +	ret = device_probe(bdev);
> +	if (ret < 0) {
> +		debug("Can't probe\n");
> +		/* TODO: undo create */
> +
> +		device_unbind(bdev);
> +
> +		return ret;
> +	}
> +

Patches 2-6 seem to do the same thing for different subsystems.  I think
creating a function for that would make it easier. 

>  	return 0;
>  }
>  
> diff --git a/drivers/ata/fsl_sata.c b/drivers/ata/fsl_sata.c
> index e44db0a37458..346e9298b4c5 100644
> --- a/drivers/ata/fsl_sata.c
> +++ b/drivers/ata/fsl_sata.c
> @@ -982,6 +982,17 @@ static int fsl_ata_probe(struct udevice *dev)
>  			failed_number++;
>  			continue;
>  		}
> +
> +		ret = device_probe(bdev);
> +		if (ret < 0) {
> +			debug("Can't probe\n");
> +			ret = fsl_unbind_device(blk);

Apart from this exception I guess

> +			if (ret)
> +				return ret;
> +
> +			failed_number++;
> +			continue;
> +		}
>  	}
>  
>  	if (failed_number == nr_ports)
> diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
> index 003222d47be6..09b735779ebf 100644
> --- a/drivers/ata/sata_mv.c
> +++ b/drivers/ata/sata_mv.c
> @@ -1099,6 +1099,15 @@ static int sata_mv_probe(struct udevice *dev)
>  			continue;
>  		}
>  
> +		ret = device_probe(bdev);
> +		if (ret < 0) {
> +			debug("Can't probe\n");
> +			/* TODO: undo create */
> +
> +			device_unbind(bdev);
> +			continue;
> +		}
> +
>  		/* If we got here, the current SATA port was probed
>  		 * successfully, so set the probe status to successful.
>  		 */
> diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
> index dda712f42cb2..295f7ca72303 100644
> --- a/drivers/ata/sata_sil.c
> +++ b/drivers/ata/sata_sil.c
> @@ -864,6 +864,18 @@ static int sil_pci_probe(struct udevice *dev)
>  			failed_number++;
>  			continue;
>  		}
> +
> +		ret = device_probe(bdev);
> +		if (ret < 0) {
> +			debug("Can't probe\n");
> +			ret = sil_unbind_device(blk);
> +			device_unbind(bdev);
> +			if (ret)
> +				return ret;
> +
> +			failed_number++;
> +			continue;
> +		}
>  	}
>  
>  	if (failed_number == sata_info.maxport)
> -- 
> 2.33.0
> 

  reply	other threads:[~2021-10-04 18:45 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-04  3:44 [resent RFC 00/22] efi_loader: more tightly integrate UEFI disks to device model AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 01/22] part: call part_init() in blk_get_device_by_str() only for MMC AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 02/22] scsi: call device_probe() after scanning AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 03/22] usb: storage: " AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 04/22] mmc: " AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 05/22] nvme: " AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 06/22] sata: " AKASHI Takahiro
2021-10-04 18:45   ` Ilias Apalodimas [this message]
2021-10-05  1:06     ` AKASHI Takahiro
2021-10-08  5:44       ` Ilias Apalodimas
2021-10-04  3:44 ` [resent RFC 07/22] block: ide: " AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 08/22] dm: blk: add UCLASS_PARTITION AKASHI Takahiro
2021-10-04 18:40   ` Ilias Apalodimas
2021-10-05  1:30     ` AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 09/22] dm: blk: add a device-probe hook for scanning disk partitions AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 10/22] dm: blk: add read/write interfaces with udevice AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 11/22] efi_loader: disk: use udevice instead of blk_desc AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 12/22] dm: add a hidden link to efi object AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 13/22] efi_loader: remove !CONFIG_BLK code from efi_disk AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 14/22] efi_loader: disk: a helper function to create efi_disk objects from udevice AKASHI Takahiro
2021-10-04 18:50   ` Ilias Apalodimas
2021-10-05  1:37     ` AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 15/22] dm: blk: call efi's device-probe hook AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 16/22] efi_loader: cleanup after efi_disk-dm integration AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 17/22] efi_loader: add efi_remove_handle() AKASHI Takahiro
2021-10-12  8:16   ` Ilias Apalodimas
2021-10-13  0:55     ` AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 18/22] efi_loader: efi_disk: a helper function to delete efi_disk objects AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 19/22] dm: blk: call efi's device-removal hook AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 20/22] efi_driver: align with efi_disk-dm integration AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 21/22] efi_driver: cleanup after " AKASHI Takahiro
2021-10-04  3:44 ` [resent RFC 22/22] efi_selftest: block device: adjust dp for a test disk AKASHI Takahiro
2021-10-04 14:47 ` [resent RFC 00/22] efi_loader: more tightly integrate UEFI disks to device model Heinrich Schuchardt
2021-10-04 18:07   ` Ilias Apalodimas
2021-10-05  2:27     ` AKASHI Takahiro
2021-10-05  2:14   ` AKASHI Takahiro
2021-10-04 23:45 ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YVtLz+bqkFXO2J7x@enceladus \
    --to=ilias.apalodimas@linaro.org \
    --cc=agraf@csgraf.de \
    --cc=sjg@chromium.org \
    --cc=takahiro.akashi@linaro.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.