mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'driver-core-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH:
"Here is the big set of driver core changes for 6.11-rc1.
Lots of stuff in here, with not a huge diffstat, but apis are evolving
which required lots of files to be touched. Highlights of the changes
in here are:
- platform remove callback api final fixups (Uwe took many releases
to get here, finally!)
- Rust bindings for basic firmware apis and initial driver-core
interactions.
It's not all that useful for a "write a whole driver in rust" type
of thing, but the firmware bindings do help out the phy rust
drivers, and the driver core bindings give a solid base on which
others can start their work.
There is still a long way to go here before we have a multitude of
rust drivers being added, but it's a great first step.
- driver core const api changes.
This reached across all bus types, and there are some fix-ups for
some not-common bus types that linux-next and 0-day testing shook
out.
This work is being done to help make the rust bindings more safe,
as well as the C code, moving toward the end-goal of allowing us to
put driver structures into read-only memory. We aren't there yet,
but are getting closer.
- minor devres cleanups and fixes found by code inspection
- arch_topology minor changes
- other minor driver core cleanups
All of these have been in linux-next for a very long time with no
reported problems"
* tag 'driver-core-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (55 commits)
ARM: sa1100: make match function take a const pointer
sysfs/cpu: Make crash_hotplug attribute world-readable
dio: Have dio_bus_match() callback take a const *
zorro: make match function take a const pointer
driver core: module: make module_[add|remove]_driver take a const *
driver core: make driver_find_device() take a const *
driver core: make driver_[create|remove]_file take a const *
firmware_loader: fix soundness issue in `request_internal`
firmware_loader: annotate doctests as `no_run`
devres: Correct code style for functions that return a pointer type
devres: Initialize an uninitialized struct member
devres: Fix memory leakage caused by driver API devm_free_percpu()
devres: Fix devm_krealloc() wasting memory
driver core: platform: Switch to use kmemdup_array()
driver core: have match() callback in struct bus_type take a const *
MAINTAINERS: add Rust device abstractions to DRIVER CORE
device: rust: improve safety comments
MAINTAINERS: add Danilo as FIRMWARE LOADER maintainer
MAINTAINERS: add Rust FW abstractions to FIRMWARE LOADER
firmware: rust: improve safety comments
...
This commit is contained in:
@@ -1361,10 +1361,10 @@ EXPORT_SYMBOL_GPL(fsi_master_unregister);
|
||||
|
||||
/* FSI core & Linux bus type definitions */
|
||||
|
||||
static int fsi_bus_match(struct device *dev, struct device_driver *drv)
|
||||
static int fsi_bus_match(struct device *dev, const struct device_driver *drv)
|
||||
{
|
||||
struct fsi_device *fsi_dev = to_fsi_dev(dev);
|
||||
struct fsi_driver *fsi_drv = to_fsi_drv(drv);
|
||||
const struct fsi_driver *fsi_drv = to_fsi_drv(drv);
|
||||
const struct fsi_device_id *id;
|
||||
|
||||
if (!fsi_drv->id_table)
|
||||
|
||||
@@ -646,14 +646,12 @@ err_free_aspeed:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int fsi_master_aspeed_remove(struct platform_device *pdev)
|
||||
static void fsi_master_aspeed_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct fsi_master_aspeed *aspeed = platform_get_drvdata(pdev);
|
||||
|
||||
fsi_master_unregister(&aspeed->master);
|
||||
clk_disable_unprepare(aspeed->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id fsi_master_aspeed_match[] = {
|
||||
@@ -668,7 +666,7 @@ static struct platform_driver fsi_master_aspeed_driver = {
|
||||
.of_match_table = fsi_master_aspeed_match,
|
||||
},
|
||||
.probe = fsi_master_aspeed_probe,
|
||||
.remove = fsi_master_aspeed_remove,
|
||||
.remove_new = fsi_master_aspeed_remove,
|
||||
};
|
||||
|
||||
module_platform_driver(fsi_master_aspeed_driver);
|
||||
|
||||
@@ -1412,15 +1412,13 @@ static int fsi_master_acf_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
|
||||
static int fsi_master_acf_remove(struct platform_device *pdev)
|
||||
static void fsi_master_acf_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct fsi_master_acf *master = platform_get_drvdata(pdev);
|
||||
|
||||
device_remove_file(master->dev, &dev_attr_external_mode);
|
||||
|
||||
fsi_master_unregister(&master->master);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id fsi_master_acf_match[] = {
|
||||
@@ -1436,7 +1434,7 @@ static struct platform_driver fsi_master_acf = {
|
||||
.of_match_table = fsi_master_acf_match,
|
||||
},
|
||||
.probe = fsi_master_acf_probe,
|
||||
.remove = fsi_master_acf_remove,
|
||||
.remove_new = fsi_master_acf_remove,
|
||||
};
|
||||
|
||||
module_platform_driver(fsi_master_acf);
|
||||
|
||||
@@ -867,15 +867,13 @@ static int fsi_master_gpio_probe(struct platform_device *pdev)
|
||||
|
||||
|
||||
|
||||
static int fsi_master_gpio_remove(struct platform_device *pdev)
|
||||
static void fsi_master_gpio_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct fsi_master_gpio *master = platform_get_drvdata(pdev);
|
||||
|
||||
device_remove_file(&pdev->dev, &dev_attr_external_mode);
|
||||
|
||||
fsi_master_unregister(&master->master);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id fsi_master_gpio_match[] = {
|
||||
@@ -890,7 +888,7 @@ static struct platform_driver fsi_master_gpio_driver = {
|
||||
.of_match_table = fsi_master_gpio_match,
|
||||
},
|
||||
.probe = fsi_master_gpio_probe,
|
||||
.remove = fsi_master_gpio_remove,
|
||||
.remove_new = fsi_master_gpio_remove,
|
||||
};
|
||||
|
||||
module_platform_driver(fsi_master_gpio_driver);
|
||||
|
||||
@@ -702,7 +702,7 @@ static int occ_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int occ_remove(struct platform_device *pdev)
|
||||
static void occ_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct occ *occ = platform_get_drvdata(pdev);
|
||||
|
||||
@@ -719,8 +719,6 @@ static int occ_remove(struct platform_device *pdev)
|
||||
device_for_each_child(&pdev->dev, NULL, occ_unregister_of_child);
|
||||
|
||||
ida_free(&occ_ida, occ->idx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id occ_match[] = {
|
||||
@@ -742,7 +740,7 @@ static struct platform_driver occ_driver = {
|
||||
.of_match_table = occ_match,
|
||||
},
|
||||
.probe = occ_probe,
|
||||
.remove = occ_remove,
|
||||
.remove_new = occ_remove,
|
||||
};
|
||||
|
||||
static int occ_init(void)
|
||||
|
||||
Reference in New Issue
Block a user