mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
Qualcomm ARM Based SoC Updates for 4.3-rc2
* Fix errant private access in SMEM * Fix use of correct remote processor ID in SMD transactions * Correct SMD fBLOCKREADINTR handling -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJV8KPBAAoJEFKiBbHx2RXVWUwP/jn3Tth9UOBOem7/nLIPctQx O7knZBUJ3UtnC+xwkKFy/G6WYZ29ovCjzZ+3ExNQFFZNMkmE04c4x78J/XaO3gAl kwHLEsStmbAXyIi+gqDYFw7BS00yjB159gUg3zCZhfao5ZiaPDgI1tZAWgaU7ywp 7r6+VaJcN3/fhiNoV1PKSNy38w9yeS22MNdudkqeJm6Uumf30UXxsy8eMbZWYjgJ kpm7PGav/8mYEvrSWNe0nAuvkOTMNzTGjtwp9cQSZ+J0myZ4mOgHopNU2xAE0eaN TVrkxpyfiTkpa+x2Y3SGvIxNOepLT7BzL3V/NG3hBgHA/OApMjbBlQ+vDL6vsBbh UrRkpPCnwrH3q2GWOdrxlVKNxgfOmVEpQc1woj6Ykr1aFPSGK7OnqxKCQtD/BIkg zWZUVkbLyRYIcHql7tG9Q3TcjBG/nIV2XM76NJ1H06IrBRhpVA7mwDm11DfPma2Q y4641evunqJAZNTDtGpX/fyiqZeV5m9Md5PtOZKWuh83pqbk+X0tjZ0rsEt1K2wa szItTS896fKzP8DaGx0a0+1N4jsyJmWj1Dd6gR/Cz9wD+OasvBdIDvixYv7RPSXW kuAv2yzh8OPuCb5gWjVv0pOr/cMdvrJefvXhodcOQcjMEfSNCcBSc7StuKVg4qHw bEnGfjV5jj0NVr2hvTAw =w16T -----END PGP SIGNATURE----- Merge tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm into next/late Qualcomm ARM Based SoC Updates for 4.3-rc2 * Fix errant private access in SMEM * Fix use of correct remote processor ID in SMD transactions * Correct SMD fBLOCKREADINTR handling * tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm: soc: qcom: smd: Correct fBLOCKREADINTR handling soc: qcom: smd: Use correct remote processor ID soc: qcom: smem: Fix errant private access devicetree: soc: Add Qualcomm SMD based RPM DT binding soc: qcom: Driver for the Qualcomm RPM over SMD soc: qcom: Add Shared Memory Driver soc: qcom: Add device tree binding for Shared Memory Device drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM soc: qcom: Add Shared Memory Manager driver
This commit is contained in:
commit
c6e59bdac9
10 changed files with 2668 additions and 0 deletions
35
include/linux/soc/qcom/smd-rpm.h
Normal file
35
include/linux/soc/qcom/smd-rpm.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef __QCOM_SMD_RPM_H__
|
||||
#define __QCOM_SMD_RPM_H__
|
||||
|
||||
struct qcom_smd_rpm;
|
||||
|
||||
#define QCOM_SMD_RPM_ACTIVE_STATE 0
|
||||
#define QCOM_SMD_RPM_SLEEP_STATE 1
|
||||
|
||||
/*
|
||||
* Constants used for addressing resources in the RPM.
|
||||
*/
|
||||
#define QCOM_SMD_RPM_BOOST 0x61747362
|
||||
#define QCOM_SMD_RPM_BUS_CLK 0x316b6c63
|
||||
#define QCOM_SMD_RPM_BUS_MASTER 0x73616d62
|
||||
#define QCOM_SMD_RPM_BUS_SLAVE 0x766c7362
|
||||
#define QCOM_SMD_RPM_CLK_BUF_A 0x616B6C63
|
||||
#define QCOM_SMD_RPM_LDOA 0x616f646c
|
||||
#define QCOM_SMD_RPM_LDOB 0x626F646C
|
||||
#define QCOM_SMD_RPM_MEM_CLK 0x326b6c63
|
||||
#define QCOM_SMD_RPM_MISC_CLK 0x306b6c63
|
||||
#define QCOM_SMD_RPM_NCPA 0x6170636E
|
||||
#define QCOM_SMD_RPM_NCPB 0x6270636E
|
||||
#define QCOM_SMD_RPM_OCMEM_PWR 0x706d636f
|
||||
#define QCOM_SMD_RPM_QPIC_CLK 0x63697071
|
||||
#define QCOM_SMD_RPM_SMPA 0x61706d73
|
||||
#define QCOM_SMD_RPM_SMPB 0x62706d73
|
||||
#define QCOM_SMD_RPM_SPDM 0x63707362
|
||||
#define QCOM_SMD_RPM_VSA 0x00617376
|
||||
|
||||
int qcom_rpm_smd_write(struct qcom_smd_rpm *rpm,
|
||||
int state,
|
||||
u32 resource_type, u32 resource_id,
|
||||
void *buf, size_t count);
|
||||
|
||||
#endif
|
||||
46
include/linux/soc/qcom/smd.h
Normal file
46
include/linux/soc/qcom/smd.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef __QCOM_SMD_H__
|
||||
#define __QCOM_SMD_H__
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
struct qcom_smd;
|
||||
struct qcom_smd_channel;
|
||||
struct qcom_smd_lookup;
|
||||
|
||||
/**
|
||||
* struct qcom_smd_device - smd device struct
|
||||
* @dev: the device struct
|
||||
* @channel: handle to the smd channel for this device
|
||||
*/
|
||||
struct qcom_smd_device {
|
||||
struct device dev;
|
||||
struct qcom_smd_channel *channel;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct qcom_smd_driver - smd driver struct
|
||||
* @driver: underlying device driver
|
||||
* @probe: invoked when the smd channel is found
|
||||
* @remove: invoked when the smd channel is closed
|
||||
* @callback: invoked when an inbound message is received on the channel,
|
||||
* should return 0 on success or -EBUSY if the data cannot be
|
||||
* consumed at this time
|
||||
*/
|
||||
struct qcom_smd_driver {
|
||||
struct device_driver driver;
|
||||
int (*probe)(struct qcom_smd_device *dev);
|
||||
void (*remove)(struct qcom_smd_device *dev);
|
||||
int (*callback)(struct qcom_smd_device *, const void *, size_t);
|
||||
};
|
||||
|
||||
int qcom_smd_driver_register(struct qcom_smd_driver *drv);
|
||||
void qcom_smd_driver_unregister(struct qcom_smd_driver *drv);
|
||||
|
||||
#define module_qcom_smd_driver(__smd_driver) \
|
||||
module_driver(__smd_driver, qcom_smd_driver_register, \
|
||||
qcom_smd_driver_unregister)
|
||||
|
||||
int qcom_smd_send(struct qcom_smd_channel *channel, const void *data, int len);
|
||||
|
||||
#endif
|
||||
11
include/linux/soc/qcom/smem.h
Normal file
11
include/linux/soc/qcom/smem.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef __QCOM_SMEM_H__
|
||||
#define __QCOM_SMEM_H__
|
||||
|
||||
#define QCOM_SMEM_HOST_ANY -1
|
||||
|
||||
int qcom_smem_alloc(unsigned host, unsigned item, size_t size);
|
||||
int qcom_smem_get(unsigned host, unsigned item, void **ptr, size_t *size);
|
||||
|
||||
int qcom_smem_get_free_space(unsigned host);
|
||||
|
||||
#endif
|
||||
Loading…
Reference in a new issue