__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0 */ /* Author: Dan Scally <[email protected]> */ #ifndef __IPU_BRIDGE_H #define __IPU_BRIDGE_H #include <linux/mod_devicetable.h> #include <linux/property.h> #include <linux/types.h> #include <media/v4l2-fwnode.h> #define IPU_HID "INT343E" #define IPU_MAX_LANES 4 #define IPU_MAX_PORTS 4 #define MAX_NUM_LINK_FREQS 3 /* Values are educated guesses as we don't have a spec */ #define IPU_SENSOR_ROTATION_NORMAL 0 #define IPU_SENSOR_ROTATION_INVERTED 1 #define IPU_SENSOR_CONFIG(_HID, _NR, ...) \ (const struct ipu_sensor_config) { \ .hid = _HID, \ .nr_link_freqs = _NR, \ .link_freqs = { __VA_ARGS__ } \ } #define NODE_SENSOR(_HID, _PROPS) \ (const struct software_node) { \ .name = _HID, \ .properties = _PROPS, \ } #define NODE_PORT(_PORT, _SENSOR_NODE) \ (const struct software_node) { \ .name = _PORT, \ .parent = _SENSOR_NODE, \ } #define NODE_ENDPOINT(_EP, _PORT, _PROPS) \ (const struct software_node) { \ .name = _EP, \ .parent = _PORT, \ .properties = _PROPS, \ } #define NODE_VCM(_TYPE) \ (const struct software_node) { \ .name = _TYPE, \ } enum ipu_sensor_swnodes { SWNODE_SENSOR_HID, SWNODE_SENSOR_PORT, SWNODE_SENSOR_ENDPOINT, SWNODE_IPU_PORT, SWNODE_IPU_ENDPOINT, /* below are optional / maybe empty */ SWNODE_IVSC_HID, SWNODE_IVSC_SENSOR_PORT, SWNODE_IVSC_SENSOR_ENDPOINT, SWNODE_IVSC_IPU_PORT, SWNODE_IVSC_IPU_ENDPOINT, SWNODE_VCM, SWNODE_COUNT }; /* Data representation as it is in ACPI SSDB buffer */ struct ipu_sensor_ssdb { u8 version; u8 sku; u8 guid_csi2[16]; u8 devfunction; u8 bus; u32 dphylinkenfuses; u32 clockdiv; u8 link; u8 lanes; u32 csiparams[10]; u32 maxlanespeed; u8 sensorcalibfileidx; u8 sensorcalibfileidxInMBZ[3]; u8 romtype; u8 vcmtype; u8 platforminfo; u8 platformsubinfo; u8 flash; u8 privacyled; u8 degree; u8 mipilinkdefined; u32 mclkspeed; u8 controllogicid; u8 reserved1[3]; u8 mclkport; u8 reserved2[13]; } __packed; struct ipu_property_names { char clock_frequency[16]; char rotation[9]; char orientation[12]; char bus_type[9]; char data_lanes[11]; char remote_endpoint[16]; char link_frequencies[17]; }; struct ipu_node_names { char port[7]; char ivsc_sensor_port[7]; char ivsc_ipu_port[7]; char endpoint[11]; char remote_port[9]; char vcm[16]; }; struct ipu_sensor_config { const char *hid; const u8 nr_link_freqs; const u64 link_freqs[MAX_NUM_LINK_FREQS]; }; struct ipu_sensor { /* append ssdb.link(u8) in "-%u" format as suffix of HID */ char name[ACPI_ID_LEN + 4]; struct acpi_device *adev; struct device *csi_dev; struct acpi_device *ivsc_adev; char ivsc_name[ACPI_ID_LEN + 4]; /* SWNODE_COUNT + 1 for terminating NULL */ const struct software_node *group[SWNODE_COUNT + 1]; struct software_node swnodes[SWNODE_COUNT]; struct ipu_node_names node_names; u8 link; u8 lanes; u32 mclkspeed; u32 rotation; enum v4l2_fwnode_orientation orientation; const char *vcm_type; struct ipu_property_names prop_names; struct property_entry ep_properties[5]; struct property_entry dev_properties[5]; struct property_entry ipu_properties[3]; struct property_entry ivsc_properties[1]; struct property_entry ivsc_sensor_ep_properties[4]; struct property_entry ivsc_ipu_ep_properties[4]; struct software_node_ref_args local_ref[1]; struct software_node_ref_args remote_ref[1]; struct software_node_ref_args vcm_ref[1]; struct software_node_ref_args ivsc_sensor_ref[1]; struct software_node_ref_args ivsc_ipu_ref[1]; }; typedef int (*ipu_parse_sensor_fwnode_t)(struct acpi_device *adev, struct ipu_sensor *sensor); struct ipu_bridge { struct device *dev; ipu_parse_sensor_fwnode_t parse_sensor_fwnode; char ipu_node_name[ACPI_ID_LEN]; struct software_node ipu_hid_node; u32 data_lanes[4]; unsigned int n_sensors; struct ipu_sensor sensors[IPU_MAX_PORTS]; }; #if IS_ENABLED(CONFIG_IPU_BRIDGE) int ipu_bridge_init(struct device *dev, ipu_parse_sensor_fwnode_t parse_sensor_fwnode); int ipu_bridge_parse_ssdb(struct acpi_device *adev, struct ipu_sensor *sensor); int ipu_bridge_instantiate_vcm(struct device *sensor); #else /* Use a define to avoid the @parse_sensor_fwnode argument getting evaluated */ #define ipu_bridge_init(dev, parse_sensor_fwnode) (0) static inline int ipu_bridge_instantiate_vcm(struct device *s) { return 0; } #endif #endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| davinci | Folder | 0755 |
|
|
| drv-intf | Folder | 0755 |
|
|
| i2c | Folder | 0755 |
|
|
| tpg | Folder | 0755 |
|
|
| cec-notifier.h | File | 5.03 KB | 0644 |
|
| cec-pin.h | File | 2.79 KB | 0644 |
|
| cec.h | File | 17.88 KB | 0644 |
|
| demux.h | File | 22.69 KB | 0644 |
|
| dmxdev.h | File | 5.87 KB | 0644 |
|
| dvb-usb-ids.h | File | 19.46 KB | 0644 |
|
| dvb_ca_en50221.h | File | 4.35 KB | 0644 |
|
| dvb_demux.h | File | 10.77 KB | 0644 |
|
| dvb_frontend.h | File | 30.42 KB | 0644 |
|
| dvb_net.h | File | 2.43 KB | 0644 |
|
| dvb_ringbuffer.h | File | 8.32 KB | 0644 |
|
| dvb_vb2.h | File | 7.65 KB | 0644 |
|
| dvbdev.h | File | 14.77 KB | 0644 |
|
| frame_vector.h | File | 1.42 KB | 0644 |
|
| imx.h | File | 190 B | 0644 |
|
| ipu-bridge.h | File | 4.3 KB | 0644 |
|
| ipu6-pci-table.h | File | 876 B | 0644 |
|
| jpeg.h | File | 500 B | 0644 |
|
| media-dev-allocator.h | File | 2.21 KB | 0644 |
|
| media-device.h | File | 17.65 KB | 0644 |
|
| media-devnode.h | File | 5.29 KB | 0644 |
|
| media-entity.h | File | 47.13 KB | 0644 |
|
| media-request.h | File | 11.95 KB | 0644 |
|
| mipi-csi2.h | File | 1.46 KB | 0644 |
|
| rc-core.h | File | 12.08 KB | 0644 |
|
| rc-map.h | File | 14.53 KB | 0644 |
|
| rcar-fcp.h | File | 1.1 KB | 0644 |
|
| tuner-types.h | File | 7.54 KB | 0644 |
|
| tuner.h | File | 8.46 KB | 0644 |
|
| tveeprom.h | File | 3.3 KB | 0644 |
|
| v4l2-async.h | File | 11.78 KB | 0644 |
|
| v4l2-cci.h | File | 4.75 KB | 0644 |
|
| v4l2-common.h | File | 19.96 KB | 0644 |
|
| v4l2-ctrls.h | File | 54.48 KB | 0644 |
|
| v4l2-dev.h | File | 20.42 KB | 0644 |
|
| v4l2-device.h | File | 18.61 KB | 0644 |
|
| v4l2-dv-timings.h | File | 10.64 KB | 0644 |
|
| v4l2-event.h | File | 6.01 KB | 0644 |
|
| v4l2-fh.h | File | 4.22 KB | 0644 |
|
| v4l2-flash-led-class.h | File | 5.75 KB | 0644 |
|
| v4l2-fwnode.h | File | 15.57 KB | 0644 |
|
| v4l2-h264.h | File | 3.1 KB | 0644 |
|
| v4l2-image-sizes.h | File | 827 B | 0644 |
|
| v4l2-ioctl.h | File | 33.52 KB | 0644 |
|
| v4l2-jpeg.h | File | 6.43 KB | 0644 |
|
| v4l2-mc.h | File | 7.78 KB | 0644 |
|
| v4l2-mediabus.h | File | 9.65 KB | 0644 |
|
| v4l2-mem2mem.h | File | 29.48 KB | 0644 |
|
| v4l2-rect.h | File | 5.71 KB | 0644 |
|
| v4l2-subdev.h | File | 74.55 KB | 0644 |
|
| v4l2-vp9.h | File | 8.32 KB | 0644 |
|
| videobuf2-core.h | File | 52.05 KB | 0644 |
|
| videobuf2-dma-contig.h | File | 883 B | 0644 |
|
| videobuf2-dma-sg.h | File | 698 B | 0644 |
|
| videobuf2-dvb.h | File | 1.81 KB | 0644 |
|
| videobuf2-memops.h | File | 1.09 KB | 0644 |
|
| videobuf2-v4l2.h | File | 14.48 KB | 0644 |
|
| videobuf2-vmalloc.h | File | 509 B | 0644 |
|
| vsp1.h | File | 3.62 KB | 0644 |
|