drm/i915/icl: Move dsi host init code to common file
This patch moves intl_dsi_host_init() code to intel_dsi.c so that legacy and gen11 DSI code can share this code. v2 by Jani: - Move the shared stuff to intel_dsi.c Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/1ee42b2d3c639e3f3c14a2c1595b8778901574d4.1540900289.git.jani.nikula@intel.com
This commit is contained in:
parent
79c03caac2
commit
8e54d4fe79
@ -28,3 +28,37 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi)
|
|||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
|
||||||
|
const struct mipi_dsi_host_ops *funcs,
|
||||||
|
enum port port)
|
||||||
|
{
|
||||||
|
struct intel_dsi_host *host;
|
||||||
|
struct mipi_dsi_device *device;
|
||||||
|
|
||||||
|
host = kzalloc(sizeof(*host), GFP_KERNEL);
|
||||||
|
if (!host)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
host->base.ops = funcs;
|
||||||
|
host->intel_dsi = intel_dsi;
|
||||||
|
host->port = port;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We should call mipi_dsi_host_register(&host->base) here, but we don't
|
||||||
|
* have a host->dev, and we don't have OF stuff either. So just use the
|
||||||
|
* dsi framework as a library and hope for the best. Create the dsi
|
||||||
|
* devices by ourselves here too. Need to be careful though, because we
|
||||||
|
* don't initialize any of the driver model devices here.
|
||||||
|
*/
|
||||||
|
device = kzalloc(sizeof(*device), GFP_KERNEL);
|
||||||
|
if (!device) {
|
||||||
|
kfree(host);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
device->host = &host->base;
|
||||||
|
host->device = device;
|
||||||
|
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
@ -152,6 +152,9 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi);
|
|||||||
/* vlv_dsi.c */
|
/* vlv_dsi.c */
|
||||||
void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
|
void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
|
||||||
enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt);
|
enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt);
|
||||||
|
struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
|
||||||
|
const struct mipi_dsi_host_ops *funcs,
|
||||||
|
enum port port);
|
||||||
|
|
||||||
/* vlv_dsi_pll.c */
|
/* vlv_dsi_pll.c */
|
||||||
int vlv_dsi_pll_compute(struct intel_encoder *encoder,
|
int vlv_dsi_pll_compute(struct intel_encoder *encoder,
|
||||||
|
@ -206,39 +206,6 @@ static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
|
|||||||
.transfer = intel_dsi_host_transfer,
|
.transfer = intel_dsi_host_transfer,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
|
|
||||||
enum port port)
|
|
||||||
{
|
|
||||||
struct intel_dsi_host *host;
|
|
||||||
struct mipi_dsi_device *device;
|
|
||||||
|
|
||||||
host = kzalloc(sizeof(*host), GFP_KERNEL);
|
|
||||||
if (!host)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
host->base.ops = &intel_dsi_host_ops;
|
|
||||||
host->intel_dsi = intel_dsi;
|
|
||||||
host->port = port;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We should call mipi_dsi_host_register(&host->base) here, but we don't
|
|
||||||
* have a host->dev, and we don't have OF stuff either. So just use the
|
|
||||||
* dsi framework as a library and hope for the best. Create the dsi
|
|
||||||
* devices by ourselves here too. Need to be careful though, because we
|
|
||||||
* don't initialize any of the driver model devices here.
|
|
||||||
*/
|
|
||||||
device = kzalloc(sizeof(*device), GFP_KERNEL);
|
|
||||||
if (!device) {
|
|
||||||
kfree(host);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
device->host = &host->base;
|
|
||||||
host->device = device;
|
|
||||||
|
|
||||||
return host;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* send a video mode command
|
* send a video mode command
|
||||||
*
|
*
|
||||||
@ -1768,7 +1735,8 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
|
|||||||
for_each_dsi_port(port, intel_dsi->ports) {
|
for_each_dsi_port(port, intel_dsi->ports) {
|
||||||
struct intel_dsi_host *host;
|
struct intel_dsi_host *host;
|
||||||
|
|
||||||
host = intel_dsi_host_init(intel_dsi, port);
|
host = intel_dsi_host_init(intel_dsi, &intel_dsi_host_ops,
|
||||||
|
port);
|
||||||
if (!host)
|
if (!host)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user