Home
last modified time | relevance | path

Searched refs:dev_desc (Results 1 – 25 of 125) sorted by relevance

12345

/OK3568_Linux_fs/u-boot/disk/
H A Dpart.c34 static struct part_driver *part_driver_lookup_type(struct blk_desc *dev_desc) in part_driver_lookup_type() argument
41 if (dev_desc->part_type == PART_TYPE_UNKNOWN) { in part_driver_lookup_type()
45 ret = entry->test(dev_desc); in part_driver_lookup_type()
47 dev_desc->part_type = entry->part_type; in part_driver_lookup_type()
53 if (dev_desc->part_type == entry->part_type) in part_driver_lookup_type()
64 struct blk_desc *dev_desc; in get_dev_hwpart() local
67 dev_desc = blk_get_devnum_by_typename(ifname, dev); in get_dev_hwpart()
68 if (!dev_desc) { in get_dev_hwpart()
73 ret = blk_dselect_hwpart(dev_desc, hwpart); in get_dev_hwpart()
80 return dev_desc; in get_dev_hwpart()
[all …]
H A Dpart_efi.c46 static int is_gpt_valid(struct blk_desc *dev_desc, u64 lba,
48 static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc,
197 int get_disk_guid(struct blk_desc * dev_desc, char *guid) in get_disk_guid() argument
199 ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz); in get_disk_guid()
204 if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, in get_disk_guid()
207 if (is_gpt_valid(dev_desc, dev_desc->lba - 1, in get_disk_guid()
224 void part_print_efi(struct blk_desc *dev_desc) in part_print_efi() argument
226 ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz); in part_print_efi()
233 if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, in part_print_efi()
236 if (is_gpt_valid(dev_desc, (dev_desc->lba - 1), in part_print_efi()
[all …]
H A Dpart_iso.c49 int part_get_info_iso_verb(struct blk_desc *dev_desc, int part_num, in part_get_info_iso_verb() argument
61 if ((dev_desc->blksz != CD_SECTSIZE) && (dev_desc->blksz != 512)) in part_get_info_iso_verb()
66 if (iso_dread(dev_desc, PVD_OFFSET, 1, (ulong *)tmpbuf) != 1) in part_get_info_iso_verb()
71 dev_desc->devnum, part_num); in part_get_info_iso_verb()
77 ppr->stand_ident, dev_desc->devnum, part_num); in part_get_info_iso_verb()
86 if (iso_dread(dev_desc, i, 1, (ulong *)tmpbuf) != 1) in part_get_info_iso_verb()
93 dev_desc->devnum, part_num); in part_get_info_iso_verb()
101 pbr->ident_str, dev_desc->devnum, part_num); in part_get_info_iso_verb()
106 if (iso_dread(dev_desc, bootaddr, 1, (ulong *)tmpbuf) != 1) { in part_get_info_iso_verb()
109 bootaddr, dev_desc->devnum, part_num); in part_get_info_iso_verb()
[all …]
H A Dpart_mac.c35 static int part_mac_read_ddb(struct blk_desc *dev_desc,
37 static int part_mac_read_pdb(struct blk_desc *dev_desc, int part,
43 static int part_test_mac(struct blk_desc *dev_desc) in part_test_mac() argument
49 if (part_mac_read_ddb (dev_desc, ddesc)) { in part_test_mac()
59 if ((blk_dread(dev_desc, i, 1, (ulong *)mpart) != 1) || in part_test_mac()
69 static void part_print_mac(struct blk_desc *dev_desc) in part_print_mac() argument
76 if (part_mac_read_ddb (dev_desc, ddesc)) { in part_print_mac()
114 if (blk_dread(dev_desc, i, 1, (ulong *)mpart) != 1) { in part_print_mac()
116 dev_desc->devnum, i); in part_print_mac()
122 dev_desc->devnum, i, MAC_PARTITION_MAGIC, in part_print_mac()
[all …]
H A Dpart_rkparm.c43 struct blk_desc *dev_desc) in rkparm_param_parse() argument
92 if (dev_desc->if_type != IF_TYPE_RKNAND) in rkparm_param_parse()
98 size = dev_desc->lba - part->start; in rkparm_param_parse()
106 dev_num = ((dev_desc->if_type << 8) + dev_desc->devnum); in rkparm_param_parse()
111 static int rkparm_init_param(struct blk_desc *dev_desc, in rkparm_init_param() argument
135 if (dev_desc->if_type != IF_TYPE_RKNAND) in rkparm_init_param()
138 ret = blk_dread(dev_desc, offset, MAX_PARAM_SIZE >> 9, (ulong *)param); in rkparm_init_param()
145 return rkparm_param_parse(parts_list, parts_head, dev_desc); in rkparm_init_param()
148 static void part_print_rkparm(struct blk_desc *dev_desc) in part_print_rkparm() argument
156 (dev_num != ((dev_desc->if_type << 8) + dev_desc->devnum))) in part_print_rkparm()
[all …]
H A Dpart_dos.c90 static int part_test_dos(struct blk_desc *dev_desc) in part_test_dos() argument
92 ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz); in part_test_dos()
94 if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1) in part_test_dos()
100 if (dev_desc->sig_type == SIG_TYPE_NONE && in part_test_dos()
102 dev_desc->sig_type = SIG_TYPE_MBR; in part_test_dos()
103 dev_desc->mbr_sig = mbr->unique_mbr_signature; in part_test_dos()
111 static void print_partition_extended(struct blk_desc *dev_desc, in print_partition_extended() argument
116 ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz); in print_partition_extended()
120 if (blk_dread(dev_desc, ext_part_sector, 1, (ulong *)buffer) != 1) { in print_partition_extended()
122 dev_desc->devnum, ext_part_sector); in print_partition_extended()
[all …]
H A Dpart_env.c18 #define DEV_NUM(dev_desc) (((dev_desc)->if_type << 8) + (dev_desc)->devnum) argument
74 static int env_init_parts(struct blk_desc *dev_desc, struct list_head *parts_head) in env_init_parts() argument
83 parts_list = envf_get_part_table(dev_desc); in env_init_parts()
114 part->start = (start + offset) / dev_desc->blksz; in env_init_parts()
118 part->size = dev_desc->lba - part->start; in env_init_parts()
120 part->size = size / dev_desc->blksz; in env_init_parts()
127 dev_num = DEV_NUM(dev_desc); in env_init_parts()
132 void part_print_env(struct blk_desc *dev_desc) in part_print_env() argument
139 if (list_empty(&parts_head) || (dev_num != DEV_NUM(dev_desc))) { in part_print_env()
140 ret = env_init_parts(dev_desc, &parts_head); in part_print_env()
[all …]
H A Dpart_rkram.c20 static int rkram_part_init(struct blk_desc *dev_desc, in rkram_part_init() argument
55 if (!IS_ALIGNED(start, dev_desc->blksz)) { in rkram_part_init()
57 part->name, start, dev_desc->blksz); in rkram_part_init()
59 } else if (!IS_ALIGNED(size, dev_desc->blksz)) { in rkram_part_init()
61 part->name, size, dev_desc->blksz); in rkram_part_init()
66 part->start = start / dev_desc->blksz; in rkram_part_init()
67 part->size = size / dev_desc->blksz; in rkram_part_init()
72 part->size, dev_desc->blksz); in rkram_part_init()
78 static void part_print_rkram_part(struct blk_desc *dev_desc) in part_print_rkram_part() argument
97 static int part_get_info_rkram_part(struct blk_desc *dev_desc, int idx, in part_get_info_rkram_part() argument
[all …]
H A Dpart_amiga.c129 struct rigid_disk_block *get_rdisk(struct blk_desc *dev_desc) in get_rdisk() argument
143 ulong res = blk_dread(dev_desc, i, 1, (ulong *)block_buffer); in get_rdisk()
169 struct bootcode_block *get_bootcode(struct blk_desc *dev_desc) in get_bootcode() argument
185 ulong res = blk_dread(dev_desc, i, 1, (ulong *)block_buffer); in get_bootcode()
210 static int part_test_amiga(struct blk_desc *dev_desc) in part_test_amiga() argument
217 rdb = get_rdisk(dev_desc); in part_test_amiga()
220 bootcode = get_bootcode(dev_desc); in part_test_amiga()
239 static struct partition_block *find_partition(struct blk_desc *dev_desc, in find_partition() argument
247 rdb = get_rdisk(dev_desc); in find_partition()
261 ulong res = blk_dread(dev_desc, block, 1, (ulong *)block_buffer); in find_partition()
[all …]
/OK3568_Linux_fs/u-boot/include/
H A Dpart.h107 int part_get_info(struct blk_desc *dev_desc, int part, disk_partition_t *info);
112 int part_get_info_whole_disk(struct blk_desc *dev_desc, disk_partition_t *info);
113 const char *part_get_type(struct blk_desc *dev_desc);
114 void part_print(struct blk_desc *dev_desc);
115 void part_init(struct blk_desc *dev_desc);
116 void dev_print(struct blk_desc *dev_desc);
144 struct blk_desc **dev_desc);
180 struct blk_desc **dev_desc,
194 int part_get_info_by_name(struct blk_desc *dev_desc,
209 int part_get_info_by_name_strict(struct blk_desc *dev_desc, const char *name,
[all …]
/OK3568_Linux_fs/u-boot/common/
H A Dandroid_ab.c67 struct blk_desc *dev_desc, in android_boot_control_create_from_disk() argument
93 if (blk_dread(dev_desc, part_info->start + abc_offset, abc_blocks, in android_boot_control_create_from_disk()
114 struct blk_desc *dev_desc, in android_boot_control_store() argument
123 if (blk_dwrite(dev_desc, part_info->start + abc_offset, abc_blocks, in android_boot_control_store()
156 int android_ab_select(struct blk_desc *dev_desc, disk_partition_t *part_info) in android_ab_select() argument
164 abc = android_boot_control_create_from_disk(dev_desc, part_info); in android_ab_select()
264 android_boot_control_store(abc, dev_desc, part_info); in android_ab_select()
275 struct blk_desc *dev_desc; in read_misc_virtual_ab_message() local
285 dev_desc = rockchip_get_bootdev(); in read_misc_virtual_ab_message()
286 if (!dev_desc) { in read_misc_virtual_ab_message()
[all …]
H A Dfb_mmc.c48 struct blk_desc *dev_desc; member
51 static int part_get_info_by_name_or_alias(struct blk_desc *dev_desc, in part_get_info_by_name_or_alias() argument
56 ret = part_get_info_by_name(dev_desc, name, info); in part_get_info_by_name_or_alias()
67 ret = part_get_info_by_name(dev_desc, in part_get_info_by_name_or_alias()
101 struct blk_desc *dev_desc = sparse->dev_desc; in fb_mmc_sparse_write() local
103 return fb_mmc_blk_write(dev_desc, blk, blkcnt, buffer); in fb_mmc_sparse_write()
112 static void write_raw_image(struct blk_desc *dev_desc, disk_partition_t *info, in write_raw_image() argument
131 blks = fb_mmc_blk_write(dev_desc, info->start, blkcnt, buffer); in write_raw_image()
133 pr_err("failed writing to device %d\n", dev_desc->devnum); in write_raw_image()
153 static lbaint_t fb_mmc_get_boot_header(struct blk_desc *dev_desc, in fb_mmc_get_boot_header() argument
[all …]
H A Dandroid_bootloader.c36 struct blk_desc *dev_desc, in android_bootloader_message_load() argument
47 if (blk_dread(dev_desc, part_info->start + android_bcb_msg_sector_offset(), in android_bootloader_message_load()
58 struct blk_desc *dev_desc, in android_bootloader_message_write() argument
70 if (blk_dwrite(dev_desc, part_info->start, message_blocks, message) != in android_bootloader_message_write()
80 struct blk_desc *dev_desc, in android_bootloader_load_and_clear_mode() argument
98 if (android_bootloader_message_load(dev_desc, misc_part_info, &bcb) < in android_bootloader_load_and_clear_mode()
109 android_bootloader_message_write(dev_desc, misc_part_info, in android_bootloader_load_and_clear_mode()
127 struct blk_desc *dev_desc; in android_bcb_write() local
136 dev_desc = rockchip_get_bootdev(); in android_bcb_write()
137 if (!dev_desc) { in android_bcb_write()
[all …]
/OK3568_Linux_fs/u-boot/common/spl/
H A Dspl_ab.c111 static int spl_read_ab_metadata(struct blk_desc *dev_desc, AvbABData *ab_data, in spl_read_ab_metadata() argument
118 if (!dev_desc || !partition || !ab_data) in spl_read_ab_metadata()
121 if (part_get_info_by_name(dev_desc, partition, &part_info) < 0) in spl_read_ab_metadata()
124 ret = blk_dread(dev_desc, part_info.start + AB_METADATA_OFFSET, 1, in spl_read_ab_metadata()
137 static int spl_write_ab_metadata(struct blk_desc *dev_desc, AvbABData *ab_data, in spl_write_ab_metadata() argument
144 if (!dev_desc || !partition || !ab_data) in spl_write_ab_metadata()
151 if (part_get_info_by_name(dev_desc, partition, &part_info) < 0) in spl_write_ab_metadata()
154 ret = blk_dwrite(dev_desc, part_info.start + AB_METADATA_OFFSET, 1, in spl_write_ab_metadata()
162 static int spl_ab_data_write(struct blk_desc *dev_desc, AvbABData *ab_data, in spl_ab_data_write() argument
169 return spl_write_ab_metadata(dev_desc, &serialized, partition); in spl_ab_data_write()
[all …]
/OK3568_Linux_fs/u-boot/arch/arm/mach-rockchip/
H A Duimage.c15 int uimage_load_one(struct blk_desc *dev_desc, disk_partition_t *part, in uimage_load_one() argument
23 blksz = dev_desc->blksz; in uimage_load_one()
36 if (blk_dread(dev_desc, part->start + blkoff, in uimage_load_one()
45 if (blk_dread(dev_desc, part->start + blkoff, in uimage_load_one()
53 static image_header_t *uimage_get_hdr(struct blk_desc *dev_desc, in uimage_get_hdr() argument
62 if (blk_dread(dev_desc, part->start, 1, hdr) != 1) in uimage_get_hdr()
76 struct blk_desc *dev_desc; in uimage_load_bootables() local
92 dev_desc = rockchip_get_bootdev(); in uimage_load_bootables()
93 if (!dev_desc) { in uimage_load_bootables()
103 if (part_get_info_by_name(dev_desc, part_name, &part) < 0) { in uimage_load_bootables()
[all …]
H A Dfit.c139 static void *fit_get_blob(struct blk_desc *dev_desc, in fit_get_blob() argument
154 if (part_get_info_by_name(dev_desc, part_name, &part) < 0) { in fit_get_blob()
160 blk_num = DIV_ROUND_UP(sizeof(struct fdt_header), dev_desc->blksz); in fit_get_blob()
161 fdt = memalign(ARCH_DMA_MINALIGN, blk_num * dev_desc->blksz); in fit_get_blob()
165 if (blk_dread(dev_desc, part.start, blk_num, fdt) != blk_num) { in fit_get_blob()
180 blk_num = DIV_ROUND_UP(fdt_totalsize(fdt), dev_desc->blksz); in fit_get_blob()
181 fit = memalign(ARCH_DMA_MINALIGN, blk_num * dev_desc->blksz); in fit_get_blob()
187 if (blk_dread(dev_desc, part.start, blk_num, fit) != blk_num) { in fit_get_blob()
297 static int fit_image_load_one(const void *fit, struct blk_desc *dev_desc, in fit_image_load_one() argument
310 blk_off = (FIT_ALIGN(fdt_totalsize(fit)) + offset) / dev_desc->blksz; in fit_image_load_one()
[all …]
H A Dvendor.c140 static int (*_flash_read)(struct blk_desc *dev_desc,
144 static int (*_flash_write)(struct blk_desc *dev_desc,
149 int flash_vendor_dev_ops_register(int (*read)(struct blk_desc *dev_desc, in flash_vendor_dev_ops_register() argument
153 int (*write)(struct blk_desc *dev_desc, in flash_vendor_dev_ops_register() argument
168 static int mtd_vendor_storage_init(struct blk_desc *dev_desc) in mtd_vendor_storage_init() argument
170 struct mtd_info *mtd = (struct mtd_info *)dev_desc->bdev->priv; in mtd_vendor_storage_init()
177 part_num = part_get_info_by_name(dev_desc, vendor_mtd_name, &vnvm_part_info); in mtd_vendor_storage_init()
187 if (dev_desc->devnum == BLK_MTD_SPI_NOR) in mtd_vendor_storage_init()
202 ret = blk_dread(dev_desc, s_flash_info.part_offset + offset, in mtd_vendor_storage_init()
222 ret = blk_dread(dev_desc, s_flash_info.part_offset + in mtd_vendor_storage_init()
[all …]
H A Dboot_rkimg.c242 static struct blk_desc *dev_desc; variable
249 if (dev_desc) in rockchip_get_bootdev()
250 return dev_desc; in rockchip_get_bootdev()
256 dev_desc = blk_get_devnum_by_type(dev_type, devnum); in rockchip_get_bootdev()
257 if (!dev_desc) { in rockchip_get_bootdev()
276 printf("PartType: %s\n", part_get_type(dev_desc)); in rockchip_get_bootdev()
279 mtd_blk_map_partitions(dev_desc); in rockchip_get_bootdev()
281 return dev_desc; in rockchip_get_bootdev()
286 dev_desc = desc; in rockchip_set_bootdev()
358 struct blk_desc *dev_desc; in board_run_recovery_wipe_data() local
[all …]
H A Dspl_boot_mode.c13 static int misc_require_recovery(struct blk_desc *dev_desc, u32 bcb_offset) in misc_require_recovery() argument
19 if (!dev_desc) in misc_require_recovery()
22 if (part_get_info_by_name(dev_desc, PART_MISC, &part) < 0) { in misc_require_recovery()
27 cnt = DIV_ROUND_UP(sizeof(struct bootloader_message), dev_desc->blksz); in misc_require_recovery()
28 bmsg = memalign(ARCH_DMA_MINALIGN, cnt * dev_desc->blksz); in misc_require_recovery()
32 if (blk_dread(dev_desc, part.start + bcb_offset, cnt, bmsg) != cnt) in misc_require_recovery()
41 int rockchip_get_boot_mode(struct blk_desc *dev_desc, u32 bcb_sector_offset) in rockchip_get_boot_mode() argument
62 } else if (misc_require_recovery(dev_desc, bcb_sector_offset)) { in rockchip_get_boot_mode()
/OK3568_Linux_fs/u-boot/drivers/scsi/
H A Dscsi.c446 static void scsi_init_dev_desc_priv(struct blk_desc *dev_desc) in scsi_init_dev_desc_priv() argument
448 dev_desc->target = 0xff; in scsi_init_dev_desc_priv()
449 dev_desc->lun = 0xff; in scsi_init_dev_desc_priv()
450 dev_desc->log2blksz = in scsi_init_dev_desc_priv()
451 LOG2_INVALID(typeof(dev_desc->log2blksz)); in scsi_init_dev_desc_priv()
452 dev_desc->type = DEV_TYPE_UNKNOWN; in scsi_init_dev_desc_priv()
453 dev_desc->vendor[0] = 0; in scsi_init_dev_desc_priv()
454 dev_desc->product[0] = 0; in scsi_init_dev_desc_priv()
455 dev_desc->revision[0] = 0; in scsi_init_dev_desc_priv()
456 dev_desc->removable = false; in scsi_init_dev_desc_priv()
[all …]
/OK3568_Linux_fs/u-boot/drivers/dfu/
H A Ddfu_mtd.c17 struct blk_desc *dev_desc; in dfu_write_medium_mtd() local
29 dev_desc = rockchip_get_bootdev(); in dfu_write_medium_mtd()
30 if (!dev_desc) { in dfu_write_medium_mtd()
40 ret = blk_derase(dev_desc, block_start, block_len); in dfu_write_medium_mtd()
48 ret = blk_dwrite(dev_desc, block_start, block_len, buf); in dfu_write_medium_mtd()
69 struct blk_desc *dev_desc; in dfu_read_medium_mtd() local
81 dev_desc = rockchip_get_bootdev(); in dfu_read_medium_mtd()
82 if (!dev_desc) { in dfu_read_medium_mtd()
90 ret = blk_dread(dev_desc, block_start, block_len, buf); in dfu_read_medium_mtd()
121 struct blk_desc *dev_desc; in dfu_fill_entity_mtd() local
[all …]
/OK3568_Linux_fs/u-boot/drivers/block/
H A Dide.c454 static void atapi_inquiry(struct blk_desc *dev_desc) in atapi_inquiry() argument
461 device = dev_desc->devnum; in atapi_inquiry()
462 dev_desc->type = DEV_TYPE_UNKNOWN; /* not yet valid */ in atapi_inquiry()
464 dev_desc->block_read = atapi_read; in atapi_inquiry()
479 ident_cpy((unsigned char *)dev_desc->vendor, &iobuf[8], 8); in atapi_inquiry()
480 ident_cpy((unsigned char *)dev_desc->product, &iobuf[16], 16); in atapi_inquiry()
481 ident_cpy((unsigned char *)dev_desc->revision, &iobuf[32], 5); in atapi_inquiry()
483 dev_desc->lun = 0; in atapi_inquiry()
484 dev_desc->lba = 0; in atapi_inquiry()
485 dev_desc->blksz = 0; in atapi_inquiry()
[all …]
/OK3568_Linux_fs/u-boot/lib/avb/libavb_user/
H A Davb_ops_user.c75 struct blk_desc *dev_desc; in get_size_of_partition() local
78 dev_desc = rockchip_get_bootdev(); in get_size_of_partition()
79 if (!dev_desc) { in get_size_of_partition()
84 if (part_get_info_by_name(dev_desc, partition, &part_info) < 0) in get_size_of_partition()
98 struct blk_desc *dev_desc; in read_from_partition() local
114 dev_desc = rockchip_get_bootdev(); in read_from_partition()
115 if (!dev_desc) { in read_from_partition()
120 if (part_get_info_by_name(dev_desc, partition, &part_info) < 0) { in read_from_partition()
126 blk_dread(dev_desc, part_info.start + offset_blk, in read_from_partition()
137 blk_dread(dev_desc, part_info.start + offset_blk, in read_from_partition()
[all …]
/OK3568_Linux_fs/kernel/drivers/acpi/
H A Dacpi_apd.c40 const struct apd_device_desc *dev_desc; member
48 const struct apd_device_desc *dev_desc = pdata->dev_desc; in acpi_apd_setup() local
51 if (dev_desc->fixed_clk_rate) { in acpi_apd_setup()
54 NULL, 0, dev_desc->fixed_clk_rate); in acpi_apd_setup()
186 const struct apd_device_desc *dev_desc = (void *)id->driver_data; in acpi_apd_create_device() local
191 if (!dev_desc) { in acpi_apd_create_device()
201 pdata->dev_desc = dev_desc; in acpi_apd_create_device()
203 if (dev_desc->setup) { in acpi_apd_create_device()
204 ret = dev_desc->setup(pdata); in acpi_apd_create_device()
210 pdev = acpi_create_platform_device(adev, dev_desc->properties); in acpi_apd_create_device()
H A Dacpi_lpss.c100 const struct lpss_device_desc *dev_desc; member
133 offset = pdata->dev_desc->prv_offset + LPSS_TX_INT; in lpss_uart_setup()
139 offset = pdata->dev_desc->prv_offset + LPSS_GENERAL; in lpss_uart_setup()
151 offset = pdata->dev_desc->prv_offset + LPSS_RESETS; in lpss_deassert_reset()
199 if (readl(pdata->mmio_base + pdata->dev_desc->prv_offset)) in byt_i2c_setup()
394 const struct lpss_device_desc *dev_desc = pdata->dev_desc; in register_device_clock() local
413 || pdata->mmio_size < dev_desc->prv_offset + LPSS_CLK_SIZE) in register_device_clock()
417 prv_base = pdata->mmio_base + dev_desc->prv_offset; in register_device_clock()
425 if (dev_desc->flags & LPSS_CLK_GATE) { in register_device_clock()
431 if (dev_desc->flags & LPSS_CLK_DIVIDER) { in register_device_clock()
[all …]

12345