summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-04-03OMAPDSS: nec-nl8048 panel: remove platform_enable/disable callbacksArchit Taneja
The nec-nl8048 panel driver now manages the gpios required to configure the panel. This was previously done in omap_dss_device's platform_enable/disable callbacks defined in board files using this panel. All the board files using this panel now pass the gpio information as platform data via the panel_nec_nl8048_data struct, which is needed by the panel driver to configure the gpios connected to the panel. Hence, the platform_enable/disable ops can be safely removed now. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: nec-nl8048 panel: handle gpios in panel driverArchit Taneja
The nec-nl8048hl11-01 panel driver leaves gpio configurations to the platform_enable and disable calls in the platform's board file. These should happen in the panel driver itself. Create a platform data struct for the panel, this contains the gpio numbers used by the panel driver, this struct will be passed to the panel driver as platform data. The driver will request and configure these gpios rather than leaving it to platform callbacks in board files. This will help in removing the need for the panel drivers to have platform related callbacks. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: acx565akm panel: handle gpios in panel driverArchit Taneja
The acx565akm panel driver leaves gpio configurations to the platform_enable and disable calls in the platform's board file. These should happen in the panel driver itself. Create a platform data struct for the panel, this contains the reset gpio number used by the panel driver, this struct will be passed to the panel driver as platform data. The driver will request and configure the reset gpio rather than leaving it to platform callbacks in board files. This will help in removing the need for the panel drivers to have platform related callbacks. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: sharp-ls panel: remove platform_enable/disable callbacksArchit Taneja
The sharp-ls panel driver now manages the gpios required to configure the panel. This was previously done in omap_dss_device's platform_enable/disable callbacks defined in board files using this panel. All the board files using this panel now pass the gpio information as platform data via the panel_sharp_ls037v7dw01_data struct, which is needed by the panel driver to configure the gpios connected to the panel. Hence, the platform_enable/disable ops can be safely removed now. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: LS037V7DW01: handle gpios in panel driverTomi Valkeinen
Move the GPIO handling from board file's platform callbacks to the panel driver, which gets the gpios via platform data. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: generic dpi panel: remove uses of platform_enable/disable opsArchit Taneja
The generic dpi panel driver now sets the gpios required to configure the panel. This was previously done in platform_enable/disable callbacks in board files. All the board files using generic dpi panel now correctly pass the gpio related information as platform data, which is needed by the panel driver to configure the panel. Hence, the platform_enable/disable ops can be safely removed now. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: lb035q02 panel: remove platform_enable/disable callbacksArchit Taneja
The lgphilips panel driver now manages the gpios required to configure the panel. This was previously done in omap_dss_device's platform_enable/disable callbacks defined in board files using this panel. All the board files using this panel now pass the gpio information as platform data via the panel_generic_dpi_data struct, which is needed by the panel driver to configure the gpios connected to the panel. Hence, the platform_enable/disable ops can be safely removed now. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: lb035q02: handle gpios in panel driverArchit Taneja
The lgphilips panel driver leaves gpio configurations to the platform_enable and disable calls in the platform's board file. These should happen in the panel driver itself. Use the platform data as defined for generic dpi panels to pass gpio information to the lgphilips driver. This will help in removing the need for the panel drivers to have platform related callbacks. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: generic dpi panel: handle gpios in panel driverTomi Valkeinen
The generic dpi panel driver leaves gpio configurations to the platform_enable and disable calls in the platform's board file. These should happen in the panel driver itself. Add a generic way of passing gpio information to the generic dpi panel driver via it's platform_data. This information includes the number of gpios used by the panel, the gpio number and logic level (active high/low) for each gpio. This gpio data will be used by the driver to request and configure the gpios required by the panel. This will help in removing the need for the panel drivers to have platform related callbacks. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: panel acx565akm: remove omap_dss_device maximum backlight level usageArchit Taneja
The omap_dss_device structs's max_backlight_level is used to pass maximum backlight level for the platform. However, no board file using this panel populates this field. Therefore, we remove it's usage from the panel driver. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: picodlp: use devm_kzalloc for allocating driver dataArchit Taneja
Use devm_kzalloc instead of kzalloc to allocate driver data for the picodlp panel driver. This simplifies the driver's probe and remove functions. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: lb035q02: use devm_kzalloc for allocating driver dataArchit Taneja
Use devm_kzalloc instead of kzalloc to allocate driver data for the lg phillips panel driver. This simplifies the driver's probe and remove functions. Cc: Steve Sakoman <steve@sakoman.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: Generic DPI Panel: use devm_kzalloc for allocating driver dataArchit Taneja
Use devm_kzalloc instead of kzalloc to allocate driver data for the generic dpi panel driver. This simplifies the driver's probe and remove functions. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: n8x0: remove platform backlight callsTomi Valkeinen
The n8x0 panel contains support to call platform backlight functions. These are not used by any board, and can be removed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: NEC-nl8048hl11: remove platform backlight supportArchit Taneja
NEC-nl8048hl11 driver contains support to call platform backlight functions. These are not used by any board, and can be removed. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: ls037v7dw01: remove platform backlight callsTomi Valkeinen
Sharp ls037v7dw01 driver contains support to call platform backlight functions. These are not used by any board, and can be removed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: acx565akm: remove platform backlight callsTomi Valkeinen
acx565akm has support to call set_backlight/get_backlight in platform code. They are not used by any board, and thus can be removed from the driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: remove dsi videomode from dssdevTomi Valkeinen
DSI videomode is no longer needed in the omap_dss_device, so remove it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: remove unused old clock calculation codeTomi Valkeinen
Now that the old clock calculation code is no longer used, we can remove it from the driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: use new clock calculation codeTomi Valkeinen
Use the new clock calculation code in the DSI driver. The new code does not need DSI video mode parameters from the panel driver, like the old code does. Instead the new code is given the normal video timings, and a few DSI parameters, which are used to create DSI video timings. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DPI: use new clock calculation codeTomi Valkeinen
Use the new clock calculation code in the DPI driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: SDI: use new clock calculation codeTomi Valkeinen
Use the new clock calculation code in the SDI driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: add new clock calculation codeTomi Valkeinen
Add new way to iterate over DSI PLL and HSDIV clock divisors. dsi_pll_calc() and dss_hsdiv_calc() provide a generic way to go over all the divisors, within given clock range. The functions will call a callback function for each divider set, making the function reusable for all use cases. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSS: add new clock calculation codeTomi Valkeinen
Add new way to iterate over DSS clock divisors. dss_div_calc() provides a generic way to go over all the divisors, within given clock range. dss_div_calc() will call a callback function for each divider set, making the function reusable for all use cases. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DISPC: add new clock calculation codeTomi Valkeinen
Add new way to iterate over DISPC clock divisors. dispc_div_calc() provides a generic way to go over all the divisors, within given pixel clock range. dispc_div_calc() will call a callback function for each divider set, making the function reusable for all use cases. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI remove unneeded clk source setup codeTomi Valkeinen
We always use the same clock sources for DSI, so let's remove the unnecessary clock source fields from dsi_data. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: add enum omap_dss_dsi_trans_modeTomi Valkeinen
Instead of managing DSI sync ends with booleans, add an enum for the DSI transfer mode. This is much cleaner way to handle the DSI syncs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: get line buffer size at probeTomi Valkeinen
To find out the DSI line buffer size we need to read HW registers. To make it possible to do DSI configuration calculations without HW powered up, store the line buffer size at DSI driver's probe. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: simplify dsi configurationTomi Valkeinen
We have a bunch of dsi functions that are used to do the basic configuration for DSI. To simplify things, and to make sure we have all the necessary information, create a single dsi config function, which does the basic configuration. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DSI: fix wrong unsigned long long useTomi Valkeinen
dsi_configure_dispc_clocks() stores dsi func clock into unsigned long long, but it should really be just unsigned long. Fix this. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DISPC: store core clk rateTomi Valkeinen
Store dispc core clock rate so that it's available for calculations even if the HW is disabled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-04-03OMAPDSS: DPI: fix dpi_get_dsidev() for omap5Tomi Valkeinen
On OMAP5 the DISPC channels and DSI PLLs are not connected the same way. LCD2 on OMAP5 cannot use any DSI PLL as a source clock, but LCD3 can use DSI2's PLL. This patch fixes dpi_get_dsidev() by adding separate case for OMAP5 to handle the difference. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: Taal: remove rotate & mirror supportTomi Valkeinen
Taal panel driver has support to set rotation and mirroring. However, these features cannot be used without causing tearing, and are never used. The code is just extra bloat, so let's remove it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: DSI: fix DSI channel source initializationTomi Valkeinen
During the initialization of the DSI protocol registers, we always set the sources of all DSI channels to L4. However, we don't update the value in the dsi_data, so we may end up with a different value in the register and in the dsi_data, leading to DSI problems. This patch fixes the issue by initializing also the channel source in the dsi_data. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: DSI: delay dispc initializationTomi Valkeinen
We currently setup both DSI and DISPC related things when the DSI bus is enabled. There's no need for DISPC related thing at that point, though, but only later when the video output is enabled. To make it possible to use the DSI bus before DISPC overlay manager is selected, this patch moves DSI's DISPC initialization to dsi_enable_video_output(), from omapdss_dsi_display_enable(). We also move the selection of DISPC's LCD clock to dsi_enable_video_output. This way there are no DISPC dependencies until the video output is enabled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: add output->dispc_channelTomi Valkeinen
The DISPC channel used for each output is currently passed in panel platform data from the board files. To simplify this, and to make the panel drivers less dependent on OMAP, this patch changes omapdss to resolve the channel independently. The channel is resolved based on the OMAP version and, in case of DSI, the DSI module id. This resolved channel is stored into a new field in output, dispc_channel. The few places where dssdev->channel was used are changed to use output->recommended_channel. After this patch, dssdev->channel is obsolete. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: add output->nameTomi Valkeinen
Add name field to omapdss's outputs so that in the following patches panels refer to the output by their name. The name also helps debugging. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: HDMI: init output earlierTomi Valkeinen
Move hdmi driver's output initialization a bit earlier, so that it happens before hdmi panel init. In the future the hdmi panel will depend on the output being ready. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: add missing export for omap_dss_get_output()Tomi Valkeinen
omap_dss_get_output() is a public function, but was missing EXPORT_SYMBOL(). Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: APPLY: remove dssdev from dss_mgr_wait_for_vsyncTomi Valkeinen
dss_mgr_wait_for_vsync() uses dssdev->type to find out if the output is going to VENC, HDMI, or something else. This creates a dependency on dssdev, which we want to remove. The task is more logically done by looking at the output to which the overlay manager in question is connected to. This patch changes the code to use output->id to find out which kind of output we use. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: Taal: remove multi-panel supportTomi Valkeinen
Taal panel driver was originally meant to support multiple different DSI command mode panel models. This never realized, and the multi-panel support code is lying there unused, making the driver more difficult to maintain. This patch removes the multi-panel support from Taal driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: DSI: remove omap_dss_device usesTomi Valkeinen
The role of struct omap_dss_device will change in the future. The exact details of that are still a bit unclear. However, the less uses of omap_dss_device we have, the easier the change is in the future. This patch removes uses of omap_dss_device from dsi.c, where it can be done easily. Mostly this means passing dsi platform device to functions, instead of the omap_dss_device. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: DPI: remove omap_dss_device usesTomi Valkeinen
The role of struct omap_dss_device will change in the future. The exact details of that are still a bit unclear. However, the less uses of omap_dss_device we have, the easier the change is in the future. This patch removes uses of omap_dss_device from dpi.c, where it can be done neatly, by, for example, passing some lower level parameter in function parameters. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: HDMI: remove HDMI clk divisors from dssdevTomi Valkeinen
struct omap_dss_device contains HDMI clock divisors. The idea is that the board file can pass precalculated divisors to the display driver. However, these divsors are no longer needed, as the omapdss driver can calculate the divisors during runtime. This patch removes the divisors from omap_dss_device, and their uses from the hdmi driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: DSI: remove DSI & DISPC clk divisors from dssdevTomi Valkeinen
struct omap_dss_device contains DSS clock divisors. The idea is that the board file can pass precalculated divisors to the display driver. However, these divsors are no longer needed, as the omapdss driver can calculate the divisors during runtime. This patch removes the divisors from omap_dss_device, and their uses from the dsi driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: add fields to panels' platform dataTomi Valkeinen
Forthcoming panel patches will change the panel drivers to use platform data to pass panel's gpios to the panel driver. This patch adds the required fields and platform data structs to the omap-panel-data.h file, so that the board files can be changed independently of the panel driver changes. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03OMAPDSS: panels: keep platform data of all panels in a single headerArchit Taneja
Structs for platform data of omapdss panels are found in headers in the 'include/video/' path. Board files populate these structs with platform specific values, and the panel driver uses these to configure the panel. Currently, each panel has it's own header in the above path. Move all the omapdss panel platform data structs to a single header omap-panel-data.h. This is useful because: - All other omapdss panel drivers will be modified to use platform data. This would lead to a lot of panel headers usable only by omapdss. A lot of these platform data structs are trivial, and don't really need a separate header. - Platform data would be eventually removed, and platform information would be passed via device tree. Therefore, omapdss panel platform data structs are temporary, and will be easier to remove if they are all in the same header. - All board files will have to include the same header to configure a panel's platform data, that makes the board files more consistent. Signed-off-by: Archit Taneja <archit@ti.com>
2013-04-03drm/i915: create pipe_config->dpll for clock stateDaniel Vetter
Clock computations and handling are highly encoder specific, both in the optimal clock selection and also in which clocks to use and when sharing of clocks is possible. So the best place to do this is somewhere in the encoders, with a generic fallback for those encoders without special needs. To facility this, add a pipe_config->clocks_set boolean. This patch here is only prep work, it simply sets the computed clock values in pipe_config->dpll, and uses that data in the hw clock setting functions. Haswell code isn't touched, simply because Haswell clocks work much different and need their own infrastructure (with probably a Haswell-specific config->ddi_clock substruct). Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-04-03drm/i915: hw readout support for ->has_pch_encodersDaniel Vetter
Now we can ditch the checks in the Haswell disable code. v2: add support for Haswell Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-04-03drm/i915: add hw state readout/checking for pipe_configDaniel Vetter
We need to be able to read out the hw state code for a bunch of reasons: - Correctly disabling boot-up/resume state. - Pure paranoia. Since not all of the pipe configuration is e.g. relevant for fastboot (or at least we can allow some wiggle room in some parameters, like the clocks), we need to add a strict_checking parameter to intel_pipe_config_compare for fastboot. For now intel_pipe_config_compare should be fully paranoid and check everything that the hw state readout code supports. Which for this infrastructure code is nothing. I've gone a bit overboard with adding 3 get_pipe_config functions: The ilk version will differ with the next patch, so it's not too onerous. v2: Don't check the hw config if the pipe is off, since an enabled, but dpms off crtc will obviously have tons of difference with the hw state. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>