aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-08-11 19:35:01 -0600
committerTom Rini <trini@konsulko.com>2022-09-16 11:05:16 -0400
commitec8bdc914c8328993cee62e01b4107b802cf45cc (patch)
treecce42cf3f4efee4ef239560c0a3c8eeb0ec47110
parentef4b66bcd189e0db142e257cea1d225833cdc3b1 (diff)
downloadu-boot-WIP/2022-09-16-rationalize-the-block-interface.zip
u-boot-WIP/2022-09-16-rationalize-the-block-interface.tar.gz
u-boot-WIP/2022-09-16-rationalize-the-block-interface.tar.bz2
Use the uclass ID instead. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-rw-r--r--cmd/blk_common.c2
-rw-r--r--drivers/block/blk-uclass.c34
-rw-r--r--drivers/block/blk_legacy.c20
-rw-r--r--include/blk.h41
-rw-r--r--include/efi_loader.h2
5 files changed, 48 insertions, 51 deletions
diff --git a/cmd/blk_common.c b/cmd/blk_common.c
index 4e442f2..369c5ae 100644
--- a/cmd/blk_common.c
+++ b/cmd/blk_common.c
@@ -12,7 +12,7 @@
#include <blk.h>
#include <command.h>
-int blk_common_cmd(int argc, char *const argv[], enum if_type if_type,
+int blk_common_cmd(int argc, char *const argv[], enum uclass_id if_type,
int *cur_devnump)
{
const char *if_name = blk_get_if_type_name(if_type);
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 436af76..a9a85aa 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -34,7 +34,7 @@ static struct {
{ UCLASS_PVBLOCK, "pvblock" },
};
-static enum if_type if_typename_to_iftype(const char *if_typename)
+static enum uclass_id if_typename_to_iftype(const char *if_typename)
{
int i;
@@ -46,7 +46,7 @@ static enum if_type if_typename_to_iftype(const char *if_typename)
return UCLASS_INVALID;
}
-static enum uclass_id if_type_to_uclass_id(enum if_type if_type)
+static enum uclass_id if_type_to_uclass_id(enum uclass_id if_type)
{
/*
* This strange adjustment is used because we use UCLASS_MASS_STORAGE
@@ -71,7 +71,7 @@ static enum uclass_id if_type_to_uclass_id(enum if_type if_type)
return if_type;
}
-const char *blk_get_if_type_name(enum if_type if_type)
+const char *blk_get_if_type_name(enum uclass_id if_type)
{
int i;
@@ -83,7 +83,7 @@ const char *blk_get_if_type_name(enum if_type if_type)
return "(none)";
}
-struct blk_desc *blk_get_devnum_by_type(enum if_type if_type, int devnum)
+struct blk_desc *blk_get_devnum_by_type(enum uclass_id if_type, int devnum)
{
struct blk_desc *desc;
struct udevice *dev;
@@ -105,7 +105,7 @@ struct blk_desc *blk_get_devnum_by_type(enum if_type if_type, int devnum)
struct blk_desc *blk_get_devnum_by_typename(const char *if_typename, int devnum)
{
enum uclass_id uclass_id;
- enum if_type type;
+ enum uclass_id type;
struct udevice *dev;
struct uclass *uc;
int ret;
@@ -185,7 +185,7 @@ struct blk_desc *blk_get_by_device(struct udevice *dev)
* with a higher device number, -ENOENT if there is no such device but there
* is one with a higher number, or other -ve on other error.
*/
-static int get_desc(enum if_type if_type, int devnum, struct blk_desc **descp)
+static int get_desc(enum uclass_id if_type, int devnum, struct blk_desc **descp)
{
bool found_more = false;
struct udevice *dev;
@@ -218,7 +218,7 @@ static int get_desc(enum if_type if_type, int devnum, struct blk_desc **descp)
return found_more ? -ENOENT : -ENODEV;
}
-int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart)
+int blk_select_hwpart_devnum(enum uclass_id if_type, int devnum, int hwpart)
{
struct udevice *dev;
int ret;
@@ -230,7 +230,7 @@ int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart)
return blk_select_hwpart(dev, hwpart);
}
-int blk_list_part(enum if_type if_type)
+int blk_list_part(enum uclass_id if_type)
{
struct blk_desc *desc;
int devnum, ok;
@@ -255,7 +255,7 @@ int blk_list_part(enum if_type if_type)
return 0;
}
-int blk_print_part_devnum(enum if_type if_type, int devnum)
+int blk_print_part_devnum(enum uclass_id if_type, int devnum)
{
struct blk_desc *desc;
int ret;
@@ -270,7 +270,7 @@ int blk_print_part_devnum(enum if_type if_type, int devnum)
return 0;
}
-void blk_list_devices(enum if_type if_type)
+void blk_list_devices(enum uclass_id if_type)
{
struct blk_desc *desc;
int ret;
@@ -289,7 +289,7 @@ void blk_list_devices(enum if_type if_type)
}
}
-int blk_print_device_num(enum if_type if_type, int devnum)
+int blk_print_device_num(enum uclass_id if_type, int devnum)
{
struct blk_desc *desc;
int ret;
@@ -303,7 +303,7 @@ int blk_print_device_num(enum if_type if_type, int devnum)
return 0;
}
-int blk_show_device(enum if_type if_type, int devnum)
+int blk_show_device(enum uclass_id if_type, int devnum)
{
struct blk_desc *desc;
int ret;
@@ -324,7 +324,7 @@ int blk_show_device(enum if_type if_type, int devnum)
return 0;
}
-ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_read_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, void *buffer)
{
struct blk_desc *desc;
@@ -341,7 +341,7 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
return n;
}
-ulong blk_write_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_write_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, const void *buffer)
{
struct blk_desc *desc;
@@ -525,7 +525,7 @@ const char *blk_get_devtype(struct udevice *dev)
return uclass_get_name(device_get_uclass_id(parent));
};
-int blk_find_max_devnum(enum if_type if_type)
+int blk_find_max_devnum(enum uclass_id if_type)
{
struct udevice *dev;
int max_devnum = -ENODEV;
@@ -545,7 +545,7 @@ int blk_find_max_devnum(enum if_type if_type)
return max_devnum;
}
-int blk_next_free_devnum(enum if_type if_type)
+int blk_next_free_devnum(enum uclass_id if_type)
{
int ret;
@@ -631,7 +631,7 @@ int blk_count_devices(enum blk_flag_t flag)
return count;
}
-static int blk_claim_devnum(enum if_type if_type, int devnum)
+static int blk_claim_devnum(enum uclass_id if_type, int devnum)
{
struct udevice *dev;
struct uclass *uc;
diff --git a/drivers/block/blk_legacy.c b/drivers/block/blk_legacy.c
index bd8a17d..8c6f9cb 100644
--- a/drivers/block/blk_legacy.c
+++ b/drivers/block/blk_legacy.c
@@ -39,7 +39,7 @@ static struct blk_driver *blk_driver_lookup_typename(const char *if_typename)
return NULL;
}
-const char *blk_get_if_type_name(enum if_type if_type)
+const char *blk_get_if_type_name(enum uclass_id if_type)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
@@ -70,7 +70,7 @@ static int get_desc(struct blk_driver *drv, int devnum, struct blk_desc **descp)
return drv->get_dev(devnum, descp);
}
-int blk_list_part(enum if_type if_type)
+int blk_list_part(enum uclass_id if_type)
{
struct blk_driver *drv;
struct blk_desc *desc;
@@ -97,7 +97,7 @@ int blk_list_part(enum if_type if_type)
return 0;
}
-int blk_print_part_devnum(enum if_type if_type, int devnum)
+int blk_print_part_devnum(enum uclass_id if_type, int devnum)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
@@ -115,7 +115,7 @@ int blk_print_part_devnum(enum if_type if_type, int devnum)
return 0;
}
-void blk_list_devices(enum if_type if_type)
+void blk_list_devices(enum uclass_id if_type)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
@@ -133,7 +133,7 @@ void blk_list_devices(enum if_type if_type)
}
}
-int blk_print_device_num(enum if_type if_type, int devnum)
+int blk_print_device_num(enum uclass_id if_type, int devnum)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
@@ -150,7 +150,7 @@ int blk_print_device_num(enum if_type if_type, int devnum)
return 0;
}
-int blk_show_device(enum if_type if_type, int devnum)
+int blk_show_device(enum uclass_id if_type, int devnum)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
@@ -174,7 +174,7 @@ int blk_show_device(enum if_type if_type, int devnum)
return 0;
}
-struct blk_desc *blk_get_devnum_by_type(enum if_type if_type, int devnum)
+struct blk_desc *blk_get_devnum_by_type(enum uclass_id if_type, int devnum)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
@@ -214,7 +214,7 @@ struct blk_desc *blk_get_devnum_by_typename(const char *if_typename, int devnum)
return desc;
}
-ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_read_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, void *buffer)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
@@ -234,7 +234,7 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
return n;
}
-ulong blk_write_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_write_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, const void *buffer)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
@@ -249,7 +249,7 @@ ulong blk_write_devnum(enum if_type if_type, int devnum, lbaint_t start,
return desc->block_write(desc, start, blkcnt, buffer);
}
-int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart)
+int blk_select_hwpart_devnum(enum uclass_id if_type, int devnum, int hwpart)
{
struct blk_driver *drv = blk_driver_lookup_type(if_type);
struct blk_desc *desc;
diff --git a/include/blk.h b/include/blk.h
index 548cd09..279f9ea 100644
--- a/include/blk.h
+++ b/include/blk.h
@@ -27,9 +27,6 @@ static inline bool blk_enabled(void)
return CONFIG_IS_ENABLED(BLK) || IS_ENABLED(CONFIG_SPL_LEGACY_BLOCK);
}
-/* Interface types: */
-#define if_type uclass_id
-
#define BLK_VEN_SIZE 40
#define BLK_PRD_SIZE 20
#define BLK_REV_SIZE 8
@@ -57,7 +54,7 @@ struct blk_desc {
* TODO: With driver model we should be able to use the parent
* device's uclass instead.
*/
- enum if_type if_type; /* type of the interface */
+ enum uclass_id if_type; /* type of the interface */
int devnum; /* device number */
unsigned char part_type; /* partition type */
unsigned char target; /* target SCSI ID */
@@ -282,7 +279,7 @@ unsigned long blk_derase(struct blk_desc *block_dev, lbaint_t start,
* This function does not activate the device. The device will be returned
* whether or not it is activated.
*
- * @if_type: Interface type (enum if_type_t)
+ * @if_type: Interface type (enum uclass_id_t)
* @devnum: Device number (specific to each interface type)
* @devp: the device, if found
* Return: 0 if found, -ENODEV if no device found, or other -ve error value
@@ -292,7 +289,7 @@ int blk_find_device(int if_type, int devnum, struct udevice **devp);
/**
* blk_get_device() - Find and probe a block device ready for use
*
- * @if_type: Interface type (enum if_type_t)
+ * @if_type: Interface type (enum uclass_id_t)
* @devnum: Device number (specific to each interface type)
* @devp: the device, if found
* Return: 0 if found, -ENODEV if no device found, or other -ve error value
@@ -330,7 +327,7 @@ int blk_next_device(struct udevice **devp);
* @parent: Parent of the new device
* @drv_name: Driver name to use for the block device
* @name: Name for the device
- * @if_type: Interface type (enum if_type_t)
+ * @if_type: Interface type (enum uclass_id_t)
* @devnum: Device number, specific to the interface type, or -1 to
* allocate the next available number
* @blksz: Block size of the device in bytes (typically 512)
@@ -347,7 +344,7 @@ int blk_create_device(struct udevice *parent, const char *drv_name,
* @parent: Parent of the new device
* @drv_name: Driver name to use for the block device
* @name: Name for the device (parent name is prepended)
- * @if_type: Interface type (enum if_type_t)
+ * @if_type: Interface type (enum uclass_id_t)
* @devnum: Device number, specific to the interface type, or -1 to
* allocate the next available number
* @blksz: Block size of the device in bytes (typically 512)
@@ -390,7 +387,7 @@ int blk_unbind_all(int if_type);
* Return: maximum device number found, or -ENODEV if none, or other -ve on
* error
*/
-int blk_find_max_devnum(enum if_type if_type);
+int blk_find_max_devnum(enum uclass_id if_type);
/**
* blk_next_free_devnum() - get the next device number for an interface type
@@ -401,7 +398,7 @@ int blk_find_max_devnum(enum if_type if_type);
* @if_type: Interface type to scan
* Return: next device number safe to use, or -ve on error
*/
-int blk_next_free_devnum(enum if_type if_type);
+int blk_next_free_devnum(enum uclass_id if_type);
/**
* blk_select_hwpart() - select a hardware partition
@@ -496,7 +493,7 @@ static inline ulong blk_derase(struct blk_desc *block_dev, lbaint_t start,
*/
struct blk_driver {
const char *if_typename;
- enum if_type if_type;
+ enum uclass_id if_type;
int max_devs;
struct blk_desc *desc;
/**
@@ -557,7 +554,7 @@ struct blk_driver *blk_driver_lookup_type(int if_type);
* @devnum: Device number
* Return: point to block device descriptor, or NULL if not found
*/
-struct blk_desc *blk_get_devnum_by_type(enum if_type if_type, int devnum);
+struct blk_desc *blk_get_devnum_by_type(enum uclass_id if_type, int devnum);
/**
* blk_get_devnum_by_type() - Get a block device by type name, and number
@@ -594,7 +591,7 @@ int blk_dselect_hwpart(struct blk_desc *desc, int hwpart);
* @if_type: Block device type
* Return: 0 if OK, -ENODEV if there is none of that type
*/
-int blk_list_part(enum if_type if_type);
+int blk_list_part(enum uclass_id if_type);
/**
* blk_list_devices() - list the block devices of a given type
@@ -604,7 +601,7 @@ int blk_list_part(enum if_type if_type);
*
* @if_type: Block device type
*/
-void blk_list_devices(enum if_type if_type);
+void blk_list_devices(enum uclass_id if_type);
/**
* blk_show_device() - show information about a given block device
@@ -615,7 +612,7 @@ void blk_list_devices(enum if_type if_type);
* @devnum: Device number
* Return: 0 if OK, -ENODEV for invalid device number
*/
-int blk_show_device(enum if_type if_type, int devnum);
+int blk_show_device(enum uclass_id if_type, int devnum);
/**
* blk_print_device_num() - show information about a given block device
@@ -628,7 +625,7 @@ int blk_show_device(enum if_type if_type, int devnum);
* Return: 0 if OK, -ENODEV for invalid device number, -ENOENT if the block
* device is not connected
*/
-int blk_print_device_num(enum if_type if_type, int devnum);
+int blk_print_device_num(enum uclass_id if_type, int devnum);
/**
* blk_print_part_devnum() - print the partition information for a device
@@ -638,7 +635,7 @@ int blk_print_device_num(enum if_type if_type, int devnum);
* Return: 0 if OK, -ENOENT if the block device is not connected, -ENOSYS if
* the interface type is not supported, other -ve on other error
*/
-int blk_print_part_devnum(enum if_type if_type, int devnum);
+int blk_print_part_devnum(enum uclass_id if_type, int devnum);
/**
* blk_read_devnum() - read blocks from a device
@@ -649,7 +646,7 @@ int blk_print_part_devnum(enum if_type if_type, int devnum);
* @buffer: Address to write data to
* Return: number of blocks read, or -ve error number on error
*/
-ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_read_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, void *buffer);
/**
@@ -661,7 +658,7 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start,
* @buffer: Address to read data from
* Return: number of blocks written, or -ve error number on error
*/
-ulong blk_write_devnum(enum if_type if_type, int devnum, lbaint_t start,
+ulong blk_write_devnum(enum uclass_id if_type, int devnum, lbaint_t start,
lbaint_t blkcnt, const void *buffer);
/**
@@ -675,7 +672,7 @@ ulong blk_write_devnum(enum if_type if_type, int devnum, lbaint_t start,
* @hwpart: Partition number to select
* Return: 0 if OK, -ve on error
*/
-int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart);
+int blk_select_hwpart_devnum(enum uclass_id if_type, int devnum, int hwpart);
/**
* blk_get_if_type_name() - Get the name of an interface type
@@ -683,7 +680,7 @@ int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart);
* @if_type: Interface type to check
* Return: name of interface, or NULL if none
*/
-const char *blk_get_if_type_name(enum if_type if_type);
+const char *blk_get_if_type_name(enum uclass_id if_type);
/**
* blk_common_cmd() - handle common commands with block devices
@@ -694,7 +691,7 @@ const char *blk_get_if_type_name(enum if_type if_type);
* @cur_devnump: Current device number for this interface type
* Return: 0 if OK, CMD_RET_ERROR on error
*/
-int blk_common_cmd(int argc, char *const argv[], enum if_type if_type,
+int blk_common_cmd(int argc, char *const argv[], enum uclass_id if_type,
int *cur_devnump);
enum blk_flag_t {
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 6b63ae8..fb35087 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -161,7 +161,7 @@ extern bool efi_st_keep_devices;
/* EFI system partition */
extern struct efi_system_partition {
- enum if_type if_type;
+ enum uclass_id if_type;
int devnum;
u8 part;
} efi_system_partition;