Merge tag 'du-next-20210105' of git://linuxtv.org/pinchartl/media into drm-next
- Add default modes for connectors in unknown state - R-Car DU conversion to DRM-managed API - R-Car DU miscellaneous fixes - Miscellaneous bridge and bridge bindings fixes - Assorted misc driver cleanups - Constify drm_driver for PCI devices Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://patchwork.freedesktop.org/patch/msgid/X/P8IOrVXkTpLeCm@pendragon.ideasonboard.com
This commit is contained in:
@@ -51,13 +51,6 @@ enum switch_power_state {
|
||||
* may contain multiple heads.
|
||||
*/
|
||||
struct drm_device {
|
||||
/**
|
||||
* @legacy_dev_list:
|
||||
*
|
||||
* List of devices per driver for stealth attach cleanup
|
||||
*/
|
||||
struct list_head legacy_dev_list;
|
||||
|
||||
/** @if_version: Highest interface version set */
|
||||
int if_version;
|
||||
|
||||
@@ -83,11 +76,7 @@ struct drm_device {
|
||||
} managed;
|
||||
|
||||
/** @driver: DRM driver managing the device */
|
||||
#ifdef CONFIG_DRM_LEGACY
|
||||
struct drm_driver *driver;
|
||||
#else
|
||||
const struct drm_driver *driver;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @dev_private:
|
||||
@@ -336,6 +325,9 @@ struct drm_device {
|
||||
/* Everything below here is for legacy driver, never use! */
|
||||
/* private: */
|
||||
#if IS_ENABLED(CONFIG_DRM_LEGACY)
|
||||
/* List of devices per driver for stealth attach cleanup */
|
||||
struct list_head legacy_dev_list;
|
||||
|
||||
/* Context handle management - linked list of context handles */
|
||||
struct list_head ctxlist;
|
||||
|
||||
|
||||
@@ -499,8 +499,6 @@ struct drm_driver {
|
||||
/* Everything below here is for legacy driver, never use! */
|
||||
/* private: */
|
||||
|
||||
/* List of devices hanging off this driver with stealth attach. */
|
||||
struct list_head legacy_dev_list;
|
||||
int (*firstopen) (struct drm_device *);
|
||||
void (*preclose) (struct drm_device *, struct drm_file *file_priv);
|
||||
int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv);
|
||||
|
||||
@@ -416,8 +416,5 @@ int drm_gem_fence_array_add_implicit(struct xarray *fence_array,
|
||||
bool write);
|
||||
int drm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
|
||||
u32 handle, u64 *offset);
|
||||
int drm_gem_dumb_destroy(struct drm_file *file,
|
||||
struct drm_device *dev,
|
||||
uint32_t handle);
|
||||
|
||||
#endif /* __DRM_GEM_H__ */
|
||||
|
||||
@@ -198,8 +198,10 @@ struct drm_dma_handle *drm_pci_alloc(struct drm_device *dev, size_t size,
|
||||
size_t align);
|
||||
void drm_pci_free(struct drm_device *dev, struct drm_dma_handle *dmah);
|
||||
|
||||
int drm_legacy_pci_init(struct drm_driver *driver, struct pci_driver *pdriver);
|
||||
void drm_legacy_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver);
|
||||
int drm_legacy_pci_init(const struct drm_driver *driver,
|
||||
struct pci_driver *pdriver);
|
||||
void drm_legacy_pci_exit(const struct drm_driver *driver,
|
||||
struct pci_driver *pdriver);
|
||||
|
||||
#else
|
||||
|
||||
@@ -214,13 +216,13 @@ static inline void drm_pci_free(struct drm_device *dev,
|
||||
{
|
||||
}
|
||||
|
||||
static inline int drm_legacy_pci_init(struct drm_driver *driver,
|
||||
static inline int drm_legacy_pci_init(const struct drm_driver *driver,
|
||||
struct pci_driver *pdriver)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline void drm_legacy_pci_exit(struct drm_driver *driver,
|
||||
static inline void drm_legacy_pci_exit(const struct drm_driver *driver,
|
||||
struct pci_driver *pdriver)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -866,13 +866,19 @@ struct drm_connector_helper_funcs {
|
||||
* The usual way to implement this is to cache the EDID retrieved in the
|
||||
* probe callback somewhere in the driver-private connector structure.
|
||||
* In this function drivers then parse the modes in the EDID and add
|
||||
* them by calling drm_add_edid_modes(). But connectors that driver a
|
||||
* them by calling drm_add_edid_modes(). But connectors that drive a
|
||||
* fixed panel can also manually add specific modes using
|
||||
* drm_mode_probed_add(). Drivers which manually add modes should also
|
||||
* make sure that the &drm_connector.display_info,
|
||||
* &drm_connector.width_mm and &drm_connector.height_mm fields are
|
||||
* filled in.
|
||||
*
|
||||
* Note that the caller function will automatically add standard VESA
|
||||
* DMT modes up to 1024x768 if the .get_modes() helper operation returns
|
||||
* no mode and if the connector status is connector_status_connected or
|
||||
* connector_status_unknown. There is no need to call
|
||||
* drm_add_modes_noedid() manually in that case.
|
||||
*
|
||||
* Virtual drivers that just want some standard VESA mode with a given
|
||||
* resolution can call drm_add_modes_noedid(), and mark the preferred
|
||||
* one using drm_set_preferred_mode().
|
||||
|
||||
Reference in New Issue
Block a user