All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/7] drivers: block: disk-uclass: implement scsi_init()
Date: Sat, 6 Feb 2016 13:29:34 -0700	[thread overview]
Message-ID: <CAPnjgZ2nMcHT9_-_NpPg+pqe7fsupqHDQH2y1oFmNRbvE5u8Rg@mail.gmail.com> (raw)
In-Reply-To: <1454500780-20751-4-git-send-email-mugunthanvnm@ti.com>

Hi Bin,

On 3 February 2016 at 04:59, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>
> Implement scsi_init() api to probe driver model based sata
> devices.
>
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> ---
>  drivers/block/disk-uclass.c | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)

This patch seems odd to me. I would hope that scsi_init() would go
away with driver model and it would happen as part of the controller
probe. But of course we cannot probe SCSI from UCLASS_DISK. I think
the uclass 'disk' is too broad to be useful.

So I am wondering whether the decision to use UCLASS_DISK instead of
UCLASS_AHCI was a mistake.

Perhaps instead we should have:

UCLASS_AHCI
UCLASS_SCSI
UCLASS_MMC
etc...

and each of these devices can have a UCLASS_BLK under them (the block device).

Possibly we could even have a dummy UCLASS_DISK device under each of
the above, but I'm not sure that is useful.

What do you think?

>
> diff --git a/drivers/block/disk-uclass.c b/drivers/block/disk-uclass.c
> index d665b35..4bd7b56 100644
> --- a/drivers/block/disk-uclass.c
> +++ b/drivers/block/disk-uclass.c
> @@ -7,6 +7,45 @@
>
>  #include <common.h>
>  #include <dm.h>
> +#include <dm/uclass-internal.h>
> +#include <dm/device-internal.h>
> +#include <scsi.h>
> +
> +int scsi_get_device(int index, struct udevice **devp)
> +{
> +       struct udevice *dev;
> +       int ret;
> +
> +       ret = uclass_find_device(UCLASS_DISK, index, &dev);
> +       if (ret || !dev) {
> +               printf("%d device not found\n", index);
> +               return ret;
> +       }
> +
> +       ret = device_probe(dev);
> +       if (ret) {
> +               error("device probe error\n");
> +               return ret;
> +       }
> +
> +       *devp = dev;
> +
> +       return ret;
> +}
> +
> +void scsi_init(void)
> +{
> +       struct udevice *dev;
> +       int ret;
> +
> +       ret = scsi_get_device(0, &dev);
> +       if (ret || !dev) {
> +               error("scsi device not found\n");
> +               return;
> +       }
> +
> +       scsi_scan(1);
> +}
>
>  UCLASS_DRIVER(disk) = {
>         .id             = UCLASS_DISK,
> --
> 2.7.0.75.g3ee1e0f
>

Regards,
Simon

  reply	other threads:[~2016-02-06 20:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 11:59 [U-Boot] [PATCH v2 0/7] driver model bring-up of sata device on dra72 and dra74 evm Mugunthan V N
2016-02-03 11:59 ` [U-Boot] [PATCH v2 1/7] arm: omap: sata: move enable sata clocks to enable_basic_clocks() Mugunthan V N
2016-02-16 16:01   ` Simon Glass
2016-02-03 11:59 ` [U-Boot] [PATCH v2 2/7] arm: omap: sata: compile out sata init apis when CONFIG_DISK is defined Mugunthan V N
2016-02-16 16:01   ` Simon Glass
2016-02-03 11:59 ` [U-Boot] [PATCH v2 3/7] drivers: block: disk-uclass: implement scsi_init() Mugunthan V N
2016-02-06 20:29   ` Simon Glass [this message]
2016-02-08 11:23     ` Mugunthan V N
2016-02-08 17:45       ` Simon Glass
2016-02-08 18:28         ` Tom Rini
2016-02-15  3:03     ` Bin Meng
2016-02-16 16:01       ` Simon Glass
2016-02-24 16:20   ` [U-Boot] [U-Boot, v2, " Tom Rini
2016-02-25  9:34     ` Mugunthan V N
2016-02-25 15:30       ` Simon Glass
2016-02-25 17:35         ` Mugunthan V N
2016-02-03 11:59 ` [U-Boot] [PATCH v2 4/7] arm: omap-common: sata: prepare driver for DM conversion Mugunthan V N
2016-02-16 16:01   ` Simon Glass
2016-02-03 11:59 ` [U-Boot] [PATCH v2 5/7] drivers: block: dwc_ahci: Implement a driver for Synopsys DWC sata device Mugunthan V N
2016-02-03 11:59 ` [U-Boot] [PATCH v2 6/7] defconfig: dra74_evm: enable disk driver model Mugunthan V N
2016-02-16 16:01   ` Simon Glass
2016-02-03 11:59 ` [U-Boot] [PATCH v2 7/7] defconfig: dra72_evm: " Mugunthan V N
2016-02-16 16:01   ` Simon Glass
2016-02-03 14:40 ` [U-Boot] [PATCH v2 0/7] driver model bring-up of sata device on dra72 and dra74 evm Mugunthan V N

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=CAPnjgZ2nMcHT9_-_NpPg+pqe7fsupqHDQH2y1oFmNRbvE5u8Rg@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.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.