Hi Heinrich, On Mon, 25 Oct 2021 at 09:44, Heinrich Schuchardt <heinrich.schucha...@canonical.com> wrote: > > On 10/25/21 17:18, Simon Glass wrote: > > Hi Heinrich, > > > > On Mon, 25 Oct 2021 at 02:00, Heinrich Schuchardt > > <heinrich.schucha...@canonical.com> wrote: > >> > >> On 10/25/21 09:54, Heinrich Schuchardt wrote: > >>> On 10/24/21 21:54, Simon Glass wrote: > >>>> Hi Heinrich, > >>>> > >>>> On Sat, 23 Oct 2021 at 08:06, Heinrich Schuchardt > >>>> <heinrich.schucha...@canonical.com> wrote: > >>>>> > >>>>> The block descriptor contains the if_type. There is no need to first > >>>>> look > >>>>> up the uclass for the if_type and then to check the parent device's > >>>>> uclass > >>>>> to know if the device has the correct if_type. > >>>>> > >>>>> Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > >>>>> --- > >>>>> drivers/block/blk-uclass.c | 35 +---------------------------------- > >>>>> 1 file changed, 1 insertion(+), 34 deletions(-) > >>>> > >>>> This seems to be heading in the wrong direction though. > >>>> > >>>> The IF_TYPE should really go away and be replaced with the UCLASS ID, > >>>> I think. > >>>> > >>>> At present we have lots of calls to blk_create_device_f() which > >>>> specify the type. I think we should drop the IF_TYPE_.. arg to that > >>>> function and have it figured out from the uclass, in the interim. > >>>> > >>>> But why do we need IF_TYPE now? > >>> > >>> I admit that this patch is just an intermediate step. > >>> > >>> We can replace IF_TYPE by ULASS ID once SPL block devices are always > >>> using the driver model. Have we reached this point yet? I have not seen > >>> drivers/block/blk_legacy.c being deleted. > >> > >> qemu_malta64, qemu_malta64el, qemu_malta, qemu_maltael are examples of > >> defconfigs requiring drivers/block/blk_legacy.c > > > > Yes, we seem to have BLK on only for MMC and USB, but malta64 (for > > example) uses IDE. > > > > The problem seems to be HAVE_BLOCK_DEVICE which should not be used. > > > > +Tom Rini > > > > Should we remove HAVE_BLOCK_DEVICE at this point, or make it depend on > > BROKEN? > > > >> > >> Best regards > >> > >> Heinrich > >> > >>> > >>> Removing if_type_uclass_id[] is anyway on the right path. > > > > Are you sure? Instead, could we use the uclass ID in more places? > > Yes, you want to get rid of if_type. This means the table will become > obsolete.
Yes. > Once the legacy drivers are removed we can replace all occurrences of > if_type by uclass_id. That uclass_id we should not take from blk_desc > but from udevice. How do we get from a blk_desc to a udevice, though? Could you instead look at moving from using blk_desc to using udevice? If we had that, I think I can see your point with this patch. At present, it looks like a backwards step because you are reducing the usage of the uclass and in fact removing it altogether. Can you see what I am getting at? Let's move towards migration incrementally, not destroy the bridges we have built towards the goal. Regards, Simon