Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b868345 authored by Udaya Bhaskara Reddy Mallavarapu's avatar Udaya Bhaskara Reddy Mallavarapu
Browse files

Migrate mpq demux driver from kernel 4.4 to 4.9



This change migrates all the relevant files consisting of the mpq
demux driver and its plugins, including the addition of TSPPv1 HW driver.

The snapshot is taken as of msm-4.4,
'commit a74dd0fdc772 ("mmc: core: retune after un-gating the clocks")'

In addition, introduce a few code changes to reduce checkpatch
warnings, typos and other style issues.

Change-Id: Ic42821da2d1d27803df2a2c8ed785f0558ffaebf
Signed-off-by: default avatarUdaya Bhaskara Reddy Mallavarapu <udaym@codeaurora.org>
parent 094061db
Loading
Loading
Loading
Loading
+82 −0
Original line number Diff line number Diff line
* TSPP ( QTI Transport Stream Packet Processor )

Hardware driver for QTI TSIF 12seg wrapper core, which consists of a TSPP, a
BAM (Bus access manager, used for DMA) and two TSIF inputs.

The TSPP driver is responsible for:
 - TSPP/TSIF hardware configuration (using SPS driver to configure BAM hardware)
 - TSIF GPIO/Clocks configuration
 - Memory resource management
 - Handling TSIF/TSPP interrupts and BAM events
 - TSPP Power management

Required properties:
- compatible : Should be "qcom,msm_tspp"
- reg : Specifies the base physical addresses and sizes of TSIF, TSPP & BAM registers.
- reg-names : Specifies the register names of TSIF, TSPP & BAM base registers.
- interrupts : Specifies the interrupts associated with TSIF 12 seg core.
- interrupt-names: Specifies interrupt names for TSIF, TSPP & BAM interrupts.
- clock-names: Specifies the clock names used for interface & reference clocks.
- clocks: GCC_TSIF_AHB_CLK clock for interface clock & GCC_TSIF_REF_CLK clock for reference clock.
- qcom, msm_bus,name: Should be "tsif"
- qcom, msm_bus,num_cases: Depends on the use cases for bus scaling
- qcom, msm_bus,num_paths: The paths for source and destination ports
- qcom, msm_bus,vectors: Vectors for bus topology.
- pinctrl-names: Names for the TSIF mode configuration to specify which TSIF interface is active.

Optional properties:
  - qcom,lpass-timer-tts : Indicates to add time stamps to TS packets from LPASS timer.
                           bydefault time stamps will be added from TFIS internal counter.

Example:

        tspp: msm_tspp@0x8880000 {
                compatible = "qcom,msm_tspp";
                reg = <0x088a7000 0x200>, /* MSM_TSIF0_PHYS */
                      <0x088a8000 0x200>, /* MSM_TSIF1_PHYS */
                      <0x088a9000 0x1000>, /* MSM_TSPP_PHYS  */
                      <0x08884000 0x23000>; /* MSM_TSPP_BAM_PHYS */
                reg-names = "MSM_TSIF0_PHYS",
                        "MSM_TSIF1_PHYS",
                        "MSM_TSPP_PHYS",
                        "MSM_TSPP_BAM_PHYS";
                interrupts = <0 121 0>, /* TSIF_TSPP_IRQ */
                        <0 119 0>, /* TSIF0_IRQ */
                        <0 120 0>, /* TSIF1_IRQ */
                        <0 122 0>; /* TSIF_BAM_IRQ */
                interrupt-names = "TSIF_TSPP_IRQ",
                        "TSIF0_IRQ",
                        "TSIF1_IRQ",
                        "TSIF_BAM_IRQ";

                clock-names = "iface_clk", "ref_clk";
                clocks = <&clock_gcc GCC_TSIF_AHB_CLK>,
                        <&clock_gcc GCC_TSIF_REF_CLK>;

                qcom,msm-bus,name = "tsif";
                qcom,msm-bus,num-cases = <2>;
                qcom,msm-bus,num-paths = <1>;
                qcom,msm-bus,vectors-KBps =
                                <82 512 0 0>, /* No vote */
                                <82 512 12288 24576>;
                                /* Max. bandwidth, 2xTSIF, each max of 96Mbps */

                pinctrl-names = "disabled",
                        "tsif0-mode1", "tsif0-mode2",
                        "tsif1-mode1", "tsif1-mode2",
                        "dual-tsif-mode1", "dual-tsif-mode2";

                pinctrl-0 = <>;                         /* disabled */
                pinctrl-1 = <&tsif0_signals_active>;    /* tsif0-mode1 */
                pinctrl-2 = <&tsif0_signals_active
                        &tsif0_sync_active>;            /* tsif0-mode2 */
                pinctrl-3 = <&tsif1_signals_active>;    /* tsif1-mode1 */
                pinctrl-4 = <&tsif1_signals_active
                        &tsif1_sync_active>;            /* tsif1-mode2 */
                pinctrl-5 = <&tsif0_signals_active
                        &tsif1_signals_active>;         /* dual-tsif-mode1 */
                pinctrl-6 = <&tsif0_signals_active
                        &tsif0_sync_active
                        &tsif1_signals_active
                        &tsif1_sync_active>;            /* dual-tsif-mode2 */
        };
+2 −0
Original line number Diff line number Diff line
@@ -16,3 +16,5 @@ menuconfig SPECTRA_CAMERA
source "drivers/media/platform/msm/vidc/Kconfig"

source "drivers/media/platform/msm/sde/Kconfig"
source "drivers/media/platform/msm/dvb/Kconfig"
source "drivers/media/platform/msm/broadcast/Kconfig"
+2 −0
Original line number Diff line number Diff line
@@ -5,3 +5,5 @@
obj-$(CONFIG_MSM_VIDC_V4L2) += vidc/
obj-y += sde/
obj-$(CONFIG_SPECTRA_CAMERA) += camera/
obj-y += broadcast/
obj-$(CONFIG_DVB_MPQ) += dvb/
+14 −0
Original line number Diff line number Diff line
#
# MSM Broadcast subsystem drivers
#

config TSPP
	depends on ARCH_QCOM
	tristate "TSPP (Transport Stream Packet Processor) Support"
	---help---
	Transport Stream Packet Processor v1 is used to offload the
	processing of MPEG transport streams from the main processor.
	It is used to process incoming transport streams from TSIF
	to supports use-cases such as transport stream live play
	and recording.
	This can also be compiled as a loadable module.
+4 −0
Original line number Diff line number Diff line
#
# Makefile for MSM Broadcast subsystem drivers.
#
obj-$(CONFIG_TSPP) += tspp.o
Loading