mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 17:10:11 +00:00
d223dcf31a
Perform all the block device creation only once, after the driver itself successfully bound. Do not do this in uclass post bind, as this might be triggered multiple times. For example the ut_dm_host test triggers this and triggers a memory leak that way, since there are now multiple block devices created using the blk_create_devicef() . To retain the old probe-on-boot behavior, set DM_FLAG_PROBE_AFTER_BIND flag in uclass post_bind callback, so the driver model would probe the driver at the right time. Rename the function as well, to match similar functions in other block-related subsystems, like the mmc one. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
44 lines
894 B
C
44 lines
894 B
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
|
|
*
|
|
* Authors:
|
|
* Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
|
|
*/
|
|
|
|
#ifndef __DRIVER_NVMXIP_H__
|
|
#define __DRIVER_NVMXIP_H__
|
|
|
|
#include <blk.h>
|
|
|
|
#define NVMXIP_BLKDRV_NAME "nvmxip-blk"
|
|
#define NVMXIP_BLKDEV_NAME_SZ 20
|
|
|
|
/**
|
|
* struct nvmxip_plat - the NVMXIP driver plat
|
|
*
|
|
* @phys_base: NVM XIP device base address
|
|
* @lba_shift: block size shift count
|
|
* @lba: number of blocks
|
|
*
|
|
* The NVMXIP information read from the DT.
|
|
*/
|
|
struct nvmxip_plat {
|
|
phys_addr_t phys_base;
|
|
u32 lba_shift;
|
|
lbaint_t lba;
|
|
};
|
|
|
|
/**
|
|
* nvmxip_bind() - post binding treatments
|
|
* @dev: the NVMXIP device
|
|
*
|
|
* Create and probe a child block device.
|
|
*
|
|
* Return:
|
|
*
|
|
* 0 on success. Otherwise, failure
|
|
*/
|
|
int nvmxip_probe(struct udevice *udev);
|
|
|
|
#endif /* __DRIVER_NVMXIP_H__ */
|