From 5ef6852e7aa750e47c44253763963d6495a471b2 Mon Sep 17 00:00:00 2001 From: Sujeet Baranwal Date: Wed, 28 Sep 2011 20:41:43 +0530 Subject: OMAP4: DSS: HDMI: Handle sync lost errors for TV The currrent code doesn't handle the SYNC_LOST error. The panel needs to be disabled & enabled in case of SYNC_LOST. To avoid edid read in this case, a flag is added which would not alter the value of custom_edid & edid_set flag. Change-Id: I11a17e5e1eda736c66b6d92973ede085d57dbd9d Signed-off-by: Baranwal Sujeet Signed-off-by: Muralidhar Dixit --- include/video/omapdss.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 0d63f4b..a69f177 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -474,6 +474,7 @@ struct omap_dss_device { enum omap_channel channel; bool first_vsync; + bool sync_lost_error; union { struct { -- cgit v1.1 From a275463e711170def383a249804698fad6365d5e Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Wed, 5 Oct 2011 18:28:28 -0500 Subject: OMAP: DSS: Add panel dimensions to the dss device structure Created common omapdss_display_get_dimensions() that can retrieve dimensions from either the driver's get_dimension() hook (if provided), or from the panel dimensions. HDMI updates panel dimensions based on the EDID information. Change-Id: Ic47d1bfb96dfde4003ad30830074c44e2a550f6f Signed-off-by: Lajos Molnar --- include/video/omapdss.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/video/omapdss.h b/include/video/omapdss.h index a69f177..f3c314a 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -553,6 +553,9 @@ struct omap_dss_device { enum omap_panel_config config; struct fb_monspecs monspecs; + + u32 width_in_um; + u32 height_in_um; } panel; struct { @@ -690,6 +693,9 @@ void omap_dispc_set_irq_type(int channel, enum omap_dispc_irq_type type); #define to_dss_driver(x) container_of((x), struct omap_dss_driver, driver) #define to_dss_device(x) container_of((x), struct omap_dss_device, dev) +void omapdss_display_get_dimensions(struct omap_dss_device *dssdev, + u32 *width_in_um, u32 *height_in_um); + void omapdss_dsi_vc_enable_hs(struct omap_dss_device *dssdev, int channel, bool enable); int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable); -- cgit v1.1 From f3be0a22758d7e53c4369c3f400b72dfab0fa578 Mon Sep 17 00:00:00 2001 From: Suman Anna Date: Thu, 4 Aug 2011 19:18:35 -0500 Subject: remoteproc: add infrastructure for requesting secure load/unload The remoteproc loading and starting infrastructure has been enhanced to support both secure loading and regular loading in the same flow. An API, rproc_set_secure, is provided to request the remote processor to be shutdown and restarted in either a secure mode or the regular normal mode. This API would need to be called by the secure driver whenever starting or stopping a secure application. The API will always cause a reload of the remote processor while transitioning between secure and regular boot in both directions. The reload mechanism works very much in the same way as a MMU fault or any other fatal error on the remote processor. Change-Id: Iffa73111567457d58c14b7a13c5f405ece0541d5 Signed-off-by: Suman Anna --- include/linux/remoteproc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index 90348b3..8ea3b4b 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -210,7 +210,7 @@ enum rproc_event { * struct rproc - a physical remote processor device * * @next: next rproc entry in the list - * @name: human readable name of the rproc, cannot exceed RPROC_MAN_NAME bytes + * @name: human readable name of the rproc, cannot exceed RPROC_MAX_NAME bytes * @memory_maps: table of da-to-pa memory maps (relevant if device is behind * an iommu) * @memory_pool: platform-specific contiguous memory pool data (relevant for @@ -236,6 +236,8 @@ enum rproc_event { * @mmufault_work: work in charge of notifing mmufault * @nb_error: notify block for fatal errors * @error_comp: completion used when an error happens + * @secure_ttb: private data for configuring iommu in secure mode + * @secure_mode: flag to dictate whether to enable secure loading */ struct rproc { struct list_head next; @@ -271,9 +273,12 @@ struct rproc { struct mutex pm_lock; #endif struct pm_qos_request_list *qos_request; + void *secure_ttb; + bool secure_mode; bool halt_on_crash; }; +int rproc_set_secure(const char *, bool); struct rproc *rproc_get(const char *); void rproc_put(struct rproc *); int rproc_event_register(struct rproc *, struct notifier_block *, int); -- cgit v1.1 From 3eaed63c5411e7455f78686baa823f4d8b64c2bf Mon Sep 17 00:00:00 2001 From: Suman Anna Date: Thu, 4 Aug 2011 00:56:42 -0500 Subject: remoteproc: support loading iommu and secure fw sections iommu and secure fw sections are part of the signed binary, and are loaded into memory only when the secure flag is set. Otherwise, there is no difference in the firmware loading process. Change-Id: I189eba2b88c71ca1f7fe5575867ff4f187dcd556 Signed-off-by: Suman Anna --- include/linux/remoteproc.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index 8ea3b4b..96f54a9 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -82,6 +82,8 @@ enum fw_section_type { FW_RESOURCE = 0, FW_TEXT = 1, FW_DATA = 2, + FW_MMU = 3, + FW_SIGNATURE = 4, }; struct fw_resource { -- cgit v1.1 From 372872d789d53017f7e65e2c02c47e7a5d23436e Mon Sep 17 00:00:00 2001 From: Suman Anna Date: Thu, 11 Aug 2011 00:22:38 -0500 Subject: remoteproc: make rproc_set_secure a blocking call rproc_set_secure call is now made into a blocking call. It will be blocked till the cleanup is complete and a restart is being attempted. THe function will return the status based on whether the intended operation (secure reload or normal reload) has succeeded. Note that this doesn't return the status of the rpmsg channels creation. Change-Id: Ia0a02d261ba67f06235cd6bd5826a47319592956 Signed-off-by: Suman Anna --- include/linux/remoteproc.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index 96f54a9..8afa29d 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -239,7 +239,9 @@ enum rproc_event { * @nb_error: notify block for fatal errors * @error_comp: completion used when an error happens * @secure_ttb: private data for configuring iommu in secure mode + * @secure_restart: completion event notifier for the secure restart process * @secure_mode: flag to dictate whether to enable secure loading + * @secure_ok: restart status flag to be looked up upon the event's completion */ struct rproc { struct list_head next; @@ -276,7 +278,9 @@ struct rproc { #endif struct pm_qos_request_list *qos_request; void *secure_ttb; + struct completion secure_restart; bool secure_mode; + bool secure_ok; bool halt_on_crash; }; -- cgit v1.1