Commit bb07bd6b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] allow overriding the driver name

On USB drivers, the dev struct is usually filled with the USB
device. That would mean that the name of the driver specified
by media_device.dev.driver.name would be "usb", instead of the
name of the actual driver that created the media entity.

Add an optional field at the internal struct to allow drivers
to override the driver name.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent c73bbaa4
...@@ -55,7 +55,11 @@ static int media_device_get_info(struct media_device *dev, ...@@ -55,7 +55,11 @@ static int media_device_get_info(struct media_device *dev,
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
if (dev->driver_name[0])
strlcpy(info.driver, dev->driver_name, sizeof(info.driver));
else
strlcpy(info.driver, dev->dev->driver->name, sizeof(info.driver)); strlcpy(info.driver, dev->dev->driver->name, sizeof(info.driver));
strlcpy(info.model, dev->model, sizeof(info.model)); strlcpy(info.model, dev->model, sizeof(info.model));
strlcpy(info.serial, dev->serial, sizeof(info.serial)); strlcpy(info.serial, dev->serial, sizeof(info.serial));
strlcpy(info.bus_info, dev->bus_info, sizeof(info.bus_info)); strlcpy(info.bus_info, dev->bus_info, sizeof(info.bus_info));
......
...@@ -268,6 +268,10 @@ struct device; ...@@ -268,6 +268,10 @@ struct device;
* struct media_device - Media device * struct media_device - Media device
* @dev: Parent device * @dev: Parent device
* @devnode: Media device node * @devnode: Media device node
* @driver_name: Optional device driver name. If not set, calls to
* %MEDIA_IOC_DEVICE_INFO will return dev->driver->name.
* This is needed for USB drivers for example, as otherwise
* they'll all appear as if the driver name was "usb".
* @model: Device model name * @model: Device model name
* @serial: Device serial number (optional) * @serial: Device serial number (optional)
* @bus_info: Unique and stable device location identifier * @bus_info: Unique and stable device location identifier
...@@ -303,6 +307,7 @@ struct media_device { ...@@ -303,6 +307,7 @@ struct media_device {
struct media_devnode devnode; struct media_devnode devnode;
char model[32]; char model[32];
char driver_name[32];
char serial[40]; char serial[40];
char bus_info[32]; char bus_info[32];
u32 hw_revision; u32 hw_revision;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment