mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 04:42:04 -04:00
Merge "drivers: soc: rename block device nodes"
This commit is contained in:
commit
f4dfd154e3
3 changed files with 68 additions and 0 deletions
|
|
@ -1156,5 +1156,14 @@ config QCOM_RTIC
|
|||
will trigger RTIC kernel MP.s (measurement parameters) generation
|
||||
during the kernel build.
|
||||
|
||||
config RENAME_BLOCK_DEVICE
|
||||
tristate "Rename block device node in /dev"
|
||||
default n
|
||||
help
|
||||
Say 'Y' to to rename the block device node assigned by generic
|
||||
driver to a name that is needed. This is used for rename block
|
||||
device names created by default as sda1, sda2 etc. to the
|
||||
names system is needed.this is applicable for block devices only.
|
||||
|
||||
source "drivers/soc/qcom/icnss2/Kconfig"
|
||||
endmenu
|
||||
|
|
|
|||
|
|
@ -104,3 +104,4 @@ obj-$(CONFIG_QTI_HW_MEMLAT_SCMI_CLIENT) += memlat_scmi.o
|
|||
obj-$(CONFIG_QTI_HW_MEMLAT) += rimps_memlat.o
|
||||
obj-$(CONFIG_QTI_HW_MEMLAT_LOG) += rimps_log.o
|
||||
obj-$(CONFIG_QCOM_QFPROM_SYS) += qfprom-sys.o
|
||||
obj-$(CONFIG_RENAME_BLOCK_DEVICE) += rename_block_device.o
|
||||
|
|
|
|||
58
drivers/soc/qcom/rename_block_device.c
Normal file
58
drivers/soc/qcom/rename_block_device.c
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mount.h>
|
||||
#include <linux/genhd.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/of.h>
|
||||
#define PATH_SIZE 32
|
||||
|
||||
static int rename_blk_dev_init(void)
|
||||
{
|
||||
dev_t dev;
|
||||
int index = 0, partno;
|
||||
struct gendisk *disk;
|
||||
struct device_node *node;
|
||||
char dev_path[PATH_SIZE];
|
||||
const char *actual_name, *modified_name;
|
||||
|
||||
node = of_find_compatible_node(NULL, NULL, "qcom,blkdev-rename");
|
||||
if (!node) {
|
||||
pr_err("qcom,blkdev-rename is missing\n");
|
||||
goto out;
|
||||
}
|
||||
while (!of_property_read_string_index(node, "actual-dev", index,
|
||||
&actual_name)) {
|
||||
memset(dev_path, '\0', PATH_SIZE);
|
||||
snprintf(dev_path, PATH_SIZE, "/dev/%s", actual_name);
|
||||
dev = name_to_dev_t(dev_path);
|
||||
if (!dev) {
|
||||
pr_err("No device path : %s\n", dev_path);
|
||||
return -EINVAL;
|
||||
}
|
||||
disk = get_gendisk(dev, &partno);
|
||||
if (!disk) {
|
||||
pr_err("No device with dev path : %s\n", dev_path);
|
||||
return -ENXIO;
|
||||
}
|
||||
if (!of_property_read_string_index(node, "rename-dev", index,
|
||||
&modified_name)) {
|
||||
device_rename(disk_to_dev(disk), modified_name);
|
||||
} else {
|
||||
pr_err("rename-dev for actual-dev = %s is missing\n",
|
||||
actual_name);
|
||||
return -ENXIO;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
out:
|
||||
return 0;
|
||||
}
|
||||
|
||||
late_initcall(rename_blk_dev_init);
|
||||
MODULE_DESCRIPTION("Rename block devices");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
Loading…
Reference in a new issue