summaryrefslogtreecommitdiffstats
path: root/drivers/firewire/fw-transaction.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2007-03-07 12:12:36 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-03-09 22:03:05 +0100
commit937f687969f77bfeee5efd71cadfa6f1a813665e (patch)
treeb9b691299676369ffb1882ba668fa89e9675312b /drivers/firewire/fw-transaction.c
parent65efffa8f0cd86a199bf19ede5c91552d35c5a38 (diff)
firewire: Let an fw_descriptor specify a leading immediate key/value pair.
This lets us break out "Juju" as the model name in the config rom. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-transaction.c')
-rw-r--r--drivers/firewire/fw-transaction.c34
1 files changed, 25 insertions, 9 deletions
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index abc37fa5249..8e2b9455739 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -720,23 +720,37 @@ MODULE_AUTHOR("Kristian Hoegsberg <krh@bitplanet.net>");
MODULE_DESCRIPTION("Core IEEE1394 transaction logic");
MODULE_LICENSE("GPL");
-static const u32 vendor_textual_descriptor_data[] = {
+static const u32 vendor_textual_descriptor[] = {
/* textual descriptor leaf () */
- 0x00080000,
+ 0x00060000,
0x00000000,
0x00000000,
0x4c696e75, /* L i n u */
0x78204669, /* x F i */
0x72657769, /* r e w i */
- 0x72652028, /* r e ( */
- 0x4a554a55, /* J U J U */
- 0x29000000, /* ) */
+ 0x72650000, /* r e */
};
-static struct fw_descriptor vendor_textual_descriptor = {
- .length = ARRAY_SIZE(vendor_textual_descriptor_data),
+static const u32 model_textual_descriptor[] = {
+ /* model descriptor leaf () */
+ 0x00030000,
+ 0x00000000,
+ 0x00000000,
+ 0x4a756a75, /* J u j u */
+};
+
+static struct fw_descriptor vendor_id_descriptor = {
+ .length = ARRAY_SIZE(vendor_textual_descriptor),
+ .immediate = 0x03d00d1e,
.key = 0x81000000,
- .data = vendor_textual_descriptor_data,
+ .data = vendor_textual_descriptor,
+};
+
+static struct fw_descriptor model_id_descriptor = {
+ .length = ARRAY_SIZE(model_textual_descriptor),
+ .immediate = 0x17000001,
+ .key = 0x81000000,
+ .data = model_textual_descriptor,
};
static int __init fw_core_init(void)
@@ -748,7 +762,9 @@ static int __init fw_core_init(void)
return retval;
/* Add the vendor textual descriptor. */
- retval = fw_core_add_descriptor(&vendor_textual_descriptor);
+ retval = fw_core_add_descriptor(&vendor_id_descriptor);
+ BUG_ON(retval < 0);
+ retval = fw_core_add_descriptor(&model_id_descriptor);
BUG_ON(retval < 0);
return 0;