Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush
[pandora-kernel.git] / include / media / soc_mediabus.h
index b338108..fae4325 100644 (file)
 
 /**
  * enum soc_mbus_packing - data packing types on the media-bus
- * @SOC_MBUS_PACKING_NONE:     no packing, bit-for-bit transfer to RAM
+ * @SOC_MBUS_PACKING_NONE:     no packing, bit-for-bit transfer to RAM, one
+ *                             sample represents one pixel
  * @SOC_MBUS_PACKING_2X8_PADHI:        16 bits transferred in 2 8-bit samples, in the
  *                             possibly incomplete byte high bits are padding
  * @SOC_MBUS_PACKING_2X8_PADLO:        as above, but low bits are padding
  * @SOC_MBUS_PACKING_EXTEND16: sample width (e.g., 10 bits) has to be extended
  *                             to 16 bits
+ * @SOC_MBUS_PACKING_VARIABLE: compressed formats with variable packing
+ * @SOC_MBUS_PACKING_1_5X8:    used for packed YUV 4:2:0 formats, where 4
+ *                             pixels occupy 6 bytes in RAM
  */
 enum soc_mbus_packing {
        SOC_MBUS_PACKING_NONE,
        SOC_MBUS_PACKING_2X8_PADHI,
        SOC_MBUS_PACKING_2X8_PADLO,
        SOC_MBUS_PACKING_EXTEND16,
+       SOC_MBUS_PACKING_VARIABLE,
+       SOC_MBUS_PACKING_1_5X8,
 };
 
 /**
@@ -57,9 +63,24 @@ struct soc_mbus_pixelfmt {
        u8                      bits_per_sample;
 };
 
+/**
+ * struct soc_mbus_lookup - Lookup FOURCC IDs by mediabus codes for pass-through
+ * @code:      mediabus pixel-code
+ * @fmt:       pixel format description
+ */
+struct soc_mbus_lookup {
+       enum v4l2_mbus_pixelcode        code;
+       struct soc_mbus_pixelfmt        fmt;
+};
+
+const struct soc_mbus_pixelfmt *soc_mbus_find_fmtdesc(
+       enum v4l2_mbus_pixelcode code,
+       const struct soc_mbus_lookup *lookup,
+       int n);
 const struct soc_mbus_pixelfmt *soc_mbus_get_fmtdesc(
        enum v4l2_mbus_pixelcode code);
 s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf);
-int soc_mbus_samples_per_pixel(const struct soc_mbus_pixelfmt *mf);
+int soc_mbus_samples_per_pixel(const struct soc_mbus_pixelfmt *mf,
+                       unsigned int *numerator, unsigned int *denominator);
 
 #endif